ImmoScout24 Scraper - Germany, Austria & Spain Property
Pricing
from $2.20 / 1,000 results
ImmoScout24 Scraper - Germany, Austria & Spain Property
Scrape ImmobilienScout24.de, ImmobilienScout24.at, Fotocasa, and Habitaclia homes for sale and to rent. Extract prices, rooms, living space, agents, and photos as an ImmoScout24 API alternative.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
What does ImmobilienScout24 Scraper do?
Scrape ImmoScout24 Germany, Austria, and Scout24 Spain (Fotocasa + Habitaclia) property listings for sale and to rent, then export structured data to a Dataset. This Actor is a practical ImmobilienScout24 / ImmoScout24 API alternative for researchers, agencies, investors, and automations that need clean DE / AT / ES housing data from:
Set country (and for Spain optionally market), a location alias, or paste search / detail URLs. Optionally open each listing detail page to enrich prices, rooms, living space, realtor contacts, and photos.
What can this ImmoScout24 Scraper do?
- Scrape Germany (
country=DE) viawindow.IS24 - Scrape Austria (
country=AT) via__INITIAL_STATE__/ Apollo - Scrape Spain Fotocasa (
country=ESormarket=fotocasa) via__initial_props__ - Scrape Spain Habitaclia (
country=HABITACLIAormarket=habitaclia) via SSR list cards - Scrape for-sale (
channel=BUY) and to-rent (channel=RENT) - Build searches from location aliases or start URLs
- Paginate search result pages per market
- Enrich DE / AT / Fotocasa listings from detail pages (LDP)
- Extract prices, rooms, living space, city/zip, realtor, images, and tags
- Cap runs with
maxItemsandmaxPages - Run on Apify with scheduling, Dataset export, webhooks, and API access
- Use Apify RESIDENTIAL proxy with country DE, AT, or ES
What data can you extract from ImmobilienScout24?
| Property field | Example |
|---|---|
| Country / market | DE, AT, ES + fotocasa / habitaclia |
| Listing ID / URL | Portal id + detail URL |
| Title | Card / expose title |
| Price | Kaufpreis, Kaltmiete, comprar, alquiler |
| Rooms / living space | 3 / 75 m² |
| Address parts | City, zip, quarter |
| Realtor / agency | Company name, contact when present |
| Images | Gallery image URLs |
| Channel | BUY or RENT |
| Source layer | srp, srp+ldp |
Lead / Contact fields
Each enriched (detail/LDP) item carries the following lead keys so you can reach out to the listing agent or agency directly. List-only (SRP) items carry the same keys but with leadSource=search and sparse values — full contact data lives on the detail page.
| Field | Type | Meaning |
|---|---|---|
phones | [{value, type, e164?}] | Phone numbers from the listing contact block. DE/AT: click-show "Telefonnummer anzeigen" reveals the number in a modal; the value is preloaded in the page's inline script (no XHR needed). Fotocasa: already visible in search results (leadReveal=visible). |
emails | [{value, type}] | Contact emails. All markets: gated behind the "Kontaktieren" lead form (DE/AT) or not present (Fotocasa). See leadAbsences for the per-market reason. |
address | {street, unit, locality, region, postalCode, country, full} | Property address. unit = 门牌 (house number). DE/AT LDP: full street + house number + zip + city. Fotocasa: area-level only (postal code + city, no street or 门牌). |
geo | {lat, lng} | Listing coordinates. DE LDP: from addressData. Fotocasa: from listing metadata. AT: not always available. |
person | {name, role?} | Contact person (agent/seller). DE/AT LDP: first + last name (e.g. "Frau Britta Gdanietz"). Fotocasa: not available (本站无). |
org | {name, id?} | Agency / company name. DE/AT: from contactData.company. Fotocasa: clientAlias (professional agency name). |
web | {website, socials[]} | Official website and social links. All markets: not available per-listing (本站无) — ImmoScout24 and Fotocasa do not link to agent websites or social profiles from listing pages. |
leadSource | enum | Where the lead was captured: search (SRP card) · detail (LDP enrichment) · entity · contact · reveal-xhr. |
leadReveal | enum | How the lead was revealed: visible (already on page) · click (click-show button) · xhr (fetched after click) · gated (login/form wall) · image · absent. DE/AT phones = click; Fotocasa phones = visible; Habitaclia = absent. |
leadAbsences | object/map | Sub-field absence reasons keyed by lead path. Values are one of: 本站无 (site does not expose), 闸门锁 (login/form gate), 未验证 (not tested during mission). Example: {"emails": "闸门锁", "web.socials": "本站无"}. |
Reveal cost
| Market | Surface | What it costs to get phone | Extra HTTP? | Proxy impact |
|---|---|---|---|---|
| DE (immobilienscout24.de) | LDP | Click "Telefonnummer anzeigen" → modal. Phone value preloaded in inline script. | No (DOM toggle only; report/phoneReveal is analytics tracking) | None |
| AT (immobilienscout24.at) | LDP | Click "+43660860zeigen" button → DOM switch. Phone value preloaded in Apollo cache. | No | None |
| Fotocasa (fotocasa.es) | SRP | Phone already visible (hasPhoneVisibility=true) | No | None |
| Habitaclia | SRP-only | No phone (Imperva hard-block on LDP) | N/A | N/A |
Run-time impact: DE/AT detail pages with phone click-show add ~1–2 seconds per listing for the DOM interaction. No additional proxy requests or rate-limit exposure beyond the initial page load. Email is never revealed without submitting the lead form (which this Actor does not do).
Honest limitations
The following lead fields are not available and the Actor reports the reason via leadAbsences:
| Field | Market | Reason | leadAbsences value |
|---|---|---|---|
emails | DE / AT | Gated behind "Kontaktieren" lead form (no mailto: link) | 闸门锁 |
emails | Fotocasa | Site does not expose email field | 本站无 |
address.street / address.unit | Fotocasa | Only area-level address (postal code + city); no street or 门牌 | 本站无 |
person | Fotocasa | No contact person field in SRP or LDP | 本站无 |
web.website / web.socials | All markets | Platform-level only; no per-listing website or social links | 本站无 |
geo | AT | Coordinates not always populated on Austrian listings | 未验证 |
| All lead fields | Habitaclia | Imperva hard-block on detail pages; SRP-only mode (scrapeDetails=false) | 闸门锁 / 未验证 |
This Actor does not submit lead forms, log in, or attempt to bypass Imperva/WAF challenges. It scrapes only publicly visible listing data plus the phone number revealed by the click-show interaction (DE/AT).
Why scrape ImmobilienScout24 / ImmoScout24?
ImmoScout24 is one of Europe’s largest property portals (Germany & Austria), and Scout24 also operates Fotocasa and Habitaclia in Spain. Scraping these listings helps with:
- Cross-border market research and price benchmarking (Berlin, Wien, Madrid, Barcelona…)
- Lead generation for agencies, mortgage brokers, and service providers
- Investment screening across sale and rental inventory
- Monitoring new listings, price changes, and agent coverage
- Feeding dashboards, CRMs, spreadsheets, or AI agent workflows
How to scrape ImmobilienScout24 property data
- Open this Actor and click Try for free (or Start).
- Set
countrytoDE,AT,ES, orHABITACLIA(Spain: optionalmarket=fotocasa|habitaclia). - Set
location(for exampleberlin,wien,madrid) or providestartUrls. - Choose
channel:BUYfor sale orRENTfor to-rent. - Set
maxItemsandmaxPagesfor a small test first. - Keep
scrapeDetailsenabled for DE / AT / Fotocasa when you need full enrichment. Habitaclia is SRP-only by design (Imperva on many detail pages). - Prefer Apify RESIDENTIAL proxy with country matching the market (
DE/AT/ES). - Click Start, then download the Dataset as JSON, CSV, Excel, or JSONL.
Example input (Germany — Berlin for sale)
{"country": "DE","location": "berlin","channel": "BUY","propertyType": "wohnung","maxItems": 10,"maxPages": 1,"scrapeDetails": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "DE"}}
Example input (Austria — Wien to rent)
{"country": "AT","location": "wien","channel": "RENT","propertyType": "wohnung","maxItems": 5,"maxPages": 1,"scrapeDetails": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "AT"}}
Example input (Spain — Fotocasa Madrid for sale)
{"country": "ES","market": "fotocasa","location": "madrid","channel": "BUY","maxItems": 5,"maxPages": 1,"scrapeDetails": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "ES"}}
Example input (Spain — Habitaclia Madrid for sale, SRP-only)
{"country": "HABITACLIA","location": "madrid","channel": "BUY","maxItems": 5,"maxPages": 1,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "ES"}}
Input
Use the Input tab for the full form. Core fields:
| Field | Description |
|---|---|
country | DE, AT, ES, or HABITACLIA |
market | Spain only: fotocasa or habitaclia |
startUrls | Optional search (SRP) or detail (LDP) URLs |
location | Place alias (berlin, wien, madrid…) |
channel | BUY or RENT |
propertyType | Full category catalog: apartment, house, plot, garage, shared_room, short_term, foreclosure, office, retail, industrial, penthouse, duplex, studio, … (see Input tab). Mapped per market to SEO paths. |
maxItems | Maximum listings to save |
maxPages | Maximum search pages |
scrapeDetails | Fetch LDP enrichment (forced off for Habitaclia) |
requestDelayMillis | Delay before each browser navigation |
proxyConfiguration | Apify Proxy (RESIDENTIAL + market country) |
Output example
Each Dataset item is one listing. Download as JSON, CSV, Excel, or JSONL.
{"id": "123456789","url": "https://www.immobilienscout24.de/expose/123456789","country": "DE","source": "immobilienscout24","channel": "BUY","title": "Helle 3-Zimmer-Wohnung in Berlin","priceAmount": 396000,"currency": "EUR","rooms": 3,"livingSpace": 75,"city": "Berlin","sourceLayer": "srp+ldp","scrapedAt": "2026-07-18T04:00:00.000Z"}
Key-value store helpers:
OUTPUT/RUN_SUMMARY— counts, engine, market, warningsERROR_SUMMARY— present when a run fails
How much does it cost to scrape ImmobilienScout24?
This Actor uses Pay per event pricing:
| Event | Price |
|---|---|
Actor start (apify-actor-start) | $0.005 per start |
Result (apify-default-dataset-item) | $2.50 / 1,000 listings ($0.0025 each) |
Platform usage costs are paid by the user (compute, residential proxy, storage). Browser runs need more memory than pure HTTP scrapers — keep maxItems low while testing.
Example: 1 start + 1,000 listings ≈ $0.005 + $2.50 in event charges, plus platform usage.
Tips for better ImmoScout24 scraping results
- Start with
maxPages: 1andmaxItems: 3–10to validate market + proxy. - Match proxy country to the portal: DE→DE, AT→AT, Fotocasa/Habitaclia→ES.
- Keep
requestDelayMillisaround 1500–3000 ms to reduce WAF / Imperva friction. - Habitaclia: rely on SRP fields (price, rooms, size, agency, images); detail pages are often blocked.
- Split large cities into smaller locations if you need broader coverage.
FAQ
Is there an official ImmobilienScout24 API?
ImmoScout24 does not offer a simple public listings API for arbitrary third-party extraction. This Actor provides an ImmoScout24 scraper / API-style Dataset export for public listing pages across DE, AT, and Scout24 Spain portals.
Which countries are supported?
Germany (DE), Austria (AT), and Spain via Fotocasa (ES) and Habitaclia (HABITACLIA / market=habitaclia).
Can I scrape both sale and rent?
Yes. Run with channel=BUY or channel=RENT, or supply separate search URLs in startUrls.
Why does Habitaclia skip detail pages?
Many Habitaclia detail pages return Imperva challenge pages. List cards already include the main commercial fields, so Habitaclia runs force SRP-only mode for reliability.
What format can I export?
Apify Dataset downloads support JSON, JSONL, CSV, Excel, XML, and RSS. You can also pull results through the Apify API, Integrations, or webhooks.
Is it legal to scrape ImmobilienScout24?
Only scrape publicly available listing data and only if you have a legitimate reason. Personal data may appear in public listings and can be protected by GDPR and similar laws. Review each portal’s terms and your own compliance obligations before large-scale collection. This tool is intended for ethical use of public information.
How do I run this ImmoScout24 Scraper via API?
Use the Apify API, CLI (apify call), or Schedules. Pass the same JSON input shown above. See the API tab on this Actor page for ready-made code snippets.
Live View / standby endpoints
When the Actor runs in standby / Live View mode, these operational endpoints are available:
| Method | Path | Description |
|---|---|---|
GET | / | Service info |
GET | /health | Health check |
GET | /input-example | Low-cost sample input |
GET | /openapi.json | Deployed OpenAPI document |
Normal scraping still runs as a standard Actor run (not through these endpoints).
Support
Open the Issues tab on this Actor page with sample input, run ID, and expected vs actual results. Feature requests for extra markets or fields are welcome.