Immoscout24 Scraper with Contacts | All In One avatar

Immoscout24 Scraper with Contacts | All In One

Pricing

from $0.70 / 1,000 property listings

Go to Apify Store
Immoscout24 Scraper with Contacts | All In One

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

5.0

(1)

Developer

Fatih Tahta

Fatih Tahta

Maintained by Community

Actor stats

1

Bookmarked

6

Total users

2

Monthly active users

2 days ago

Last modified

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

  1. Choose a listing scope with country, deal_type, and property_type, or provide one or more ImmoScout24 search URLs in start_url.
  2. Add a location and optional filters such as price, floor area, room count, amenities, energy class, publication window, or listing source.
  3. Set a small limit for the first validation run so you can inspect the output quickly.
  4. Run the actor in Apify Console.
  5. Review the first dataset records and confirm that the fields, regions, and listing types match your workflow.
  6. 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.

ParameterTypeDescriptionDefault
start_urlarray of stringsOptional 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_typestringListing mode. Allowed values: buy, rent.buy
property_typestringProperty 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
countrystringCountry for structured searches. Allowed values: germany, austria, spain, italy. Direct URLs carry their own country context.germany
locationstringCity, state, ZIP code, neighborhood, region, or market. Leave empty for broader country-level discovery or when direct URLs already include the target location.
min_priceintegerMinimum listing price in euros.
max_priceintegerMaximum listing price in euros.
min_floor_areaintegerMinimum usable floor area in square meters.
max_floor_areaintegerMaximum usable floor area in square meters.
min_bedroomintegerMinimum room count.
max_bedroomintegerMaximum room count.
excluded_listing_conditionsarray of stringsListing conditions to exclude. Allowed values: new_development, foreclosure_auction, off_market_accepting_offers.[]
only_plus_listingsbooleanSave only listings marked as Search+ verified.false
only_immoscout24booleanSave only listings published directly on ImmoScout24.false
unit_amenitiesarray of stringsRequired amenities. Allowed values: balcony, garden, garage_parking, fitted_kitchen, elevator, basement_storage, guest_bathroom.[]
energy_efficiency_classarray of stringsRequired energy efficiency classes. Allowed values: a_plus, a, b, c, d, e, f, g, h.[]
sort_bystringResult ordering for structured searches. Allowed values: default, price_desc, price_asc, newest. Direct URLs keep the ordering already present in the URL.default
publication_datestringPublication window for recently added listings. Allowed values: 24_hours, 3_days, 7_days, 2_weeks, 1_month.
enrich_databooleanCollect 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
limitintegerMaximum 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

Output destination

The actor writes property listing records to the default Apify dataset. Each dataset item is a normalized JSON object designed for ETL jobs, BI tools, CRM enrichment, search indexes, and AI agents.

Record envelope and stable identifiers

Each saved row uses one public record family: property_listing. The recommended idempotency key is record_id, which is derived from the strongest available ImmoScout24 listing identifier. Listing URLs remain available under listing.url, entity.url, and source_context.listing_url; source_context.fingerprint is available as an additional run-to-run comparison value.

Top-level fields are grouped by purpose:

  • record_type and record_id identify the row and stable entity.
  • source_context stores source, seed, URL, country, page, fingerprint, and scrape timing context.
  • entity stores listing identity, public URL, source type, and source identifiers.
  • listing stores headline, URL, deal type, property type, source classification, listing display metadata, descriptions, criteria, breadcrumbs, tags, and dates.
  • pricing stores listing price, rent, market value, lowest bid, and commercialization details.
  • location stores address, region, country, coordinates, address visibility, and location description.
  • property stores normalized physical property facts, amenities, condition, energy, floor, area, rooms, and features.
  • availability stores publication, modification, recurrence, and availability timing when available.
  • media stores images, videos, documents, virtual tours, floor plan flags, and media counts.
  • contact_details stores visible agency and contact information.
  • relationships stores related public entities, such as the agency/company and development/project data embedded in a listing.
  • attributes stores source-specific display attributes, service flags, brokerage details, and detailed attributes that do not fit a stronger normalized bucket.

Example: property listing

{
"record_type": "property_listing",
"record_id": "900123456",
"source_context": {
"source_name": "ImmoScout24",
"source_domain": "www.immobilienscout24.de",
"source_url": "https://www.immobilienscout24.de/Suche/de/berlin/wohnung-kaufen",
"listing_url": "https://www.immobilienscout24.de/expose/900123456",
"canonical_url": "https://www.immobilienscout24.de/expose/900123456",
"loaded_url": "https://www.immobilienscout24.de/Suche/de/berlin/wohnung-kaufen",
"seed_id": "search_buy_apartment_germany_da39a3ee5e6b4b0d3255",
"seed_type": "search",
"seed_value": "Berlin",
"country": "germany",
"country_site": "germany",
"page_index": 1,
"fingerprint": "4affa6073cc88076c9cd",
"scraped_time": "2026-05-19T09:45:13.965942Z"
},
"entity": {
"name": "Familiengerecht wohnen: 4-Zimmer-Wohnung im Quartier Lindenhof",
"url": "https://www.immobilienscout24.de/expose/900123456",
"source_entity_type": "search:ApartmentBuy",
"external_ids": {
"listing_id": "900123456",
"expose_id": "900123456",
"source_id": "900123456",
"object_number": "QLH_A_WE_064"
}
},
"listing": {
"title": "Familiengerecht wohnen: 4-Zimmer-Wohnung im Quartier Lindenhof",
"url": "https://www.immobilienscout24.de/expose/900123456",
"deal_type": "buy",
"property_type": "apartment",
"source_real_estate_type": "search:ApartmentBuy",
"commercialization_type": "BUY",
"listing_type": "XXL",
"object_number": "QLH_A_WE_064",
"has_new_flag": true,
"number_of_grouped_objects": 7,
"description": {
"object": "Mit dem Quartier Lindenhof entsteht in Musterstadt ein neues Wohnensemble.",
"furnishing": "Parkettböden, Fußbodenheizung und großformatige Fenster.",
"location": "Das Quartier liegt in Musterstadt in einem gewachsenen städtischen Umfeld.",
"other": "Provision trägt der Verkäufer."
},
"main_criteria": [
{
"type": "PRICE",
"label_key": "mainCriteria.purchasePrice.label",
"value": "708.000 €",
"metadata": {
"price_per_sqm": "6.370 €/m²",
"is_price_on_request": false
}
}
],
"breadcrumbs": [
{
"title": "Wohnung kaufen",
"url": "https://www.immobilienscout24.de/wohnen/eigentumswohnung.html"
}
],
"tags": ["Provisionsfrei für Kaufende", "Balkon/Terrasse", "Aufzug"],
"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"
}
},
"pricing": {
"price": {
"value": 708000,
"currency": "EUR",
"marketing_type": "PURCHASE",
"price_interval_type": "ONE_TIME_CHARGE"
},
"commercialization_type": "BUY"
},
"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,
"heating_type": "floor_heating",
"firing_types": "electricity",
"condition": "first_time_use",
"interior_quality": "sophisticated",
"parking_space": "no_information",
"type_of_flat": "apartment",
"floor": 3,
"amenities": {
"built_in_kitchen": false,
"balcony": true,
"garden": false,
"cellar": true,
"elevator": true,
"floorplan_available": true
},
"features": ["balcony", "cellar", "lift"]
},
"availability": {
"created_at": "2026-05-04T17:32:16.000+02:00",
"published_at": "2026-05-04T17:32:16.000+02:00",
"modified_at": "2026-05-04T14:09:52.080+02:00",
"available_from": "August 2028"
},
"media": {
"images": [
{
"id": "1",
"caption": "Kinderzimmer",
"url": "https://pictures.immobilienscout24.de/listings/example.jpg",
"urls": {
"gallery": "https://pictures.immobilienscout24.de/listings/example-gallery.jpg",
"full_size": "https://pictures.immobilienscout24.de/listings/example-full.jpg",
"thumbnail": "https://pictures.immobilienscout24.de/listings/example-thumb.jpg"
},
"type": "PICTURE"
}
],
"documents": [
{
"title": "Quartier_Lindenhof_Haus_A_WE_064",
"url": "https://d2qfnj9mv71tll.cloudfront.net/example.pdf"
}
],
"floor_plan_available": true,
"image_count": 7,
"total_items_count": 8
},
"contact_details": {
"agency": {
"company_name": "Musterstadt Development GmbH",
"company_customer_id": "002.00000012345",
"realtor_sso_id": "100000001",
"logo_url": "https://pictures.immobilienscout24.de/usercontent/example-logo.JPEG",
"private_offer": false
},
"contact": {
"salutation": "NO_SALUTATION",
"first_name": "Musterstadt",
"last_name": "Vertriebsteam",
"phone_number": "+49 30 12345678",
"company": "Musterstadt Development GmbH"
}
},
"relationships": {
"agency": {
"company_name": "Musterstadt Development GmbH",
"company_customer_id": "002.00000012345",
"realtor_sso_id": "100000001",
"private_offer": false
},
"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"
}
}
},
"attributes": {
"display_attributes": {
"kaufpreis": "708.000 €",
"wohnfläche": "111,15 m²",
"zimmer": 4
},
"courtage": {
"has_courtage": "NO"
},
"available_services": {
"square_meters": 111.15,
"number_of_rooms": 4,
"zip_code": "10115",
"heating_costs_in_service_charge": false
},
"detail_attributes": {
"object_number": "QLH_A_WE_064",
"zip_code": "10115",
"street": "Beispielstraße",
"house_number": "12",
"region1": "Berlin",
"region2": "Berlin_Mitte",
"region3": "Musterstadt",
"courtage": false,
"private_offer": false,
"rented": false
}
}
}

Field Reference

Property listing record

record_type (string, required): Stable discriminator. Property records use property_listing.

record_id (string, required): Stable listing identifier for deduplication and upserts.

source_context (object, required): Provenance and run context, including source name/domain, source URL, listing URL, canonical URL, loaded URL, seed details, country, page index, fingerprint, and scrape timestamp.

entity (object, optional): Listing entity identity, public URL, source entity type, and external_ids such as listing ID, expose ID, source ID, and object number.

listing (object, optional): Listing headline, URL, deal type, property type, source real-estate type, commercialization type, listing type, object number, display flags, descriptions, criteria, breadcrumbs, tags, and listing dates.

pricing (object, optional): Price objects and source pricing context, including purchase price, total rent, market value, lowest bid, currency, labels, per-square-meter text, and commercialization type when available.

location (object, optional): Address fields, city, quarter, region, country, coordinates, address visibility flags, and listing-provided location description.

property (object, optional): Physical property facts such as living space, net floor space, plot area, room count, construction year, energy class, heating, condition, floor, amenities, features, and rented/barrier-free indicators.

availability (object, optional): Created, published, modified, recurrence, and available-from timing when provided by the listing or development data.

media (object, optional): Listing images, image URLs, captions, media type, videos, documents, virtual tours, floor-plan availability, and media counts.

contact_details (object, optional): Visible agency/company details and public contact details such as names, phone numbers, company, portrait URL, and nested contact metadata when present.

relationships (object, optional): Related agency/company and development/project data embedded in the listing. Development attributes preserve source-provided labels such as price range, living-area range, availability, unit count, fit-out, and room range.

attributes (object, optional): Source-specific data that remains useful but is not a primary normalized field, including display attributes, brokerage details, available-service flags, and detailed source attributes.

Data Quality, Guarantees, And Handling

  • Structured records: results use one normalized property_listing envelope with stable top-level buckets.
  • Best-effort extraction: fields may vary by region, listing type, availability, account visibility, 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 record_id as the strongest stable key, with listing.url, source_context.listing_url, and source_context.fingerprint as useful secondary comparison values.
  • 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 limit to 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_url for saved searches or complex website searches you want to repeat exactly.
  • Enable enrich_data when your workflow needs descriptions, media, contact information, address details, and deeper property attributes.
  • Use record_id for deduplication when storing results over time.

How to Run on Apify

  1. Open the Actor in Apify Console.
  2. Configure the available input fields for the target country, listing mode, property type, location, filters, or direct URLs.
  3. Set the maximum number of outputs to collect with limit.
  4. Click Start and wait for the run to finish.
  5. Open the dataset and inspect the first records.
  6. 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 limit values 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 limit for 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 record_id as the primary idempotency key. If needed, compare listing.url, source_context.listing_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.