ImmoScout24 Scraper - Germany, Austria & Spain Property avatar

ImmoScout24 Scraper - Germany, Austria & Spain Property

Pricing

from $2.20 / 1,000 results

Go to Apify Store
ImmoScout24 Scraper - Germany, Austria & Spain Property

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

kane liu

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

1

Monthly active users

11 hours ago

Last modified

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) via window.IS24
  • Scrape Austria (country=AT) via __INITIAL_STATE__ / Apollo
  • Scrape Spain Fotocasa (country=ES or market=fotocasa) via __initial_props__
  • Scrape Spain Habitaclia (country=HABITACLIA or market=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 maxItems and maxPages
  • 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 fieldExample
Country / marketDE, AT, ES + fotocasa / habitaclia
Listing ID / URLPortal id + detail URL
TitleCard / expose title
PriceKaufpreis, Kaltmiete, comprar, alquiler
Rooms / living space3 / 75
Address partsCity, zip, quarter
Realtor / agencyCompany name, contact when present
ImagesGallery image URLs
ChannelBUY or RENT
Source layersrp, 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.

FieldTypeMeaning
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.
leadSourceenumWhere the lead was captured: search (SRP card) · detail (LDP enrichment) · entity · contact · reveal-xhr.
leadRevealenumHow 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.
leadAbsencesobject/mapSub-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

MarketSurfaceWhat it costs to get phoneExtra HTTP?Proxy impact
DE (immobilienscout24.de)LDPClick "Telefonnummer anzeigen" → modal. Phone value preloaded in inline script.No (DOM toggle only; report/phoneReveal is analytics tracking)None
AT (immobilienscout24.at)LDPClick "+43660860zeigen" button → DOM switch. Phone value preloaded in Apollo cache.NoNone
Fotocasa (fotocasa.es)SRPPhone already visible (hasPhoneVisibility=true)NoNone
HabitacliaSRP-onlyNo phone (Imperva hard-block on LDP)N/AN/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:

FieldMarketReasonleadAbsences value
emailsDE / ATGated behind "Kontaktieren" lead form (no mailto: link)闸门锁
emailsFotocasaSite does not expose email field本站无
address.street / address.unitFotocasaOnly area-level address (postal code + city); no street or 门牌本站无
personFotocasaNo contact person field in SRP or LDP本站无
web.website / web.socialsAll marketsPlatform-level only; no per-listing website or social links本站无
geoATCoordinates not always populated on Austrian listings未验证
All lead fieldsHabitacliaImperva 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

  1. Open this Actor and click Try for free (or Start).
  2. Set country to DE, AT, ES, or HABITACLIA (Spain: optional market=fotocasa|habitaclia).
  3. Set location (for example berlin, wien, madrid) or provide startUrls.
  4. Choose channel: BUY for sale or RENT for to-rent.
  5. Set maxItems and maxPages for a small test first.
  6. Keep scrapeDetails enabled for DE / AT / Fotocasa when you need full enrichment. Habitaclia is SRP-only by design (Imperva on many detail pages).
  7. Prefer Apify RESIDENTIAL proxy with country matching the market (DE / AT / ES).
  8. 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:

FieldDescription
countryDE, AT, ES, or HABITACLIA
marketSpain only: fotocasa or habitaclia
startUrlsOptional search (SRP) or detail (LDP) URLs
locationPlace alias (berlin, wien, madrid…)
channelBUY or RENT
propertyTypeFull 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.
maxItemsMaximum listings to save
maxPagesMaximum search pages
scrapeDetailsFetch LDP enrichment (forced off for Habitaclia)
requestDelayMillisDelay before each browser navigation
proxyConfigurationApify 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, warnings
  • ERROR_SUMMARY — present when a run fails

How much does it cost to scrape ImmobilienScout24?

This Actor uses Pay per event pricing:

EventPrice
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: 1 and maxItems: 3–10 to validate market + proxy.
  • Match proxy country to the portal: DE→DE, AT→AT, Fotocasa/Habitaclia→ES.
  • Keep requestDelayMillis around 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.

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:

MethodPathDescription
GET/Service info
GET/healthHealth check
GET/input-exampleLow-cost sample input
GET/openapi.jsonDeployed 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.