ImmoScout24 Scraper
Pricing
from $0.69 / 1,000 property listings
ImmoScout24 Scraper
Scrape ImmobilienScout24 (immobilienscout24.de) property listings by city or search URL: price, rooms, living space, address, coordinates, amenities, agent, and images. Export JSON, CSV, Excel.
Pricing
from $0.69 / 1,000 property listings
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
ImmoScout24 Scraper
ImmoScout24 Scraper extracts structured property data from ImmobilienScout24 (ImmoScout24), Germany's largest real estate portal. Search by city or paste a search URL, and get clean listing records with price, rooms, living space, address, coordinates, amenities, agent contacts, and full image galleries.
| Pick a city (or paste an ImmoScout24 search URL) and collect every listing with 50+ fields per property — price, m², rooms, floor, construction year, condition, heating, energy class, amenities, latitude/longitude, agent name and phone, and up to 30+ photos — ready for JSON, CSV, or Excel. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Actor: parsebird/immoscout24-scraper (ImmoScout24 Scraper on Apify).Purpose: scrape property listings from ImmobilienScout24 (immobilienscout24.de).Call it with the Apify API / ApifyClient. Input JSON:{"mode": "location", // "location" or "url""locations": [{ "state": "berlin", "city": "Berlin" }], // state slug + city name"listingType": "buy", // "buy" or "rent""propertyType": "apartment", // "apartment" or "house""priceMin": 200000, "priceMax": 600000,"roomsMin": 2, "livingSpaceMin": 60,"equipment": ["balcony", "lift"], // balcony, builtinkitchen, garden, lift, cellar, guesttoilet, barrierfree"sortBy": "newest", // default, newest, priceAsc, priceDesc"maxPages": 10, // ~20 listings per page"maxListings": 200 // total cap; billed row count}// URL mode: { "mode": "url", "urls": ["https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-kaufen?price=-500000&pagenumber=3"], "maxPages": 20 }Output: one dataset item per listing with id, url, listingType, propertyType, title, addressFull, street,postcode, city, quarter, latitude, longitude, priceValue, priceDisplay, baseRent, totalRent, rooms, bedrooms,bathrooms, livingSpace, plotArea, floor, constructionYear, condition, heatingType, energyEfficiencyClass,balcony, lift, garden, cellar, builtinKitchen, guestToilet, barrierFree, hasCourtage, isNew, imageCount,images, floorplanUrl, contactName, contactCompany, contactPhone, descriptionText, tags, scrapedAt.Pricing: pay-per-result, $0.99 per 1,000 listings. API docs: https://apify.com/parsebird/immoscout24-scraper/api
What does ImmoScout24 Scraper do?
The ImmoScout24 Scraper turns an ImmobilienScout24 search into a dataset. You either describe the search (city, buy/rent, filters) or hand it a search URL you built on the site.
- 🏙️ Location search — pick one of the 16 German federal states and type any city or town name; the scraper resolves it to the right ImmoScout24 region.
- 🔗 URL mode — paste any
immobilienscout24.de/Suche/...URL with your own filters. Apagenumber=Nin the URL is used as the starting page, so you can resume or split large searches across runs. - 🎛️ Filters — price, number of rooms, living space, construction year, required amenities (balcony, lift, garden, cellar, fitted kitchen, guest toilet, barrier-free), commission-free listings, and sort order.
- 🏠 Buy or rent, apartments or houses — every ImmoScout24 residential category.
- 📞 Agent contacts — agent name, company, phone number, and profile URL.
- 🖼️ Full media — every listing photo in high resolution, plus floorplan and energy-certificate PDFs when published.
- 📍 Coordinates — latitude and longitude when ImmoScout24 publishes the exact address.
- ⚡ List-only mode — turn off detail fetching for a faster, cheaper run when you only need the core fields.
- 📄 Export anywhere — JSON, CSV, Excel, or XML, plus the Apify API, scheduling, and integrations with Make, Zapier, Google Sheets, and more.
What data can you extract from ImmoScout24?
| Field | Description |
|---|---|
id / url | ImmoScout24 expose id and listing URL |
listingType / propertyType | buy or rent; apartment or house |
title | Listing headline |
addressFull / street / postcode / city / quarter | Address breakdown |
latitude / longitude | Coordinates when the full address is published |
priceValue / priceDisplay / priceCurrency | Purchase price or base rent |
baseRent / totalRent / serviceCharge | Rent breakdown (rentals) |
rooms / bedrooms / bathrooms | Room counts |
livingSpace / plotArea | Living area and plot size in m² |
floor / numberOfFloors | Floor and building height |
constructionYear / lastRefurbishment | Age of the building |
condition / interiorQuality / heatingType / energyEfficiencyClass | Building details |
balcony / lift / garden / cellar / builtinKitchen / guestToilet / barrierFree | Amenities |
hasCourtage / commissionInfo | Buyer's commission |
isNew / isRented / isProject / isPrivate | Listing flags |
imageCount / images / floorplanUrl / energyCertificateUrl | Media |
contactName / contactCompany / contactPhone / agentProfileUrl | Agent contact |
descriptionText / locationText / furnishingText | Free-text sections |
tags | Highlight tags (Provisionsfrei, Balkon/Terrasse, Aufzug, …) |
publishedRelative / scrapedAt | When the listing went online (relative) and when it was scraped |
See the full output schema and API reference.
How to scrape ImmoScout24
- Decide whether to search by location or by URL.
- For location search: set
state(e.g.berlin,bayern,nordrhein-westfalen) andcity(e.g.Berlin,München,Köln), then picklistingType,propertyType, and any filters. - For URL search: open ImmobilienScout24, build your search with filters, and copy the URL from the address bar into the
urlsfield. - Set Max pages per search and Max listings to control volume and cost.
- Click Start and download the results as JSON, CSV, or Excel.
Input examples
Search by location with filters:
{"locations": [{ "state": "berlin", "city": "Berlin" }],"listingType": "buy","propertyType": "apartment","priceMin": 200000,"priceMax": 600000,"roomsMin": 2,"livingSpaceMin": 60,"equipment": ["balcony", "lift"],"sortBy": "newest","maxPages": 10}
Multiple cities:
{"locations": [{ "state": "berlin", "city": "Berlin" },{ "state": "bayern", "city": "München" },{ "state": "hamburg", "city": "Hamburg" }],"maxPages": 50}
Direct URL with forward-walk pagination (scrapes pages 3 → 22):
{"mode": "url","urls": ["https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-kaufen?price=-500000&livingspace=50.0-&pagenumber=3"],"maxPages": 20}
Output example
{"id": "170670937","url": "https://www.immobilienscout24.de/expose/170670937","listingType": "buy","propertyType": "apartment","title": "Helle 3-Zimmer-Wohnung mit Balkon","addressFull": "Sybelstraße 56, 10629 Berlin, Charlottenburg","street": "Sybelstraße","postcode": "10629","city": "Berlin","quarter": "Charlottenburg","latitude": 52.50186,"longitude": 13.30649,"priceValue": 450000,"priceCurrency": "EUR","priceDisplay": "450.000 €","rooms": 3,"livingSpace": 85.5,"constructionYear": 1964,"balcony": true,"lift": true,"garden": false,"hasCourtage": false,"imageCount": 24,"images": ["https://pictures.immobilienscout24.de/listings/..."],"floorplanUrl": "https://d2qfnj9mv71tll.cloudfront.net/...pdf","contactName": "Maximilian Verowski","contactCompany": "Beispiel Immobilien GmbH","contactPhone": "+49 30 86319244","tags": ["Provisionsfrei", "Balkon/Terrasse", "Aufzug"],"isNew": false,"publishedRelative": "an hour ago","scrapedAt": "2026-03-25T12:00:00.000Z"}
Download results in JSON, CSV, Excel, or XML from the Storage tab or the Apify API.
Use cases
- Market analysis — track asking prices, rent levels, and price per m² by city or quarter.
- Lead generation — build lists of agents and phone numbers for a target region.
- New-listing monitoring — schedule runs with
sortBy: newestand detect new listings and price changes. - Investment research — compare buy and rent markets across German cities.
- Data enrichment — feed structured listing data into CRMs, dashboards, and valuation models.
How it works
- In location mode, each city name is resolved to an ImmoScout24 region id. In URL mode, the search URL is parsed into the same search parameters and any
pagenumberbecomes the first page. - The scraper reads the search results page by page until it hits
maxPages,maxListings, or the last page. - For each listing it (optionally) opens the detail page to add amenities, agent contact, the full photo gallery, floorplan, and description.
- Requests go through Apify Proxy (German residential by default) with retries and light concurrency.
Pricing
This actor uses the pay-per-result pricing model.
| Event | Price per 1,000 |
|---|---|
| Listing scraped | $0.99 |
You are billed once per unique listing saved to the dataset. Scraping 1,000 listings costs about $0.99 plus Apify platform and proxy usage. Set maxListings to cap your spend. New Apify accounts include monthly free platform credits.
FAQ
Location or URL mode — which should I use? Use location mode for a simple city search. Use URL mode when you have already built a detailed search on ImmobilienScout24 and want to keep exactly those filters, or when you want to resume a large search from a specific page.
Why are latitude/longitude and street sometimes empty?
ImmobilienScout24 only publishes the exact address (and therefore precise coordinates) for a subset of listings. When the address is approximate, those fields are left empty and addressFull contains the postcode, city, and quarter only.
How many listings can I get from one search? ImmobilienScout24 paginates in pages of about 20 listings. Very large searches are capped by the site after a few hundred pages — split a big search into narrower ones (by price band, quarter, or property type) for full coverage.
Does noCommission work for rentals?
No. ImmobilienScout24 offers a commission-free filter only for for-sale searches, so the option is ignored (with a warning) when listingType is rent.
How fresh is the data? Every run fetches live data. Use Apify Scheduler to monitor a market over time.
Can I call this actor from my own code? Yes. Use the Apify API or the official clients:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("parsebird/immoscout24-scraper").call(run_input={"locations": [{"state": "berlin", "city": "Berlin"}],"listingType": "buy","propertyType": "apartment","maxPages": 10,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["priceDisplay"], item["url"])
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('parsebird/immoscout24-scraper').call({locations: [{ state: 'berlin', city: 'Berlin' }],listingType: 'buy',propertyType: 'apartment',maxPages: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Something looks wrong — how do I report it? Open an issue on the actor's Issues tab. Feedback and feature requests are welcome.
Other real estate scrapers
- Immobiliare.it Scraper — Italy's largest real estate portal
- Subito.it Scraper — Italian property classifieds
- Homegate.ch Scraper — Swiss real estate marketplace
- Browse the full ParseBird actor catalogue for more scrapers.
Is it legal to scrape ImmoScout24?
Scraping publicly available data is legal in most jurisdictions, including Germany and the EU, when it does not involve logging in, bypassing access controls, or collecting personal data without a lawful basis. This actor only accesses pages that any visitor can see without an account and does not collect private personal information. You are responsible for how you use the data, including compliance with the GDPR, ImmobilienScout24's terms of service, and applicable local laws. When in doubt, consult a lawyer. See Apify's guide to the legality of web scraping.