Immobilienscout24 (.de|.ch|.at) Only$1.75💰 Search-Detail-Agent
Pricing
from $1.75 / 1,000 results
Immobilienscout24 (.de|.ch|.at) Only$1.75💰 Search-Detail-Agent
💰$1.75 per 1,000. Extract comprehensive German real estate data: property details (rent, size, rooms, location), high-res images, agent info with verification status, pricing insights, amenities (balcony, kitchen, cellar), contact forms, market analytics, and 40+ targeting parameters for research.
Pricing
from $1.75 / 1,000 results
Rating
5.0
(9)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
14
Bookmarked
356
Total users
88
Monthly active users
1.2 hours
Issues response
10 hours ago
Last modified
Categories
Share
ImmobilienScout24 Scraper — DACH Real Estate (DE · CH · AT) · Search + Detail + Agent
The #1-rated ImmobilienScout24 scraper on Apify (★ 5.0). Scrape the full DACH residential real estate market from immobilienscout24.de (Germany), immoscout24.ch (Switzerland), and immobilienscout24.at (Austria) in one actor. Search results, full expose detail pages, and Makler (agent) profiles with all their listings — at $1.75 per 1,000 results. Pure HTTP, no browser.
How it works

✨ Why use this scraper?
ImmobilienScout24 is the largest property portal in the DACH region — over 600,000 active listings, every major German, Swiss, and Austrian city, all three rental and sale tiers. Most ImmoScout scrapers on Apify only handle one country, one URL type, and skip the most valuable surface (agent profiles). This one does all three.
- 🇩🇪 🇨🇭 🇦🇹 All DACH in one actor. Mix
.de+.ch+.atURLs in the samestartUrlslist. Berlin, München, Hamburg, Wien, Salzburg, Zürich, Genf — same actor, same shape, same price. - 🎯 Three URL kinds, three handlers. Search results (
/Suche/...), expose detail (/expose/{id}), and Makler profile (/anbieter/profil/{slug}) — most competitors don't crack the agent profile flow. - 🤝 Makler API + mobile expose JSON merge. Agent-profile rows merge
clientFields(from the public agency API) with the full mobile-app expose JSON, giving you 40+ targeted fields per listing the agent has. - 📋 Mobile-app endpoint. Uses ImmoScout24's mobile-app JSON endpoint (the one used by their native iOS/Android apps), not DOM-scraped HTML — faster, less fragile, more accurate.
- 🔁 Monitoring mode. Set
monitoringMode: trueto emit only listings new since the last run — perfect for daily change-detection feeds. - 🛡 Akamai-cleared. Pure HTTP via Apify Residential. No headless browser. Same backend handles Cloudflare-fronted detail pages and the API endpoints transparently.
- ⭐️ Customer-rated #1. Top of the Apify Store ranking for ImmoScout24 scrapers by user count, with a perfect 5.0★ rating across 9 reviews.
🎯 Use cases
| Team | What they build |
|---|---|
| Real estate market analysts | Daily inventory snapshots for DE / CH / AT — track void rates, price-per-m², new-listings velocity by city and sub-market |
| Property tech (proptech) platforms | Power your listings UI with a structured DACH feed without negotiating direct API access with Scout24 |
| Compensation & rent benchmarking | City-level rent-per-m² benchmarks for HR / corporate relocation teams |
| Agency competitive intelligence | Scrape competing Makler (agent) portfolios — how many listings, in what sub-markets, at what price points |
| Investor / fund sourcing | Build deal-flow pipelines filtered by yield, total return, m², year built, EPC class |
| Geospatial analytics | Every detail row carries coordinates.lat + coordinates.lng (Scout24's verified geocoding) |
📥 Supported inputs
| URL pattern | Region | Handler | Behaviour |
|---|---|---|---|
immobilienscout24.de/Suche/de/{state}/{city}/{type}-{mode} | 🇩🇪 DE | Search | Paginates all result pages, then fans out to each expose. Filters in URL are honoured. |
immobilienscout24.de/expose/{id} | 🇩🇪 DE | Detail | Single expose row, full mobile JSON shape |
immobilienscout24.de/anbieter/profil/{slug} | 🇩🇪 DE | Agent | Loads residential BUY then RENT listings via agency API, merges clientFields + full mobile expose JSON. Tip: if the profile HTML is blocked, add ?realtorEncryptedId=... (opaque ID from /anbieter/contact/{slug}/{id}). |
immobilienscout24.at/regional/{state}/{city}/{type}-{mode} | 🇦🇹 AT | Search | Austrian search results |
immobilienscout24.at/expose/{id} | 🇦🇹 AT | Detail | Austrian expose |
immoscout24.ch/de/{type}/{mode}/region-{city} | 🇨🇭 CH | Search | Swiss search results |
immoscout24.ch/de/d/{type}-{mode}/{id} | 🇨🇭 CH | Detail | Swiss expose |
Easiest workflow: apply filters in the browser, copy the URL out of the address bar, paste into startUrls. The actor classifies each URL automatically.
🔄 How it works (step by step)
- Classify each
startUrl— country (DE/CH/AT) × kind (Search / Detail / Agent). - Search URLs: walk all result pages (no 500-row cap — ImmoScout's API gives the full inventory), collect every expose ID.
- Detail URLs: hit the mobile-app expose JSON endpoint directly — no HTML scraping, no JS.
- Agent URLs: call the agency API twice (BUY + RENT), merge
clientFields, then enrich each listing with the mobile expose JSON. If the public profile HTML is rate-limited, support?realtorEncryptedId=...(a 32-char opaque ID from the contact endpoint) as a fallback. - (Monitoring mode) dedupe against previously-scraped IDs and emit only fresh listings since the last run.
- Push to dataset — one row per listing or agent profile. JSON during the run, CSV at end.
⚙️ Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | array of {url} | — (required) | DE / CH / AT URLs (search, expose, or agent). Mix freely. |
monitoringMode | boolean | false | Emit only listings new since the last run. Costs $0.50/1k for change-detection checks (per-item, separate event). |
maxConcurrency | integer | 10 | Parallel HTTP request limit. Sweet spot 5–10 via Apify Residential. |
minConcurrency | integer | 1 | Minimum parallel workers. |
maxRequestRetries | integer | 100 | Per-URL retry budget on Akamai 403s + proxy CONNECT failures. |
proxy | object | Apify Residential | Apify proxy config. Note: default pool works cleanly for all three DACH locales. |
Example input — DACH mixed (search across all three)
{"startUrls": [{ "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?pricetype=rentpermonth" },{ "url": "https://www.immobilienscout24.at/regional/wien/wien/wohnung-mieten" },{ "url": "https://www.immoscout24.ch/de/wohnung/mieten/region-zuerich" }],"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Example input — Makler (agent) profile
{"startUrls": [{ "url": "https://www.immobilienscout24.de/anbieter/profil/engel-voelkers-berlin-mitte-50-2543" }]}
Example input — incremental monitoring
{"startUrls": [{ "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-kaufen" }],"monitoringMode": true}
📊 Output overview
Three row shapes, classified by the input URL:
- Search-result row — one row per expose ID discovered on a search page. Has the listing's title, price, size, location, agent reference. Lightweight; ~100 fields.
- Expose detail row — full mobile-app shape. ~150 fields including marketing description, all photos, energy data, agent contact, location coordinates, courtage, neighbourhood metadata.
- Makler (agent) row — agent's profile + their full listings portfolio merged. ~200 fields per listing × N listings, plus the agent's metadata (
realtorName,clientFields, contact details).
All three are pushed to the same dataset. Filter by kind field (or by URL pattern) to split them downstream.
📦 Output sample — Expose detail row (mobile JSON shape)
{"kind": "expose","id": "138123456","exposeUrl": "https://www.immobilienscout24.de/expose/138123456","country": "DE","title": "Lichtdurchflutete 3-Zimmer Altbauwohnung mit Balkon · Berlin Prenzlauer Berg","type": "apartment-rent", // apartment-rent / apartment-buy / house-rent / house-buy / land / commercial"address": {"fullAddress": "Schönhauser Allee 123, 10437 Berlin","street": "Schönhauser Allee 123","postcode": "10437","city": "Berlin","district": "Prenzlauer Berg","region": "Berlin","country": "Germany"},"coordinates": { "lat": 52.5485, "lng": 13.4126 },// ── Price ──"price": { "amount": 1850, "currency": "EUR", "period": "month", "raw": "1.850 € warm" },"priceDetails": { "kalt": 1450, "warm": 1850, "nebenkosten": 280, "heizkosten": 120, "deposit": "3 Monatskaltmieten" },"courtage": { "amount": 0, "isCourtageFree": true, "note": "provisionsfrei" },// ── Size + rooms ──"livingSpace": 78.5, // m²"rooms": 3.0,"bedrooms": 2,"bathrooms": 1,"floor": "3 / 5","lotSize": null, // null for apartments// ── Building ──"yearBuilt": 1908,"yearRefurbished": 2019,"buildingType": "Altbau","condition": "Modernisiert","objectCondition": "mint_condition","interiorQuality": "luxury","lastRefurbishment": "2019",// ── Energy (EU EPC) ──"energy": {"energyCertificateAvailable": true,"energyCertificateType": "Verbrauchsausweis","energyConsumption": 87.5,"energyClass": "C","primaryEnergyCarrier": "gas","thermalCharacteristic": "energieausweis_neu"},// ── Amenities (boolean flags + descriptive) ──"amenities": {"balcony": true, "terrace": false, "garden": false,"kitchen": true, "guestToilet": true, "cellar": true,"elevator": true, "wheelchairAccess": false,"parking": "Tiefgaragen-Stellplatz","heating": "Zentralheizung","flooring": ["Parkett", "Fliesen"]},// ── Description + media ──"description": "Charmante Altbauwohnung in bester Prenzlberg-Lage…", // full HTML"objectDescription": "Im 3. OG eines saniertes Gründerzeithaus…","locationDescription": "Schönhauser Allee — Lebendigste Strasse Berlins…","equipmentDescription": "Parkett · Einbauküche · Echtholzdielen…","photos": [{ "url": "https://pictures.immobilienscout24.de/.../1.jpg", "caption": "Wohnzimmer" },{ "url": "https://pictures.immobilienscout24.de/.../2.jpg", "caption": "Küche" }],"photosCount": 18,"floorPlan": "https://pictures.immobilienscout24.de/.../grundriss.pdf","video": null,"virtualTour": "https://my.matterport.com/show/?m=abc",// ── Agent / Makler ──"agent": {"realtorId": "12345","realtorEncryptedId": "abc123def456...","name": "Engel & Völkers Berlin Mitte","profileUrl": "https://www.immobilienscout24.de/anbieter/profil/engel-voelkers-berlin-mitte-50-2543","phone": "+49 30 1234567","email": "kontakt@engelvoelkers.de","logoUrl": "https://logos.immobilienscout24.de/12345.png","isVerified": true,"memberSince": "2014-03-15"},// ── Listing metadata ──"datePosted": "2026-05-12T08:30:00Z","dateUpdated": "2026-05-15T14:22:00Z","listingState": "active","viewCount": 412,"favouriteCount": 28,"premiumListing": false,"isNew": true,"isProjectShowcase": false,// ── Tracking + ads ──"adTargetingParameters": { /* … */ },"tracking": { /* … */ },"scrapedAt": "2026-05-17T10:00:00.000Z"}
📦 Output sample — Makler (agent) profile row
{"kind": "agent","realtorId": "50-2543","realtorName": "Engel & Völkers Berlin Mitte","realtorProfileUrl": "https://www.immobilienscout24.de/anbieter/profil/engel-voelkers-berlin-mitte-50-2543","header": {"logoUrl": "https://logos.immobilienscout24.de/50-2543.png","bannerUrl": "https://...","isVerified": true,"memberSince": "2014-03-15","totalListings": 47},"contact": {"name": "Maximilian Schäfer","title": "Senior Real Estate Consultant","phone": "+49 30 1234567","email": "max@engelvoelkers.de","address": "Friedrichstraße 123, 10117 Berlin"},"clientFields": {"shortDescription": "Premium real estate consultancy specialising in luxury apartments...","longDescription": "Engel & Völkers is the world's leading service provider in the brokerage...","officeAreas": ["Berlin Mitte", "Prenzlauer Berg", "Charlottenburg"],"specializations": ["Luxury apartments", "Pre-1900 buildings", "Investment properties"]},"basicInfo": { /* … */ },"sections": {"buyListings": [ /* array of full expose-shape rows for properties this agent has for SALE */ ],"rentListings": [ /* array of full expose-shape rows for properties this agent has for RENT */ ]},"adTargetingParameters": { /* … */ },"tracking": { /* … */ },"sourceProfileUrl": "https://www.immobilienscout24.de/anbieter/profil/engel-voelkers-berlin-mitte-50-2543","scrapedAt": "2026-05-17T10:00:00.000Z"}
🗂 Key output fields (expose detail)
| Group | Fields |
|---|---|
| Identity | id, kind, exposeUrl, country (DE / CH / AT), type |
| Address + geo | address.{fullAddress,street,postcode,city,district,region,country}, coordinates.{lat,lng} |
| Price | price.{amount,currency,period,raw}, priceDetails.{kalt,warm,nebenkosten,heizkosten,deposit}, courtage.{amount,isCourtageFree,note} |
| Size | livingSpace, rooms, bedrooms, bathrooms, floor, lotSize |
| Building | yearBuilt, yearRefurbished, buildingType, condition, objectCondition, interiorQuality |
| Energy | energy.{energyCertificateAvailable,energyCertificateType,energyConsumption,energyClass,primaryEnergyCarrier} |
| Amenities | amenities.{balcony,terrace,garden,kitchen,guestToilet,cellar,elevator,wheelchairAccess,parking,heating,flooring} |
| Content + media | description (HTML), objectDescription, locationDescription, equipmentDescription, photos[], floorPlan, video, virtualTour |
| Agent | agent.{realtorId,realtorEncryptedId,name,profileUrl,phone,email,logoUrl,isVerified,memberSince} |
| Timing | datePosted, dateUpdated, scrapedAt (ISO 8601) |
| Engagement | viewCount, favouriteCount, listingState, premiumListing, isNew, isProjectShowcase |
| Targeting / ads | adTargetingParameters.*, tracking.* (raw Scout24 telemetry, useful for matching against ad campaigns) |
💰 Pricing
$1.75 per 1,000 results. Pay only for rows in the dataset.
| Event | Charged when | Rate |
|---|---|---|
apify-default-dataset-item (Result) | A row is written to the dataset | $1.75 / 1,000 |
apify-actor-start (Infrequent) | Each run starts | $0.005 / run |
additional-data (Monitoring) | Each item change-detection check in monitoringMode: true | $0.50 / 1,000 |
Cost examples:
- 500 Berlin rental apartments → ~$0.88
- 5,000 listings across DE + CH + AT → ~$8.75
- Daily monitoring of 2,000 listings → ~$1.00 / day = ~$30 / month
What makes this richer than the competition
| Capability | Other ImmoScout scrapers | This actor |
|---|---|---|
| DACH coverage | Usually .de only | .de + .ch + .at in one actor |
| Agent (Makler) profiles | Not offered | Full profile + all their BUY and RENT listings via agency API |
| Mobile-app endpoint | DOM-scraping HTML (fragile) | ImmoScout's own mobile-app JSON (stable, faster, richer) |
| Energy fields (EPC) | Often missing | energyClass, energyConsumption, energyCertificateType, primaryEnergyCarrier — full EU EPC compliance |
| Monitoring mode | Not offered | Incremental new-only runs at $0.50/1k change checks |
| Customer rating | 5.0 ★ (some) / 0 (most) | 5.0 ★ across 9 reviews — #1 in category by users (87 u30d) |
realtorEncryptedId fallback | n/a | Works around HTML rate-limiting on agent profiles |
| Pricing | $0.90–$3.00 / 1,000 | $1.75 / 1,000 |
❓ FAQ
Why does this actor cover DE + CH + AT in one listing? ImmoScout24 is a single Scout24 SE-owned property portal that operates across all three DACH markets with consistent UI and a unified mobile API. Same backend, same fields, same actor. Pasted URLs are classified by hostname; the rest is identical.
What's a "Makler profile" and why scrape it? A Makler is a German real-estate agent. Each agent has a public profile page on ImmoScout24 listing all their current BUY + RENT properties. Scraping the agent gives you a complete portfolio snapshot in one row — useful for competitive intelligence, agency rankings, deal-flow sourcing.
What's realtorEncryptedId?
A 32-char opaque ID Scout24 sometimes requires to access agent listings via the public API. You'll find it on the agent's /anbieter/contact/{slug}/{id} page. Pass it as a query param to the profile URL if the actor reports "agent profile HTML is rate-limited".
Can it bypass the Cloudflare challenge on expose detail pages? The expose endpoint is API-fronted (no JS challenge). Apify Residential default pool returns clean 200 OK. No browser needed.
Does monitoring mode cost extra?
monitoringMode: true adds $0.50/1,000 change-detection checks (the additional-data event). For a daily monitor of 2,000 listings: ~$0.001/check × 2,000 × 30 days = ~$60/month all-in. Without monitoring: full re-scrape every run at the standard $1.75/1k.
Can I get historical Scout24 data (closed deals, transaction prices)? No. ImmoScout24 doesn't publish closed-deal data publicly — this actor only sees the currently-active inventory. For transaction history, you'd need a separate data partner (Empirica, ImmoScout24 Insights paid product).
What's the realistic throughput?
Default maxConcurrency: 10. ~10–20 listings/sec sustained on Apify Residential. So 1,000 listings in 1–2 min; 10,000 in 10–15 min.
💬 Support
- For issues or feature requests, please use the Issues tab on the actor's Apify Console page.
- Author's website: https://muhamed-didovic.github.io/
- Email: muhamed.didovic@gmail.com
🛠 Additional services
- Custom output shape, additional fields, or a private build: muhamed.didovic@gmail.com
- Need other DACH property platforms (Immowelt, Immonet, Immobilien.de, Wohnungsbörse, Comparis, Homegate, willhaben.at)? Drop an email — most are already in the portfolio.
- For API access (no Apify fee, just a usage fee for the API): muhamed.didovic@gmail.com
🔎 Explore more scrapers
If this ImmoScout24 scraper was useful, see other real-estate scrapers at memo23's Apify profile — Immowelt (DE), Immonet (DE), Immobiliare (IT), Immoweb (BE), LoopNet US + UK, Rightmove UK, and more.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by ImmobilienScout24 GmbH, Scout24 SE, or any of their subsidiaries or related entities. All ImmobilienScout24-, ImmoScout24-, and Scout24-related trademarks, service marks, trade names, and logos are the property of their respective owners and are used here solely for descriptive purposes — to identify the public property listings from which this scraper extracts data.
This Actor accesses only publicly available property-listing and agent-profile pages on immobilienscout24.de, immobilienscout24.at, and immoscout24.ch. You are solely responsible for ensuring that your use of the data complies with each site's Terms of Service, applicable copyright law, the EU Database Directive, GDPR, the German Telemediengesetz, the Swiss Federal Act on Data Protection (revFADP), the Austrian Datenschutzgesetz, and any other regulations that may apply to your jurisdiction or use case. Do not use this Actor to bulk-republish copyrighted content, to harass landlords / tenants / agents, to circumvent any rate-limiting or technical protection measure intentionally imposed by the source sites, or to enable unsolicited outreach in violation of GDPR / e-Privacy consent rules.
The author provides this Actor "as is", without warranty of any kind, and disclaims any liability for damages arising from its use.
SEO Keywords
immobilienscout24 scraper, immoscout24 scraper, immobilienscout24.de scraper, immobilienscout24.at scraper, immoscout24.ch scraper, immobilienscout24 api, immoscout api, germany real estate scraper, switzerland real estate scraper, austria real estate scraper, dach real estate api, berlin wohnung scraper, münchen wohnung scraper, hamburg wohnung scraper, wien immobilien scraper, zürich wohnung scraper, makler scraper, immobilien makler api, scout24 agent scraper, eu epc data, energy class scraper, immobilien monitoring, deutsche immobilien daten, mietpreis benchmarks, kaufpreis-pro-quadratmeter scraper, apify immoscout actor