ImmoScout24 Scraper - Germany and Austria
Pricing
from $0.90 / 1,000 listings
ImmoScout24 Scraper - Germany and Austria
Scrape ImmoScout24 listings from immobilienscout24.de and immobilienscout24.at: prices, rent costs, areas, energy data, coordinates, images, and seller contacts. Search by URL or location, with monitoring mode for new listings.
Pricing
from $0.90 / 1,000 listings
Rating
0.0
(0)
Developer
Phantom Coder
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape ImmoScout24 listings in Germany and Austria - prices, rent costs, living space, energy data, coordinates, images, and seller contacts - from a search URL or a city name. No ImmoScout24 account or API key required.
Who is this for
- Property investors comparing purchase prices, price per m², and energy classes across cities and districts before they make an offer.
- Real estate agencies and proptech teams tracking competitors' listings and finding which agencies are active in a postcode, with phone numbers and imprint emails.
- Relocation services and apartment hunters getting new rentals soon after they appear, by running the Actor every hour in monitoring mode.
- Market researchers and analysts building rent and price datasets for Germany and Austria with exact coordinates for mapping.
- Mortgage brokers and energy consultants finding listings with poor energy classes (for example
energyEfficiencyClassF, G, or H) as renovation and financing leads.
Why it's different
- One flat record per listing. Every field is a top-level column (only lists like
imagesand theallAttributeslookup stay nested), so the output opens cleanly in Excel or Google Sheets and maps directly in Make, Zapier, and n8n. You getcoldRent: 362,warmRent: 569,latitude: 52.52485, not a nested API blob you have to unpack. - Full Austrian searches. immobilienscout24.at shows at most 100 pages per search. When a search has more results, the Actor splits it into price bands automatically (outside monitoring mode, which only needs the newest listings). A test on all rentals in Vienna returned 3,884 of 3,896 listings, against the 2,500 a single search can show.
- Monitoring with no extra fee. Turn on monitoring mode, and later runs only return listings that weren't in the search before. You pay only for new listings, not for checking the old ones.
- Agency contacts from the imprint. For German listings, the Actor reads the agency's legal imprint, which usually contains an email address and phone number, even when the listing hides the phone.
- Germany and Austria in one run. Mix immobilienscout24.de and immobilienscout24.at URLs in the same input. Each listing has a
countryfield.
What you get
- Prices: cold rent, warm rent, service charge, heating costs, purchase price, price per m², deposit, commission, and homeowners' association (HOA) fee, known as Hausgeld
- Size: living space, usable area, plot area, rooms, bedrooms, bathrooms, floor, and number of floors
- Location: street, house number, postcode, city, district, quarter, state, and coordinates with a precision flag
- Building: year built, last refurbishment, condition, interior quality, heating type, and energy sources
- Energy certificate: certificate type, energy class, energy consumption, heating demand (Heizwärmebedarf, HWB), and total energy efficiency factor (fGEE, Austria)
- Features: balcony, garden, cellar, elevator, built-in kitchen, step-free access, parking, pets, and more
- Full description, equipment, location, and other text sections
- Every listing image URL
- Seller: private or commercial, contact name, company, phone numbers, agency website, ImmoScout24 profile, and imprint
- Publish and update dates (Austria), or the relative age shown on the site (Germany)
- ImmoScout24's fair-price rating and the local market price range per m² (Germany)
How to use
- Open immobilienscout24.de or immobilienscout24.at and run a search with the filters you want: location, price, rooms, size, and so on.
- Copy the URL from your browser's address bar.
- Paste it into Start URLs. Add as many search or listing URLs as you like.
- Or skip the URL and fill in Location, Country, Rent or buy, and the price, room, and size filters.
- Set Max listings to how many listings you want in total.
- Click Start. Download the results as JSON, CSV, or Excel, or read them through the API.
⚠️ 0 results in monitoring mode is normal. It means no listings were published since the last run. The first run with monitoring mode saves listings up to Max listings and records the rest of the search as the starting point, without charging for it.
Input configuration
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | - | Search or listing URLs from immobilienscout24.de or immobilienscout24.at. Region, radius, and shape searches are supported. |
location | string | - | City, district, or region for the simple search, for example München or Graz. In Austria you can also use a state (Tirol) or a 4-digit postcode (8010). |
country | string | DE | Site for the simple search: DE or AT. |
transferType | string | rent | rent or buy, for the simple search. |
propertyType | string | apartment | apartment or house, for the simple search. |
minPrice, maxPrice | integer | - | Monthly rent or purchase price in euros, for the simple search. |
minRooms, maxRooms | integer | - | Number of rooms, for the simple search. |
minLivingSpace, maxLivingSpace | integer | - | Living space in m², for the simple search. |
maxItems | integer | 100 | Maximum listings saved in the run, across all URLs. Set to 0 for no limit. |
includeDetails | boolean | true | Load each listing's detail page. Turn off for a faster run with only search result data. |
monitoringMode | boolean | false | Only save listings that weren't in the same search on previous runs. |
monitoringName | string | - | Optional name for a separate list of seen listings, for example when two schedules watch the same search for different people. |
includeRawData | boolean | false | Add the original ImmoScout24 responses in a raw field. |
maxConcurrency | integer | 10 | How many detail pages to load at the same time. |
proxyConfiguration | object | no proxy | Not needed in most cases. Enable Apify Proxy if the log reports blocked requests. |
Example input:
{"startUrls": [{ "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?price=-1500.0&numberofrooms=2.0-" },{ "url": "https://www.immobilienscout24.at/regional/wien/wien/wohnung-kaufen" }],"location": "Hamburg","country": "DE","transferType": "buy","propertyType": "house","maxPrice": 900000,"maxItems": 500,"includeDetails": true,"monitoringMode": false}
Output
Each listing is one flat record. Fields without data are null or empty ([] or {}). The examples below are shortened.
German listing
{"id": "168052908","url": "https://www.immobilienscout24.de/expose/168052908","country": "DE","title": "Naturverbunden wohnen in kompakter 2-Zimmer-Gartenwohnung mit WBS-140-Förderung","transferType": "RENT","propertyType": "apartment","propertySubtype": "ground_floor","isProject": true,"isNewBuilding": true,"price": 362,"coldRent": 362,"warmRent": 569,"pricePerSqm": 7,"currency": "EUR","livingSpace": 51.7,"rooms": 2,"floor": 0,"street": "Hellersdorfer Straße","houseNumber": "91","postcode": "12619","city": "Berlin","district": "Marzahn Hellersdorf","quarter": "Hellersdorf","state": "Berlin","address": "Hellersdorfer Straße 91, 12619 Hellersdorf, Berlin","isAddressVisible": true,"latitude": 52.52485,"longitude": 13.58695,"coordinatePrecision": "exact","yearBuilt": 2025,"condition": "first_time_use","heatingType": "district_heating","energySources": "Fernwärme","energyCertificateType": "Bedarfsausweis","energyEfficiencyClass": "B","energyConsumption": 59.9,"features": ["wbs_required"],"availableFrom": "16.10.2026","description": "Die Wohnung wird ausschließlich an einen 2-Personen-Haushalt vermietet...","images": ["https://pictures.immobilienscout24.de/listings/...jpg"],"imageCount": 10,"isPrivateSeller": false,"contactName": "Vermietungsteam Neubau","contactCompany": "Example Wohnungsbau AG","contactPhone": null,"agencyProfileUrl": "https://www.immobilienscout24.de/anbieter/...","agencyEmail": "info@example-wohnungsbau.de","agencyPhone": "030 1234567","publishedAt": null,"publishedText": "vor einem Monat","fairPriceRating": null,"marketPricePerSqmMin": 6.2,"marketPricePerSqmMax": 10.2,"detailsScraped": true,"searchUrl": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten","scrapedAt": "2026-10-21T17:42:40.029Z"}
Austrian listing
{"id": "6abf58305659d16f8b12f960","url": "https://www.immobilienscout24.at/expose/6abf58305659d16f8b12f960","country": "AT","title": "Neubau 3-Zimmer-Wohnung mit großem Balkon Alte Donau","transferType": "RENT","propertyType": "apartment","propertySubtype": "floor_apartment","isNewBuilding": true,"price": 1750,"warmRent": 1750,"pricePerSqm": 24.31,"deposit": "5.250","livingSpace": 72,"rooms": 3,"bathrooms": 1,"postcode": "1210","city": "Wien","latitude": 48.24604,"longitude": 16.42027,"coordinatePrecision": "exact","heatingType": "floor_heating","energySources": "district_heating","energyEfficiencyClass": "B","heatingDemand": 23.9,"totalEnergyEfficiencyFactor": 0.74,"features": ["balcony", "cellar", "guest_toilet", "fitted_kitchen", "lift"],"balcony": true,"lift": true,"availableFrom": "1.10.2026","imageCount": 14,"isPrivateSeller": true,"contactFirstName": "Anna","contactLastName": null,"contactCompany": null,"publishedAt": "2026-10-02T07:07:28.000Z","updatedAt": "2026-10-02T11:49:18.560Z","detailsScraped": true}
Listing that couldn't be loaded
Listings removed from ImmoScout24 are skipped and not charged. The log shows how many were skipped. If the detail page of a listing found through a search fails after several retries, the Actor saves what the search results showed, charged as a normal listing, and marks it:
{"id": "171975800","title": "2-Zimmer-Wohnung in Pankow","price": 800,"livingSpace": 71,"rooms": 2,"description": null,"detailsScraped": false}
Understanding the data
priceis the main price shown on the listing: cold rent (Kaltmiete) for German rentals, the total monthly rent for Austrian rentals, and the purchase price for sales. The other price fields break it down where the listing provides the numbers.coordinatePrecisiontells you how far to trust the location:
isAddressVisible | coordinatePrecision | Typical meaning |
|---|---|---|
true | exact | Coordinates of the building. |
false | approximate | The seller hid the address. Coordinates are the center of the postcode area (Germany) or ImmoScout24's area estimate (Austria). |
false | null | No location data beyond postcode and city. |
isPrivateSelleristruefor listings posted by private owners. Private sellers on ImmoScout24 usually don't publish a phone number, socontactPhoneis oftennullfor them.- Text values in German. For German listings,
energySources,energyCertificateType,availableFrom,deposit,commission, andpublishedTextare kept exactly as shown on the site, usually in German. Fields likeconditionandheatingType, and all Austrian codes, use ImmoScout24's English codes. - Feature and type codes differ by country. Germany uses codes like
built_in_kitchen, and Austria uses ImmoScout24's own codes likefitted_kitchen. German features without a code are kept as the label shown on the site. Use the boolean fields (builtInKitchen,balcony, and so on) to compare across countries. allAttributesholds every attribute row from a German listing page (label and value), for anything not mapped to its own field.
Common use cases
- Price per m² by district. Scrape a city with
includeDetailson andmaxItemsset to0, group bydistrict, and averagepricePerSqm. All Berlin rentals (about 4,500 listings) cost about $7 on the Free plan. - New rental alerts. Schedule a search every hour with
monitoringMode: trueand connect the dataset to Slack or email. A city with 50 new listings a day costs about $2.25 a month on the Free plan. - Renovation leads. Filter purchase listings for
energyEfficiencyClassinF,G, orHandyearBuilt < 1980to find properties that need energy upgrades. - Agency prospecting. Filter
isPrivateSeller: false, group bycontactCompany, and count listings to see which agencies dominate a postcode. UseagencyEmailandagencyPhonefor outreach. - Investment screening. For purchase listings, compare
pricePerSqmagainstmarketPricePerSqmMinandmarketPricePerSqmMaxto find listings priced below the local range.
FAQ
Do I need an ImmoScout24 account? No. The Actor reads public listing data and works without an account, login, or API key.
Why am I getting 0 results?
Check that your search URL shows results when you open it in a browser. In monitoring mode, 0 results means nothing new was published since the last run. For the simple search, try the city name as ImmoScout24 spells it, for example München instead of Munich.
Does it work for Switzerland (immoscout24.ch)? Not yet. immoscout24.ch is a separate site with a different setup. The Actor supports Germany and Austria.
Do I need a proxy? Usually not. Test runs of several thousand listings worked without one. If the log reports blocked requests, enable Apify Proxy in the input.
How does monitoring decide what's new?
The Actor remembers every listing it has seen for each search, up to the newest 50,000. The first run saves listings up to Max listings and records the rest of the search as the starting point, without charging for it. With Max listings set to 0, the first run saves and charges the whole search. If the first run stops early, for example at the run timeout, the next run finishes recording the starting point without charging for it. Later runs return only listings that weren't there before. Listing URLs in Start URLs are saved once, not on every run. The memory is stored in your account in a key-value store called immoscout24-monitoring, one record per search. Changing the search URL or filters starts a new search. Use Monitoring name to keep separate lists for the same search.
Why is publishedAt empty for German listings?
immobilienscout24.de doesn't publish exact dates. Use publishedText (for example "vor 12 Tagen", meaning 12 days ago) or monitoring mode to track new listings.
Limitations
- Germany (immobilienscout24.de) and Austria (immobilienscout24.at) only. Switzerland isn't supported.
- Exact publish and update dates are available for Austria only.
- Very large Austrian searches are split into price bands, so listings with "price on request" can be missed. In a test on all Vienna rentals, 12 of 3,896 listings were missed.
- Phone numbers appear only when the seller publishes them. Seller email addresses aren't published by ImmoScout24. German agency emails come from the agency's public imprint.
- Price history and days on market aren't included. Use monitoring mode and keep your own history to track price changes.
- Simple search supports apartments and houses. For land, garages, commercial property, and other types, paste a search URL.
- German commercial property (offices, retail, hospitality, industrial, and special purpose) is supported for rent only. For commercial property for sale, use investment property search URLs (
anlageobjekte).
Pricing
This Actor uses pay-per-event pricing. You pay a tiny fee when a run starts and a fixed price per listing saved:
| Event | Free | Starter | Scale | Business | Platinum | Diamond |
|---|---|---|---|---|---|---|
| Actor start (per run, per GB of memory) | $0.00005 | $0.00005 | $0.00005 | $0.00005 | $0.00005 | $0.00005 |
| Listing (per 1,000) | $1.50 | $1.30 | $1.10 | $0.90 | $0.90 | $0.90 |
The price per listing is the same with or without full details. Removed listings aren't charged, and in monitoring mode you pay only for new listings.
Typical costs on the Free plan:
- 100 listings: $0.15
- All ~4,500 rentals in Berlin: about $7
- Hourly monitoring of one city with 50 new listings a day: about $2.25 a month
You can set a maximum cost per run in the run options. The Actor stops when it reaches it.
Output field reference
| Field | Description |
|---|---|
id | ImmoScout24 listing ID (Scout-ID in Germany, 24-character ID in Austria) |
url | Listing page URL |
country | DE or AT |
title | Listing headline |
transferType | RENT or BUY (null for German commercial types that can be either) |
propertyType | Germany: apartment, house, land, garage, room, short_term_rental, commercial, investment, or auction. Austria: ImmoScout24's type, for example apartment or house |
propertySubtype | More specific type, for example roof_storey, maisonette, or single_family_house. German listings without one show ImmoScout24's search type, for example housebuy |
isProject | Listing is part of a new-build project |
isNewBuilding | New building or first occupancy |
price | Main price shown on the listing (see "Understanding the data") |
coldRent | Rent without service charges (Kaltmiete), in euros |
warmRent | Total rent including service charges (Warmmiete or Gesamtmiete), in euros |
serviceCharge | Monthly service charges (Nebenkosten or Betriebskosten), in euros |
heatingCosts | Monthly heating costs, in euros |
purchasePrice | Purchase price, in euros |
pricePerSqm | Price per m² as calculated by ImmoScout24 |
deposit | Deposit as entered by the seller |
commission | Buyer's commission as entered by the seller |
hoaFee | Monthly homeowners' association fee (Hausgeld), in euros |
currency | Always EUR |
livingSpace | Living space in m² |
usableArea | Usable area in m² |
plotArea | Plot area in m² |
rooms | Number of rooms |
bedrooms | Number of bedrooms |
bathrooms | Number of bathrooms |
floor | Floor of the apartment (0 = ground floor) |
numberOfFloors | Floors in the building |
street, houseNumber | Street address, when the seller shows it |
postcode, city, district, quarter, state | Location names (quarter is Germany only) |
address | Address as one line |
isAddressVisible | The seller shows the full address |
latitude, longitude | Coordinates |
coordinatePrecision | exact, approximate, or null (see "Understanding the data") |
yearBuilt | Year of construction |
lastRefurbished | Year of the last refurbishment |
condition | Condition code, for example first_time_use, well_kept, or refurbished |
interiorQuality | Interior quality code, for example normal, sophisticated, or luxury (Germany) |
heatingType | Heating type |
energySources | Main energy sources |
energyCertificateType | Energy certificate type, for example Bedarfsausweis or Verbrauchsausweis (Germany) |
energyEfficiencyClass | Energy class (A+ to H in Germany, HWB class in Austria) |
energyConsumption | Final energy consumption or demand in kWh/(m²·a) |
heatingDemand | Heating demand (HWB) in kWh/(m²·a), Austria |
totalEnergyEfficiencyFactor | Total energy efficiency factor (fGEE), Austria |
features | List of feature codes, for example balcony, cellar, or lift (codes differ by country, see "Understanding the data") |
balcony, garden, cellar, lift, builtInKitchen, stepFreeAccess | Feature flags (true, false, or null if unknown) |
petsAllowed | Pets policy as given by the seller |
parkingSpaces | Number of parking spaces |
isRented | The property is currently rented out (for sales) |
availableFrom | Move-in date as entered by the seller |
description | Main description |
equipmentDescription | Equipment and fittings section |
locationDescription | Location section |
otherDescription | Other text sections |
imageUrl | First image URL |
images | All image URLs |
imageCount | Number of images |
isPrivateSeller | true for private sellers, false for agencies and companies |
contactName | Contact person or team |
contactFirstName, contactLastName | Contact name parts (Austria) |
contactCompany | Agency or company name |
contactPhone | First published phone number |
contactPhones | All published phone numbers |
contactAddress | Agency address |
agencyWebsite | Agency website |
agencyProfileUrl | Agency profile on ImmoScout24 (Germany) |
agencyLogoUrl | Agency logo URL |
agencyImprint | Agency's legal imprint text (Germany) |
agencyEmail | Email address from the imprint (Germany) |
agencyPhone | Phone number from the imprint, when no phone is listed (Germany) |
publishedAt | Publish date and time (Austria) |
updatedAt | Last update date and time (Austria) |
publishedText | Relative age shown on the site, for example "vor 12 Tagen" (Germany) |
fairPriceRating | ImmoScout24's price rating, for example FAIR_OFFER (Germany) |
marketPricePerSqmMin, marketPricePerSqmMax | Local price range per m² for similar listings (Germany) |
allAttributes | Every attribute row from the listing page, label to value (Germany) |
detailsScraped | true if the detail page was loaded |
searchUrl | Website URL of the search that found the listing (null for German location searches and for listing URLs) |
scrapedAt | When the listing was scraped |
raw | Original ImmoScout24 responses, only with includeRawData |
Support
Questions or issues? Open a ticket in the Issues tab on the Actor page.