ImmobilienScout24 Scraper - Germany Real Estate avatar

ImmobilienScout24 Scraper - Germany Real Estate

Pricing

from $0.70 / 1,000 results

Go to Apify Store
ImmobilienScout24 Scraper - Germany Real Estate

ImmobilienScout24 Scraper - Germany Real Estate

ImmobilienScout24 scraper & API for German real estate: search apartments & houses for rent & buy and export price, m², rooms, energy class, address, GPS, agent-vs-private and price drops. Germany property market data and real-estate lead generation — fast, no login.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

ImmobilienScout24 Scraper 🇩🇪 — Germany Real Estate Data (Rent & Buy)

Extract clean, structured real-estate data from ImmobilienScout24 — Germany's #1 property portal — without writing any code. Scrape apartments and houses, for rent (mieten) and for sale (kaufen) with full details: price, living space (m²), rooms, energy class (Energieausweis), GPS coordinates, photos, agent contact, and — uniquely — private-seller vs agency (Makler) detection and price-drop signals (Preissenkung).

This scraper is fast, cheap and doesn't get blocked: instead of fighting the website's aggressive bot protection (AWS WAF / Akamai / DataDome), it pulls data from ImmobilienScout24's official mobile-app JSON API — the same backend the IS24 iPhone/Android app uses. No CAPTCHAs, no headless browser, no silent empty results.

💡 Why this actor? Most IS24 scrapers either get blocked (empty rows, null prices) or are slow Playwright bots. This one uses the block-free mobile API for reliable, complete data — and adds lead-gen fields (private vs agency) and market signals (price drops) the others don't.


📋 Table of contents


What does it do?

ImmobilienScout24 lists well over a million properties across Germany. This actor turns any IS24 region search into a structured dataset you can download as JSON, CSV, Excel, XML or HTML, or pull from the Apify API.

You can scrape:

  • Apartments for rent (Wohnung mieten)
  • Apartments for sale (Wohnung kaufen)
  • Houses for rent (Haus mieten)
  • Houses for sale (Haus kaufen)
  • Any region — a whole city, a district, or a wider area
  • Optional full detail per listing: costs breakdown, year built, condition, heating, features, description, agent, and price-drop info

For every property you get price, living space (Wohnfläche), rooms (Zimmer), energy efficiency class, full address with GPS coordinates, photos, and whether the listing is from a private owner (privater Anbieter) or a real-estate agent (Makler).


Use cases

🏢 Real-estate agents & brokers

  • Monitor competitors' listings, asking prices and inventory by city or district.
  • Find private sellers (FSBO) to approach for new mandates.
  • Track price drops to spot motivated sellers.

📊 Market analysts & PropTech

  • Track rent and price per m² across cities and districts.
  • Build automated valuation models and market reports.
  • Analyse supply by property type, condition and energy efficiency.

🎯 Lead generation & sales

  • Extract agent name + company for B2B outreach.
  • Filter to private sellers only for off-market opportunities.
  • Push leads into your CRM via the Apify API or integrations.

🏦 Investors & developers

  • Screen entire cities for properties matching your criteria.
  • Map listings by GPS coordinates for geographic analysis.
  • Catch reduced-price (Preissenkung) listings early.

How to use it (step by step)

No coding required.

  1. Click Try for free / Start.
  2. Easiest method — paste a URL. Open immobilienscout24.de, search for what you want (set the city/district and rent vs buy), then copy the URL from your browser into the Search URLs field. Example: https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten.
  3. Or use the search builder. Leave the URL field empty and set Region (e.g. /de/bayern/muenchen), Rent or Buy, and Apartment or House.
  4. Set Max items (start with 100 for a test).
  5. Keep Scrape full listing details on for the richest data (or turn it off for a faster, cheaper run).
  6. Click Save & Start, then export the results as CSV, JSON, Excel, etc.

🔎 Tip: You can browse and search immobilienscout24.de normally in your own browser — only automated bots get blocked. So just search there, copy the URL, and paste it here.


Input parameters

FieldTypeDescription
startUrlsarrayIS24 search-result URLs (e.g. .../Suche/de/berlin/berlin/wohnung-mieten). Region + listing type are read from the URL. When set, the builder fields are ignored.
geocodesstringBuilder only. Region path as in IS24 URLs, e.g. /de/berlin/berlin, /de/bayern/muenchen. A numeric geocode ID also works.
transactionTypestringBuilder only. rent (mieten) or buy (kaufen).
propertyTypestringBuilder only. apartment (Wohnung) or house (Haus).
maxItemsintegerMax listings to scrape. 0 = no limit. Default 100.
includeDetailsbooleanFetch each listing's detail page for rich fields + price-drop detection. Default true.
onlyPrivatebooleanSave only private-owner listings (skip agents). Default false.
proxyConfigurationobjectProxy settings. Default: Apify Datacenter proxy (enough — the mobile API has no anti-bot).
maxConcurrencyintegerMax parallel requests. Default 8.

Input examples

1) Apartments for rent in Berlin (paste a browser URL)

{
"startUrls": [
{ "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten" }
],
"maxItems": 500
}

2) Houses for sale in Munich (search builder)

{
"geocodes": "/de/bayern/muenchen",
"transactionType": "buy",
"propertyType": "house",
"maxItems": 300
}

3) Private sellers only, with full details (lead generation)

{
"startUrls": [{ "url": "https://www.immobilienscout24.de/Suche/de/hamburg/hamburg/wohnung-kaufen" }],
"onlyPrivate": true,
"includeDetails": true,
"maxItems": 200
}

4) Fast, search-only run (no detail requests)

{
"geocodes": "/de/berlin/berlin",
"transactionType": "rent",
"propertyType": "apartment",
"includeDetails": false,
"maxItems": 1000
}

Output — data fields

Every scraped listing is one dataset record. Core fields (always present from the search):

FieldDescription
idImmobilienScout24 listing ID (Scout-ID)
urlDirect URL to the listing's expose page
titleListing title
realEstateTypeapartmentrent, apartmentbuy, houserent, housebuy
priceNumeric price (€) — rent or purchase price
priceLabelPrice as shown, e.g. 1.100 €
livingSpace / livingSpaceValueLiving space, e.g. 46,6 m² / 46.6
rooms / roomsValueRooms, e.g. 2 Zi. / 2
energyEfficiencyClassEnergy class A+–H
isPrivatetrue = private owner, false = agency
advertiserTypeprivate or agency
isNewObjectMarked as a new listing
isProjectPart of a new-build project
publishedRelative publish time (e.g. "vor 7 Monaten")
addressFull address line
latitude / longitudeGPS coordinates
titlePictureCover photo URL
picturesArray of photo URLs
listingTypeIS24 listing tier
priceReducedtrue if the price was reduced (see below)
scrapedAtISO timestamp

Extra fields when includeDetails is on:

FieldDescription
baseRentKaltmiete (cold rent)
totalRentWarmmiete / Gesamtmiete (warm rent)
serviceChargeNebenkosten
depositKaution
pricePerSqmPrice per m²
bedrooms / bathroomsSchlafzimmer / Badezimmer
floorEtage
yearBuiltBaujahr
conditionObjektzustand
interiorQualityQualität der Ausstattung
heatingTypeHeizungsart
energySourceWesentliche Energieträger
energyDemand / energyConsumptionEndenergiebedarf / -verbrauch
energyCertTypeEnergieausweistyp
availableFromBezugsfrei ab
petsHaustiere
featuresArray of amenities (balcony, lift, fitted kitchen, garden, …)
descriptionFull listing description text
agentName / agentCompanyContact agent and company
originalPriceOriginal price before reduction (if reduced)
reductionPercentagePrice reduction %, e.g. -2 %
detailsRaw label→value dictionary of all detail attributes (German labels)

Fields that aren't provided for a given listing are returned as null/empty so your columns always stay aligned.


Sample output record

{
"id": "163931526",
"url": "https://www.immobilienscout24.de/expose/163931526",
"title": "Erstbezug: 2 Zimmer Dachgeschoss mit großer Terrasse & Komplettküche",
"realEstateType": "apartmentrent",
"price": 1100,
"priceLabel": "1.100 €",
"livingSpace": "46,6 m²",
"livingSpaceValue": 46.6,
"rooms": "2 Zi.",
"roomsValue": 2,
"energyEfficiencyClass": "B",
"isPrivate": false,
"advertiserType": "agency",
"address": "Adolf-Heyden-Straße 7, 12555 Berlin, Köpenick",
"latitude": 52.44985,
"longitude": 13.56565,
"baseRent": "1.100 €",
"totalRent": "1.263 €",
"serviceCharge": "163 €",
"yearBuilt": "2026",
"condition": "Erstbezug",
"heatingType": "Fernwärme",
"features": ["Balkon/Terrasse", "Personenaufzug", "Einbauküche"],
"agentName": "Herr Ronny Jäckel",
"agentCompany": "MACANI Beteiligungs- und Entwicklungsgesellschaft mbH",
"priceReduced": true,
"originalPrice": "1.127,24 €",
"reductionPercentage": "-2 %",
"scrapedAt": "2026-06-04T12:00:00.000Z"
}

Private vs agency & price drops

Two things this actor surfaces that most don't:

  • Private vs agency (Makler): isPrivate: true marks a private owner — gold for agents hunting new mandates and for renters/buyers who want to avoid agency commission. Set onlyPrivate: true to get a clean private-seller list.
  • Price drops (Preissenkung): when a listing's price was reduced, priceReduced is true and you get originalPrice and reductionPercentage. Reduced-price listings often mean motivated sellers — a strong signal for buyers and investors.

Reliability — why it doesn't get blocked

The ImmobilienScout24 website is protected by AWS WAF / Akamai / DataDome. Browser-based scrapers hitting the website hit CAPTCHAs and frequently return silent empty rows (null price/area/rooms) — the #1 complaint about IS24 scrapers.

This actor avoids that entirely by using the official mobile-app JSON API (api.mobile.immobilienscout24.de), which:

  • Has no anti-bot challenge, no CAPTCHA, no login.
  • Returns clean structured JSON — fast and complete.
  • Needs no headless browser, so runs are cheap and quick.

Apify Datacenter proxies are enabled by default mainly to rotate IPs and avoid rate limits on large runs.


Tips & best practices

  • 🔗 Prefer pasting a browser URL — it captures the exact region and listing type with zero guesswork.
  • 🧪 Start with maxItems: 50 to confirm the output, then scale up.
  • Turn off includeDetails for the fastest, cheapest runs when you only need core fields (price, m², rooms, address, energy class).
  • 🧱 Split big cities by district for very large coverage and better throughput.
  • 💾 Use the Apify API / integrations to push results into Google Sheets, a database, or a webhook.
  • 🔁 Schedule runs to track new listings and price drops over time.

Frequently asked questions

Is scraping ImmobilienScout24 legal? This actor collects publicly available listing data. You are responsible for how you use it — respect GDPR, don't misuse personal data, and review IS24's terms. See Legal & responsible use.

Why didn't my run return results? Check that your Start URL is a /Suche/... search URL with a region and a type slug (wohnung-mieten, wohnung-kaufen, haus-mieten, haus-kaufen), or that your builder geocodes path is valid (copy it from an IS24 URL).

Can I scrape sold prices? No — ImmobilienScout24 doesn't publish sold/transaction prices. This actor covers active listings. It does, however, detect price reductions on active listings.

Can I get phone numbers? The mobile API exposes the agent's name and company; phone numbers are usually gated behind a contact action and are often not present.

What about Austria (.at) and Switzerland (.ch)? This version targets Germany (immobilienscout24.de). Other markets may be added later.

What export formats are supported? JSON, CSV, Excel, XML, HTML table, RSS — plus the Apify API and integrations (Google Sheets, Make, Zapier, webhooks, etc.).


This tool is intended for lawful purposes such as market research, competitor analysis and lead generation on publicly available data. You are solely responsible for ensuring your use complies with applicable laws (including GDPR when personal data is involved), ImmobilienScout24's terms of service, and any contractual obligations. Do not use the data for spam, harassment, or any unlawful purpose. When in doubt, consult a legal professional.


Changelog

0.1.0

  • Initial release: apartments & houses, rent & buy, via the block-free mobile JSON API.
  • Search by pasted URL or region builder; automatic pagination.
  • Core fields + optional rich detail (costs, year built, condition, heating, energy, features, description, agent).
  • Private-vs-agency detection, onlyPrivate filter, and price-drop (Preissenkung) detection.

Not affiliated with, endorsed by, or connected to ImmobilienScout24 or Immobilien Scout GmbH. All trademarks belong to their respective owners.