{
  "openapi": "3.0.1",
  "info": {
    "title": "ImmobilienScout24 Scraper — Germany Real Estate",
    "description": "Scrape real estate listings from ImmobilienScout24.de — Germany's #1 property portal. Fast JSON API extraction, no browser or API key. Filter apartments, houses, plots & garages (buy/rent) by city, price (EUR), m², rooms & year. Returns price, €/m², GPS, address, agent contact, features & images.",
    "version": "1.0",
    "x-build-id": "aPrUZ9Z1EOhQDgSEc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~immobilienscout24-de-scraper-germany-real-estate/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-immobilienscout24-de-scraper-germany-real-estate",
        "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/logiover~immobilienscout24-de-scraper-germany-real-estate/runs": {
      "post": {
        "operationId": "runs-sync-logiover-immobilienscout24-de-scraper-germany-real-estate",
        "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/logiover~immobilienscout24-de-scraper-germany-real-estate/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-immobilienscout24-de-scraper-germany-real-estate",
        "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": {
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "City, district or quarter names to search — each becomes its own scraping task (e.g. `Berlin`, `München`, `Hamburg`, `Prenzlauer Berg`, `Frankfurt am Main`). Names are auto-resolved to IS24 geocodes. You can also paste a raw numeric IS24 geocode (e.g. `1276003001` for Berlin) for an exact match. Optional — leave empty to browse recent listings for Berlin by default.",
            "default": [
              "Berlin"
            ],
            "items": {
              "type": "string"
            }
          },
          "realEstateType": {
            "title": "Real Estate Type",
            "enum": [
              "apartmentbuy",
              "apartmentrent",
              "housebuy",
              "houserent",
              "livingBuySite",
              "garagebuy",
              "garagerent",
              "shortTermAccommodation",
              "flatShareRoom",
              "investment",
              "compulsoryAuction",
              "houseType"
            ],
            "type": "string",
            "description": "What to search for. Buy and rent are separate types on IS24.",
            "default": "apartmentbuy"
          },
          "priceMin": {
            "title": "Min Price (EUR)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Minimum price (purchase price for buy, base rent for rent) in euros. 0 = no minimum.",
            "default": 0
          },
          "priceMax": {
            "title": "Max Price (EUR)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Maximum price (purchase price for buy, base rent for rent) in euros. 0 = no maximum.",
            "default": 0
          },
          "livingSpaceMin": {
            "title": "Min Living Space (m²)",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Minimum living space in square meters. 0 = no minimum.",
            "default": 0
          },
          "livingSpaceMax": {
            "title": "Max Living Space (m²)",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum living space in square meters. 0 = no maximum.",
            "default": 0
          },
          "roomsMin": {
            "title": "Min Rooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Minimum number of rooms. 0 = no minimum.",
            "default": 0
          },
          "roomsMax": {
            "title": "Max Rooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of rooms. 0 = no maximum.",
            "default": 0
          },
          "constructionYearMin": {
            "title": "Min Construction Year",
            "minimum": 0,
            "maximum": 2100,
            "type": "integer",
            "description": "Earliest construction year. 0 = no minimum.",
            "default": 0
          },
          "constructionYearMax": {
            "title": "Max Construction Year",
            "minimum": 0,
            "maximum": 2100,
            "type": "integer",
            "description": "Latest construction year. 0 = no maximum.",
            "default": 0
          },
          "newBuildingOnly": {
            "title": "New Buildings Only",
            "type": "boolean",
            "description": "Restrict to new-build (Neubau) listings only.",
            "default": false
          },
          "noCommissionOnly": {
            "title": "Commission-Free Only",
            "type": "boolean",
            "description": "Restrict to listings without buyer/tenant commission (provisionsfrei).",
            "default": false
          },
          "sort": {
            "title": "Sort Order",
            "enum": [
              "newest",
              "price_asc",
              "price_desc",
              "living_space_asc",
              "living_space_desc",
              "rooms_asc",
              "rooms_desc",
              "standard"
            ],
            "type": "string",
            "description": "Result ordering.",
            "default": "newest"
          },
          "fetchDetails": {
            "title": "Fetch Optional Listing Details",
            "type": "boolean",
            "description": "Best-effort expose enrichment for fields that are not present on search cards, such as rent breakdown, year built, feature flags and agent contact. Disabled by default because the detail endpoint may be unavailable. Each listing gets one detail attempt; after two consecutive failures the Actor keeps the remaining records at list level.",
            "default": false
          },
          "maxListings": {
            "title": "Max Listings",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Total cap across all location tasks (0 = unlimited).",
            "default": 100
          },
          "maxPagesPerTask": {
            "title": "Max Pages per Task",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Pagination depth per location (20 listings per page). IS24 caps deep pagination — narrow with price/space filters to reach more inventory.",
            "default": 5
          },
          "timeBudgetSecs": {
            "title": "Run Time Budget (seconds)",
            "minimum": 30,
            "maximum": 3600,
            "type": "integer",
            "description": "Wall-clock budget for API work. Requests, retries and retry delays respect this deadline; when reached, the Actor stops pagination and keeps records already collected.",
            "default": 240
          },
          "requestDelay": {
            "title": "Request Delay (ms)",
            "minimum": 0,
            "maximum": 30000,
            "type": "integer",
            "description": "Delay between API requests. The mobile API is tolerant; keep ≥ 300 ms to be polite.",
            "default": 700
          },
          "maxRetries": {
            "title": "Max Retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Retries for geo, count and search-list requests on transient HTTP/proxy errors. Optional per-listing detail requests always use one attempt.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify Proxy is required. Residential with country=DE is strongly recommended — the IS24 mobile API is served from Germany and datacenter IPs are less reliable."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}