{
  "openapi": "3.0.1",
  "info": {
    "title": "ImmobilienScout24 Scraper - Listings, Prices, Agents & Phones",
    "description": "Scrape immobilienscout24.de and .at rentals and sales by search URL, place or radius: cold and warm rent, price per m², size, rooms, address, GPS, energy class, agent and phone. Optional details add the description, Impressum e-mails and purchase costs. No login, no browser.",
    "version": "0.1",
    "x-build-id": "E4fIvL2Xu5csEF46L"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~immobilienscout24-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-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/scrapersdelight~immobilienscout24-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-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/scrapersdelight~immobilienscout24-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-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": "🔗 Search or listing URLs",
            "type": "array",
            "description": "immobilienscout24.de search URLs (/Suche/...) with any filters set on the site, listing URLs (/expose/<id>) or bare listing ids, and immobilienscout24.at search (/regional/...) or listing URLs. e.g. \"https://www.immobilienscout24.de/Suche/de/bayern/muenchen/wohnung-kaufen?price=-500000.0\"",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "📍 Places (Germany)",
            "type": "array",
            "description": "City, district or quarter names, resolved by ImmobilienScout24's own place lookup and searched with the filters below. e.g. \"Berlin\", \"München Schwabing\", \"Hamburg-Altona\". A geo path like \"de/berlin/berlin\" also works.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "latitude": {
            "title": "Radius search: latitude",
            "minimum": 47,
            "maximum": 55.5,
            "type": "number",
            "description": "Centre of a radius search (with longitude and radius), e.g. 52.52. Uses the filters below."
          },
          "longitude": {
            "title": "Radius search: longitude",
            "minimum": 5.5,
            "maximum": 15.5,
            "type": "number",
            "description": "Centre of a radius search, e.g. 13.405."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Radius around the latitude/longitude, 1-100 km.",
            "default": 5
          },
          "offerType": {
            "title": "Rent or buy",
            "enum": [
              "rent",
              "buy"
            ],
            "type": "string",
            "description": "Rent or buy listings.",
            "default": "rent"
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "apartment",
              "house",
              "plot",
              "shortTermAccommodation",
              "flatShareRoom",
              "garage"
            ],
            "type": "string",
            "description": "What kind of property to search for.",
            "default": "apartment"
          },
          "minPrice": {
            "title": "Min price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower price bound. Rent searches filter on cold rent unless \"Price means\" is warm rent."
          },
          "maxPrice": {
            "title": "Max price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper price bound, e.g. 1200 for rent or 500000 for buy."
          },
          "priceType": {
            "title": "Price means",
            "enum": [
              "coldRent",
              "warmRent"
            ],
            "type": "string",
            "description": "For rent searches: whether the price bounds apply to cold or warm rent.",
            "default": "coldRent"
          },
          "minRooms": {
            "title": "Min rooms",
            "minimum": 0,
            "maximum": 50,
            "type": "number",
            "description": "e.g. 2 or 2.5."
          },
          "maxRooms": {
            "title": "Max rooms",
            "minimum": 0,
            "maximum": 50,
            "type": "number",
            "description": "Upper bound on rooms."
          },
          "minLivingSpace": {
            "title": "Min living space (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "e.g. 50."
          },
          "maxLivingSpace": {
            "title": "Max living space (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on living space."
          },
          "minConstructionYear": {
            "title": "Built from (year)",
            "minimum": 1500,
            "maximum": 2100,
            "type": "integer",
            "description": "e.g. 2000."
          },
          "maxConstructionYear": {
            "title": "Built until (year)",
            "minimum": 1500,
            "maximum": 2100,
            "type": "integer",
            "description": "e.g. 1950 for pre-war buildings."
          },
          "energyClasses": {
            "title": "Energy efficiency classes",
            "uniqueItems": true,
            "type": "array",
            "description": "Only listings in these classes. Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "a_plus",
                "a",
                "b",
                "c",
                "d",
                "e",
                "f",
                "g",
                "h"
              ],
              "enumTitles": [
                "A+",
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G",
                "H"
              ]
            },
            "default": []
          },
          "equipment": {
            "title": "Must have",
            "uniqueItems": true,
            "type": "array",
            "description": "Only listings with all of these. Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "balcony",
                "builtinkitchen",
                "garden",
                "cellar",
                "lift",
                "guesttoilet",
                "handicappedaccessible",
                "parking"
              ],
              "enumTitles": [
                "Balkon / Terrasse",
                "Einbauküche (fitted kitchen)",
                "Garten (garden)",
                "Keller (cellar)",
                "Aufzug (lift)",
                "Gäste-WC",
                "Stufenlos (step-free)",
                "Garage / Stellplatz"
              ]
            },
            "default": []
          },
          "apartmentTypes": {
            "title": "Apartment types",
            "uniqueItems": true,
            "type": "array",
            "description": "Apartment searches only. Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "apartment",
                "groundfloor",
                "halfbasement",
                "loft",
                "maisonette",
                "penthouse",
                "raisedgroundfloor",
                "roofstorey",
                "terracedflat",
                "other"
              ],
              "enumTitles": [
                "Etagenwohnung",
                "Erdgeschoss",
                "Souterrain",
                "Loft",
                "Maisonette",
                "Penthouse",
                "Hochparterre",
                "Dachgeschoss",
                "Terrassenwohnung",
                "Sonstige"
              ]
            },
            "default": []
          },
          "houseTypes": {
            "title": "House types",
            "uniqueItems": true,
            "type": "array",
            "description": "House searches only. Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "singlefamilyhouse",
                "villa",
                "bungalow",
                "farmhouse",
                "multifamilyhouse",
                "semidetachedhouse",
                "terracehouse",
                "endterracehouse",
                "midterracehouse",
                "otherrealestate"
              ],
              "enumTitles": [
                "Einfamilienhaus",
                "Villa",
                "Bungalow",
                "Bauernhaus",
                "Mehrfamilienhaus",
                "Doppelhaushälfte",
                "Reihenhaus",
                "Reiheneckhaus",
                "Reihenmittelhaus",
                "Sonstige"
              ]
            },
            "default": []
          },
          "heatingTypes": {
            "title": "Heating",
            "uniqueItems": true,
            "type": "array",
            "description": "Only listings with one of these heating types. Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "central",
                "selfcontainedcentral",
                "stove"
              ],
              "enumTitles": [
                "Zentralheizung (central)",
                "Etagenheizung (self-contained central)",
                "Ofenheizung (stove)"
              ]
            },
            "default": []
          },
          "minFloor": {
            "title": "Min floor",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Apartments: lowest floor, 0 = ground floor."
          },
          "maxFloor": {
            "title": "Max floor",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Apartments: highest floor."
          },
          "keyword": {
            "title": "Keyword (full text)",
            "type": "string",
            "description": "ImmobilienScout24's own full-text search, e.g. \"altbau\" or \"altbau balkon\".",
            "default": ""
          },
          "newBuildOnly": {
            "title": "New builds only",
            "type": "boolean",
            "description": "Only new-build (Neubau) listings.",
            "default": false
          },
          "excludeProjectUnits": {
            "title": "Exclude new-build project units",
            "type": "boolean",
            "description": "Leave out the individual units of developer projects (grouped listings).",
            "default": false
          },
          "commissionFreeOnly": {
            "title": "Commission-free only",
            "type": "boolean",
            "description": "Only listings without a buyer's or tenant's commission (provisionsfrei).",
            "default": false
          },
          "excludeRentedOut": {
            "title": "Exclude rented-out (buy)",
            "type": "boolean",
            "description": "Purchases only: leave out properties that are currently let.",
            "default": false
          },
          "petsAllowed": {
            "title": "Pets allowed (rent)",
            "type": "boolean",
            "description": "Rentals only: only listings that allow pets.",
            "default": false
          },
          "minInternetSpeedMbps": {
            "title": "Min internet speed (Mbit/s)",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Only listings where at least this speed is available at the address, e.g. 100."
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "newest",
              "relevance",
              "priceAsc",
              "priceDesc",
              "sizeDesc",
              "sizeAsc",
              "roomsDesc",
              "roomsAsc"
            ],
            "type": "string",
            "description": "Result order. Applies to pasted URLs that carry no sorting of their own too. \"Newest first\" lets \"Posted within\" stop early.",
            "default": "newest"
          },
          "sellerType": {
            "title": "Offered by",
            "enum": [
              "any",
              "private",
              "agency"
            ],
            "type": "string",
            "description": "Private offers vs agencies (the listing's own private-offer flag).",
            "default": "any"
          },
          "withPhoneOnly": {
            "title": "With a phone number only",
            "type": "boolean",
            "description": "Only listings that carry a contact phone (search phone fields, or the provider's Impressum phones when details are on).",
            "default": false
          },
          "withEmailOnly": {
            "title": "With an e-mail address only",
            "type": "boolean",
            "description": "Only listings whose provider publishes an e-mail address in the listing's Impressum. Reads listing details (switched on automatically).",
            "default": false
          },
          "postalCodes": {
            "title": "Postcodes",
            "type": "array",
            "description": "Keep listings whose postcode starts with one of these, e.g. \"10115\" or a prefix like \"80\" (Munich area). Empty = any.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "earlyAccess": {
            "title": "MieterPlus early access",
            "enum": [
              "any",
              "only",
              "exclude"
            ],
            "type": "string",
            "description": "Listings ImmobilienScout24 shows MieterPlus subscribers first (flagged on website search rows). The app search never carries them.",
            "default": "any"
          },
          "minPlotArea": {
            "title": "Min plot area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Checked on each listing (the site's search has no plot filter); listings that state no plot area are left out."
          },
          "maxPlotArea": {
            "title": "Max plot area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on plot area, checked on each listing."
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Only listings published in the last N days. 0 = any age. Pairs with \"Newest first\" and a daily schedule.",
            "default": 0
          },
          "postedAfter": {
            "title": "Posted on or after (date)",
            "type": "string",
            "description": "Only listings published on or after this date (YYYY-MM-DD). Combines with \"Posted within\": the later of the two applies.",
            "default": ""
          },
          "titleIncludes": {
            "title": "Title contains any of",
            "type": "array",
            "description": "Keep listings whose title contains one of these words, e.g. \"Altbau\", \"provisionsfrei\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "titleExcludes": {
            "title": "Title contains none of",
            "type": "array",
            "description": "Drop listings whose title contains one of these words, e.g. \"Tausch\", \"WBS\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Include listing details",
            "type": "boolean",
            "description": "Adds the full description, every attribute (floor, bedrooms, bathrooms, available from, heating, energy certificate, service charge, deposit, commission), the provider's Impressum with its phone numbers and e-mails, rating, and the full photo set.",
            "default": false
          },
          "monitorMode": {
            "title": "Only new or re-priced listings",
            "type": "boolean",
            "description": "Delivers only listings not delivered by an earlier run, or whose price changed (changeType NEW / PRICE_CHANGED). Unchanged listings are skipped and not charged. Pairs with a daily schedule.",
            "default": false
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Optional. One JSON POST at the end of the run with the listings it delivered (in monitor mode: the new and re-priced ones), e.g. a Make, Zapier or n8n hook.",
            "default": ""
          },
          "monitorStoreName": {
            "title": "Monitor memory name",
            "type": "string",
            "description": "Name of the key-value store that remembers delivered listings. Use one name per watch list. Empty = \"immobilienscout24-monitor-state\".",
            "default": ""
          },
          "resetMonitorState": {
            "title": "Reset monitor memory",
            "type": "boolean",
            "description": "Forget what earlier runs delivered; every listing counts as new on this run.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum listings in total across all searches. 0 = no cap (a Berlin rental search holds ~12,800). Large web searches are paced by the site (~400 listings a minute).",
            "default": 100
          },
          "maxResultsPerSearch": {
            "title": "Max results per search",
            "minimum": 0,
            "type": "integer",
            "description": "Cap per search URL / place. 0 = no cap per search.",
            "default": 0
          },
          "startPage": {
            "title": "Start page",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Resume a large search: begin at this result page (20 listings a page on .de, 15 on .at). 1 = from the start.",
            "default": 1
          },
          "compact": {
            "title": "Compact rows",
            "type": "boolean",
            "description": "Core fields only (id, link, price, size, rooms, address, coordinates, contact, dates) - trimmed for spreadsheets and LLM pipelines.",
            "default": false
          },
          "searchSurface": {
            "title": "Search source",
            "enum": [
              "auto",
              "web",
              "app"
            ],
            "type": "string",
            "description": "Where .de searches are read. The website search is the complete one. When the website asks the run's connection for human verification (never answered), Auto continues the same search on the ImmoScout24 app API, which lists fewer big-city rentals (RUN_SUMMARY shows both totals). Listing details always come from the app's listing data.",
            "default": "auto"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Parallel listing-detail requests (1-10).",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Leave empty: the actor uses its own route ladder (direct first, then a residential proxy only when needed). Your own proxy URLs are used first when given.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}