ImmoScout24 Scraper avatar

ImmoScout24 Scraper

Pricing

from $0.69 / 1,000 property listings

Go to Apify Store
ImmoScout24 Scraper

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

ParseBird

Maintained by Community

Actor 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. A pagenumber=N in 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?

FieldDescription
id / urlImmoScout24 expose id and listing URL
listingType / propertyTypebuy or rent; apartment or house
titleListing headline
addressFull / street / postcode / city / quarterAddress breakdown
latitude / longitudeCoordinates when the full address is published
priceValue / priceDisplay / priceCurrencyPurchase price or base rent
baseRent / totalRent / serviceChargeRent breakdown (rentals)
rooms / bedrooms / bathroomsRoom counts
livingSpace / plotAreaLiving area and plot size in m²
floor / numberOfFloorsFloor and building height
constructionYear / lastRefurbishmentAge of the building
condition / interiorQuality / heatingType / energyEfficiencyClassBuilding details
balcony / lift / garden / cellar / builtinKitchen / guestToilet / barrierFreeAmenities
hasCourtage / commissionInfoBuyer's commission
isNew / isRented / isProject / isPrivateListing flags
imageCount / images / floorplanUrl / energyCertificateUrlMedia
contactName / contactCompany / contactPhone / agentProfileUrlAgent contact
descriptionText / locationText / furnishingTextFree-text sections
tagsHighlight tags (Provisionsfrei, Balkon/Terrasse, Aufzug, …)
publishedRelative / scrapedAtWhen the listing went online (relative) and when it was scraped

See the full output schema and API reference.

How to scrape ImmoScout24

  1. Decide whether to search by location or by URL.
  2. For location search: set state (e.g. berlin, bayern, nordrhein-westfalen) and city (e.g. Berlin, München, Köln), then pick listingType, propertyType, and any filters.
  3. For URL search: open ImmobilienScout24, build your search with filters, and copy the URL from the address bar into the urls field.
  4. Set Max pages per search and Max listings to control volume and cost.
  5. 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: newest and 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

  1. 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 pagenumber becomes the first page.
  2. The scraper reads the search results page by page until it hits maxPages, maxListings, or the last page.
  3. For each listing it (optionally) opens the detail page to add amenities, agent contact, the full photo gallery, floorplan, and description.
  4. Requests go through Apify Proxy (German residential by default) with retries and light concurrency.

Pricing

This actor uses the pay-per-result pricing model.

EventPrice 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 ApifyClient
client = 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

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.