ImmobilienScout24 Scraper - Germany Real Estate avatar

ImmobilienScout24 Scraper - Germany Real Estate

Pricing

from $1.50 / 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 $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

16

Total users

5

Monthly active users

3 days ago

Last modified

Features

Limited permissions

Share

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

Extract structured German real-estate listings from ImmobilienScout24 (immobilienscout24.de) — Germany's #1 property marketplace — without writing code. This ImmobilienScout24 scraper lets you scrape ImmobilienScout24 apartments (Wohnungen) and houses (Häuser), for rent (mieten) and for sale (kaufen), with full property intelligence: price, Warmmiete/Kaltmiete, living space (m²), rooms, energy efficiency class (Energieausweis), GPS coordinates, high-res photos, agent contact, private-seller vs. agency (Makler) detection, and price-drop signals (Preissenkung).

Export every result to JSON, CSV, Excel, or API with 1,000+ results pagination unlocked.

Apify Actor


⚡ At a glance

FeatureDetails
Target PlatformImmobilienScout24.de (ImmoScout24 Germany)
Listing TypesApartments for Rent (wohnung-mieten), Apartments for Sale (wohnung-kaufen), Houses for Rent (haus-mieten), Houses for Sale (haus-kaufen)
Core FieldsScout ID, URL, Title, Price (€), Living Space (m²), Rooms, Address, GPS Coordinates (latitude/longitude), Photos
Detail EnrichmentbaseRent (Kaltmiete), totalRent (Warmmiete), serviceCharge (Nebenkosten), pricePerSqm, Year Built, Condition, Heating, Energy Class, Amenities, Agent Name & Company
Lead-Gen SignalsPrivate vs. Agency (isPrivate / onlyPrivate) + Price Reduction Detection (priceReduced, originalPrice, reductionPercentage)
Search Inputs34-City German Dropdown + Transaction/Property Selectors OR Custom startUrls (/Suche/de/...)
Pagination & ScaleAutomatic multi-page extraction (50 listings/page, 1,000+ listings per run, deduplicated by Scout ID)
Export FormatsJSON, CSV, Excel (XLSX), XML, HTML, RSS, and Apify REST API

📋 Table of contents


🔎 Why scrape ImmobilienScout24?

ImmobilienScout24 (IS24) is the undisputed real-estate market leader in Germany, hosting over one million active residential listings across Berlin, Munich, Hamburg, Cologne, Frankfurt, Stuttgart, Düsseldorf, Leipzig, and every German Bundesland. It is the primary source of live German housing intelligence: asking rents (Kaltmiete and Warmmiete), purchase prices per square meter, building energy efficiency ratings, and seller classification.

Collecting German property data manually is slow and error-prone. Listings rotate constantly, major cities span dozens of pagination pages, and key metrics like Nebenkosten, Baujahr, energy demand, and price reductions live inside individual exposé views. This ImmobilienScout24 data extractor automates both search pagination and exposé enrichment into one structured dataset.

Common reasons teams scrape ImmobilienScout24:

  • 📈 Track Rent & Purchase Price per m² — monitor Kaltmiete, Warmmiete, and purchase prices across German cities, districts (Bezirke), and postal codes.
  • 🏷️ Spot Price Drops (Preissenkung) Early — identify motivated sellers and discounted investment properties using priceReduced, originalPrice, and reductionPercentage.
  • 🧑‍💼 Source Off-Market Private Seller Leads (FSBO) — filter with onlyPrivate: true to extract listings posted directly by private owners (privater Anbieter) without a broker (Makler).
  • 🏢 Monitor Competitor Broker Inventory — track which real-estate agencies (agentCompany, agentName) dominate specific German neighborhoods.
  • 🗺️ Geospatial & Yield Screening — map active supply by exact latitude and longitude coordinates and compare asking rents against purchase prices.
  • 🤖 PropTech & Automated Valuation Models (AVM) — feed clean German real-estate attributes (living space, year built, condition, heating type, energy class) into valuation pipelines.

✨ What this ImmobilienScout24 scraper does

  • ✅ All 4 Major Residential Categories — scrapes apartments for rent (Wohnung mieten), apartments for sale (Wohnung kaufen), houses for rent (Haus mieten), and houses for sale (Haus kaufen).
  • ✅ 34-City German Dropdown + Custom URLs — pick any major German city from the dropdown, or paste any number of /Suche/de/... URLs from your browser (including district-level searches) into startUrls.
  • ✅ Deep 1,000+ Pagination — automatically determines totalResults and numberOfPages (50 listings per page) and paginates until your maxItems target is reached.
  • ✅ Strict Deduplication by Scout ID — tracks every exposé ID across pages and multiple search URLs so duplicate listings are never saved.
  • ✅ Full Exposé Enrichment (includeDetails) — extracts Kaltmiete (baseRent), Warmmiete (totalRent), Nebenkosten (serviceCharge), Kaution (deposit), pricePerSqm, bedrooms, bathrooms, floor, yearBuilt, condition, interiorQuality, heatingType, energySource, energyEfficiencyClass, availableFrom, pets, features, description, and agentName / agentCompany.
  • ✅ Private Seller Filter (onlyPrivate) — optionally skip agency listings and collect only private-owner properties, automatically scaling pagination depth so your target item count is still met.
  • ✅ High-Resolution Usable Photo URLs — resolves dynamic image dimension placeholders into ready-to-load 800x600 WebP/JPEG URLs.

🎯 Use cases

  • 🏢 German Real-Estate Brokers (Makler) — run daily scheduled scrapes with onlyPrivate: true in your target city to discover private owners selling or renting without an agent.
  • 📊 PropTech & Market Analysts — benchmark Mietspiegel trends, energy-class price premiums (A+ vs F/G), and new-build (Erstbezug) supply across Germany's top 34 cities.
  • 🎯 B2B Lead Generation Teams — build verified directories of active German property agencies (agentCompany) and individual agents (agentName) along with their live portfolio size.
  • 🏦 Real-Estate Investors & Family Offices — screen thousands of apartments and multi-family houses for high gross rental yields and flagged price reductions (priceReduced: true).
  • 🏗️ Relocation & Corporate Housing Providers — aggregate available apartments in Berlin, Munich, or Frankfurt matching client room and budget criteria.

📥 Input configuration

Start with the built-in city and property dropdowns, or paste one or more ImmobilienScout24 search URLs for custom districts. Running with an empty input {} returns a fast, diverse 100-listing sample across 8 German cities.

FieldTypeDefault / PrefillDescription
regionstringPrefill: "/de/berlin/berlin"Select a German city/region from the 34-city dropdown (e.g., Berlin, Hamburg, Munich, Cologne, Frankfurt). Ignored when startUrls is provided.
transactionTypestringPrefill: "rent"Choose "rent" (mieten) or "buy" (kaufen).
propertyTypestringPrefill: "apartment"Choose "apartment" (Wohnung) or "house" (Haus).
startUrlsarrayPrefill: Berlin rent URLOptional power-user list of immobilienscout24.de/Suche/de/... URLs. Extracts region and listing type directly from each URL. Overrides the dropdowns above when set.
maxItemsintegerDefault: 0 (Prefill: 100)Maximum number of listings to collect across all searches. 0 = no limit (collects all available listings, up to thousands per city).
includeDetailsbooleantrueFetch each listing's exposé detail view to add Warmmiete, Nebenkosten, year built, heating, features, agent info, and price-drop metrics. Disable for ultra-fast search-only runs.
onlyPrivatebooleanfalseSave only listings from private owners (isPrivate: true), skipping real-estate agencies (Makler).
proxyConfigurationobject{ "useApifyProxy": true }Apify Proxy configuration. Default datacenter proxies work out of the box.
maxConcurrencyinteger8 (1–30)Maximum parallel requests.

Example 1 — Apartments for rent in Berlin with full exposé details

{
"startUrls": [
{ "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten" }
],
"maxItems": 500,
"includeDetails": true,
"onlyPrivate": false,
"proxyConfiguration": { "useApifyProxy": true },
"maxConcurrency": 8
}

Example 2 — 1,000+ multi-city pull (Munich, Hamburg & Frankfurt apartments for sale)

{
"startUrls": [
{ "url": "https://www.immobilienscout24.de/Suche/de/bayern/muenchen/wohnung-kaufen" },
{ "url": "https://www.immobilienscout24.de/Suche/de/hamburg/hamburg/wohnung-kaufen" },
{ "url": "https://www.immobilienscout24.de/Suche/de/hessen/frankfurt-am-main/wohnung-kaufen" }
],
"maxItems": 1500,
"includeDetails": true
}

Example 3 — Off-market FSBO private sellers only (onlyPrivate: true)

{
"region": "/de/nordrhein-westfalen/koeln",
"transactionType": "buy",
"propertyType": "apartment",
"onlyPrivate": true,
"includeDetails": true,
"maxItems": 200
}

📤 Output sample & field reference

Each scraped property is stored as a structured JSON object. Below is a real record from a Berlin apartment rental run featuring a detected price drop:

{
"id": "164121835",
"url": "https://www.immobilienscout24.de/expose/164121835",
"title": "Möbliertes Studio Standard mit Gemeinschaftsflächen: Padelplatz, Fitness, Dachterrasse & mehr",
"realEstateType": "apartmentrent",
"priceLabel": "1.039 €",
"price": 1039,
"livingSpace": "28 m²",
"livingSpaceValue": 28,
"rooms": "1 Zi.",
"roomsValue": 1,
"energyEfficiencyClass": "B",
"isPrivate": false,
"advertiserType": "agency",
"isNewObject": false,
"isProject": false,
"published": "vor einem Jahr",
"address": "Buschkrugallee 64, 12359 Berlin, Britz (Neukölln)",
"latitude": 52.45779,
"longitude": 13.4465,
"titlePicture": "https://pictures.immobilienscout24.de/listings/01b80b4a-1989-4e16-b254-3ee94ee26b59-2116214270.png/ORIG/resize/800x600>/format/webp/quality/80",
"pictures": [
"https://pictures.immobilienscout24.de/listings/01b80b4a-1989-4e16-b254-3ee94ee26b59-2116214270.png/ORIG/legacy_thumbnail/800x600/format/webp/quality/80"
],
"listingType": "XL",
"priceReduced": true,
"scrapedAt": "2026-11-10T02:30:00.000Z",
"baseRent": "1.039 €",
"totalRent": "1.190 €",
"serviceCharge": "76 €",
"pricePerSqm": "37,11 €/m²",
"bedrooms": "1",
"bathrooms": "1",
"yearBuilt": "2026",
"condition": "Erstbezug",
"heatingType": "Fußbodenheizung",
"energySource": "Fernwärme",
"pets": "Ja",
"agentName": "Frau Beata Sanders",
"agentCompany": "Momento Berlin",
"features": ["Balkon/Terrasse", "Personenaufzug", "Einbauküche"],
"description": "Objektbeschreibung Kontaktieren Sie uns jetzt...",
"originalPrice": "1.139 €",
"reductionPercentage": "-9 %",
"details": {
"Kaltmiete": "1.039 €",
"Nebenkosten": "76 €",
"Gesamtmiete": "1.190 €",
"Baujahr": "2026"
}
}

🗂️ Field reference & coverage table

🏠 Core Property & Pricing Fields (Search & Detail)
FieldTypeCoverageDescription
idstring🟢 High (100%)Unique ImmobilienScout24 Scout-ID.
urlstring🟢 High (100%)Direct link to the public exposé page on immobilienscout24.de.
titlestring🟢 High (100%)Property listing headline.
realEstateTypestring🟢 High (100%)Category code: apartmentrent, apartmentbuy, houserent, or housebuy.
pricenumber🟢 High (100%)Parsed numeric price in EUR (rent or purchase price).
priceLabelstring🟢 High (100%)Formatted German price string (e.g., 1.039 €).
livingSpace / livingSpaceValuestring / number🟢 High (100%)Living area formatted (28 m²) and numeric (28).
rooms / roomsValuestring / number🟢 High (100%)Room count formatted (2,5 Zi.) and numeric (2.5).
isPrivate / advertiserTypeboolean / string🟢 High (100%)Identifies private owners (true / "private") vs. agencies (false / "agency").
isNewObject / isProjectboolean🟢 High (100%)Flags for newly constructed properties or multi-unit development projects.
publishedstring🟢 High (100%)Relative publication age (e.g., "vor 2 Stunden", "vor 3 Tagen").
listingTypestring🟢 High (100%)IS24 placement tier (S, M, L, XL, PROJECT).
📍 Location & Media Fields
FieldTypeCoverageDescription
addressstring🟢 High (100%)Street, postal code, city, and district (or district-only when the seller hides the street number).
latitude / longitudenumber🟢 High (~87%)Exact WGS84 GPS coordinates when street-level address is disclosed by the seller.
titlePicturestring🟢 High (~99%)Cover image URL.
picturesarray🟢 High (~99%)Array of high-resolution 800x600 property photo URLs.
🔍 Rich Exposé Detail Fields (includeDetails: true)
FieldTypeCoverageDescription
baseRent / totalRentstring🟢 High (Rentals)Kaltmiete (cold rent) and Warmmiete / Gesamtmiete (total rent).
serviceCharge / depositstring🟡 ConditionalNebenkosten (ancillary costs) and Kaution (security deposit).
pricePerSqmstring🟡 ConditionalPrice per square meter (Preis/m²).
bedrooms / bathroomsstring🟡 ConditionalNumber of Schlafzimmer and Badezimmer.
floor / apartmentTypestring🟡 ConditionalFloor level (Etage) and apartment sub-type (Dachgeschoss, Erdgeschoss, Maisonette).
plotAreastring🟡 ConditionalLand plot area (Grundstücksfläche, primarily on house listings).
yearBuilt / conditionstring🟢 High (~80%)Construction year (Baujahr) and property state (Erstbezug, gepflegt, saniert).
interiorQuality / heatingTypestring🟡 ConditionalQualität der Ausstattung and heating system (Fußbodenheizung, Zentralheizung).
energyEfficiencyClassstring🟡 ConditionalOfficial German energy rating (A+, A, B, C, D, E, F, G, H).
energySource / energyDemand / energyConsumptionstring🟡 ConditionalWesentliche Energieträger, Endenergiebedarf, or Endenergieverbrauch.
availableFrom / petsstring🟡 ConditionalMove-in availability (Bezugsfrei ab) and pet policy (Haustiere).
featuresarray🟢 High (~90%)Array of amenity checkmarks (e.g., ["Balkon/Terrasse", "Einbauküche", "Personenaufzug", "Keller"]).
descriptionstring🟢 High (~98%)Full combined German property description (Objektbeschreibung, Ausstattung, Lage).
agentName / agentCompanystring🟢 High (~95%)Contact person and real-estate agency name.
priceReducedboolean🟢 High (100%)true when IS24 flags an active price drop on the listing.
originalPrice / reductionPercentagestring🟡 ConditionalPrevious asking price and percentage discount (populated when priceReduced: true).
detailsobject🟢 High (100%)Raw German key-value attribute dictionary from the exposé.

🏷️ Private vs. agency & price drops

Two high-margin intelligence signals included out of the box:

  1. Private Sellers vs. Agencies (Makler) Every record includes isPrivate: true/false and advertiserType: "private" | "agency". Enabling onlyPrivate: true filters out all commercial brokers and automatically increases pagination depth by 6× so your run collects a deep dataset of pure private-owner listings.
  2. Price-Drop Detection (Preissenkung) When a seller lowers the asking price on ImmobilienScout24, priceReduced turns true and the scraper captures both originalPrice (e.g., "1.139 €") and reductionPercentage (e.g., "-9 %").

🔁 Pagination & 1,000+ scale

  • 50 Listings per Search Page — page 1 reports the exact totalResults and numberOfPages for your city or URL, then queues pages 2..N automatically.
  • 1,000+ Multi-Page & Multi-City Scale — set maxItems: 1000 (or 0 for unlimited) to extract thousands of properties from major markets like Berlin (~6,000+ listings) or across multiple startUrls.
  • Global Deduplication — an in-memory seenIds set ensures 0% duplicate Scout IDs across all pages and searches.
  • Smart Empty-Run Diversity — when launched with no parameters ({}), the actor samples across 8 German cities and both rent/buy categories (EMPTY_RUN_CAP = 100), while honoring any explicit maxItems > 100 without per-city clamping.

⚙️ How to use

  1. Open ImmobilienScout24 Scraper in Apify Console.
  2. Choose a location: either pick a city from the City / Region dropdown (plus Rent or Buy and Apartment or House), or paste one or more /Suche/de/... URLs into Start URLs.
  3. Set Max items (e.g., 100 for a quick test, 1000 for a deep city pull, or 0 for all listings).
  4. Choose whether to keep Scrape full listing details (includeDetails) enabled.
  5. Click Start and export your results to JSON, CSV, Excel, or API.

💡 Tips for German property data

  • Use includeDetails: false for ultra-fast market scans — if you only need price, m², rooms, GPS coordinates, and private-vs-agency flags for 5,000 listings, disabling includeDetails fetches 50 listings per request and finishes in seconds.
  • Combine district URLs in startUrls — paste multiple neighborhood URLs (e.g., Berlin-Mitte, Kreuzberg, Charlottenburg) into startUrls to build a custom multi-district feed in one run.
  • Schedule daily runs for FSBO lead generation — combine onlyPrivate: true with an Apify Schedule and a webhook to alert your sales team whenever new private listings appear.

⚠️ Honest limitations

  • Germany (immobilienscout24.de) Only — this actor targets the German portal; Austrian (.at) and Swiss (.ch) portals use different backends.
  • Seller-Hidden Street Numbers — when a seller chooses "Adresse nicht veröffentlichen" on IS24, address contains only the postal code, city, and district, and latitude/longitude are omitted by the platform (~13% of listings).
  • Phone Numbers — direct phone numbers are gated behind interactive contact forms on IS24; the actor extracts agentName, agentCompany, and the direct url.

❓ FAQ

How many listings can I scrape per run?

There is no hard limit. Setting maxItems: 0 (or 1000, 5000, etc.) paginates through all available result pages (50 listings per page) until the search is exhausted or your target is reached.

Do I need residential proxies or an ImmobilienScout24 account?

No account or login is ever required, and standard Apify datacenter proxies (enabled by default) work reliably and cost-effectively.

How does onlyPrivate: true affect pagination?

Because private sellers typically represent 10–20% of German listings, enabling onlyPrivate: true automatically scales up the number of search pages scanned so you still reach your requested maxItems.

Can I scrape commercial properties (Gewerbe) or land plots (Grundstücke)?

The dropdown builder and URL parser focus on the four core residential categories (wohnung-mieten, wohnung-kaufen, haus-mieten, haus-kaufen).

What export formats are available?

Dataset items can be downloaded as JSON, CSV, Excel (XLSX), XML, HTML, or RSS, or consumed programmatically via the Apify REST API, Python/Node.js SDKs, Make, Zapier, n8n, and Google Sheets.

How can I run the scraper from Python or Node.js?

You can trigger runs and stream dataset items using the official apify-client SDKs or standard HTTP requests.

Python API Example
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("haketa/immobilienscout24-scraper").call(run_input={
"region": "/de/berlin/berlin",
"transactionType": "rent",
"propertyType": "apartment",
"maxItems": 500,
"includeDetails": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['id']} | {item['title']} | {item['price']} € | {item['livingSpace']} | {item['address']}")
JavaScript / Node.js API Example
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('haketa/immobilienscout24-scraper').call({
region: '/de/bayern/muenchen',
transactionType: 'buy',
propertyType: 'apartment',
maxItems: 500,
includeDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Saved ${items.length} ImmobilienScout24 listings.`);

🔌 Integrations & automated property monitoring

IntegrationReal-Estate Automation Workflow
Google SheetsSync new Berlin, Munich, or Hamburg listings directly into a collaborative deal-screening spreadsheet.
Make / Zapier / n8nTrigger instant CRM lead creation when a private seller (isPrivate: true) or price reduction (priceReduced: true) is detected.
Slack / Email AlertsSchedule hourly runs and alert acquisition teams when apartments below a target pricePerSqm hit the market.
PostgreSQL / BigQueryIngest weekly multi-city snapshots to track German rental indices (Mietspiegel) and energy-label pricing trends.

Explore our other European & global real-estate scrapers on Apify:


📋 Changelog

v1.2 (2026-11) — Unlocked 1,000+ Pagination, Global Deduplication & Deep FSBO Scaling

  • Unlocked 1,000+ Deep Pagination: Removed per-search sample clamping when maxItems > 100 so high-volume runs (1,000+ listings) paginate smoothly across all available pages and cities.
  • Global Scout-ID Deduplication: Added cross-page and cross-URL seenIds deduplication in the search handler, guaranteeing 0% duplicate listings.
  • Smart onlyPrivate Page Scaling: Automatically scales search page depth by 6× when onlyPrivate: true is enabled so FSBO lead-generation runs reach their full target count.
  • Documentation Upgrade: Added ⚡ At a glance summary, emoji-grouped field tables with coverage indicators, and inline changelog.

v1.1 (2026-10) — German Locale Pinning & Image URL Normalization

  • Forced de-DE locale headers so prices, square meters, and attribute labels parse identically regardless of proxy exit region.
  • Resolved %WIDTH%x%HEIGHT% image URL placeholders to ready-to-use 800x600 URLs.

v1.0 (2026-06) — Initial Release

  • Initial release with 34-city German dropdown, startUrls parser, exposé detail enrichment, private-seller detection, and price-drop signals.
⌂ 换网址