Immoscout24 Scraper with Contacts | All In One
Pricing
from $0.70 / 1,000 property listings
Immoscout24 Scraper with Contacts | All In One
Extract ImmobilienScout24 listings across Germany, Austria, and Switzerland with rich property detail, agency contacts, media, development data, and flexible market filters. Built for enterprise-grade real estate intelligence, lead enrichment, and automated analytics pipelines.
Pricing
from $0.70 / 1,000 property listings
Rating
0.0
(0)
Developer
Fatih Tahta
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Immoscout24 Scraper Enterprise Grade
Slug: fatihtahta/immoscout24-scraper
Overview
Immoscout24 Scraper Enterprise Grade collects structured property listing records, including listing identity, URLs, titles, pricing, location details, property attributes, agency and contact information, media, development data, publication dates, and source context. The public ImmoScout24 marketplaces at https://www.immobilienscout24.de and https://www.immobilienscout24.at provide high-value real estate inventory data for market analysis, operational reporting, lead qualification, and portfolio monitoring. The actor turns property search results and direct search URLs into repeatable JSON datasets that are ready for analytics, enrichment, and downstream automation. It is designed for dependable recurring data acquisition, with consistent input controls and structured output that supports validation, comparison, and synchronization over time.
Why Use This Actor
- Market research and analytics teams: collect normalized real estate inventory, pricing, availability, geography, and property attributes for market intelligence and operational reporting.
- Product and content teams: maintain property catalogs, location pages, owned search experiences, or editorial datasets using structured extraction from public listing records.
- Developers and data engineering teams: feed repeatable collection jobs into downstream systems, ETL pipelines, warehouses, alerts, and APIs with predictable JSON records.
- Lead generation and enrichment teams: identify agencies, listings, public contacts, developments, and property attributes that can support qualification and CRM enrichment workflows.
- Monitoring and competitive tracking teams: schedule recurring runs to observe changes in listed properties, price bands, publication windows, amenities, and regional supply.
Common Use Cases
- Market intelligence: monitor supply, pricing, availability, floor area, room count, energy classes, locations, and property segment movement.
- Lead generation: build targeted prospect lists from public property listings, agencies, developments, and listing-level contact details.
- Competitive monitoring: track newly published listings, price-positioned inventory, Search+ verified listings, or ImmoScout24-published listings across selected markets.
- Catalog and directory building: populate owned databases with structured public records for properties, developments, media, agencies, and geographic coverage.
- Data enrichment: add current public property attributes, address details, media links, and source context to existing CRM, BI, or analytics datasets.
- Recurring reporting: schedule periodic runs for dashboards, alerts, regional trend analysis, and operational review workflows.
Quick Start
- Choose a listing scope with
country,deal_type, andproperty_type, or provide one or more ImmoScout24 search URLs instart_url. - Add a
locationand optional filters such as price, floor area, room count, amenities, energy class, publication window, or listing source. - Set a small
limitfor the first validation run so you can inspect the output quickly. - Run the actor in Apify Console.
- Review the first dataset records and confirm that the fields, regions, and listing types match your workflow.
- Increase
limit, adjust filters, add direct URLs, enable enrichment, or schedule the actor once the output is verified.
Input Parameters
The actor supports structured searches by country, listing mode, property type, location, filters, sorting, optional enrichment, and direct ImmoScout24 search URLs.
| Parameter | Type | Description | Default |
|---|---|---|---|
start_url | array of strings | Optional direct ImmoScout24 search result URLs from https://www.immobilienscout24.de or https://www.immobilienscout24.at. Use this when you already configured a search on the website. limit applies separately to each URL. | – |
deal_type | string | Listing mode. Allowed values: buy, rent. | buy |
property_type | string | Property segment. Allowed values: apartment, house, house_and_apartment, land, new_development, garage_parking, investment_property, foreclosure_auction, office, industrial, retail, hospitality, special_purpose, commercial_land. | apartment |
country | string | Country for structured searches. Allowed values: germany, austria, spain, italy. Direct URLs carry their own country context. | germany |
location | string | City, state, ZIP code, neighborhood, region, or market. Leave empty for broader country-level discovery or when direct URLs already include the target location. | – |
min_price | integer | Minimum listing price in euros. | – |
max_price | integer | Maximum listing price in euros. | – |
min_floor_area | integer | Minimum usable floor area in square meters. | – |
max_floor_area | integer | Maximum usable floor area in square meters. | – |
min_bedroom | integer | Minimum room count. | – |
max_bedroom | integer | Maximum room count. | – |
excluded_listing_conditions | array of strings | Listing conditions to exclude. Allowed values: new_development, foreclosure_auction, off_market_accepting_offers. | [] |
only_plus_listings | boolean | Save only listings marked as Search+ verified. | false |
only_immoscout24 | boolean | Save only listings published directly on ImmoScout24. | false |
unit_amenities | array of strings | Required amenities. Allowed values: balcony, garden, garage_parking, fitted_kitchen, elevator, basement_storage, guest_bathroom. | [] |
energy_efficiency_class | array of strings | Required energy efficiency classes. Allowed values: a_plus, a, b, c, d, e, f, g, h. | [] |
sort_by | string | Result ordering for structured searches. Allowed values: default, price_desc, price_asc, newest. Direct URLs keep the ordering already present in the URL. | default |
publication_date | string | Publication window for recently added listings. Allowed values: 24_hours, 3_days, 7_days, 2_weeks, 1_month. | – |
enrich_data | boolean | Collect fuller listing records, such as descriptions, media, contact information, address details, and property attributes. Turn off for faster validation runs when standard fields are enough. | false |
limit | integer | Maximum number of listings to save for each structured search or direct URL. Minimum value: 1. | –; Console prefill: 100 |
Choosing Inputs
Use structured inputs when you want a repeatable search based on country, deal_type, property_type, location, and supported filters. Use start_url when you already have a configured ImmoScout24 search URL, such as a saved search or a website search that combines several criteria.
Narrower filters, such as a specific location, price range, floor area range, room count, amenities, energy class, listing source, or publication window, produce more targeted datasets. Broader inputs improve discovery and are better for market sizing, inventory monitoring, or exploratory analysis. Start with a small limit, inspect the first records, and then increase coverage after confirming that the output matches your use case. Use sort_by for structured searches when ordering matters, such as newest listings first or price-based review.
Example Inputs
Example: Munich rental monitoring
{"country": "germany","deal_type": "rent","property_type": "apartment","location": "Munich","publication_date": "24_hours","sort_by": "newest","limit": 100,"enrich_data": false}
Example: Direct URL collection
{"start_url": ["https://www.immobilienscout24.at/regional/wien/wien/haus-mieten?numberOfRoomsFrom=2&primaryPriceTo=12000"],"country": "austria","deal_type": "rent","property_type": "house","limit": 75,"enrich_data": true}
Example: Targeted purchase search with amenities
{"country": "germany","deal_type": "buy","property_type": "apartment","location": "Berlin","min_price": 500000,"max_price": 1500000,"unit_amenities": ["balcony", "elevator"],"limit": 50}
Output
9.1 Output destination
The actor writes results to an Apify dataset as JSON records. The dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs with minimal post-processing.
When multiple entity types or record shapes exist, the README documents each shape separately based on the provided Example Output. The provided example output contains one top-level record shape: a property listing record.
9.2 Record envelope and stable identifiers
Each property listing record is organized as a JSON object with top-level listing identity, property classification, pricing, location, property attributes, agency details, media, development details, listing dates, detailed attributes, and source context. The recommended idempotency key is listing_id, with url as a strong secondary key and source_context.fingerprint available for source-context comparison when present.
For deduplication and upserts, store records by listing_id and update the existing row when the same listing appears in repeated runs. Stable identifiers make records easier to merge, deduplicate, and sync across repeated runs into warehouses, CRMs, search indexes, or monitoring systems. source_context.source_url identifies the search page or input scope that produced the record, while source_context.fingerprint provides an additional repeat-run comparison value.
9.3 Examples
Example: property listing
{"listing_id": "900123456","url": "https://www.immobilienscout24.de/expose/900123456","title": "Familiengerecht wohnen: 4-Zimmer-Wohnung im Quartier Lindenhof","real_estate_type": "search:ApartmentBuy","deal_type": "buy","property_type": "apartment","pricing": {"price": {"value": 708000,"currency": "EUR","marketing_type": "PURCHASE","price_interval_type": "ONE_TIME_CHARGE"}},"location": {"street": "Beispielstraße","house_number": "12","street_and_house_number": "Beispielstraße 12","postal_code": "10115","city": "Musterstadt","quarter": "Mitte","region": "Berlin","country": "Deutschland","coordinates": {"latitude": 52.53211,"longitude": 13.38472},"precise_house_number": true,"coordinate_available": true,"show_full_address": true,"description": "Beispielstraße 12, Musterstadt, Berlin"},"property": {"living_space": 111.15,"rooms": 4,"construction_year": 2026,"energy_efficiency_class": "A+","barrier_free": true,"amenities": {"built_in_kitchen": false,"balcony": true,"garden": false,"floorplan_available": true,"streaming_video_available": false},"features": ["balcony","cellar","handicappedAccessible","hasNoCourtage","lift"]},"agency": {"company_name": "Musterstadt Development GmbH","company_customer_id": "002.00000012345","realtor_sso_id": "100000001","logo_url": "https://pictures.immobilienscout24.de/usercontent/11111111-2222-4333-8444-555555555555.JPEG/ORIG/resize/%WIDTH%x%HEIGHT%%3E/quality/50","private_offer": false,"contact": {"salutation": "NO_SALUTATION","first_name": "Musterstadt","last_name": "Vertriebsteam","phone_number": "+49 30 12345678","company": "Musterstadt Development GmbH","details": {"contact_person": {"first_name": "Musterstadt","last_name": "Vertriebsteam"},"phone_numbers": {"phone_number": {"contact_number": "+49 30 12345678"}},"contact_button": {"has_email": true,"disabled": false},"realtor_information": {"company_name": "Musterstadt Development GmbH","realtor_logo": "https://pictures.immobilienscout24.de/usercontent/11111111-2222-4333-8444-555555555555.JPEG/ORIG/resize/150x150%3E/quality/60","private_offer": false}}}},"media": {"images": [{"url": "https://pictures.immobilienscout24.de/listings/49e0b9db-7a0d-46b7-a2bb-e06d483c073c-2022448510.jpg/ORIG/legacy_thumbnail/%WIDTH%x%HEIGHT%/format/jpg/quality/50","is_floorplan": false,"is_title_picture": false,"type": "common:Picture"},{"url": "https://pictures.immobilienscout24.de/listings/ebcd57df-4d6f-4d68-a1ee-49334d79aeaa-2022448512.jpg/ORIG/legacy_thumbnail/%WIDTH%x%HEIGHT%/format/jpg/quality/50","is_floorplan": false,"is_title_picture": false,"type": "common:Picture"},{"url": "https://pictures.immobilienscout24.de/listings/025ad32a-e63f-48ac-80e5-36ce40d12ec3-2022448513.jpg/ORIG/legacy_thumbnail/%WIDTH%x%HEIGHT%/format/jpg/quality/50","is_floorplan": false,"is_title_picture": false,"type": "common:Picture"},{"url": "https://pictures.immobilienscout24.de/listings/1527c6f3-bba9-4510-9009-48d3e1fd4bd4-2022448518.jpg/ORIG/legacy_thumbnail/%WIDTH%x%HEIGHT%/format/jpg/quality/50","is_floorplan": false,"is_title_picture": false,"type": "common:Picture"},{"url": "https://pictures.immobilienscout24.de/listings/31e3321a-c0a4-4253-80e1-c6734ada77d4-2022448520.jpg/ORIG/legacy_thumbnail/%WIDTH%x%HEIGHT%/format/jpg/quality/50","is_floorplan": false,"is_title_picture": false,"type": "common:Picture"},{"url": "https://pictures.immobilienscout24.de/listings/04e23d80-6955-45ed-8f12-8ec6bae57eba-2022448508.jpg/ORIG/legacy_thumbnail/%WIDTH%x%HEIGHT%/format/jpg/quality/50","is_floorplan": false,"is_title_picture": false,"type": "common:Picture"},{"url": "https://pictures.immobilienscout24.de/listings/e94a9b05-5332-4362-a48d-5fb20b476e46-2022448928.jpg/ORIG/legacy_thumbnail/%WIDTH%x%HEIGHT%/format/jpg/quality/50","is_floorplan": true,"is_title_picture": false,"type": "common:Picture"},{"id": "1","caption": "Kinderzimmer","url": "https://pictures.immobilienscout24.de/listings/49e0b9db-7a0d-46b7-a2bb-e06d483c073c-2022448510.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","urls": {"gallery": "https://pictures.immobilienscout24.de/listings/49e0b9db-7a0d-46b7-a2bb-e06d483c073c-2022448510.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","full_size": "https://pictures.immobilienscout24.de/listings/49e0b9db-7a0d-46b7-a2bb-e06d483c073c-2022448510.jpg/ORIG/resize/1106x830%3E/format/webp/quality/60","thumbnail": "https://pictures.immobilienscout24.de/listings/49e0b9db-7a0d-46b7-a2bb-e06d483c073c-2022448510.jpg/ORIG/legacy_thumbnail/80x60/format/webp/quality/60"},"type": "PICTURE"},{"id": "2","caption": "Schlafzimmer","url": "https://pictures.immobilienscout24.de/listings/ebcd57df-4d6f-4d68-a1ee-49334d79aeaa-2022448512.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","urls": {"gallery": "https://pictures.immobilienscout24.de/listings/ebcd57df-4d6f-4d68-a1ee-49334d79aeaa-2022448512.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","full_size": "https://pictures.immobilienscout24.de/listings/ebcd57df-4d6f-4d68-a1ee-49334d79aeaa-2022448512.jpg/ORIG/resize/1106x830%3E/format/webp/quality/60","thumbnail": "https://pictures.immobilienscout24.de/listings/ebcd57df-4d6f-4d68-a1ee-49334d79aeaa-2022448512.jpg/ORIG/legacy_thumbnail/80x60/format/webp/quality/60"},"type": "PICTURE"},{"id": "3","caption": "Außenvisualisierung","url": "https://pictures.immobilienscout24.de/listings/025ad32a-e63f-48ac-80e5-36ce40d12ec3-2022448513.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","urls": {"gallery": "https://pictures.immobilienscout24.de/listings/025ad32a-e63f-48ac-80e5-36ce40d12ec3-2022448513.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","full_size": "https://pictures.immobilienscout24.de/listings/025ad32a-e63f-48ac-80e5-36ce40d12ec3-2022448513.jpg/ORIG/resize/1106x830%3E/format/webp/quality/60","thumbnail": "https://pictures.immobilienscout24.de/listings/025ad32a-e63f-48ac-80e5-36ce40d12ec3-2022448513.jpg/ORIG/legacy_thumbnail/80x60/format/webp/quality/60"},"type": "PICTURE"},{"id": "4","caption": "Wohnbereich","url": "https://pictures.immobilienscout24.de/listings/1527c6f3-bba9-4510-9009-48d3e1fd4bd4-2022448518.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","urls": {"gallery": "https://pictures.immobilienscout24.de/listings/1527c6f3-bba9-4510-9009-48d3e1fd4bd4-2022448518.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","full_size": "https://pictures.immobilienscout24.de/listings/1527c6f3-bba9-4510-9009-48d3e1fd4bd4-2022448518.jpg/ORIG/resize/1106x830%3E/format/webp/quality/60","thumbnail": "https://pictures.immobilienscout24.de/listings/1527c6f3-bba9-4510-9009-48d3e1fd4bd4-2022448518.jpg/ORIG/legacy_thumbnail/80x60/format/webp/quality/60"},"type": "PICTURE"},{"id": "5","caption": "Außenvisualisierung","url": "https://pictures.immobilienscout24.de/listings/31e3321a-c0a4-4253-80e1-c6734ada77d4-2022448520.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","urls": {"gallery": "https://pictures.immobilienscout24.de/listings/31e3321a-c0a4-4253-80e1-c6734ada77d4-2022448520.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","full_size": "https://pictures.immobilienscout24.de/listings/31e3321a-c0a4-4253-80e1-c6734ada77d4-2022448520.jpg/ORIG/resize/1106x830%3E/format/webp/quality/60","thumbnail": "https://pictures.immobilienscout24.de/listings/31e3321a-c0a4-4253-80e1-c6734ada77d4-2022448520.jpg/ORIG/legacy_thumbnail/80x60/format/webp/quality/60"},"type": "PICTURE"},{"id": "6","caption": "Außenvisualisierung","url": "https://pictures.immobilienscout24.de/listings/04e23d80-6955-45ed-8f12-8ec6bae57eba-2022448508.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","urls": {"gallery": "https://pictures.immobilienscout24.de/listings/04e23d80-6955-45ed-8f12-8ec6bae57eba-2022448508.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","full_size": "https://pictures.immobilienscout24.de/listings/04e23d80-6955-45ed-8f12-8ec6bae57eba-2022448508.jpg/ORIG/resize/1106x830%3E/format/webp/quality/60","thumbnail": "https://pictures.immobilienscout24.de/listings/04e23d80-6955-45ed-8f12-8ec6bae57eba-2022448508.jpg/ORIG/legacy_thumbnail/80x60/format/webp/quality/60"},"type": "PICTURE"},{"id": "7","caption": "Quartier_Lindenhof_Haus_A_WE_064","url": "https://pictures.immobilienscout24.de/listings/e94a9b05-5332-4362-a48d-5fb20b476e46-2022448928.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","urls": {"gallery": "https://pictures.immobilienscout24.de/listings/e94a9b05-5332-4362-a48d-5fb20b476e46-2022448928.jpg/ORIG/legacy_thumbnail/0x0/format/webp/quality/60","full_size": "https://pictures.immobilienscout24.de/listings/e94a9b05-5332-4362-a48d-5fb20b476e46-2022448928.jpg/ORIG/resize/1106x830%3E/format/webp/quality/60","thumbnail": "https://pictures.immobilienscout24.de/listings/e94a9b05-5332-4362-a48d-5fb20b476e46-2022448928.jpg/ORIG/legacy_thumbnail/80x60/format/webp/quality/60"},"type": "FLOORPLAN"}],"documents": [{"title": "Quartier_Lindenhof_Haus_A_WE_064","url": "https://d2qfnj9mv71tll.cloudfront.net/11111111-2222-4333-8444-555555555555-2022449065.pdf"}],"floor_plan_available": true,"image_count": 7,"total_items_count": 8},"development": {"id": "900001","title": "Zwischen Stadtleben und grünem Innenhof","name": "Quartier Lindenhof","url": "https://www.immobilienscout24.de/neubau/musterstadt-development-gmbh/quartier-lindenhof/900001.html","address": "Beispielstraße 12, 10115 Musterstadt","is_presale": false,"attributes": {"preis": "274.000 - 1.350.000 €","wohnfläche": "43,00 - 215,00 m²","bezugsfrei ab": "August 2028","wohneinheiten": 126,"ausstattung": "Gehoben","zimmer": "1 - 7"},"picture": "https://pictures.immobilienscout24.de/dims3/S3/http://s3-eu-west-1.amazonaws.com/pda-pro-pictures-projectpictures-8hecgpgpb9fo/100000001/11111111-2222-4333-8444-555555555555.jpg"},"attributes": {"kaufpreis": "708.000 €","wohnfläche": "111,15 m²","zimmer": 4},"listing_dates": {"created": "2026-05-04T17:32:16.000+02:00","published": "2026-05-04T17:32:16.000+02:00","modified": "2026-05-04T14:09:52.080+02:00"},"details": {"listing_type": "XXL","has_new_flag": true,"number_of_grouped_objects": 7,"courtage": {"has_courtage": "NO"},"description": {"object": "Mit dem Quartier Lindenhof entsteht in Musterstadt ein neues Wohnensemble mit klarer städtebaulicher Struktur und hoher Aufenthaltsqualität. Der Standort verbindet kurze Wege in die Innenstadt mit ruhigen Innenhöfen, begrünten Freiflächen und einer modernen Architektur. Fünf individuell gestaltete Gebäude prägen das Quartier und fügen sich zugleich in die gewachsene Umgebung ein. Versetzte Höhen, zurückhaltende Fassadenmaterialien und helle Gemeinschaftsflächen schaffen eine abwechslungsreiche Wohnatmosphäre. Ein offenes Konzept mit Wegen für Fußgänger und Radfahrer unterstreicht den Anspruch eines durchdachten Stadtquartiers.","furnishing": "Die Wohnungen im Quartier Lindenhof sind durchgängig barrierearm konzipiert und bieten ein komfortables Wohngefühl. Parkettböden, Fußbodenheizung und großformatige Fenster sorgen für eine helle und hochwertige Ausstattung. Die Badezimmer sind mit modernen Keramikfliesen und langlebigen Armaturen ausgestattet. Alle Ebenen sind per Aufzug erreichbar, wodurch ein bequemer Zugang zur Tiefgarage, zu privaten Kellerräumen und zu gemeinschaftlichen Fahrradabstellräumen gewährleistet ist. Je nach Lage verfügen die Wohnungen über Balkon, Loggia, Terrasse oder Gartenanteil. Eckdaten der Wohnung • Wohnfläche: ca. 111 m² • Wohnen/Essen/Kochen: ca. 38 m² • Schlafzimmer: ca. 13 m² • Zimmer 1: ca. 11 m² • Zimmer 2: ca. 10 m² • Zwei Badezimmer • Abstellraum • Balkon: ca. 15 m² Ausstattungshighlights • Barrierearme Ausführung der Wohnungen • Energieeffiziente Fußbodenheizung • Hochwertiges Eichenparkett • Markenarmaturen und Keramikfliesen • Aufzug mit Zugang zu allen Ebenen • Tiefgarage mit PKW-Stellplätzen • Begrünte Innenhöfe und gemeinschaftliche Außenanlagen • Nachhaltiges Energiekonzept • Photovoltaikanlagen zur Stromerzeugung • Terrasse, Balkon, Loggia oder Gartenanteil je nach Lage","location": "Das Quartier liegt in Musterstadt in einem gewachsenen städtischen Umfeld. Einkaufsmöglichkeiten, Gastronomie, Schulen und Kitas sind bequem erreichbar. Die Innenstadt ist fußläufig oder mit dem Fahrrad gut angebunden und bietet ein vielfältiges Angebot für den täglichen Bedarf. Gleichzeitig sorgen nahegelegene Grünflächen und Radwege für gute Freizeit- und Erholungsmöglichkeiten. Die Umgebung verbindet urbane Infrastruktur mit ruhigen Wohnstraßen und kurzen Wegen zu öffentlichen Verkehrsmitteln.","other": "Provision trägt der Verkäufer."},"main_criteria": [{"type": "PRICE","label_key": "mainCriteria.purchasePrice.label","value": "708.000 €","metadata": {"is_tenant_network_listing": false,"is_highlight": false,"is_price_on_request": false,"is_luxury_expose": false,"show_price_reduction": false,"price_per_sqm": "6.370 €/m²"}},{"type": "NUMBER_OF_ROOMS","label_key": "mainCriteria.numberOfRooms.label","value": 4},{"type": "LIVING_SPACE","label_key": "mainCriteria.livingSpaceApproximated.label","value": 111.15,"metadata": {"postfix": "m²"}},{"type": "MONTHLY_RATE_BUTTON","metadata": {"cwid": "002.00000012345","city": "Musterstadt","expose_type": "APARTMENT_BUY","postcode": "10115","geo_code": 110000000000,"exclusive": true,"purchase_price": 708000,"expose_id": 900123456,"region": "Berlin","has_courtage": false}},{"type": "COUNTER_OFFER_AREA","label_key": "counterOfferArea"}],"breadcrumbs": [{"title": "Wohnung kaufen","url": "https://www.immobilienscout24.de/wohnen/eigentumswohnung.html"},{"title": "Berlin-Mitte","url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin-mitte/wohnung-kaufen"},{"title": "Berlin","url": "https://www.immobilienscout24.de/Suche/de/berlin/wohnung-kaufen"},{"title": "Musterstadt","url": "https://www.immobilienscout24.de/Suche/de/berlin/musterstadt/wohnung-kaufen"}],"available_services": {"square_meters": 111.15,"number_of_rooms": 4,"zip_code": "10115","is_gas_heating": false,"credit_card_service": true,"credit_wizard_service": false,"heating_costs_in_service_charge": false,"is_fiber_internet": false},"detail_attributes": {"heating_type": "floor_heating","year_constructed": 2026,"firing_types": "electricity","condition": "first_time_use","interior_quality": "sophisticated","parking_space": "no_information","type_of_flat": "apartment","floor": 3,"object_number": "QLH_A_WE_064","living_space": 111.15,"number_of_rooms": "4","purchase_price": 708000,"zip_code": "10115","street": "Beispielstraße","house_number": "12","region1": "Berlin","region2": "Berlin_Mitte","region3": "Musterstadt","courtage": false,"private_offer": false,"has_kitchen": false,"balcony": true,"cellar": true,"lift": true,"garden": false,"barrier_free": true,"rented": false},"object_number": "QLH_A_WE_064","tags": ["Provisionsfrei für Kaufende","Balkon/Terrasse","Keller","Aufzug","Stufenlos"]},"source_context": {"seed_id": "search_buy_apartment_germany_da39a3ee5e6b4b0d3255","seed_type": "search","country": "germany","page_index": 1,"source_url": "https://www.immobilienscout24.de/Suche/de/wohnung-kaufen?enteredFrom=filter_removals","loaded_url": "https://www.immobilienscout24.de/Suche/de/wohnung-kaufen?enteredFrom=filter_removals","domain": "www.immobilienscout24.de","fingerprint": "4affa6073cc88076c9cd","scraped_time": "2026-05-19T09:45:13.965942Z"}}
Field Reference
Property listing record
listing_id (string, required): Stable ImmoScout24 listing identifier.
url (string, required): Public listing URL.
title (string, optional): Listing headline.
real_estate_type (string, optional): Source classification for the listing type.
deal_type (string, required): Transaction mode, such as buy or rent.
property_type (string, required): Normalized property segment, such as apartment.
pricing.price.value (number, optional): Listing price amount.
pricing.price.currency (string, optional): Price currency, such as EUR.
pricing.price.marketing_type (string, optional): Price marketing classification.
pricing.price.price_interval_type (string, optional): Price interval classification.
location.street (string, optional): Street name when available.
location.house_number (string, optional): House number when available.
location.street_and_house_number (string, optional): Combined street and house number.
location.postal_code (string, optional): Postal code.
location.city (string, optional): City or municipality.
location.quarter (string, optional): Neighborhood, quarter, or local area.
location.region (string, optional): Region, state, canton, or comparable administrative area.
location.country (string, optional): Country label as provided in the listing.
location.coordinates.latitude / location.coordinates.longitude (number, optional): Geographic coordinates when available.
location.precise_house_number (boolean, optional): Whether the house number is precise.
location.coordinate_available (boolean, optional): Whether coordinates are available.
location.show_full_address (boolean, optional): Whether the listing exposes a full address.
location.description (string, optional): Human-readable address or location description.
property.living_space (number, optional): Living area in square meters.
property.rooms (number, optional): Number of rooms.
property.construction_year (number, optional): Construction year.
property.energy_efficiency_class (string, optional): Energy efficiency class.
property.barrier_free (boolean, optional): Whether the property is marked as barrier-free.
property.amenities.built_in_kitchen (boolean, optional): Built-in kitchen indicator.
property.amenities.balcony (boolean, optional): Balcony indicator.
property.amenities.garden (boolean, optional): Garden indicator.
property.amenities.floorplan_available (boolean, optional): Whether a floor plan is available.
property.amenities.streaming_video_available (boolean, optional): Whether streaming video is available.
property.features (array of strings, optional): Feature labels or normalized amenity values.
agency.company_name (string, optional): Agency or company name.
agency.company_customer_id (string, optional): Public company customer identifier when available.
agency.realtor_sso_id (string, optional): Public realtor identifier when available.
agency.logo_url (string, optional): Agency logo URL.
agency.private_offer (boolean, optional): Whether the listing is marked as a private offer.
agency.contact.salutation (string, optional): Contact salutation.
agency.contact.first_name / agency.contact.last_name (string, optional): Public contact name fields.
agency.contact.phone_number (string, optional): Public phone number when visible.
agency.contact.company (string, optional): Contact company name.
agency.contact.details.contact_person.first_name / agency.contact.details.contact_person.last_name (string, optional): Nested contact person name fields.
agency.contact.details.phone_numbers.phone_number.contact_number (string, optional): Nested public contact number.
agency.contact.details.contact_button.has_email (boolean, optional): Whether the listing exposes an email contact option.
agency.contact.details.contact_button.disabled (boolean, optional): Whether the contact button is disabled.
agency.contact.details.realtor_information.company_name (string, optional): Realtor company name.
agency.contact.details.realtor_information.realtor_logo (string, optional): Realtor logo URL.
agency.contact.details.realtor_information.private_offer (boolean, optional): Private-offer flag in realtor information.
media.images (array of objects, optional): Listing image and floor plan media items.
media.images[].id (string, optional): Media item identifier when available.
media.images[].caption (string, optional): Media caption.
media.images[].url (string, optional): Media URL.
media.images[].urls.gallery (string, optional): Gallery image URL.
media.images[].urls.full_size (string, optional): Full-size image URL.
media.images[].urls.thumbnail (string, optional): Thumbnail image URL.
media.images[].is_floorplan (boolean, optional): Whether the media item is a floor plan.
media.images[].is_title_picture (boolean, optional): Whether the media item is the title image.
media.images[].type (string, optional): Media type label, such as PICTURE, FLOORPLAN, or common:Picture.
media.documents (array of objects, optional): Listing documents.
media.documents[].title (string, optional): Document title.
media.documents[].url (string, optional): Document URL.
media.floor_plan_available (boolean, optional): Whether a floor plan is available.
media.image_count (number, optional): Number of image items.
media.total_items_count (number, optional): Total media item count.
development.id (string, optional): Development identifier when the listing belongs to a development.
development.title (string, optional): Development headline.
development.name (string, optional): Development name.
development.url (string, optional): Public development URL.
development.address (string, optional): Development address.
development.is_presale (boolean, optional): Presale indicator.
development.attributes.preis (string, optional): Development price range.
development.attributes.wohnfläche (string, optional): Development living-area range.
development.attributes.bezugsfrei ab (string, optional): Availability timing.
development.attributes.wohneinheiten (number, optional): Number of residential units.
development.attributes.ausstattung (string, optional): Fit-out or quality label.
development.attributes.zimmer (string, optional): Room range.
development.picture (string, optional): Development image URL.
attributes.kaufpreis (string, optional): Display purchase price.
attributes.wohnfläche (string, optional): Display living area.
attributes.zimmer (number, optional): Display room count.
listing_dates.created (string, optional): Listing creation timestamp.
listing_dates.published (string, optional): Listing publication timestamp.
listing_dates.modified (string, optional): Listing modification timestamp.
details.listing_type (string, optional): Listing presentation type.
details.has_new_flag (boolean, optional): Whether the listing is marked as new.
details.number_of_grouped_objects (number, optional): Number of grouped objects when available.
details.courtage.has_courtage (string, optional): Brokerage-fee indicator.
details.description.object (string, optional): Main property description.
details.description.furnishing (string, optional): Furnishing and fit-out description.
details.description.location (string, optional): Listing-provided location description.
details.description.other (string, optional): Additional listing notes.
details.main_criteria (array of objects, optional): Main listing criteria shown as typed label-value entries.
details.main_criteria[].type (string, optional): Criterion type.
details.main_criteria[].label_key (string, optional): Criterion label key.
details.main_criteria[].value (string, number, or boolean, optional): Criterion value.
details.main_criteria[].metadata.is_tenant_network_listing (boolean, optional): Tenant-network listing indicator.
details.main_criteria[].metadata.is_highlight (boolean, optional): Highlight indicator.
details.main_criteria[].metadata.is_price_on_request (boolean, optional): Price-on-request indicator.
details.main_criteria[].metadata.is_luxury_expose (boolean, optional): Luxury-listing indicator.
details.main_criteria[].metadata.show_price_reduction (boolean, optional): Price-reduction display indicator.
details.main_criteria[].metadata.price_per_sqm (string, optional): Price per square meter.
details.main_criteria[].metadata.postfix (string, optional): Value suffix, such as m².
details.main_criteria[].metadata.cwid (string, optional): Company identifier associated with the criterion when available.
details.main_criteria[].metadata.city (string, optional): City in criterion metadata.
details.main_criteria[].metadata.expose_type (string, optional): Listing exposure type.
details.main_criteria[].metadata.postcode (string, optional): Postal code in criterion metadata.
details.main_criteria[].metadata.geo_code (number, optional): Geographic code.
details.main_criteria[].metadata.exclusive (boolean, optional): Exclusivity indicator.
details.main_criteria[].metadata.purchase_price (number, optional): Purchase price in metadata.
details.main_criteria[].metadata.expose_id (number, optional): Listing ID in metadata.
details.main_criteria[].metadata.region (string, optional): Region in criterion metadata.
details.main_criteria[].metadata.has_courtage (boolean, optional): Brokerage-fee indicator in metadata.
details.breadcrumbs (array of objects, optional): Listing navigation breadcrumbs.
details.breadcrumbs[].title (string, optional): Breadcrumb title.
details.breadcrumbs[].url (string, optional): Breadcrumb URL.
details.available_services.square_meters (number, optional): Square-meter value used by available services.
details.available_services.number_of_rooms (number, optional): Room count used by available services.
details.available_services.zip_code (string, optional): ZIP code used by available services.
details.available_services.is_gas_heating (boolean, optional): Gas-heating indicator.
details.available_services.credit_card_service (boolean, optional): Whether a credit card service is indicated.
details.available_services.credit_wizard_service (boolean, optional): Whether a credit wizard service is indicated.
details.available_services.heating_costs_in_service_charge (boolean, optional): Whether heating costs are included in service charges.
details.available_services.is_fiber_internet (boolean, optional): Fiber internet indicator.
details.detail_attributes.heating_type (string, optional): Heating type.
details.detail_attributes.year_constructed (number, optional): Construction year.
details.detail_attributes.firing_types (string, optional): Energy or firing type.
details.detail_attributes.condition (string, optional): Property condition.
details.detail_attributes.interior_quality (string, optional): Interior quality label.
details.detail_attributes.parking_space (string, optional): Parking information.
details.detail_attributes.type_of_flat (string, optional): Flat type.
details.detail_attributes.floor (number, optional): Floor number.
details.detail_attributes.object_number (string, optional): Object number.
details.detail_attributes.living_space (number, optional): Living space in square meters.
details.detail_attributes.number_of_rooms (string, optional): Room count.
details.detail_attributes.purchase_price (number, optional): Purchase price amount.
details.detail_attributes.zip_code (string, optional): ZIP code.
details.detail_attributes.street (string, optional): Street.
details.detail_attributes.house_number (string, optional): House number.
details.detail_attributes.region1 / details.detail_attributes.region2 / details.detail_attributes.region3 (string, optional): Region hierarchy values.
details.detail_attributes.courtage (boolean, optional): Brokerage-fee indicator.
details.detail_attributes.private_offer (boolean, optional): Private-offer indicator.
details.detail_attributes.has_kitchen (boolean, optional): Kitchen indicator.
details.detail_attributes.balcony (boolean, optional): Balcony indicator.
details.detail_attributes.cellar (boolean, optional): Cellar indicator.
details.detail_attributes.lift (boolean, optional): Lift or elevator indicator.
details.detail_attributes.garden (boolean, optional): Garden indicator.
details.detail_attributes.barrier_free (boolean, optional): Barrier-free indicator.
details.detail_attributes.rented (boolean, optional): Whether the property is marked as rented.
details.object_number (string, optional): Listing object number.
details.tags (array of strings, optional): Display tags associated with the listing.
source_context.seed_id (string, optional): Identifier for the input scope that produced the record.
source_context.seed_type (string, optional): Source input type, such as search.
source_context.country (string, optional): Country context for the record.
source_context.page_index (number, optional): Result page index associated with the record.
source_context.source_url (string, optional): Search or source URL associated with the record.
source_context.loaded_url (string, optional): Loaded public URL associated with the record.
source_context.domain (string, optional): Source domain.
source_context.fingerprint (string, optional): Additional stable comparison value for source-context deduplication.
source_context.scraped_time (string, optional): Timestamp when the record was collected.
Data Quality, Guarantees, And Handling
- Structured records: results are normalized into predictable JSON objects for downstream use.
- Best-effort extraction: fields may vary by region, session, availability, account visibility, listing type, source data quality, or UI experiments.
- Optional fields: null-check optional fields in downstream code, especially media, contact, development, detailed attributes, and address-level fields.
- Deduplication: use
listing_idas the strongest stable key, withurlandsource_context.fingerprintas useful secondary comparison values when present. - Freshness: results reflect the publicly available data at run time.
- Repeated runs: use the recommended idempotency key when syncing data into warehouses, CRMs, search indexes, or reporting systems.
Tips For Best Results
- Start with a small
limitto validate the output shape before scaling up. - Use one country, location, deal type, and property segment per run when you need clean segmentation.
- Leave optional filters empty when the goal is broad discovery.
- Add price, floor area, room count, amenity, energy class, and publication-date filters gradually to understand how each field changes coverage.
- Use
start_urlfor saved searches or complex website searches you want to repeat exactly. - Enable
enrich_datawhen your workflow needs descriptions, media, contact information, address details, and deeper property attributes. - Use
listing_idfor deduplication when storing results over time.
How to Run on Apify
- Open the Actor in Apify Console.
- Configure the available input fields for the target country, listing mode, property type, location, filters, or direct URLs.
- Set the maximum number of outputs to collect with
limit. - Click Start and wait for the run to finish.
- Open the dataset and inspect the first records.
- Download results in JSON, CSV, Excel, or other supported formats.
Scheduling & Automation
Scheduling
Automated Data Collection
Use Apify schedules to run the actor automatically and keep listing datasets fresh for dashboards, enrichment workflows, and monitoring systems. Recurring runs are especially useful for newly published listings, regional inventory tracking, and price or availability monitoring.
- Navigate to Schedules in Apify Console
- Create a new schedule (daily, weekly, or custom cron)
- Configure input parameters
- Enable notifications for run completion
- Add webhooks for automated processing
Integration Options
- BI dashboards: monitor pricing, supply, publication windows, location coverage, and property attributes over time.
- Data warehouses: store normalized listing records for historical analysis, segmentation, forecasting, and operational reporting.
- CRM enrichment: sync public agency, contact, listing, development, and property attributes into account or lead records.
- Google Sheets or Airtable: review smaller market slices, validate target lists, and share curated listing datasets with business users.
- Webhooks: trigger ingestion, alerting, validation, or notification workflows after each completed run.
- ETL and enrichment pipelines: combine property records with portfolio, territory, or customer datasets.
Export Formats And Downstream Use
Apify datasets can be exported from the Console or consumed by downstream systems for operational use. Choose the format that matches your review, automation, or analytics workflow.
- JSON: for APIs, applications, and data pipelines
- CSV or Excel: for spreadsheet workflows and manual review
- API access: for automated ingestion into company systems
- BI and warehouses: for reporting, dashboards, and historical analysis
Performance
The following run times are estimates:
- Small runs (< 1,000 outputs): ~3–5 minutes
- Medium runs (1,000–5,000 outputs): ~5–15 minutes
- Large runs (5,000+ outputs): ~15–30 minutes
Execution time varies based on filters, result volume, and how much information is returned per record. Highly filtered runs can finish faster, while broad discovery or detail-rich records may take longer.
Limitations
- Availability depends on what https://www.immobilienscout24.de and https://www.immobilienscout24.at publicly expose at run time.
- Some optional fields may be missing on sparse records, private offers, regional variants, or listings without media, contact, or development information.
- Very broad searches may take longer or require higher
limitvalues to collect the desired number of records. - Target-side changes can affect field availability, labels, naming, or visibility.
- Regional, account, or availability differences may change visible results.
- Direct URLs should be public ImmoScout24 search result URLs that already represent the scope you want to collect.
Troubleshooting
- No results returned: check filters, location or category spelling, direct URLs, and whether the target site has matching public records.
- Fewer results than expected: broaden filters, raise
limit, or verify that enough matching listings are publicly available. - Some fields are empty: optional fields depend on what each listing publicly provides.
- Run takes longer than expected: reduce scope, lower
limitfor validation, or split broad collection into smaller country, location, or segment runs. - Output changed: compare the current output with the field reference and report a small sample if support is needed.
FAQ
What data does this actor collect?
It collects public ImmoScout24 property listing data, including listing IDs, URLs, titles, pricing, locations, property attributes, agency details, contact information when visible, media, development details, listing dates, and source context.
Can I filter by location, category, date, price, or other criteria?
Yes. The actor supports country, buy or rent mode, property type, location, price range, floor area range, room count, excluded listing conditions, listing source filters, amenities, energy class, publication window, sorting, enrichment, and maximum result limits.
Can I use direct ImmoScout24 search URLs?
Yes. Use start_url when you already have one or more public ImmoScout24 search result URLs. This is useful for saved searches or website searches that already contain the scope you want.
Why did I receive fewer results than my limit?
The limit is a maximum, not a guarantee. You may receive fewer records if the selected scope has fewer public matches, filters are narrow, the location is sparse, or listings are not visible at run time.
Can I schedule recurring runs?
Yes. You can create schedules in Apify Console for daily, weekly, or custom recurring runs and use notifications or webhooks after completion.
How do I avoid duplicates across runs?
Use listing_id as the primary idempotency key. If needed, compare url and source_context.fingerprint as secondary values when syncing repeated runs.
Can I export the data to CSV, Excel, or JSON?
Yes. Apify datasets support exports to JSON, CSV, Excel, and other formats available in the Apify Console.
Does this actor collect private data?
The actor is intended for publicly available listing information. Contact details may appear only when they are publicly visible in the listing data returned at run time.
What should I include when reporting an issue?
Include the input used, with sensitive values removed if applicable, the run ID, expected versus actual behavior, and a small output sample if it helps explain the issue.
Compliance & Ethics
Responsible Data Collection
This actor collects publicly available real estate listing information from https://www.immobilienscout24.de and https://www.immobilienscout24.at for legitimate business purposes. Users are responsible for ensuring that their use of collected data complies with applicable laws, regulations, contractual obligations, and platform terms.
Legitimate use cases include:
- Real estate and property technology research and market analysis
- Portfolio, pricing, and inventory monitoring
- CRM, BI, and analytics enrichment
This section is informational and not legal advice.
Best Practices
- Use collected data in accordance with applicable laws, regulations, and the target site’s terms
- Respect individual privacy and personal information
- Use data responsibly and avoid disruptive or excessive collection
- Do not use this actor for spamming, harassment, or other harmful purposes
- Follow relevant data protection requirements where applicable, such as GDPR and CCPA
Support
For help, use the Issues tab or the actor page. Include the input used, with sensitive values redacted if applicable, the run ID, expected versus actual behavior, and a small output sample when it helps clarify the issue.