Skip to content

ImmobilienScout24 Scraper

Try for free

Scrape ImmobilienScout24 listings from Germany, Austria and Switzerland: price, rent, living space, rooms, address, coordinates, photos, description, energy data and provider contact. Search URLs, listing URLs or a German location with filters.

🏠 ImmobilienScout24 Scraper

Scrape property listings from ImmobilienScout24 in Germany (immobilienscout24.de), Austria (immobilienscout24.at) and Switzerland (immoscout24.ch) in one run. Paste a search URL (or just type a German city), and get price, rent, living space, rooms, full address with coordinates, photos, description, energy data and provider contact for every listing. No login, no browser, about 400 German listings with full details in under a minute.

✨ Why use ImmobilienScout24 Scraper?

  • 🇩🇪 🇦🇹 🇨🇭 Three countries, one shape — mix .de, .at and .ch URLs in one run; every row has the same normalized block (price, area, rooms, address, contact, images).
  • ⚡ Fast — German listings come from the JSON the ImmoScout24 apps use, so a 10-listing run finishes in seconds.
  • 🔎 Search by URL or by place — set any filter on the website and paste the URL, or type "München Schwabing" plus price, room and size limits.
  • 📋 Full details, not just cards — description, every attribute, floor, year built, condition, documents, price check, purchase cost breakdown and the site's price comparison per m².
  • 🔔 Monitoring built in — output only new listings since the last run, plus price changes and removed listings.
  • 💸 Cheap — a flat price per listing, no start fee.

🎯 Use cases

  • 📈 Market research — rent and price per m² by city, district or postcode, new-listing volume over time.
  • 🏢 Proptech and portals — feed listing data into valuation models, dashboards or search products.
  • 💼 Investor deal sourcing — scheduled runs on narrow searches with monitoring mode to catch new offers and price cuts first.
  • 🤝 Agency intelligence — see which providers list what, where and at which prices.
  • 🧭 Relocation and HR — rent benchmarks for German, Austrian and Swiss cities.
  • 🗺️ Geo analysis — coordinates on most listings, with a precision flag.

🚀 How to use

  1. Open ImmobilienScout24, run a search and set your filters (price, rooms, area, features, ...).
  2. Copy the URL from the address bar and paste it into Start URLs. Add as many searches or listing URLs as you like, from any of the three countries.
  3. Or leave the URLs empty and fill in Search location (Germany) with rent/buy, apartment/house and the price, room and size limits.
  4. Set Max results and click Start.
  5. Download the data as JSON, CSV, Excel or HTML, or read it through the API.

📥 Input

FieldWhat it does
startUrlsSearch URLs (/Suche/... on .de, /regional/... on .at, /de/immobilien/mieten/... on .ch) or listing URLs (/expose/<id>, Swiss /mieten/<id>).
maxItemsTotal number of listings to return (0 = no limit).
searchLocationGerman city or district, used instead of a URL.
searchOperation, searchPropertyTypeRent or buy, apartment or house (with the location).
radiusKmOptional Umkreis radius in km (e.g. 1, 2, 5, 10, 15, 20, 50) around the search location.
searchMinPrice … searchMaxLivingSpacePrice, rooms and living space limits (with the location).
sortByOrder of German results (newest, price, living space).
includeDetailsFull listing records (on) or faster card-only rows (off).
monitoringMode, detectPriceChanges, detectRemovedListingsOnly new listings since the last run, plus price-change and removed rows.
{
  "startUrls": [
    { "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten" },
    { "url": "https://www.immobilienscout24.at/regional/wien/wien/wohnung-mieten" },
    { "url": "https://www.immoscout24.ch/de/immobilien/mieten/ort-zuerich" }
  ],
  "maxItems": 100
}

📤 Output

Each row is one listing. The top of the row has the most-used fields flat, normalized has the same structure for all three countries, and the rest of the row is the site's own full record (for example sections, contact and adTargetingParameters on German rows).

FieldDescription
title, url, listingId, countryCodeListing basics
priceAmount, priceCurrency, priceKindPrice, currency and type (RENT_NET, RENT_GROSS, RENT_TOTAL, BUY)
livingSpace, roomsLiving space in m² and number of rooms
address, city, zip, latitude, longitudeLocation (street when the provider shows it)
searchRadiusKm, distanceKmOnly on radius (Umkreis) searches, from radiusKm or a pasted German radius URL: the radius used and the site's distance from the search center (empty when the address is hidden)
company, imageProvider and first photo
normalizedPrice (incl. per m²), area, rooms, floor, construction, address, contact, images, media, documents, dates, flags, finance costs, price comparison
sourceUrl, scrapedAtWhich input found it, and when

Example (sample data, shortened):

{
  "countryCode": "DE",
  "listingId": "160000001",
  "title": "Helle 2-Zimmer-Wohnung mit Balkon",
  "priceAmount": 1150,
  "priceCurrency": "EUR",
  "priceKind": "RENT_NET",
  "livingSpace": 62.5,
  "rooms": 2,
  "address": "Musterstraße 12, 10115 Berlin",
  "city": "Berlin",
  "zip": "10115",
  "latitude": 52.5321,
  "longitude": 13.3849,
  "company": "Beispiel Immobilien GmbH",
  "image": "https://pictures.immobilienscout24.de/listings/example.jpg",
  "url": "https://www.immobilienscout24.de/expose/160000001",
  "sourceUrl": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten",
  "scrapedAt": "2026-10-14T19:06:27.725Z",
  "normalized": {
    "transferType": "RENT",
    "realEstateType": "apartmentrent",
    "price": { "amount": 1150, "currency": "EUR", "formatted": "1.150 €", "kind": "RENT_NET", "perSqm": 18.4 },
    "area": { "livingSpace": 62.5, "plotArea": null, "usableArea": null, "unit": "m2" },
    "rooms": { "total": 2, "bedrooms": 1, "bathrooms": 1 },
    "floor": { "current": 3, "total": 5 },
    "construction": { "yearBuilt": 1998, "condition": "Gepflegt", "isNew": false, "projectId": null },
    "contact": { "name": "Vermietungsteam", "company": "Beispiel Immobilien GmbH", "phone": null },
    "priceComparables": {
      "minPricePerM2": { "value": 7.9, "text": "7,90 € /m²" },
      "maxPricePerM2": { "value": 24.4, "text": "24,40 € /m²" },
      "positionInPercent": 0.41
    }
  }
}

💰 Pricing

You pay $1.00 per 1,000 listings ($0.001 per result), with no start fee. 1,000 listings ≈ $1.00 plus a few cents of platform usage (compute and proxy traffic, about $0.02 per 1,000 German or Austrian listings and up to about $0.15 per 1,000 Swiss listings, which use residential proxies). Monitoring rows (price changes, removed listings) count as results. When you set a maximum total charge, the run stops cleanly at that budget.

❓ FAQ

Is it legal to scrape ImmobilienScout24? The scraper reads only public listing pages that anyone can open without an account. You are responsible for how you use the data, especially personal data such as names or phone numbers of private providers (GDPR).

Do I need a login or my own proxy? No. German and Austrian listings work on the included datacenter proxy. Swiss pages always go through residential exits because the site refuses datacenter addresses.

How many results can I get? German searches return the full result list. Austrian search pages stop at 100 pages (about 1,500 listings) and Swiss ones at 50 pages (about 1,000 listings); the run log tells you when a search is bigger, so you can split it by price or district.

Why is a field empty? Providers fill different fields. Many hide the street until you contact them, private listings have no company, and projects have ranges instead of one size. Empty fields are null.

Can I schedule it or call it from code? Yes. Schedule the run and turn on monitoring mode to get only new listings, or start it through the API and read the dataset as JSON or CSV.

Which language are texts in? The listing texts are as the provider wrote them (mostly German, French or Italian in Switzerland).

⚠️ Limits

  • Search by location (without a URL) covers Germany only; for Austria and Switzerland paste a search URL.
  • Austrian searches stop at 100 pages (about 1,500 listings) and Swiss searches at 50 pages (about 1,000 listings), as on the website. Split bigger searches by price or district.
  • Agent profile pages and commercial project overviews are not supported as inputs; use search URLs instead.
  • Swiss runs clear an anti-bot check first, so they take 10–20 seconds longer to start than German or Austrian runs.
  • Listings that the site shows only to paying "Suchen+" members during their first days are flagged in normalized.listingFlags.paywall and may lack some details.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.