{
  "openapi": "3.0.1",
  "info": {
    "title": "ImmoScout24 Scraper: Rentals, Sales and Agencies",
    "description": "Export ImmobilienScout24 ads in Germany and Austria by place, postcode, radius, search link, ad number or agency, no login. Rows hold Kaltmiete or Kaufpreis, Wohnfläche, Zimmer, address, photos; the full record adds Warmmiete, Nebenkosten, Kaufnebenkosten, fair price rating. Pay per ad, CSV or API.",
    "version": "0.1",
    "x-build-id": "CmVwHpzHJlBNLrr49"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation_craft~immoscout24-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation_craft-immoscout24-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/automation_craft~immoscout24-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automation_craft-immoscout24-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/automation_craft~immoscout24-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automation_craft-immoscout24-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": {
          "locations": {
            "title": "Places (cities, districts, postcodes)",
            "type": "array",
            "description": "Place names as ImmoScout24 writes them (\"Berlin\", \"München\", \"Köln - Ehrenfeld\", \"Hamburg - Altona-Altstadt\"), German postcodes (\"10115\"), or ImmoScout24 place codes (\"/de/bayern/muenchen\", \"1276003001\"). A name matching several places, or none, is a free row listing the candidates. Austrian places: set Country to Austria and give a state or district (\"Wien\", \"Graz\", \"Mödling\", \"Tirol\").",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "ImmoScout24 links (searches or ads)",
            "type": "array",
            "description": "Search links copied from immobilienscout24.de (/Suche/...) or immobilienscout24.at (/regional/...), with their filters, and ad links (/expose/<number>). A search link keeps its own property type and filters; the settings below are added on top (a setting you give replaces the same filter of the link). The link's own sort and page are not read: the Sort setting applies, from the first result.",
            "items": {
              "type": "string"
            }
          },
          "listingIds": {
            "title": "Ad numbers",
            "type": "array",
            "description": "ImmoScout24 ad numbers (the digits of an /expose/ link, such as \"171968189\") or ad links. Each ad is read from its full record and delivered as one row; an ad that is gone is a free row.",
            "items": {
              "type": "string"
            }
          },
          "agencies": {
            "title": "Agencies (their listings)",
            "type": "array",
            "description": "ImmoScout24 agencies whose own listings to read: an agency link as an ad shows it (\"https://www.immobilienscout24.de/anbieter/<name>/<number>\"), the agency number alone, or a profile link (\"/anbieter/profil/<name>\", read through the agency's profile page, which is delivered and charged as one Agency profile). Every ad of the chosen tabs is one Listing row. Filter settings do not apply to agencies.",
            "items": {
              "type": "string"
            }
          },
          "agencyListingTypes": {
            "title": "Agency tabs",
            "type": "array",
            "description": "Which of an agency's tabs to read (default: for sale and for rent). Marketed objects are sold or let references: they come as list rows only, without Listing details.",
            "items": {
              "type": "string",
              "enum": [
                "forSale",
                "forRent",
                "marketed"
              ],
              "enumTitles": [
                "For sale",
                "For rent",
                "Marketed (sold or let references)"
              ]
            }
          },
          "agencyPropertyKinds": {
            "title": "Agency property kinds",
            "type": "array",
            "description": "Residential and or commercial listings of the agencies (default: both).",
            "items": {
              "type": "string",
              "enum": [
                "residential",
                "commercial"
              ],
              "enumTitles": [
                "Residential",
                "Commercial"
              ]
            }
          },
          "agentDirectoryPlaces": {
            "title": "Agent directory: places",
            "type": "array",
            "description": "Cities, districts or postcodes (\"Berlin\", \"10115\") whose real estate agents to list from ImmoScout24's agent directory: one Agent row per directory entry with the company, its agency profile link, badges, active and marketed object counts, ratings and followers (the agent's own name and photo with personal data on). Filter settings do not apply.",
            "items": {
              "type": "string"
            }
          },
          "agentDirectorySort": {
            "title": "Agent directory: order",
            "enum": [
              "standard",
              "rating"
            ],
            "type": "string",
            "description": "Order of the directory (default: ImmoScout24's own)."
          },
          "country": {
            "title": "Country of the places",
            "enum": [
              "de",
              "at"
            ],
            "type": "string",
            "description": "Where the place names in \"Places\" are looked up. Germany (default): ImmoScout24's own place suggestions. Austria: the nine states and 94 districts. Links, place codes and ad numbers carry their own country."
          },
          "latitude": {
            "title": "Radius search: latitude",
            "type": "number",
            "description": "Centre of a radius search (with longitude and radius), for example 52.52."
          },
          "longitude": {
            "title": "Radius search: longitude",
            "type": "number",
            "description": "Centre of a radius search, for example 13.40."
          },
          "radiusKm": {
            "title": "Radius search: radius (km)",
            "minimum": 0.1,
            "maximum": 500,
            "type": "number",
            "description": "Radius around the centre in kilometres, 0.1 to 500."
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "apartmentrent",
              "apartmentbuy",
              "houserent",
              "housebuy",
              "livingbuysite",
              "flatshareroom",
              "shorttermaccommodation",
              "garagerent",
              "garagebuy",
              "assistedliving",
              "compulsoryauction",
              "investment",
              "office",
              "store",
              "gastronomy",
              "industry",
              "specialpurpose",
              "tradesite"
            ],
            "type": "string",
            "description": "What the places and the radius search look for (default: apartments to rent). Austria has apartments, houses and plots."
          },
          "commercialOffer": {
            "title": "Commercial: to rent or to buy",
            "enum": [
              "any",
              "rent",
              "buy"
            ],
            "type": "string",
            "description": "For commercial property types only. Default: both."
          },
          "rentBasis": {
            "title": "Rent price filter applies to",
            "enum": [
              "cold",
              "warm"
            ],
            "type": "string",
            "description": "Which rent the price filter bounds on homes to rent (default: cold rent, as on ImmoScout24). Rows always show the cold rent; with Listing details on, the warm rent is in the record."
          },
          "priceMin": {
            "title": "Price from (EUR)",
            "type": "number",
            "description": "Lowest price: purchase price, or rent per month. Left empty: no bound."
          },
          "priceMax": {
            "title": "Price up to (EUR)",
            "type": "number",
            "description": "Highest price: purchase price, or rent per month. Left empty: no bound."
          },
          "livingSpaceMin": {
            "title": "Living space from (m²)",
            "type": "number",
            "description": "Living space from (m²) Left empty: no bound."
          },
          "livingSpaceMax": {
            "title": "Living space up to (m²)",
            "type": "number",
            "description": "Living space up to (m²) Left empty: no bound."
          },
          "roomsMin": {
            "title": "Rooms from",
            "type": "number",
            "description": "Number of rooms, halves allowed (2.5). Left empty: no bound."
          },
          "roomsMax": {
            "title": "Rooms up to",
            "type": "number",
            "description": "Rooms up to Left empty: no bound."
          },
          "plotAreaMin": {
            "title": "Plot area from (m²)",
            "type": "number",
            "description": "Houses only. Left empty: no bound."
          },
          "plotAreaMax": {
            "title": "Plot area up to (m²)",
            "type": "number",
            "description": "Houses only. Left empty: no bound."
          },
          "yearBuiltMin": {
            "title": "Built from (year)",
            "type": "integer",
            "description": "Homes only. Left empty: no bound."
          },
          "yearBuiltMax": {
            "title": "Built up to (year)",
            "type": "integer",
            "description": "Homes only. Left empty: no bound."
          },
          "floorMin": {
            "title": "Floor from",
            "type": "integer",
            "description": "Apartments only; 0 is the ground floor. Left empty: no bound."
          },
          "floorMax": {
            "title": "Floor up to",
            "type": "integer",
            "description": "Apartments only. Left empty: no bound."
          },
          "energyClasses": {
            "title": "Energy classes",
            "type": "array",
            "description": "Only ads with one of these energy efficiency classes.",
            "items": {
              "type": "string",
              "enum": [
                "a_plus",
                "a",
                "b",
                "c",
                "d",
                "e",
                "f",
                "g",
                "h"
              ],
              "enumTitles": [
                "A+",
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G",
                "H"
              ]
            }
          },
          "equipment": {
            "title": "Must have",
            "type": "array",
            "description": "Only ads that have ALL of these (homes, flat shares, short term rentals, assisted living).",
            "items": {
              "type": "string",
              "enum": [
                "balcony",
                "builtinkitchen",
                "garden",
                "cellar",
                "lift",
                "parking",
                "guesttoilet",
                "handicappedaccessible"
              ],
              "enumTitles": [
                "Balcony or terrace",
                "Fitted kitchen",
                "Garden",
                "Cellar",
                "Lift",
                "Garage or parking",
                "Guest toilet",
                "Step free access"
              ]
            }
          },
          "apartmentTypes": {
            "title": "Apartment types",
            "type": "array",
            "description": "Apartments only: one of these types.",
            "items": {
              "type": "string",
              "enum": [
                "halfbasement",
                "groundfloor",
                "raisedgroundfloor",
                "apartment",
                "loft",
                "maisonette",
                "terracedflat",
                "penthouse",
                "roofstorey"
              ],
              "enumTitles": [
                "Basement",
                "Ground floor",
                "Raised ground floor",
                "Apartment (Etagenwohnung)",
                "Loft",
                "Maisonette",
                "Terrace apartment",
                "Penthouse",
                "Attic"
              ]
            }
          },
          "houseTypes": {
            "title": "House types",
            "type": "array",
            "description": "Houses only: one of these types.",
            "items": {
              "type": "string",
              "enum": [
                "singlefamilyhouse",
                "semidetachedhouse",
                "terracehouse",
                "bungalow",
                "multifamilyhouse",
                "farmhouse",
                "villa",
                "specialrealestate"
              ],
              "enumTitles": [
                "Detached house",
                "Semi detached",
                "Terraced house",
                "Bungalow",
                "Multi family house",
                "Farmhouse",
                "Villa",
                "Special property"
              ]
            }
          },
          "heatingTypes": {
            "title": "Heating",
            "type": "array",
            "description": "Homes only.",
            "items": {
              "type": "string",
              "enum": [
                "central",
                "selfcontainedcentral",
                "stove"
              ],
              "enumTitles": [
                "Central heating",
                "Self contained central heating",
                "Stove heating"
              ]
            }
          },
          "petsAllowed": {
            "title": "Pets",
            "type": "array",
            "description": "Rentals: one of these pet rules.",
            "items": {
              "type": "string",
              "enum": [
                "yes",
                "no",
                "negotiable"
              ],
              "enumTitles": [
                "Allowed",
                "Not allowed",
                "By arrangement"
              ]
            }
          },
          "constructionPhases": {
            "title": "Construction phase",
            "type": "array",
            "description": "Houses to buy only.",
            "items": {
              "type": "string",
              "enum": [
                "completed",
                "underconstruction",
                "projected"
              ],
              "enumTitles": [
                "Completed",
                "Under construction",
                "Planned"
              ]
            }
          },
          "newBuildingsOnly": {
            "title": "New buildings only",
            "type": "boolean",
            "description": "Homes only: new builds (Neubau)."
          },
          "excludeNewBuildProjects": {
            "title": "Leave out new build project units",
            "type": "boolean",
            "description": "Leave out units a developer sells or lets as a project."
          },
          "commissionFreeOnly": {
            "title": "Commission free only",
            "type": "boolean",
            "description": "Only ads without a commission for the buyer or tenant (provisionsfrei)."
          },
          "luxuryOnly": {
            "title": "Luxury homes only",
            "type": "boolean",
            "description": "Homes to buy only."
          },
          "newHomeBuilderOffersOnly": {
            "title": "House builder offers only",
            "type": "boolean",
            "description": "Houses to buy only: offers of house builders (Haus bauen)."
          },
          "rented": {
            "title": "Rented or vacant",
            "enum": [
              "any",
              "rented",
              "vacant"
            ],
            "type": "string",
            "description": "Homes to buy only. Default: both."
          },
          "keywords": {
            "title": "Keywords in the ad",
            "type": "string",
            "description": "Words ImmoScout24 searches in the ad text, for example \"altbau\" or \"möbliert\"."
          },
          "sellerType": {
            "title": "Advertiser",
            "enum": [
              "any",
              "private",
              "business"
            ],
            "type": "string",
            "description": "Applied to each ad's own private flag. Default: everyone."
          },
          "postedWithinHours": {
            "title": "Posted within (hours)",
            "minimum": 1,
            "maximum": 8760,
            "type": "integer",
            "description": "Only ads posted in the last N hours. ImmoScout24 shows an ad's age as \"9 hours ago\", so an ad counts only when every moment that age can mean is inside the window; ads whose age is not shown (house builder offers) are left out, free. With newest first the search stops when two pages are older."
          },
          "earlyAccessListings": {
            "title": "Early access ads",
            "enum": [
              "include",
              "exclude",
              "only"
            ],
            "type": "string",
            "description": "Ads ImmoScout24 shows its paying members first (marked earlyAccess). Default: include."
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "newest",
              "oldest",
              "priceAsc",
              "priceDesc",
              "livingSpaceAsc",
              "livingSpaceDesc",
              "standard"
            ],
            "type": "string",
            "description": "Order of the results (default: newest first). ImmoScout24's own order lists paid placements first."
          },
          "maxItems": {
            "title": "Max listings in the run",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many listings in the whole run. Left empty: every listing of every search (bounded by your maximum cost per run)."
          },
          "maxItemsPerSearch": {
            "title": "Max listings per search",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop each search after this many listings."
          },
          "maxPagesPerSearch": {
            "title": "Max result pages per search",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Read at most this many pages of 100 results (50 for commercial property) per search."
          },
          "skipItems": {
            "title": "Skip the first results",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Skip this many results at the top of each search, as ImmoScout24 numbers them (a house builder's group of several ads counts as one result). To continue a capped run, use the resumeSkipItems value of that search's coverage row. Skipped results are free."
          },
          "includeDetails": {
            "title": "Listing details (full ad record)",
            "type": "boolean",
            "description": "Read each ad's full record: cold and warm rent, service and heating costs, deposit, purchase costs, year built, condition, heating, energy values, description texts, every photo, floor plans and documents, price rating, agency contact. Charged per ad read (Listing details event); about 500 ads an hour. Default: off."
          },
          "includeAgencyProfile": {
            "title": "Agency profile",
            "type": "boolean",
            "description": "With Listing details on: each agency's ImmoScout24 profile (address, e-mail, phone, imprint, ratings, listing counts, badges), once per agency per run, charged per agency (Agency profile event). Default: off."
          },
          "includePersonalData": {
            "title": "Include personal data",
            "type": "boolean",
            "description": "Off (default): fields that name or reach a private person are empty: a private advertiser's name, phone numbers, street, house number and coordinates and the links they add (videos, tours, documents); an agency contact person's name; a house builder offer's contact heading; an agency's team list. On: they are filled as ImmoScout24 shows them. You are responsible for using personal data lawfully (GDPR included)."
          },
          "language": {
            "title": "Language",
            "enum": [
              "de",
              "en"
            ],
            "type": "string",
            "description": "Language ImmoScout24 answers in: titles and texts it translates itself, labels and age texts. Default: German."
          },
          "outputFields": {
            "title": "Output fields",
            "type": "array",
            "description": "Only these fields in each listing row (dotted names such as \"price\", \"address.city\", \"details.costs.totalRent\"); \"type\" and \"id\" always stay. Left empty: every field.",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional: your own proxy links (http://user:password@host:port). Left empty: Apify's datacenter proxy, included in the price."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}