{
  "openapi": "3.0.1",
  "info": {
    "title": "ImmoScout24 Scraper — German Rentals & Homes for Sale",
    "description": "Scrape ImmobilienScout24 rentals and homes for sale from search URLs or city + filters: cold/warm rent or price, costs, deposit, m², rooms, floor, address, coordinates, year built, energy, realtor.",
    "version": "0.1",
    "x-build-id": "Tyj9V4jddfKi3A5nQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tortuga~immobilienscout24-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tortuga-immobilienscout24-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/tortuga~immobilienscout24-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tortuga-immobilienscout24-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/tortuga~immobilienscout24-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tortuga-immobilienscout24-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": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "ImmobilienScout24 search URLs with any filters set on the website (run the search on immobilienscout24.de and copy the address bar, e.g. https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?price=-1500.0&livingspace=50.0-), radius searches, or single listing URLs (https://www.immobilienscout24.de/expose/123456789), which return that listing with full details. Leave empty if you use Locations below.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "German cities, districts (Stadtteile) or postcodes, one per line, e.g. 'Berlin', 'Kreuzberg', 'München Schwabing', 'Hamburg', '10115'. Each is looked up with ImmoScout24's own location search and searched separately. Postcodes and streets are searched with a radius (2 km unless you set Radius).",
            "items": {
              "type": "string"
            }
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "apartmentrent",
              "apartmentbuy",
              "houserent",
              "housebuy",
              "flatshareroom",
              "shorttermaccommodation",
              "livingbuysite"
            ],
            "type": "string",
            "description": "What to search for in the Locations. Start URLs keep their own type.",
            "default": "apartmentrent"
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 0.5,
            "maximum": 200,
            "type": "number",
            "description": "Search this many kilometres around each location instead of within its borders. Leave empty to search the city or district itself."
          },
          "minPrice": {
            "title": "Min price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum monthly rent (cold rent unless 'Price filter applies to' is warm rent) or minimum purchase price, in euros."
          },
          "maxPrice": {
            "title": "Max price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum monthly rent (cold rent unless 'Price filter applies to' is warm rent) or maximum purchase price, in euros."
          },
          "priceType": {
            "title": "Price filter applies to (rentals)",
            "enum": [
              "cold",
              "warm"
            ],
            "type": "string",
            "description": "For rentals: whether Min/Max price filter the cold rent (Kaltmiete) or the warm rent (Warmmiete, incl. additional and heating costs).",
            "default": "cold"
          },
          "minLivingSpace": {
            "title": "Min living space (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum living space (Wohnfläche) in square metres."
          },
          "maxLivingSpace": {
            "title": "Max living space (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum living space (Wohnfläche) in square metres."
          },
          "minRooms": {
            "title": "Min rooms",
            "minimum": 0,
            "type": "number",
            "description": "Minimum number of rooms (Zimmer), e.g. 2 or 2.5."
          },
          "maxRooms": {
            "title": "Max rooms",
            "minimum": 0,
            "type": "number",
            "description": "Maximum number of rooms (Zimmer)."
          },
          "features": {
            "title": "Must have",
            "type": "array",
            "description": "Only listings with all of these features.",
            "items": {
              "type": "string",
              "enum": [
                "balcony",
                "builtinkitchen",
                "garden",
                "lift",
                "cellar",
                "guesttoilet",
                "parking",
                "handicappedaccessible"
              ],
              "enumTitles": [
                "Balcony / terrace",
                "Built-in kitchen (Einbauküche)",
                "Garden",
                "Lift",
                "Cellar",
                "Guest toilet",
                "Parking / garage",
                "Step-free access"
              ]
            }
          },
          "newBuildingOnly": {
            "title": "New builds only (Neubau)",
            "type": "boolean",
            "description": "Only new-build properties.",
            "default": false
          },
          "petsAllowed": {
            "title": "Pets allowed (rentals)",
            "type": "boolean",
            "description": "Only rentals where the landlord says pets are allowed.",
            "default": false
          },
          "minConstructionYear": {
            "title": "Built in or after (year)",
            "minimum": 1500,
            "maximum": 2100,
            "type": "integer",
            "description": "Only properties built in this year or later."
          },
          "excludeSwapApartments": {
            "title": "Exclude swap apartments (Tauschwohnungen)",
            "type": "boolean",
            "description": "Leave out apartment-swap offers (rentals).",
            "default": false
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "newest",
              "relevance",
              "price_asc",
              "price_desc",
              "space_desc",
              "space_asc"
            ],
            "type": "string",
            "description": "Order of the results (also used for start URLs that have no sorting of their own). 'Newest first' is the natural choice for monitoring.",
            "default": "newest"
          },
          "includeDetails": {
            "title": "Include full listing details",
            "type": "boolean",
            "description": "Open each listing (one extra request) for warm rent, additional and heating costs, deposit, floor, bedrooms/bathrooms, year built, condition, energy certificate, all features, available-from date, pets, full description, all photos and the realtor's company. Charged as an extra 'detail' event. Turn off for a cheaper, faster run with result-list data only (price, m², rooms, address, coordinates, first photo).",
            "default": true
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many listings in total (all searches together). Keeps cost predictable. With 'Only new or changed items' on, this is the number of newest listings checked per run.",
            "default": 100
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed items",
            "type": "boolean",
            "description": "Remember what earlier runs of this search returned and output only new items or items whose price/status changed. Use with a Schedule; unchanged items are not charged.",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring key",
            "type": "string",
            "description": "Name for this watch, so several schedules on the same search stay separate; defaults to a key derived from the search input."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy. The default datacenter proxy works for this site (the actor uses ImmoScout24's app API, not the protected website). Switch to Residential (Germany) only if runs start reporting blocks.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}