ImmoScout24 Germany Real Estate Scraper avatar

ImmoScout24 Germany Real Estate Scraper

Pricing

Pay per event

Go to Apify Store
ImmoScout24 Germany Real Estate Scraper

ImmoScout24 Germany Real Estate Scraper

Scrape property listings from ImmobilienScout24.de — Germany's #1 real estate portal. Extract price, address, area, rooms, energy data, photos, and agent contact info.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Extract property listings from ImmobilienScout24.de — Germany's largest real estate marketplace. Collect price, address, area, rooms, energy rating, photos, and agent contact details at scale, with no manual browsing.

What does it do?

This actor scrapes property listings from ImmobilienScout24.de — the dominant German real estate portal covering apartments, houses, commercial properties, and land across all of Germany, Austria, and Switzerland. You paste one or more search result URLs, and the actor automatically paginate through results and exports structured data for each listing.

Typical use cases:

  • 🏡 Aggregate listings for a specific city, neighbourhood, or price range
  • 📊 Build real estate market reports and rent/sale price comparisons
  • 🤖 Feed property data into CRMs, analytics dashboards, or price alert systems
  • 📋 Monitor competitor listings for real estate agencies and PropTech tools

Who is it for?

🏢 Real estate agencies

Stay ahead of the market. Track competitor listings, monitor price trends in your target districts, and identify undervalued properties before your clients do.

💼 Property investors & funds

Automate market intelligence. Extract asking prices, energy ratings, and location data across hundreds of cities to build proprietary deal-flow pipelines and comparables databases.

🛠️ PropTech startups and analytics firms

Build rental price indexes, neighbourhood value maps, and automated valuation models. Feed IS24 data into your models without paying for enterprise data licences.

📰 Data journalists and researchers

Track rent inflation, analyse housing availability by district, or visualise the spread of energy efficiency ratings across Germany's housing stock.

Why use it?

  • ✅ Handles IS24's bot protection automatically — no manual CAPTCHA solving
  • ✅ Extracts structured data from IS24's Next.js page model for maximum field coverage
  • ✅ Supports all listing types: apartments for rent/sale, houses, commercial, land
  • ✅ Paginates automatically across all result pages
  • ✅ Works with residential proxy rotation for reliable, long-running scrapes
  • ✅ Exports to JSON, CSV, Excel, or via API — native Apify dataset integrations

What data is extracted?

FieldDescription
listingIdIS24 listing ID
urlDirect link to the listing page
titleListing headline
listingTypee.g. "Wohnung kaufen", "Haus mieten"
priceAsking price (€)
priceRawPrice as displayed on IS24
pricePerSqmPrice per square metre (€/m²)
currencyEUR
warmRentTotal rent incl. additional costs (Warmmiete)
coldRentBase rent (Kaltmiete)
additionalCostsService charge / Nebenkosten
depositSecurity deposit (Kaution)
livingAreaSqmLiving area in m²
plotAreaSqmPlot area in m² (houses)
roomsTotal number of rooms
bedroomsNumber of bedrooms
bathroomsNumber of bathrooms
floorFloor number
totalFloorsTotal floors in the building
yearBuiltYear of construction
conditionProperty condition (e.g. Renoviert)
heatingTypeHeating system type
energyClassEnergy efficiency class (A+–H)
energyConsumptionEnergy consumption in kWh/(m²·a)
addressFull address string
streetStreet name
cityCity
districtNeighbourhood/district
zipCodePostal code
latitudeGPS latitude
longitudeGPS longitude
descriptionProperty description text
featuresList of features (balcony, lift, garden…)
photoUrlsArray of photo URLs
agentNameContact person name
agentCompanyAgency / company name
agentPhoneAgent phone number
contactFormUrlURL to IS24 contact form
postedAtListing publication date
scrapedAtTimestamp when data was collected

How to use it

  1. Go to immobilienscout24.de
  2. Select your city, listing type (rent/sale), property type (apartment/house), and any price/size filters
  3. Copy the full URL from your browser address bar

Example search URLs:

https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-kaufen
https://www.immobilienscout24.de/Suche/de/hamburg/haus-mieten?price=500.0-1500.0
https://www.immobilienscout24.de/Suche/de/muenchen/wohnung-mieten?numberOfRooms=2.0-

Step 2 — Paste URLs into the actor

  1. Open this actor on Apify
  2. Paste one or more IS24 search URLs into the Search URLs field
  3. Set Max listings per URL (start with 20–50 for testing)

Step 3 — Run and download results

Click Start and wait for the run to complete. Results appear in the Dataset tab as they are collected. Download as JSON, CSV, or Excel — or connect to Google Sheets via Apify integrations.

Input parameters

ParameterTypeDefaultDescription
searchUrlsarrayRequired. IS24 search result URLs to scrape
maxListingsinteger50Max listings to collect per URL
maxPagesinteger10Max search result pages per URL (each page ≈ 20 listings)
proxyobjectResidentialProxy configuration — residential recommended
maxConcurrencyinteger3Parallel browser pages (lower = more stable)
navigationTimeoutSecsinteger60Page load timeout in seconds
maxRequestRetriesinteger3Retry attempts for failed pages

Output example

{
"listingId": "123456789",
"url": "https://www.immobilienscout24.de/expose/123456789",
"title": "Helle 3-Zimmer-Wohnung in Berlin-Mitte",
"listingType": "Wohnung kaufen",
"price": 450000,
"priceRaw": "450.000 €",
"pricePerSqm": 5625,
"currency": "EUR",
"warmRent": null,
"coldRent": null,
"additionalCosts": null,
"deposit": null,
"livingAreaSqm": 80,
"plotAreaSqm": null,
"rooms": 3,
"bedrooms": 2,
"bathrooms": 1,
"floor": "3",
"totalFloors": 5,
"yearBuilt": 1998,
"condition": "Gepflegt",
"heatingType": "Fernwärme",
"energyClass": "C",
"energyConsumption": "89.5 kWh/(m²·a)",
"address": "Musterstraße 12, 10115 Berlin",
"street": "Musterstraße 12",
"city": "Berlin",
"district": "Mitte",
"zipCode": "10115",
"latitude": 52.5208,
"longitude": 13.4094,
"description": "Wir bieten Ihnen diese helle und geräumige Wohnung...",
"features": ["Balkon", "Einbauküche", "Aufzug"],
"photoUrls": ["https://pictures.immobilienscout24.de/..."],
"agentName": "Max Mustermann",
"agentCompany": "Immobilien GmbH Berlin",
"agentPhone": "+49 30 12345678",
"contactFormUrl": "https://www.immobilienscout24.de/expose/123456789#contact",
"postedAt": "2026-05-01",
"scrapedAt": "2026-05-10T08:00:00.000Z"
}

Tips for best results

💡 Use specific search filters — Set price ranges, room counts, and neighbourhood filters before copying the URL. The more specific your filter, the more relevant your results.

💡 Start small — Set maxListings to 20–50 for test runs before scraping thousands of listings. This keeps costs predictable.

💡 One URL per district/type — For large cities (Berlin, Munich), split by neighbourhood or property type. One search URL per run segment works better than combining too many filters.

💡 Residential proxy is recommended — IS24 has bot protection that blocks datacenter IPs. The default residential proxy setting handles this automatically.

💡 Re-run for freshness — IS24 listings are updated daily. Schedule this actor weekly or monthly to keep your dataset current.

💡 Export to Google Sheets — Use Apify's Google Sheets integration to automatically push results into a spreadsheet after each run.

How much does it cost to scrape ImmobilienScout24?

This actor uses Pay-Per-Event (PPE) billing — you only pay for the listings you extract. There's a small one-time start fee per run.

Pricing tiers

PlanCost per listing
FREE$0.01762
BRONZE$0.01532
SILVER$0.01195
GOLD$0.00919
PLATINUM$0.00613
DIAMOND$0.00429

Cost examples

Estimates at BRONZE tier ($0.01532/listing) including the $0.005 start fee:

ListingsEstimated cost
100 listings~$1.54
500 listings~$7.67
2,000 listings~$30.65
10,000 listings~$153.25

Free plan estimate: Apify's free plan includes $5/month in credits — enough for approximately 270–280 listings at the FREE tier.

Prices shown are for the BRONZE tier and include the $0.005 start fee. Higher-volume plans (GOLD, PLATINUM, DIAMOND) offer significant discounts.

Integrations

🔗 Google Sheets — live property tracking

  1. Run the actor with your search URLs
  2. In the Integrations tab, connect the Google Sheets integration
  3. Map the dataset fields to your spreadsheet columns
  4. Results automatically append after each run

📊 Power BI / Tableau — market analysis dashboards

Export the dataset as CSV from the Apify console and import into your BI tool. Schedule the actor monthly to refresh your data automatically.

🤖 Zapier / Make — CRM pipeline automation

Connect Apify to Zapier via the Apify → Zapier trigger. When new listings are scraped, automatically create leads in HubSpot, Salesforce, or Pipedrive for matching properties.

📧 Price alert workflows

  1. Run this actor weekly on your target search URL
  2. Use Apify's Dataset comparison integration to detect new or reduced listings
  3. Send email/Slack notifications via Zapier when new matches appear

API usage

Node.js

import ApifyClient from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/immoscout24-de-scraper').call({
searchUrls: ['https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-kaufen'],
maxListings: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Scraped ${items.length} listings`);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("automation-lab/immoscout24-de-scraper").call(run_input={
"searchUrls": ["https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-kaufen"],
"maxListings": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['title']}{item['priceRaw']}")

cURL

# Start a run
curl -X POST "https://api.apify.com/v2/acts/automation-lab~immoscout24-de-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchUrls": ["https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-kaufen"],
"maxListings": 100
}'
# Fetch results (replace DATASET_ID with the one from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_TOKEN&format=json"

Using with Claude, ChatGPT, and AI assistants (MCP)

This actor is available as an MCP (Model Context Protocol) tool, letting you query IS24 listings directly from Claude, Cursor, or any MCP-compatible AI assistant.

Claude Code / Claude Desktop

Add this actor as a tool in Claude Code:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/immoscout24-de-scraper"

Or add to your Claude Desktop config (~/.claude/claude_desktop_config.json):

{
"mcpServers": {
"apify": {
"type": "http",
"url": "https://mcp.apify.com?tools=automation-lab/immoscout24-de-scraper",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}

Example MCP prompts

Once connected, you can ask your AI assistant:

  • "Find 3-bedroom apartments for sale in Munich under €600,000 on ImmobilienScout24"
  • "Get 50 rental listings in Hamburg Altona and calculate the average price per m²"
  • "Scrape IS24 search results for Berlin Mitte and export them as a table"

VS Code / Cursor

Add to your workspace .vscode/mcp.json:

{
"servers": {
"apify": {
"type": "http",
"url": "https://mcp.apify.com?tools=automation-lab/immoscout24-de-scraper",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

Legality and ethical use

ImmobilienScout24 is a publicly accessible website. This actor only collects data that is visible to any website visitor — it does not access private accounts, contact databases, or any non-public data.

Before using this actor, please review:

We recommend:

  • Respecting IS24's rate limits (the actor does this by default)
  • Not scraping personal contact data beyond what is needed for your use case
  • Complying with applicable data protection laws when storing agent contact info

Apify's platform terms also apply. This actor is intended for legitimate business intelligence, market research, and analytics use cases.

FAQ

Does this work for Austria (immobilienscout24.at) and Switzerland (immobilienscout24.ch)?

The actor scrapes based on the URL you provide. If you paste an .at or .ch URL, it will attempt to scrape that region. However, IS24's country subdomains may have different page structures — .de is the primary supported target.

Why are some listings missing price or area data?

IS24 allows sellers to publish listings without all fields. If price, livingAreaSqm, or rooms is null, the original listing on IS24 did not include that data.

The run succeeded but my dataset is empty — what happened?

This usually means the search URL returned a bot-challenge page that wasn't fully resolved. Try:

  1. Using a more specific search URL (add filters)
  2. Reducing maxConcurrency to 1
  3. Verifying the URL loads correctly in your browser

Can I scrape detail pages for additional fields?

The actor extracts data from IS24's Next.js server-rendered search pages. Detail pages contain additional fields (energy certificates, floor plans) — if you need those, open an issue and we can add a scrapeDetails option.

How long does a run take?

A typical run scraping 100 listings takes 2–5 minutes, including proxy handling. Larger runs (1,000+ listings) take 15–30 minutes.

Looking for real estate data from other markets? Check out our full portfolio:

All scrapers export the same structured format for easy multi-market comparison.