ImmoScout24 Scraper ($0.65/1K) - German Property Listings
Pricing
from $0.35 / 1,000 listings
ImmoScout24 Scraper ($0.65/1K) - German Property Listings
Scrape property listings from ImmoScout24 (immobilienscout24.de), Germany's biggest real-estate portal: apartments, houses, land, garages and WG rooms for rent or sale. Filter by city, price, rooms and area. Newest first. Add-ons: full details with agent phone, price history.
Pricing
from $0.35 / 1,000 listings
Rating
0.0
(0)
Developer
Carabain Digital
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
What is ImmoScout24 Listings Scraper?
ImmoScout24 Listings Scraper scrapes property listings from ImmoScout24 (immobilienscout24.de), Germany's biggest real-estate portal, with around 85,000 apartments for rent alone plus houses, apartments and land for sale, garages and WG rooms from agents, developers and private landlords. Search by city, district or state, sale or rent, property type, price range, rooms and living area, or paste a search URL from the site, and get clean, flat listing data as JSON, CSV, Excel, XML or HTML: price or cold rent, address, district, coordinates, living area, rooms, energy class and photos, newest first. Prefilled example: the 20 newest apartments for rent in Berlin, ready in about a second. Costs $0.65 per 1,000 listings. Add-ons: Full details (description, total rent and service charges, bedrooms, bathrooms, construction year, agent phone, all attributes) and Price history (price changes over time), $1.00 per 1,000 listings each.
- 🔎 Search like on the site: city, district or federal state, sale or rent, apartment, house, land, garage or WG room, price range, rooms, living area, or paste an ImmoScout24 search URL
- ⚡ Fast and light: ImmoScout24's own app API, 100 listings per request, newest first, no browser
- 🆕 Newest first: ideal for alerts on fresh rentals in tight markets like Berlin, Munich or Hamburg
- 📚 Full details on demand: switch on Full details for the exposé texts, cold and total rent, service charges, floor, deposit, heating, energy certificate, agent name and phone
- 📈 Track prices over time: switch on Price history to compare every run with the last one
- 🔌 Connect anywhere: API, schedules, webhooks, Google Sheets, Make, Zapier, MCP / AI agents
What data can I extract from ImmoScout24?
| 🆔 Stable listing ID and exposé URL | 💶 Price (sale) or cold rent per month |
| 📍 Address, postcode, city, district, federal state | 🧭 Latitude and longitude |
| 🏠 Property type and subtype | 📐 Living area and plot area (m²) |
| 🚪 Rooms, bedrooms and bathrooms | ⚡ Energy efficiency class |
| 💶 Total rent (warm) and service charges | 📅 Publication date |
| 🏢 Agent name, contact, phone and profile | 📷 Photo URLs |
| 📝 Description, features and location texts | 🧾 All exposé attributes (floor, deposit, heating, balcony, lift ...) |
The search results carry price, address, district, coordinates (when the address is public), living area, rooms, energy class, private-or-agent flag and one photo. Description texts, total rent and service charges, bedrooms, bathrooms, plot area of houses, construction year, federal state, agent name and phone, all attributes and all photos come from the exposé and are only filled with the Full details add-on. Texts and attribute labels are in German, as the providers wrote them.
How do I scrape ImmoScout24 listings?
- Create a free Apify account and open this Actor.
- Enter a Location (for example
Berlin,MünchenorKöln - Ehrenfeld), pick Sale or rent and, if you like, a property type and price range. Or paste one or more Search URLs copied from immobilienscout24.de. - Set Max listings (the newest come first).
- Click Start, then download the listings from the Output tab as JSON, CSV, Excel, XML or HTML.
How much does it cost to scrape ImmoScout24?
You pay per listing that ends up in your dataset: $0.65 per 1,000 listings, no subscription. The monthly credit of Apify's Free plan ($5) covers around 7,700 listings without add-ons. Paid plans get volume discounts.
- Add-on: Full details, $1.00 per 1,000 listings (off by default). Opens every listing's exposé and adds the description, features and location texts, all attributes, bedrooms, bathrooms, plot area, construction year, total rent and service charges, federal state, agent name, phone and profile and all photos. Charged only for listings that were actually enriched.
- Add-on: Price history, $1.00 per 1,000 listings (off by default). Adds
first_seen_at,previous_price,price_change,price_change_pct,status_changedandprice_history. Charged only for listings that already had history from an earlier run, so the first run is free. See the Price history section below. - Failed runs and empty searches cost nothing; you can cap spending with Maximum cost per run in the run options.
See the Pricing tab for the current prices.
⬇️ Input
| Field | Description |
|---|---|
Location (location) | City, district or federal state; several separated by commas. Empty = all of Germany |
Sale or rent (listing_type) | sale or rent |
Property type (property_type) | any (apartments and houses), apartment, house, land (sale), parking, room (WG room, rent) |
Minimum / maximum price (min_price, max_price) | In euro; for rentals the cold rent per month |
Minimum rooms (min_rooms) | German room count (bedrooms and living rooms) |
Minimum living area (min_living_area_m2) | In m² |
Search URLs (start_urls) | Search pages copied from immobilienscout24.de; they replace the filters above |
Max listings (limit) | Stop after this many listings |
Full details (includeDetails) | Paid add-on: exposé texts, agent phone, total rent and more |
Price history (trackHistory) | Paid add-on: compare with your previous runs |
History store name (historyStoreName) | Where the history is kept (default realestate-history) |
Proxy (proxyConfiguration) | German residential proxy, preselected (Apify Residential, country DE) |
{"location": "Berlin","listing_type": "rent","property_type": "apartment","limit": 20}
With Search URLs paste a page like https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?price=-1500.0&numberofrooms=2.0-; filters in the URL are kept, the page number is ignored and results always come newest first. Region and radius searches work; searches on a hand-drawn map area do not. Location takes names as the site's location box knows them (Berlin, Hamburg - Altona-Nord, Bayern); postcodes are not supported by the site's search, use the district name instead.
⬆️ Output
Listings are stored in the default dataset, newest first. View them as a table in the Output tab or export JSON, CSV, Excel, XML or HTML. Fields a listing does not have are null; every item has the same keys.
A listing with the Full details add-on (rental)
{"id": "immoscout24:172111086","source": "immoscout24","url": "https://www.immobilienscout24.de/expose/172111086","title": "Helle 2-Raumwohnung mit Fußbodenheizung","listing_type": "rent","property_type": "apartment","property_subtype": "apartment","status": "available","price": 955,"price_currency": "EUR","price_period": "month","price_type": "asking","monthly_costs": 260,"total_rent": 1245,"address": "Mehrower Allee 20A, 12687 Berlin","street": "Mehrower Allee","house_number": "20A","postcode": "12687","city": "Berlin","district": "Marzahn","region": "Berlin","country": "DE","lat": 52.55571,"lon": 13.56011,"living_area_m2": 70,"plot_area_m2": null,"rooms": 2,"bedrooms": 1,"bathrooms": 1,"energy_label": "A","construction_year": 2022,"listed_at": "2026-10-27T16:07:33Z","private_offer": false,"agent_name": "RENTAservice GmbH","agent_contact_name": "Frau Anke Hartwig","agent_phone": "+49 3344 3359933","agent_url": null,"image_urls": ["https://pictures.immobilienscout24.de/listings/2486fafc-5a70-4b1a-bd24-028f4828969b-2119483749.jpg/ORIG/resize/1500x1000/format/webp/quality/80","https://pictures.immobilienscout24.de/listings/d0334179-3341-41e1-a8f3-a4e7fc153fd8-2119483069.jpg/ORIG/resize/1500x1000/format/webp/quality/80","..."],"description": "Diese moderne 2-Zimmer-Wohnung im 12. Obergeschoss besticht durch ihren neuwertigen Zustand aus dem Baujahr 2022 und eine Wohnfläche von 70 Quadratmetern. Dank des Aufzugs ist die barrierefreie Etage ...","features_text": "- Balkon\n- barrierefrei\n- innenliegendes Bad mit Dusche\n- offene Küche\n- Bodenbelag Vinyl\n- Fußbodenheizung ...","location_text": "Der Wohnturm befindet sich in einer lebendigen Gegend in Berlin-Marzahn. Mehrere Buslinien, 2 Straßenbahn- und die S-Bahnlinie S7 sind fußläufig zu erreichen ...","other_text": "Alle Angaben wurden sorgfältig und so vollständig wie möglich gemacht ...","attributes": {"Wohnungstyp": "Etagenwohnung","Etage": "12 von 13","Bezugsfrei ab": "01.01.2026","Haustiere": "nach Vereinbarung","Garage/Stellplatz": "Außenstellplatz","Balkon/Terrasse": true,"...": "..."},"scraped_at": "2026-10-31T16:07:33Z"}
Extra fields with the Price history add-on
{"first_seen_at": "2026-10-24T07:00:12+00:00","previous_price": 1320,"price_change": -100,"price_change_pct": -7.58,"status_changed": false,"price_history": [{ "at": "2026-10-24T07:00:12+00:00", "price": 1320, "status": "available" },{ "at": "2026-10-31T07:00:09+00:00", "price": 1220, "status": "available" }]}
What can I do with ImmoScout24 data?
- 🔔 New-listing alerts: schedule a run every few minutes or hours and push fresh Berlin or Munich rentals to Slack, Telegram or email before everyone else calls
- 📉 Price drop alerts: schedule a run with Price history and get notified when
price_changeis negative - 🏘️ Market research: asking prices and rents per m² per district, new supply per week, private vs agent share
- 🔎 Deal finding and investment: filter by price, area and energy class, compare rents and sale prices per neighbourhood
- 📇 Lead generation: agencies and developers with their active listings per city
- 🧠 AI and analytics: feed descriptions and attributes into valuation models or LLM pipelines
Tips for best results
- Results are sorted by publication date, newest first, so a small Max listings on a schedule is the cheapest way to watch a market.
listed_atcomes from ImmoScout24's "vor 3 Stunden" label, so it is accurate to the minute or hour for fresh listings, to the day or week for older ones, andnullonce the site only says "vor 3 Monaten".priceof a rental is the cold rent (Kaltmiete); Full details addstotal_rent(Warmmiete / Gesamtmiete) andmonthly_costs(Nebenkosten). The price filters work on the cold rent.- Many providers hide the street and house number until you contact them; those listings have
street,latandlonnullbut always a postcode and district. - House-builder catalogue ads ("Hausbauangebote") in the house results are skipped: they are offers to build a house, not properties.
- Leave Full details off for counting, alerts and price monitoring; switch it on when you need texts, bedrooms, total rent or agent phone numbers.
- Results from one run are deduplicated by listing ID.
Price history
Switch on Price history (trackHistory) and the Actor remembers every listing between runs, so you can see price drops, status changes and how long a property has been on the market.
- Where it lives. History is kept in a named key-value store in your own Apify account (default name
realestate-history, change it with History store name). Named stores never expire, you own the data, and storage costs a fraction of a cent. - First run starts the series. The first time a listing is seen there is nothing to compare with, so
previous_priceisnulland you are not charged for the add-on on that listing. From the second run on, each listing getsfirst_seen_at,previous_price,price_change,price_change_pct,status_changedandprice_history(the last 20 price/status points, one point per change). - Run it on a schedule. History only grows when you run the Actor. Create a schedule (daily is typical) with the same search and the same store name.
- One store, several Actors. Every real-estate Actor we publish uses the same default store name, so a listing keeps one history even if you scrape it with a different one of our Actors. Item IDs start with the site (
immoscout24:...), so sites never clash. Use a different store name per search if you want separate series. - Do not run two runs on the same store at the same time. Records are updated per listing and the last writer wins, so two parallel runs can overwrite each other's newest point. Run searches that share a store one after another.
- If you delete the store, the Actor starts a new empty history without an error.
- Cost: $1.00 per 1,000 listings that already had history (see pricing above).
Frequently asked questions
Can I use ImmoScout24 Listings Scraper with the Apify API?
Yes. Every run has a dataset you can read through the Apify API. Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("carabain-digital/immoscout24-listings").call(run_input={"location": "Berlin","listing_type": "rent","property_type": "apartment","max_price": 1500,"limit": 100,})for home in client.dataset(run["defaultDatasetId"]).iterate_items():print(home["price"], home["address"], home["living_area_m2"], "m2")
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('carabain-digital/immoscout24-listings').call({location: 'München',listing_type: 'sale',property_type: 'house',limit: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, 'listings');
Can I use ImmoScout24 Listings Scraper through an MCP server or with AI agents?
Yes. Add it to an AI agent through the Apify MCP server (https://mcp.apify.com?tools=carabain-digital/immoscout24-listings), or let the agent find it with search-actors and run it with call-actor. A small search (limit 20) finishes in a few seconds, and the items are flat and small, so agents can read them with get-dataset-items. Example prompt: "Use ImmoScout24 Listings Scraper to list the 20 newest 2-room apartments for rent in Berlin under 1,200 euro cold rent and tell me which districts they are in."
Can I integrate ImmoScout24 data with other apps?
Yes: Google Sheets, Slack, Make, Zapier, n8n, Airtable or your own webhook, through Apify integrations and webhooks. Schedule a run and send the new listings or price drops to your inbox or CRM.
Why do I need a proxy?
ImmoScout24 blocks datacenter IP addresses. The Actor therefore defaults to Apify's residential proxy in Germany. If a run is blocked it retries on a fresh proxy session; if it still fails the run fails with a clear message instead of returning an empty dataset.
Why is a field empty?
Without Full details, description, total_rent, monthly_costs, bedrooms, bathrooms, construction_year, region, the agent fields and attributes are null: ImmoScout24 only publishes them in the exposé. Providers who hide the exact address have no street or coordinates, many listings have no energy class, and private landlords often publish no phone number.
Does it cover Plus-only listings?
Yes. Some new rentals are marked "exclusive for MieterPlus" for the first days: they appear in the results and in the details like every other listing; only contacting the provider needs a Plus membership on the site.
Does it cover sold and rented properties?
No. ImmoScout24 search results only list what is currently for sale or for rent, so status is available; with Full details it becomes sold or rented when the exposé is no longer active.
Is it legal to scrape ImmoScout24?
The Actor only collects publicly visible listings, the same data anyone can see on immobilienscout24.de. Listings can contain personal data (for example the name or phone number of a private landlord or agent), and rules such as GDPR may apply to how you store and use it. Check your use case with a lawyer. More background: Is web scraping legal?
ImmoScout24 Listings Scraper not working? Feedback
Open an issue on the Issues tab of this Actor with the run link and we will look at it. Feature ideas are welcome there too.
Other scrapers by us
| Actor | Covers |
|---|---|
| Immoweb Listings Scraper | Belgium: immoweb.be, the largest Belgian property portal |
| Zimmo Listings Scraper | Belgium: zimmo.be, homes for sale and rent with price history |
| Immovlan Listings Scraper | Belgium: immovlan.be |
| Pararius Listings Scraper | Netherlands: pararius.nl, rentals and sales |
| Huislijn Listings Scraper | Netherlands: huislijn.nl |
| Germany Real Estate Scraper | ImmoScout24 and Immowelt in one run, merged and deduplicated |
⭐ Does it work well for you? A review on the Store page helps others find this Actor and helps us keep it maintained.