{
  "openapi": "3.0.1",
  "info": {
    "title": "European Property Search - Search 46 EU Property Portals",
    "description": "Search 46 European real-estate portals in a single run. Unified feed with EUR-normalized price, surface and price-per-m2. No login required.",
    "version": "0.1",
    "x-build-id": "li8YvoLnzPd6DEfcC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/studio-amba~european-property-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-studio-amba-european-property-search",
        "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/studio-amba~european-property-search/runs": {
      "post": {
        "operationId": "runs-sync-studio-amba-european-property-search",
        "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/studio-amba~european-property-search/run-sync": {
      "post": {
        "operationId": "run-sync-studio-amba-european-property-search",
        "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": {
          "searchQuery": {
            "title": "Search Location",
            "type": "string",
            "description": "Location (city or region) passed to every selected portal. Leave empty to use each portal's default city (recommended when searching multiple countries — a city name only matches its own country)."
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Filter which countries to include. Leave empty for all (AT, BE, BG, CH, CZ, DE, DK, EE, ES, FI, FR, GB, HU, IE, IT, LT, LU, NL, PL, PT, RO, RS, SI, SK).",
            "items": {
              "type": "string"
            }
          },
          "portals": {
            "title": "Portals",
            "type": "array",
            "description": "Pick a specific subset of portals by name (e.g. Immoweb, Idealista, Rightmove). Leave empty for all portals in the selected countries. Combines with Countries: both narrow the set. Available: 4zida, Aruodas, athome, Bien'ici, Boliga, Daft, Etuovi, Flatfox, Fotocasa, Funda, Gratka, Idealista, Immobiliare, Immoscoop, ImmoScout24, ImmoScout24.at, Immovlan, Immoweb, Immowelt, imot.bg, Imovirtual, Ingatlan, kv.ee, Logic-Immo, Morizon, MyHome, Nehnutelnosti, Nepremicnine, Nieruchomosci-online, Ohne-Makler, Oikotie, OnTheMarket, Otodom, Pararius, pisos.com, Remax.pt, Rightmove, SeLoger, SpareRoom, Sreality, Storia, WG-Gesucht, Willhaben, Wortimmo, Zimmo, Zoopla.",
            "items": {
              "type": "string"
            }
          },
          "listingType": {
            "title": "Listing Type",
            "enum": [
              "",
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Narrow to for-sale or to-rent listings. Applied by every portal that supports it. Leave empty for both.",
            "default": ""
          },
          "propertyType": {
            "title": "Property Type",
            "type": "string",
            "description": "e.g. house, apartment. Applied by portals that support a property-type filter. Leave empty for all types."
          },
          "minPrice": {
            "title": "Min Price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower price bound, forwarded to portals that support price filtering."
          },
          "maxPrice": {
            "title": "Max Price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper price bound, forwarded to portals that support price filtering."
          },
          "bedrooms": {
            "title": "Min Bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bedrooms, forwarded to portals that support it."
          },
          "minSize": {
            "title": "Min Surface (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum living surface in m², forwarded to portals that support a surface filter."
          },
          "maxSize": {
            "title": "Max Surface (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum living surface in m², forwarded to portals that support a surface filter."
          },
          "maxItemsPerPortal": {
            "title": "Max Items Per Portal",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum items to fetch from each portal.",
            "default": 20
          },
          "timeoutPerPortalSecs": {
            "title": "Timeout Per Portal (seconds)",
            "minimum": 30,
            "maximum": 600,
            "type": "integer",
            "description": "Maximum seconds to wait for each portal scraper.",
            "default": 120
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings passed to the underlying scrapers. Residential recommended."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}