ImmoScout24 Scraper — German Rentals & Homes for Sale avatar

ImmoScout24 Scraper — German Rentals & Homes for Sale

Pricing

from $1.10 / 1,000 listing scrapeds

Go to Apify Store
ImmoScout24 Scraper — German Rentals & Homes for Sale

ImmoScout24 Scraper — German Rentals & Homes for Sale

Scrape ImmobilienScout24 rentals and homes for sale from search URLs or city + filters: cold/warm rent or price, costs, deposit, m², rooms, floor, address, coordinates, year built, energy, realtor.

Pricing

from $1.10 / 1,000 listing scrapeds

Rating

0.0

(0)

Developer

Trevor Ortega

Trevor Ortega

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Scrape ImmobilienScout24 (immobilienscout24.de), Germany's largest property portal: apartments and houses for rent and for sale, from any search URL or simply from a city, district or postcode plus filters. Get cold rent and warm rent (Kaltmiete / Warmmiete) or the purchase price, additional and heating costs, deposit, living space, rooms, floor, full address with district and postcode, coordinates, year built, energy certificate, features (balcony, built-in kitchen, lift, garden, cellar), available-from date, pets policy, description, all photos and the realtor's company.

The actor reads ImmoScout24's own app data instead of the website, so it is not stopped by the "Ich bin kein Roboter" page, runs on cheap datacenter proxies and needs no browser. Every page of a search is reachable: one search can return tens of thousands of listings. You pay only for the listings you get.

What data does ImmoScout24 Scraper extract?

From the result list (every listing):

FieldDescription
id, urlScout-ID and the expose link https://www.immobilienscout24.de/expose/<id>
titleListing headline
propertyType, offerType, categoryapartmentrent / apartmentbuy / houserent / housebuy ..., rent or buy, apartment / house
price, priceText, currencyMain price as shown in the result list: cold rent for rentals, purchase price for sales (whole euros); null for "price on request"
livingSpace, roomsLiving space in m² and number of rooms (e.g. 2.5)
address, street, postcode, city, districtAddress as published; fullAddress is false when the realtor shows only postcode and district
latitude, longitudeMap position when the realtor publishes the address
energyEfficiencyClassA+ ... H
realtorType, isPrivatecompany (agent, landlord company, developer) or private
isProject, houseBuilderOffer, houseBuilderUnit of a new-build project; "Hausbau" offer from a house builder and its name
published, publishedDate"vor 3 Tagen" as shown, and the date it works out to
titleImage, imagesPhoto URLs (1500x1000)
search, scrapedAtThe search the listing came from and the scrape time

With Include full listing details (on by default) each listing is opened once and you also get:

FieldDescription
coldRent, warmRent, additionalCosts, heatingCosts, heatingCostsIncludedKaltmiete, Gesamtmiete (warm), Nebenkosten, Heizkosten, whether heating is included in the Nebenkosten
deposit, depositTextKaution in euros ("3 Kaltmieten" is converted), plus the text as written
purchasePrice, pricePerSqm, hausgeld, buyerCommission, commissionNote, rentalIncomeSale prices: Kaufpreis, €/m², Hausgeld, Käuferprovision, rental income of let properties
propertySubtypeWohnungstyp / Haustyp: Etagenwohnung, Dachgeschoss, Penthouse, Doppelhaushälfte, Villa ...
usableArea, plotArea, bedrooms, bathroomsNutzfläche, Grundstück, Schlafzimmer, Badezimmer
floor, floorText, buildingFloorsEtage ("2 von 4" -> floor 2 of 4), number of floors of a house
availableFrom, availableFromDate"Bezugsfrei ab" as written ("sofort", "1.11.2026") and as ISO date
petsAllowedyes, no, negotiable (nach Vereinbarung) or null
balcony, builtInKitchen, lift, garden, cellar, guestToilet, stepFreeAccess, wbsRequired, newBuildingFeature flags (true/false)
features, parking, parkingSpaces, parkingPriceAll ticked features as listed, garage / parking type, count and price
constructionYear, lastRefurbishment, condition, interiorQuality, constructionPhase, heatingTypeBaujahr, Modernisierung, Objektzustand, Ausstattung, Bauphase, Heizungsart
energyCertificate, energyCertificateType, energySource, energyConsumption, energyDemand, energyCertificateYearEnergieausweis: availability, Verbrauchs- or Bedarfsausweis, Energieträger, kWh/(m²·a), year per certificate
stateBundesland
description, equipmentDescription, locationDescription, otherDescriptionObjektbeschreibung, Ausstattung, Lage, Sonstiges (German, as written)
images, imageCountAll photos
realtorCompany, realtorContactName, realtorProfileUrl, realtorRating, realtorRatingCount, realtorVerifiedRealtor company and published contact person, ImmoScout24 profile, rating, verified badge (empty for private landlords)
objectNumber, priceRating, publicationStateRealtor's object number, ImmoScout24's price rating ("Guter Preis"), active/inactive

How to scrape ImmobilienScout24 listings

  1. Run your search on immobilienscout24.de (location, price, rooms, area, features, sorting) and copy the address bar into Start URLs. Or type Locations ("Berlin", "Kreuzberg", "München Schwabing", "10115") and pick the Property type and filters.
  2. Set Max listings (your cost cap). Leave Include full listing details on for costs, features and the realtor, or switch it off for a cheaper, faster run.
  3. Click Start. Results appear in the Dataset tab; export them as JSON, CSV or Excel, or read them through the API.

Single listing links (https://www.immobilienscout24.de/expose/171666598) also work and return that listing with all details.

Input example

{
"startUrls": [{ "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?price=-1500.0&livingspace=50.0-" }],
"maxItems": 200,
"includeDetails": true
}

or by location and filters:

{
"locations": ["Hamburg", "München"],
"propertyType": "apartmentrent",
"maxPrice": 1400,
"priceType": "warm",
"minRooms": 2,
"features": ["balcony", "builtinkitchen"],
"sort": "newest",
"maxItems": 100
}

Output example

{
"id": "171620556",
"url": "https://www.immobilienscout24.de/expose/171620556",
"title": "Modernisierte Altbauwohnung mit Aufzug nahe Schloss Charlottenburg!",
"propertyType": "apartmentrent",
"offerType": "rent",
"category": "apartment",
"propertySubtype": "Etagenwohnung",
"price": 1300,
"priceText": "1.300 €",
"currency": "EUR",
"coldRent": 1300,
"warmRent": 1505,
"additionalCosts": 205,
"heatingCostsIncluded": true,
"deposit": 3900,
"pricePerSqm": 22.41,
"livingSpace": 58,
"rooms": 2,
"bedrooms": 1,
"bathrooms": 1,
"floor": 4,
"floorText": "4 von 5",
"availableFrom": "1.11.2026",
"availableFromDate": "2026-11-01",
"petsAllowed": "negotiable",
"balcony": true,
"builtInKitchen": true,
"lift": true,
"garden": false,
"cellar": true,
"features": ["Balkon/Terrasse", "Keller", "Personenaufzug", "Einbauküche", "Wohnberechtigungsschein erforderlich"],
"constructionYear": 1907,
"lastRefurbishment": 2024,
"condition": "Modernisiert",
"energyCertificateType": "Verbrauchsausweis",
"energySource": "Öl",
"energyConsumption": 126,
"energyEfficiencyClass": "E",
"address": "10589 Charlottenburg, Berlin",
"postcode": "10589",
"city": "Berlin",
"district": "Charlottenburg",
"state": "Berlin",
"fullAddress": false,
"realtorType": "company",
"realtorCompany": "GT24 Real Estate GmbH",
"realtorVerified": true,
"published": "vor 11 Stunden",
"publishedDate": "2026-10-09",
"description": "Diese stilvolle 2-Zimmer-Altbauwohnung befindet sich in einem repräsentativen Gebäude aus dem Jahr 1907 ...",
"imageCount": 14,
"detailsFetched": true
}

All of them. ImmoScout24's app search has no page limit: in testing, every one of the 854 pages (100 listings each) of "all apartments for rent in Germany" (85,000+ listings) was reachable. Results are fetched 100 per request, so even large runs are quick and cheap. Several start URLs or locations can be combined in one run; duplicates are removed.

Does it get warm rent, additional costs and the deposit?

Yes, with Include full listing details on (the default). The result list only shows the cold rent (or purchase price), living space and rooms; the details add warm rent, Nebenkosten, Heizkosten, deposit, floor, year built, energy certificate, all features, available-from date and pets policy. If a landlord writes "1.250 € zzgl. Heiz- und Nebenkosten" as the total rent, warmRent stays empty and the text is kept in warmRentText.

Does it work without login or a browser?

Yes. It uses the public data ImmoScout24 serves to its mobile app, with no account, cookies or "Plus" membership. The website's "Ich bin kein Roboter" bot check does not apply to it, and the default Apify datacenter proxy is enough: in testing (4,000+ requests) no request was blocked for good. ImmoScout24 does ask busy IPs to slow down (about 3 % of requests get an HTTP 429 answer); the actor paces itself and retries those automatically, so a run with details takes about 8 minutes per 1,000 listings, and about 35 seconds without details. If a run ever reports real blocks, switch the proxy to Residential (Germany).

Can I get the realtor's phone number or the landlord's name?

No. Phone numbers are only revealed on click on ImmoScout24 and are never collected. For realtors and housing companies the actor returns the company name, the published contact person and the ImmoScout24 profile link. For private landlords it returns no name, no street or house number, and coordinates rounded to about 1 km.

Monitor changes on a schedule

Turn on Only new or changed items to watch a search: each run remembers what earlier runs returned and outputs only listings that are new or whose price (cold rent or purchase price) changed. Unchanged listings are dropped before any detail page is opened, so they are not charged. Max listings then sets how many of the newest listings are checked per run, so keep Sort by on "Newest first". Save the input as a task, add a Schedule in Apify (for example every morning), and give each watch its own Monitoring key if several schedules use the same search. Every output item has changeType (new or changed), and changed items carry previousValues with the old price, e.g. {"price": 1450}.

Pricing

Pay per result: a small fee per listing, plus a small extra fee per listing opened when Include full listing details is on (see the Pricing tab). No start fee, no subscription; Apify's free plan is enough to try it. Platform usage is low: measured about $0.02 per 1,000 listings with details and under $0.01 per 1,000 without, on the default datacenter proxy.

Integrations and API

Use the run in Zapier, Make, n8n or Google Sheets, or call it from Python/Node with the Apify client. See the API tab for ready-made snippets. Schedule it daily to get new flats in your area, or to track rents and asking prices by district.

This Actor collects publicly visible listing data: properties, prices, costs, features and the advertising company's business details. It does not collect phone numbers, private landlords' names or their exact addresses, and it uses no login. You are responsible for how you use the data and for complying with ImmoScout24's terms and applicable law (including the GDPR).

Support

Found a bug or need a field added? Open an issue in the Issues tab; it is usually answered within a day.