{
  "openapi": "3.0.1",
  "info": {
    "title": "European Commercial Property Search - 33 Portals",
    "description": "Search 33 European commercial real-estate portals in a single run. Offices, retail, industrial, land. Unified feed with EUR prices and comparable per-m2 rates.",
    "version": "0.1",
    "x-build-id": "iAMH3lqMCP4WOlfIy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/studio-amba~european-commercial-property-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-studio-amba-european-commercial-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-commercial-property-search/runs": {
      "post": {
        "operationId": "runs-sync-studio-amba-european-commercial-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-commercial-property-search/run-sync": {
      "post": {
        "operationId": "run-sync-studio-amba-european-commercial-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 scope (recommended when searching multiple countries — a city name only matches its own country)."
          },
          "countries": {
            "title": "Countries",
            "maxItems": 20,
            "type": "array",
            "description": "Filter which countries to include. Leave empty for all (AT, BE, CZ, DK, FI, FR, GB, GR, HR, HU, IE, IT, LU, NL, NO, PL, RO, RS, SE, SK).",
            "items": {
              "type": "string"
            }
          },
          "portals": {
            "title": "Portals",
            "maxItems": 33,
            "type": "array",
            "description": "Pick a specific subset of portals by name. Leave empty for all portals in the selected countries. Combines with Countries: both narrow the set. Available: BureauxLocaux, Commercial.ie, Commerciali.it, Daft Commercial, Ejendomstorvet, Finn Næring, Funda in Business, Geolocaux, Immoweb Commercial, Lokalebasen, LoopNet UK, NovaLoca, Objektvision, OfficeRentInfo.at, OfficeRentInfo.be, OfficeRentInfo.co.uk, OfficeRentInfo.com.hr, OfficeRentInfo.cz, OfficeRentInfo.fr, OfficeRentInfo.hu, OfficeRentInfo.lu, OfficeRentInfo.pl, OfficeRentInfo.ro, OfficeRentInfo.rs, OfficeRentInfo.sk, Otodom Commercial, Rightmove Commercial, SeLoger Bureaux & Commerces, Spotto, Toimitilat.fi, Willhaben Gewerbe, xe.gr Commercial, Zoopla Commercial. The scraper slug works too (e.g. 'spotto-scraper' or 'spotto').",
            "items": {
              "type": "string"
            }
          },
          "listingType": {
            "title": "Listing Type",
            "enum": [
              "",
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Narrow to for-sale or to-rent listings. Translated to each portal's own filter; rent-only portals (the OfficeRentInfo network) are skipped on a sale run. Leave empty for both.",
            "default": ""
          },
          "segment": {
            "title": "Segment",
            "enum": [
              "",
              "office",
              "retail",
              "industrial",
              "land",
              "hospitality",
              "investment"
            ],
            "type": "string",
            "description": "Commercial segment, translated to each portal's own category filter (kontor, bureau, uffici, ...). Portals that do not carry or cannot filter the requested segment are skipped for that run. Leave empty for all segments.",
            "default": ""
          },
          "minPrice": {
            "title": "Min Price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower price bound in EUR. For sales this applies to the sale total; for rentals to the ANNUALIZED rent total. Listings whose price cannot be normalized are excluded when a bound is set."
          },
          "maxPrice": {
            "title": "Max Price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper price bound in EUR. For sales this applies to the sale total; for rentals to the ANNUALIZED rent total. Listings whose price cannot be normalized are excluded when a bound is set."
          },
          "minSize": {
            "title": "Min Surface (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum floor area in m², enforced on the normalized surface (sq ft converted)."
          },
          "maxSize": {
            "title": "Max Surface (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum floor area in m², enforced on the normalized surface (sq ft converted)."
          },
          "maxItemsPerPortal": {
            "title": "Max Items Per Portal",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum items to fetch from each portal. The run's cost ceiling is this number times the number of portals queried.",
            "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, geo-scoped to each portal's country automatically. 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}