ImmoScout24 Scraper - Germany and Austria avatar

ImmoScout24 Scraper - Germany and Austria

Pricing

from $0.90 / 1,000 listings

Go to Apify Store
ImmoScout24 Scraper - Germany and Austria

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

Phantom Coder

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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 energyEfficiencyClass F, 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 images and the allAttributes lookup stay nested), so the output opens cleanly in Excel or Google Sheets and maps directly in Make, Zapier, and n8n. You get coldRent: 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 country field.

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

  1. Open immobilienscout24.de or immobilienscout24.at and run a search with the filters you want: location, price, rooms, size, and so on.
  2. Copy the URL from your browser's address bar.
  3. Paste it into Start URLs. Add as many search or listing URLs as you like.
  4. Or skip the URL and fill in Location, Country, Rent or buy, and the price, room, and size filters.
  5. Set Max listings to how many listings you want in total.
  6. 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

FieldTypeDefaultDescription
startUrlsarray-Search or listing URLs from immobilienscout24.de or immobilienscout24.at. Region, radius, and shape searches are supported.
locationstring-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).
countrystringDESite for the simple search: DE or AT.
transferTypestringrentrent or buy, for the simple search.
propertyTypestringapartmentapartment or house, for the simple search.
minPrice, maxPriceinteger-Monthly rent or purchase price in euros, for the simple search.
minRooms, maxRoomsinteger-Number of rooms, for the simple search.
minLivingSpace, maxLivingSpaceinteger-Living space in m², for the simple search.
maxItemsinteger100Maximum listings saved in the run, across all URLs. Set to 0 for no limit.
includeDetailsbooleantrueLoad each listing's detail page. Turn off for a faster run with only search result data.
monitoringModebooleanfalseOnly save listings that weren't in the same search on previous runs.
monitoringNamestring-Optional name for a separate list of seen listings, for example when two schedules watch the same search for different people.
includeRawDatabooleanfalseAdd the original ImmoScout24 responses in a raw field.
maxConcurrencyinteger10How many detail pages to load at the same time.
proxyConfigurationobjectno proxyNot 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

  • price is 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.
  • coordinatePrecision tells you how far to trust the location:
isAddressVisiblecoordinatePrecisionTypical meaning
trueexactCoordinates of the building.
falseapproximateThe seller hid the address. Coordinates are the center of the postcode area (Germany) or ImmoScout24's area estimate (Austria).
falsenullNo location data beyond postcode and city.
  • isPrivateSeller is true for listings posted by private owners. Private sellers on ImmoScout24 usually don't publish a phone number, so contactPhone is often null for them.
  • Text values in German. For German listings, energySources, energyCertificateType, availableFrom, deposit, commission, and publishedText are kept exactly as shown on the site, usually in German. Fields like condition and heatingType, 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 like fitted_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.
  • allAttributes holds 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 includeDetails on and maxItems set to 0, group by district, and average pricePerSqm. All Berlin rentals (about 4,500 listings) cost about $7 on the Free plan.
  • New rental alerts. Schedule a search every hour with monitoringMode: true and 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 energyEfficiencyClass in F, G, or H and yearBuilt < 1980 to find properties that need energy upgrades.
  • Agency prospecting. Filter isPrivateSeller: false, group by contactCompany, and count listings to see which agencies dominate a postcode. Use agencyEmail and agencyPhone for outreach.
  • Investment screening. For purchase listings, compare pricePerSqm against marketPricePerSqmMin and marketPricePerSqmMax to 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

  1. Germany (immobilienscout24.de) and Austria (immobilienscout24.at) only. Switzerland isn't supported.
  2. Exact publish and update dates are available for Austria only.
  3. 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.
  4. 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.
  5. Price history and days on market aren't included. Use monitoring mode and keep your own history to track price changes.
  6. Simple search supports apartments and houses. For land, garages, commercial property, and other types, paste a search URL.
  7. 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:

EventFreeStarterScaleBusinessPlatinumDiamond
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

FieldDescription
idImmoScout24 listing ID (Scout-ID in Germany, 24-character ID in Austria)
urlListing page URL
countryDE or AT
titleListing headline
transferTypeRENT or BUY (null for German commercial types that can be either)
propertyTypeGermany: apartment, house, land, garage, room, short_term_rental, commercial, investment, or auction. Austria: ImmoScout24's type, for example apartment or house
propertySubtypeMore specific type, for example roof_storey, maisonette, or single_family_house. German listings without one show ImmoScout24's search type, for example housebuy
isProjectListing is part of a new-build project
isNewBuildingNew building or first occupancy
priceMain price shown on the listing (see "Understanding the data")
coldRentRent without service charges (Kaltmiete), in euros
warmRentTotal rent including service charges (Warmmiete or Gesamtmiete), in euros
serviceChargeMonthly service charges (Nebenkosten or Betriebskosten), in euros
heatingCostsMonthly heating costs, in euros
purchasePricePurchase price, in euros
pricePerSqmPrice per m² as calculated by ImmoScout24
depositDeposit as entered by the seller
commissionBuyer's commission as entered by the seller
hoaFeeMonthly homeowners' association fee (Hausgeld), in euros
currencyAlways EUR
livingSpaceLiving space in m²
usableAreaUsable area in m²
plotAreaPlot area in m²
roomsNumber of rooms
bedroomsNumber of bedrooms
bathroomsNumber of bathrooms
floorFloor of the apartment (0 = ground floor)
numberOfFloorsFloors in the building
street, houseNumberStreet address, when the seller shows it
postcode, city, district, quarter, stateLocation names (quarter is Germany only)
addressAddress as one line
isAddressVisibleThe seller shows the full address
latitude, longitudeCoordinates
coordinatePrecisionexact, approximate, or null (see "Understanding the data")
yearBuiltYear of construction
lastRefurbishedYear of the last refurbishment
conditionCondition code, for example first_time_use, well_kept, or refurbished
interiorQualityInterior quality code, for example normal, sophisticated, or luxury (Germany)
heatingTypeHeating type
energySourcesMain energy sources
energyCertificateTypeEnergy certificate type, for example Bedarfsausweis or Verbrauchsausweis (Germany)
energyEfficiencyClassEnergy class (A+ to H in Germany, HWB class in Austria)
energyConsumptionFinal energy consumption or demand in kWh/(m²·a)
heatingDemandHeating demand (HWB) in kWh/(m²·a), Austria
totalEnergyEfficiencyFactorTotal energy efficiency factor (fGEE), Austria
featuresList of feature codes, for example balcony, cellar, or lift (codes differ by country, see "Understanding the data")
balcony, garden, cellar, lift, builtInKitchen, stepFreeAccessFeature flags (true, false, or null if unknown)
petsAllowedPets policy as given by the seller
parkingSpacesNumber of parking spaces
isRentedThe property is currently rented out (for sales)
availableFromMove-in date as entered by the seller
descriptionMain description
equipmentDescriptionEquipment and fittings section
locationDescriptionLocation section
otherDescriptionOther text sections
imageUrlFirst image URL
imagesAll image URLs
imageCountNumber of images
isPrivateSellertrue for private sellers, false for agencies and companies
contactNameContact person or team
contactFirstName, contactLastNameContact name parts (Austria)
contactCompanyAgency or company name
contactPhoneFirst published phone number
contactPhonesAll published phone numbers
contactAddressAgency address
agencyWebsiteAgency website
agencyProfileUrlAgency profile on ImmoScout24 (Germany)
agencyLogoUrlAgency logo URL
agencyImprintAgency's legal imprint text (Germany)
agencyEmailEmail address from the imprint (Germany)
agencyPhonePhone number from the imprint, when no phone is listed (Germany)
publishedAtPublish date and time (Austria)
updatedAtLast update date and time (Austria)
publishedTextRelative age shown on the site, for example "vor 12 Tagen" (Germany)
fairPriceRatingImmoScout24's price rating, for example FAIR_OFFER (Germany)
marketPricePerSqmMin, marketPricePerSqmMaxLocal price range per m² for similar listings (Germany)
allAttributesEvery attribute row from the listing page, label to value (Germany)
detailsScrapedtrue if the detail page was loaded
searchUrlWebsite URL of the search that found the listing (null for German location searches and for listing URLs)
scrapedAtWhen the listing was scraped
rawOriginal ImmoScout24 responses, only with includeRawData

Support

Questions or issues? Open a ticket in the Issues tab on the Actor page.