ImmobilienScout24 Scraper — Germany & Austria Rents avatar

ImmobilienScout24 Scraper — Germany & Austria Rents

Pricing

from $0.99 / 1,000 listings

Go to Apify Store
ImmobilienScout24 Scraper — Germany & Austria Rents

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

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

10 days ago

Last modified

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 includePhones only 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.

ActorRole
ImmobilienScout24 Scraper ◄── you are hereGermany and Austria IS24 listings
Subito Real Estate ScraperItaly property: sale, rent, private vs agency
Kleinanzeigen ScraperGerman classifieds + monitor alerts
mobile.de ScraperGerman vehicle listings
Leboncoin ScraperFrench 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: true rows 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 / advertiserType on every row; optional private-only filter.
  • Price history — Monitor mode stores each search in a named key-value store and writes priceHistory, previousPrice, daysOnMarket, and listingStatus.
  • Residential DE proxy — Recommended on Apify Cloud. The API host is German for both markets.

Input

FieldWhat it does
Start URLsGerman /Suche/ or /expose/{id}, or Austrian /regional/....
RegionBuilder only. Berlin, Munich, Wien, or /de/bayern/muenchen, /at/wien/wien.
Rent or buy / Property typeBuilder only. Wohnung, Haus, Grundstück, Garage, WG, short-term, investment.
Min/max price, rooms, m²Builder filters in euros / Zimmer / Wohnfläche.
Energy classesBuilder only. Example A_PLUS,A,B. Dropped for plots and garages.
Published after / SortBuilder only. Values copied from a search URL (publishedafter, sorting). 2 is newest-first.
Max listingsCap on live rows saved. Removed rows from monitor mode are extra.
Scrape full expose detailsDefault on. Off = search-card fields only (faster).
Private sellers onlyDrop Makler listings.
Monitor modeSave new and price-changed rows. Emit removed when the full result set was read.
ProxyApify 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.

FieldDescription
idScout-ID
urlExpose URL
titleHeadline
realEstateTypeapartmentrent, apartmentbuy, houserent, housebuy, …
priceWarm rent, cold rent, or purchase price (€)
pricePerSqm€/m², from the expose or computed from price and living space
marketde or at
listingStatusnew, active, price_changed, or removed in monitor mode
baseRent / totalRent / serviceChargeKaltmiete, Warmmiete, Nebenkosten
depositKaution (text as shown)
livingSpaceValue / roomsValuem² and Zimmer
energyEfficiencyClassA+–H
yearBuilt / condition / heatingTypeBuilding and energy block
featuresBalkon, Aufzug, Einbauküche, Garten, …
isPrivate / advertiserTypePrivate owner vs agency
address / zipCode / city / latitude / longitudeLocation
agentName / agentCompany / agentPhonesPublic advertiser fields
picturesImage URLs
priceReducedPreissenkung flag
previousPrice / priceHistory / daysOnMarketFilled in monitor mode from earlier runs of the same search
descriptionObjektbeschreibung
scrapedAtISO 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 ApifyClient
client = 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.

ActorWhat it covers
Subito Real Estate ScraperItaly property: sale, rent, private vs agency
Kleinanzeigen ScraperGerman classifieds monitor
mobile.de ScraperGerman used cars
Leboncoin ScraperFrance classifieds
Marktplaats ScraperDutch marketplace