{
  "openapi": "3.0.1",
  "info": {
    "title": "Funda Scraper - Netherlands Property Listings",
    "description": "Extract Funda property listings, new-build projects, broker offices and area statistics across the Netherlands. Pay per delivered row, plus a start fee.",
    "version": "0.1",
    "x-build-id": "Kg9NKvoF4ApiB1tn3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lentic_clockss~funda-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lentic_clockss-funda-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/lentic_clockss~funda-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lentic_clockss-funda-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/lentic_clockss~funda-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lentic_clockss-funda-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "selectedArea": {
            "title": "Selected area",
            "maxLength": 160,
            "type": "string",
            "description": "City, province, neighbourhood or postcode as used by Funda, such as amsterdam, provincie-zuid-holland or 1012AB; use nl for the Netherlands. With no target, the Actor runs an Amsterdam sale example with at most 3 rows."
          },
          "selectedAreas": {
            "title": "Selected areas (batch)",
            "type": "array",
            "description": "Array of areas to search in one run. maxResults applies to each area; duplicate entities are delivered once.",
            "items": {
              "type": "string"
            }
          },
          "detailUrls": {
            "title": "Detail URLs",
            "type": "array",
            "description": "Funda listing URLs to collect instead of an area search. Use current links from funda.nl.",
            "items": {
              "type": "string"
            }
          },
          "officeUrl": {
            "title": "Makelaar office URL",
            "pattern": "^((https?://)?([a-z0-9-]+\\.)*funda\\.nl)?(/.*)?$",
            "type": "string",
            "description": "Funda office page URL, used with channel set to makelaar. For example, replace the placeholder in https://www.funda.nl/makelaar/12345-example-agency/."
          },
          "officeId": {
            "title": "Makelaar office ID",
            "pattern": "^\\s*([0-9]+)?\\s*$",
            "type": "string",
            "description": "Numeric Funda office ID as a string, used with channel set to makelaar. Use this when you do not supply officeUrl."
          },
          "postalCode": {
            "title": "Postal code",
            "type": "string",
            "description": "Dutch postcode, such as 1012AB, used as the search area when no area is supplied."
          },
          "maxResults": {
            "title": "Max results per selected area or URL",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum rows per selected area or detail URL, across all row types: default 70, with larger requests collected in parts of 70. The whole run also stops at your maximum total charge; Free-plan users have a 200-row run limit and 10 runs of this Actor.",
            "default": 70
          },
          "channel": {
            "title": "Channel",
            "enum": [
              "koop",
              "huur",
              "nieuwbouw",
              "makelaar",
              "map",
              "sitemap",
              "suggest",
              "insights",
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Choose sale listings, rentals, new builds, an office, map search, sitemap URLs, area suggestions or area statistics. Office and map inputs do not select their channel automatically.",
            "default": "koop"
          },
          "mapListingType": {
            "title": "Map listing type",
            "enum": [
              "koop",
              "huur",
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Property offering for map searches: koop for sale or huur for rent. The aliases sale and rent are also accepted.",
            "default": "koop"
          },
          "bbox": {
            "title": "Map bounding box",
            "pattern": "^\\s*(-?[0-9]+(\\.[0-9]+)?\\s*,\\s*-?[0-9]+(\\.[0-9]+)?\\s*,\\s*-?[0-9]+(\\.[0-9]+)?\\s*,\\s*-?[0-9]+(\\.[0-9]+)?)?\\s*$",
            "type": "string",
            "description": "Map search bounds in longitude/latitude order: minLon,minLat,maxLon,maxLat. For example, 4.85,52.35,4.95,52.40 with channel set to map."
          },
          "zoom": {
            "title": "Map zoom",
            "type": "number",
            "description": "Optional zoom level for a map search."
          },
          "objectType": {
            "title": "Object type",
            "type": "string",
            "description": "Property type: house, apartment, parking, land, storage, office or garage. Equivalent Dutch property-type names are accepted.",
            "default": ""
          },
          "price": {
            "title": "Price filter",
            "type": "string",
            "description": "Funda price range, such as Max-750000 or Min-200000-Max-500000. For rentals, use the advertised rent range.",
            "default": ""
          },
          "sort": {
            "title": "Sort",
            "type": "string",
            "description": "Funda sorting value, such as price.selling_price_asc for ascending sale price.",
            "default": ""
          },
          "constructionType": {
            "title": "Construction type",
            "type": "string",
            "description": "Construction filter, such as newly_built. New-build searches use newly_built when this field is empty.",
            "default": ""
          },
          "locale": {
            "title": "Locale",
            "enum": [
              "nl",
              "en"
            ],
            "type": "string",
            "description": "Detail-page language: nl for Dutch or en for English where available. This does not translate every source field.",
            "default": "nl"
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum search pages per selected area, from 1 to 50. Fewer pages or available listings can reduce the number of rows delivered.",
            "default": 1
          },
          "enrichDetails": {
            "title": "Enrich details",
            "type": "boolean",
            "description": "Include additional property characteristics from listing detail pages. Enabled by default.",
            "default": true
          },
          "enrichMedia": {
            "title": "Enrich media",
            "type": "boolean",
            "description": "Include additional photos, floor plans, videos and cadastral information where available. Disabled by default.",
            "default": false
          },
          "enrichLead": {
            "title": "Include broker contacts",
            "type": "boolean",
            "description": "Include public broker office contact details, such as phone numbers, email addresses and organization information. Enabled by default; this does not provide private homeowner contacts.",
            "default": true
          },
          "fields": {
            "title": "Fields",
            "type": "array",
            "description": "Optional list of output fields, such as price and city. Requested fields also select the detail information needed; identity fields remain in each row.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "sitemapBuckets": {
            "title": "Sitemap buckets",
            "type": "array",
            "description": "Sitemap categories to collect when channel is sitemap: koop, huur, nieuwbouw, recreatie or europe. The input form selects koop by default.",
            "items": {
              "type": "string",
              "enum": [
                "koop",
                "huur",
                "nieuwbouw",
                "recreatie",
                "europe"
              ]
            },
            "default": [
              "koop"
            ]
          },
          "sitemapDetails": {
            "title": "Include sitemap listing details",
            "type": "boolean",
            "description": "Add listing details to sitemap rows where available. Disabled by default; requesting detail fields through fields can also enable this.",
            "default": false
          },
          "includeRaw": {
            "title": "Include raw",
            "type": "boolean",
            "description": "Include available original source data in each row. Large values are trimmed.",
            "default": false
          },
          "workerBaseUrl": {
            "title": "Developer test setting",
            "type": "string",
            "description": "Leave empty. Used only by the developer for testing.",
            "default": ""
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}