ImmobilienScout24 Scraper 🇩🇪 (market data + agent contact)
Pricing
from $1.22 / 1,000 listing founds
ImmobilienScout24 Scraper 🇩🇪 (market data + agent contact)
Search ImmobilienScout24.de and get clean JSON: price, size, rooms, address with zip code, energy class, features and the listing agent. Rent or buy, any German city. Monitor mode alerts you on new listings only, with a Slack digest. One all-in price per listing, platform usage included.
Pricing
from $1.22 / 1,000 listing founds
Rating
0.0
(0)
Developer
Tagada Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
6 days ago
Last modified
Categories
Share
ImmobilienScout24 Scraper
Search ImmobilienScout24.de, Germany's biggest property portal, and get every listing as a clean row of data: price, living space, rooms, the full address with zip code, features, energy data and the agent behind the listing. Works for rentals and sales in any German city, down to a single district. Run it once for a market snapshot, or on a schedule with monitor mode to get only the listings that are new since your last run, straight to Slack if you want.
No API key, no setup, nothing to configure. Reliability is handled for you, and you only pay for listings you actually get back.
Who uses this
- Property investors watching a city or district for new deals, with price per square meter and year built ready to filter in a spreadsheet.
- Relocation and rental agencies who need new rental listings the hour they appear, not when the email alert digest arrives.
- Agents and appraisers pulling comparables for a valuation: asking prices, sizes and conditions for a whole neighbourhood in one run.
- Market researchers and proptech teams tracking rents, supply and time-on-market across German cities.
- Data teams who want German real estate as tidy JSON instead of copying listings by hand.
What you get
One record per listing:
| Field | Description |
|---|---|
title, url | Listing title and direct link |
price | Cold rent for rentals, purchase price for sales (€) |
totalRent, serviceCharge | Warm rent and service charge for rentals |
livingSpace, rooms, plotArea | Size in m² and room count |
street, houseNumber, zipCode, city, district, quarter, state | Full address, as exact as the listing publishes it |
lat, lon | Coordinates |
yearConstructed, condition, flatType | Building data |
heatingType, energyEfficiencyClass | Energy data |
hasBalcony, hasCellar, hasLift, hasKitchen, hasGarden, parkingSpace | Features |
agentName, agentCompany, agentRating | Who advertises it, or private offer |
isPrivateOffer, isNewConstruction, buyerCommission | Offer flags |
description | The listing text |
isNew | In monitor mode, whether the listing is new since the last run |
Input examples
Apartments for rent in Berlin, newest first:
{"location": "Berlin","propertyType": "apartment-rent","maxListings": 100}
Houses for sale up to 800k in a Hamburg district, at least 4 rooms:
{"location": "Hamburg Blankenese","propertyType": "house-buy","priceMax": 800000,"roomsMin": 4}
Scheduled monitor that posts new Munich rentals to Slack:
{"location": "München","propertyType": "apartment-rent","priceMax": 2000,"monitorMode": true,"webhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ"}
Every input
| Input | Type | Default | What it does |
|---|---|---|---|
location | string | (required) | A German city, district or area, spelled as on immobilienscout24.de (Berlin, München, Hamburg Blankenese). |
propertyType | string | apartment-rent | Rent or buy, and what: apartments, houses, investment properties, building plots or parking. |
priceMin | integer | none | Minimum cold rent (rentals) or purchase price (sales), in €. |
priceMax | integer | none | Maximum cold rent (rentals) or purchase price (sales), in €. |
roomsMin | integer | none | Minimum number of rooms. |
sizeMin | integer | none | Minimum living space in m². |
withDetails | boolean | true | Open every listing for the full record: exact street and zip, service charge, year built, features, energy data and the agent. Off gives you faster list-level rows (price, size, rooms, approximate address). |
maxListings | integer | 100 | How many listings to return, newest first. The ceiling depends on withDetails: 400 with it on, 5,000 with it off. A higher number is lowered to the ceiling for the mode, with a line in the log. |
monitorMode | boolean | false | Return and charge for newly published listings only, across scheduled runs. |
webhookUrl | string | none | Where monitor mode posts its digest of new listings (Slack incoming webhook or any endpoint taking {"text": "..."}). |
How monitor mode works
Turn on monitorMode and schedule the actor (hourly or daily). The first run
records the current listings as a baseline. Every run after that returns, and
charges for, only listings that are new since the previous run, and posts them
to your webhook if you set one. In a market where the good apartments are gone
in hours, being first matters; a scheduled monitor run costs you a handful of
new listings, not the whole market each time.
Output sample
{"id": "156234789","url": "https://www.immobilienscout24.de/expose/156234789","title": "Helle 3-Zimmer-Wohnung mit Balkon in Prenzlauer Berg","propertyType": "apartment-rent","price": 1480,"totalRent": 1795,"serviceCharge": 315,"livingSpace": 86.5,"rooms": 3,"addressLine": "Sredzkistraße 14, 10435 Berlin","street": "Sredzkistraße","houseNumber": "14","zipCode": "10435","city": "Berlin","district": "Prenzlauer Berg","quarter": "Pankow","state": "Berlin","lat": 52.5389,"lon": 13.4188,"yearConstructed": 1904,"condition": "Modernisiert","flatType": "Etagenwohnung","heatingType": "Zentralheizung","energyEfficiencyClass": "D","hasBalcony": true,"hasCellar": true,"hasLift": false,"hasKitchen": true,"hasGarden": false,"parkingSpace": "Keine","petsAllowed": "Nach Vereinbarung","isPrivateOffer": false,"isNewConstruction": false,"buyerCommission": false,"agentName": "Julia Brandt","agentCompany": "Brandt Immobilien GmbH","agentRating": 4.6,"pictureUrl": "https://pictures.immobilienscout24.de/listings/8a1b2c3d.jpg","pictureCount": 12,"publishedText": "Heute","isNew": true,"retrievedAt": "2026-08-05T09:14:22.317Z"}
Pricing
You pay per listing returned, platform usage included in the price. No subscription. Users on higher Apify plans get automatic discounts.
| Event | Price | When |
|---|---|---|
| Run started | $0.005 | Flat, once per run |
| Listing found | $1.75 per 1,000 | Per listing returned with its data |
| Digest sent | $0.03 | Monitor mode only, per Slack/webhook digest actually posted |
FAQ
Which locations work? Any city, district or area on immobilienscout24.de, for example "Berlin", "Frankfurt am Main" or "München Schwabing". The actor resolves the name the same way the site's own search box does.
Rent or buy? Both. Pick a propertyType: apartments and houses for rent or
sale, plus investment properties, building plots and parking.
How exact are the addresses? As exact as the listing publishes. Most agent listings carry the street and house number; some show only the zip code and district, and the record then says so.
Do I need an API key, account or proxy? No. Nothing to set up. The site limits how much a single address can pull, and the actor spreads its requests for you so large and frequent runs keep working. That is included in the price per listing.
What does "Full details per listing" do? With it on (the default), every listing is opened for the complete record including exact address, service charge, year built, features and the agent. Turn it off for faster list-level runs with just price, size, rooms and the approximate address.
How many listings can one run return? It depends on withDetails. With
it on (the default) the ceiling is 400, which is what a run delivers inside the
default one-hour run timeout when every listing costs a second request to its
expose page. Turn it off and the ceiling is 5,000, because those rows already
come back in the search response. Ask for more than the mode allows and the
run lowers it and says so in the log. For the big jobs raise the run timeout
too (Run options → Timeout); if a run does reach its time limit it stops in
time, keeps and charges everything already collected, and says so in its
status message — listings it did not get to open ship with their list-level
fields.
Does it cover ImmobilienScout24.ch? No, this actor is for the German site (.de) only.
ImmobilienScout24 scraper, immoscout24 data, German real estate data, Wohnung mieten Berlin data, Immobilien scraper, German property listings, real estate monitoring Germany, immo data extraction, apartment listings API Germany.