ImmobilienScout24 Scraper — Germany & Austria Rents
Pricing
from $0.99 / 1,000 listings
ImmobilienScout24 Scraper — Germany & Austria Rents
Scrape ImmobilienScout24 apartments and houses for rent and sale in Germany and Austria. Get price, €/m², rooms, energy class, GPS, photos, and private vs Makler. Paste a search or expose URL. API alternative for Python, Node.js, and MCP.
Pricing
from $0.99 / 1,000 listings
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
ImmobilienScout24 Scraper — Germany & Austria Listings, Rents & Prices
Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by Immobilien Scout GmbH or any of its subsidiaries or its affiliates. Data is read from publicly accessible search results and expose pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.
Contact-data controls: Phone/WhatsApp/fax fields are omitted from the dataset by default. Enable
includePhonesonly for numbers already present in public listing data and only when you have a lawful basis. The Actor never automates contact-unlock flows. Any phone-field examples below assume that explicit opt-in; otherwise those fields are absent.
Scrape ImmobilienScout24 in Germany and Austria into clean JSON: apartments, houses, plots, and garages for rent (mieten) and sale (kaufen) with price, €/m², rooms, living space, energy class, GPS, photos, private owner vs Makler, and optional full expose details. This ImmobilienScout24 scraper / ImmoScout24 scraper is an API alternative for Python, Node.js, cURL, or Apify MCP / AI assistants — paste a German /Suche/ URL, an Austrian /regional/ URL, or an /expose/ URL.
Best for: Germany and Austria rent and sale comps, PropTech pipelines, FSBO / private-seller leads, energy-class screening, and dataset export (JSON / CSV) via Apify.
| Actor | Role |
|---|---|
| ImmobilienScout24 Scraper ◄── you are here | Germany and Austria IS24 listings |
| Subito Real Estate Scraper | Italy property: sale, rent, private vs agency |
| Kleinanzeigen Scraper | German classifieds + monitor alerts |
| mobile.de Scraper | German vehicle listings |
| Leboncoin Scraper | French classifieds |
When to use this Actor
- ImmobilienScout24 scraper for search pages — Copy a filtered browser URL (city, radius, price, rooms, Wohnung/Haus, mieten/kaufen) into Start URLs.
- Wohnung mieten / Haus kaufen datasets — Berlin, München, Wien, Graz, or any
/Suche/de/...or/regional/...region; export JSON/CSV for comps and pipelines. - Private-seller (FSBO) lead lists — Enable Private sellers only to keep
isPrivate: truerows and skip Makler inventory. - Full expose details — Keep details on for Kaltmiete / Warmmiete, Nebenkosten, Kaution, energy certificate, description, and agent company.
- Scheduled monitoring — Re-run the same search and emit only new or price-changed listings. When the run reads the whole result set, listings that disappeared come back with
listingStatus: removed. - Coverage past web SERP caps — The mobile JSON API paginates the full result set (not the ~20-page website window). If a query still hits a page ceiling, the Actor splits by price bands.
When not to use this Actor
- Switzerland (
immoscout24.ch) — A different company and a different platform. This Actor does not read it. - Commercial (Büro, Einzelhandel, Halle, Gastronomie) — The mobile API does not return those searches as listing rows.
- Makler profile crawl (
/anbieter/profil/) — Paste search or expose URLs. Agency portfolio scraping is not in this version. - No hidden contact reveal — Public agent name/company may be included. Already-visible phone fields are emitted only with
includePhones: true; the Actor does not solve contact-unlock walls. - Authenticated actions — No login, messaging, or saved-search inbox.
Key features
- Mobile JSON API — Reads
api.mobile.immobilienscout24.de. Austrian listings use the same API with an/at/...geocode. No headless browser, 128–512 MB RAM. - Germany and Austria — German
/Suche/URLs and Austrian/regional/URLs. Vienna, Graz, Linz, Salzburg, and Innsbruck work in the region field. - Search builder — City or geocode path, rent vs buy, apartment, house, plot, garage, WG, short-term, or investment, plus price, rooms, m², and energy class.
- Private vs agency —
isPrivate/advertiserTypeon every row; optional private-only filter. - Price history — Monitor mode stores each search in a named key-value store and writes
priceHistory,previousPrice,daysOnMarket, andlistingStatus. - Residential DE proxy — Recommended on Apify Cloud. The API host is German for both markets.
Input
| Field | What it does |
|---|---|
| Start URLs | German /Suche/ or /expose/{id}, or Austrian /regional/.... |
| Region | Builder only. Berlin, Munich, Wien, or /de/bayern/muenchen, /at/wien/wien. |
| Rent or buy / Property type | Builder only. Wohnung, Haus, Grundstück, Garage, WG, short-term, investment. |
| Min/max price, rooms, m² | Builder filters in euros / Zimmer / Wohnfläche. |
| Energy classes | Builder only. Example A_PLUS,A,B. Dropped for plots and garages. |
| Published after / Sort | Builder only. Values copied from a search URL (publishedafter, sorting). 2 is newest-first. |
| Max listings | Cap on live rows saved. Removed rows from monitor mode are extra. |
| Scrape full expose details | Default on. Off = search-card fields only (faster). |
| Private sellers only | Drop Makler listings. |
| Monitor mode | Save new and price-changed rows. Emit removed when the full result set was read. |
| Proxy | Apify Residential, country DE. |
{"startUrls": [{ "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten" }],"maxItems": 50,"includeDetails": true,"onlyPrivate": false,"monitorMode": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "DE"}}
Austria example:
{"startUrls": [{ "url": "https://www.immobilienscout24.at/regional/wien/wien/wohnung-mieten" }],"maxItems": 30,"includeDetails": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "DE"}}
The same Vienna search from the builder, without a URL: region Wien, rent, apartment. A German /Suche/at/wien/wien/wohnung-mieten URL is equivalent.
Radius example (in a Start URL):
{"startUrls": [{"url": "https://www.immobilienscout24.de/Suche/radius/wohnung-mieten?centerofsearchaddress=Berlin;10115;;;;;&geocoordinates=52.532;13.383;5.0"}],"maxItems": 100}
Output
One dataset row per listing. Search-card fields are always present; the rest fill in when details are on.
| Field | Description |
|---|---|
id | Scout-ID |
url | Expose URL |
title | Headline |
realEstateType | apartmentrent, apartmentbuy, houserent, housebuy, … |
price | Warm rent, cold rent, or purchase price (€) |
pricePerSqm | €/m², from the expose or computed from price and living space |
market | de or at |
listingStatus | new, active, price_changed, or removed in monitor mode |
baseRent / totalRent / serviceCharge | Kaltmiete, Warmmiete, Nebenkosten |
deposit | Kaution (text as shown) |
livingSpaceValue / roomsValue | m² and Zimmer |
energyEfficiencyClass | A+–H |
yearBuilt / condition / heatingType | Building and energy block |
features | Balkon, Aufzug, Einbauküche, Garten, … |
isPrivate / advertiserType | Private owner vs agency |
address / zipCode / city / latitude / longitude | Location |
agentName / agentCompany / agentPhones | Public advertiser fields |
pictures | Image URLs |
priceReduced | Preissenkung flag |
previousPrice / priceHistory / daysOnMarket | Filled in monitor mode from earlier runs of the same search |
description | Objektbeschreibung |
scrapedAt | ISO timestamp |
{"id": "170073864","url": "https://www.immobilienscout24.de/expose/170073864","title": "Vollmöbliertes Design-Apartment inkl. Einbauküche & Terrasse","realEstateType": "apartmentrent","price": 1070,"pricePerSqm": 32.49,"market": "de","listingStatus": "active","baseRent": 1070,"totalRent": 1195,"serviceCharge": 125,"livingSpaceValue": 32.93,"roomsValue": 1,"energyEfficiencyClass": "B","isPrivate": false,"advertiserType": "agency","address": "Biedenkopfer Straße 54 13507 Tegel, Berlin","zipCode": "13507","city": "Berlin","latitude": 52.5798,"longitude": 13.28542,"yearBuilt": 2024,"features": ["Balkon/Terrasse", "Keller", "Personenaufzug", "Einbauküche", "Garten"],"agentCompany": "Comood GmbH","pictures": ["https://pictures.immobilienscout24.de/listings/..."],"scrapedAt": "2026-08-17T11:00:00+00:00"}
Use cases
- Agents — Watch competing inventory by Bezirk; filter to private sellers for new mandates.
- Investors / PropTech — City-level rent and €/m² snapshots for Berlin or Wien, energy class mix, GPS for maps.
- Relocation / HR — Warm rent + deposit + available-from for employee housing shortlists.
- Market research — Schedule daily runs in monitor mode and store only new ads and price cuts.
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('crawloop/immobilienscout24-scraper').call({startUrls: [{ url: 'https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten' }],maxItems: 50,includeDetails: true,proxyConfiguration: {useApifyProxy: true,apifyProxyGroups: ['RESIDENTIAL'],apifyProxyCountry: 'DE',},});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]?.id, items[0]?.price, items[0]?.livingSpaceValue);
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("crawloop/immobilienscout24-scraper").call(run_input={"startUrls": [{"url": "https://www.immobilienscout24.de/Suche/de/bayern/muenchen/wohnung-kaufen"}],"maxItems": 50,"includeDetails": True,"proxyConfiguration": {"useApifyProxy": True,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "DE",},})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("id"), item.get("price"), item.get("isPrivate"))
cURL
curl -X POST "https://api.apify.com/v2/acts/crawloop~immobilienscout24-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://www.immobilienscout24.de/Suche/de/hamburg/hamburg/haus-kaufen"}],"maxItems": 20,"includeDetails": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "DE"}}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP.
Connect your Apify account, then call this Actor by its Store ID / name (crawloop/immobilienscout24-scraper).
Example prompts:
- "Run ImmobilienScout24 Scraper for Wohnung mieten in Berlin, max 30, and return id, warm rent, m², rooms, energy class as JSON"
- "Scrape ImmobilienScout24 Vienna rentals, max 20, and return price, m², rooms, and market"
- "Pull ImmobilienScout24 Hamburg rentals, then compare the field set with Subito Real Estate Scraper for a Germany vs Italy pipeline"
Suite next step
After Germany and Austria comps, monitor classified spillover on Kleinanzeigen Scraper.
FAQ
Is this an official ImmobilienScout24 API?
No. It is an unofficial ImmobilienScout24 scraper / API alternative that reads the public mobile listing JSON used by the IS24 apps. It is not affiliated with Immobilien Scout GmbH. You can call it from Python, Node.js, cURL, or MCP.
Can I scrape Wohnung mieten in Berlin (or another city)?
Yes. Paste a Berlin /Suche/.../wohnung-mieten URL, or use the builder with region Berlin, rent, and apartment. The same pattern works for München, Hamburg, Wien, and Graz.
Why residential proxies?
Apify datacenter IPs are often blocked. Residential DE is the supported setup on Cloud.
Can I paste a browser search URL?
Yes. Apply filters on the site, copy the /Suche/ or Austrian /regional/ URL, and paste it into Start URLs. Radius, rooms, price, and property type in the path or query are translated to the mobile API.
Does it stop at 1,000 results like the website?
The website result list is capped; the mobile search endpoint paginates much further (50 listings per page). If a query still hits a page ceiling, the Actor splits the price range automatically.
Do you scrape Austria and Switzerland?
Austria yes. Paste an immobilienscout24.at/regional/... URL, a German /Suche/at/... URL, or set the region to Wien, Graz, Linz, Salzburg, or Innsbruck. Switzerland (immoscout24.ch) is a different platform and is not covered. Listing URLs in the dataset stay on the German expose host, which is the id the mobile API returns for Austrian inventory. Plural Austrian paths such as wohnungen search rent and buy at once; the API cannot, so paste wohnung-mieten or wohnung-kaufen.
Can I scrape offices, shops, or halls?
No. Büro, Einzelhandel, Halle, and Gastronomie searches do not come back as listing rows. The Actor skips those URLs instead of returning apartments.
What does monitor mode remember?
Each search is stored in the named key-value store is24-monitor. The first run saves the listings it finds. Later runs save only new listings and price changes (priceHistory, previousPrice, daysOnMarket). A tick reads monitorMaxPages search pages (default 2) and does not walk the rest of a large city. listingStatus: removed is added only when those pages cover the whole result set. This is the history this Actor has seen, not an older price archive from the site.
Are phone numbers included?
They are off by default. Set includePhones: true only when you have a lawful basis; even then, only numbers already listed in the public expose JSON (agentPhones) are eligible. Private contact-unlock flows are not automated.
Related Actors
| Actor | What it covers |
|---|---|
| Subito Real Estate Scraper | Italy property: sale, rent, private vs agency |
| Kleinanzeigen Scraper | German classifieds monitor |
| mobile.de Scraper | German used cars |
| Leboncoin Scraper | France classifieds |
| Marktplaats Scraper | Dutch marketplace |