{
  "openapi": "3.0.1",
  "info": {
    "title": "Funda Scraper 🏠 Sale & Rental Listings | Only $0.75/1,000",
    "description": "Extract Funda sale and rental listings by URL or city. Get structured property details, optional raw records and public agency contacts. Track price and status changes across runs. Start with a 5-listing sample.",
    "version": "0.1",
    "x-build-id": "q3W9fyjBmJpmWGG19"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/pebbleworklabs~funda-listings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-pebbleworklabs-funda-listings-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/pebbleworklabs~funda-listings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-pebbleworklabs-funda-listings-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/pebbleworklabs~funda-listings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-pebbleworklabs-funda-listings-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": {
          "searchUrls": {
            "title": "Funda search URLs",
            "type": "array",
            "description": "Optional Funda search or detail URLs. Use these OR simple search settings. Filters are verified against source criteria.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum unique listings",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum unique listings observed across all URLs after residential filtering (1,000 max). Unchanged rows suppressed by changesOnly still consume this work limit.",
            "default": 20
          },
          "includeDetails": {
            "title": "Include listing details",
            "type": "boolean",
            "description": "Include listing details.",
            "default": false
          },
          "autoPartition": {
            "title": "Automatically split large searches",
            "type": "boolean",
            "description": "For requests above 50 properties, split dense searches into smaller price ranges and combine unique results in one dataset. Saved page cursors and bounded batch retries share the whole run's work and fee limits. Explicit sort orders and starting pages are preserved through ordinary pagination.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Property detail proxy. Default residential Netherlands; platform proxy usage is billed to the account.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "NL"
            }
          },
          "maxPages": {
            "title": "Maximum search pages",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Whole-run search-page limit, including partition discovery and retried pages. Bulk jobs need a larger limit than small samples. Stops with limited coverage when reached.",
            "default": 20
          },
          "maxRequests": {
            "title": "Maximum source requests including retries",
            "minimum": 1,
            "maximum": 2500,
            "type": "integer",
            "description": "Maximum source requests including retries. Stops with limited coverage when reached.",
            "default": 100
          },
          "maxRunSeconds": {
            "title": "Source time budget in seconds",
            "minimum": 15,
            "maximum": 1800,
            "type": "integer",
            "description": "Source time budget in seconds. Stops with limited coverage when reached. A restarted run continues with its remaining time.",
            "default": 300
          },
          "maxTrafficMb": {
            "title": "Maximum decoded response traffic (MB)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum decoded response traffic (MB). Stops with limited coverage when reached.",
            "default": 50
          },
          "searchProxyConfiguration": {
            "title": "Search page proxy",
            "type": "object",
            "description": "Default Apify Unblocker. Uses its interception certificate only when UNBLOCKER is explicitly selected. Search pages currently refuse plain HTTP and browser sessions.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "UNBLOCKER"
              ]
            }
          },
          "residentialOnly": {
            "title": "Residential properties only",
            "type": "boolean",
            "description": "When enabled, emit confirmed apartments and houses only. Parking, building plots, other and unclassified types are excluded before optional search-result detail requests. Exclusions are counted in SUMMARY.",
            "default": false
          },
          "location": {
            "title": "City or Funda area slug",
            "type": "string",
            "description": "Use a city such as Amsterdam or Den Haag, or a Funda area slug. Leave blank when supplying searchUrls."
          },
          "transaction": {
            "title": "Sale or rent",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Used with location. Omit with searchUrls. Sale when omitted in simple search mode."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Optional simple-search property filter. Leave blank with searchUrls.",
            "items": {
              "type": "string",
              "enum": [
                "house",
                "apartment",
                "parking",
                "building_plot"
              ]
            }
          },
          "includeRawRecord": {
            "title": "Include complete raw property record",
            "type": "boolean",
            "description": "Also retain the complete source detail record and original search record. Enables includeDetails. Larger exports use more storage.",
            "default": false
          },
          "includeAgencyContacts": {
            "title": "Include agency contacts",
            "type": "boolean",
            "description": "Add agency name, public phone, email and website. One lookup and one preview billing event per successfully enriched unique agency per run.",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring key",
            "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,39}$",
            "type": "string",
            "description": "Optional stable name for this exact search scope. Tracks new, updated, unchanged and returned listings across runs. Use a different key for a different scope."
          },
          "changesOnly": {
            "title": "Return new or changed listings only",
            "type": "boolean",
            "description": "Requires monitoringKey. Suppress unchanged rows while retaining observations. Source reads still incur owner platform/proxy usage. Removals are separate and only inferred after complete coverage.",
            "default": false
          },
          "maxSpendUsd": {
            "title": "Maximum result and enrichment fees (USD)",
            "minimum": 0,
            "maximum": 1000,
            "type": "number",
            "description": "Cap listing/detail/agency event fees (simulated while private). Zero starts no source requests. When activated, the fixed run-start fee is additional; use Apify maximum cost per run to cap all event fees including the start. Does not cap private platform/proxy usage."
          },
          "minPrice": {
            "title": "Minimum price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional simple-search setting. Leave blank with searchUrls."
          },
          "maxPrice": {
            "title": "Maximum price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional simple-search setting. Leave blank with searchUrls."
          },
          "minLivingArea": {
            "title": "Minimum living area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional simple-search setting. Leave blank with searchUrls."
          },
          "maxLivingArea": {
            "title": "Maximum living area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional simple-search setting. Leave blank with searchUrls."
          },
          "minRooms": {
            "title": "Minimum rooms",
            "minimum": 0,
            "type": "integer",
            "description": "Optional simple-search setting. Leave blank with searchUrls."
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Optional simple-search setting. Leave blank with searchUrls."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}