Immowelt.de Scraper [$0.9💰] Price, Energy & Agent Leads 🇩🇪
Pricing
from $0.63 / 1,000 results
Immowelt.de Scraper [$0.9💰] Price, Energy & Agent Leads 🇩🇪
Extract property listings from Immowelt.de for $0.9/1,000 results. Get price, price per m², rooms, energy class (A+–F), plus deep details: agent contact, geo coordinates, exposure dates. Fast Cheerio-based extraction — no browser needed. Germany's #2 real estate portal.
Pricing
from $0.63 / 1,000 results
Rating
5.0
(1)
Developer
Ahmed Jasarevic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Immowelt.de Scraper — German Property Listings, Price & Agent Data 🇩🇪
💰 From $0.9 per 1,000 results — price, price per m², rooms, energy class, plus deep-detail fields: agent contact, geo coordinates, exposure dates.
Scrape German property listings from immowelt.de — one of Germany's largest real estate portals — and get structured data on every listing in seconds. Built for investors, agents, researchers, and proptech teams who need clean, ready-to-use real estate data without maintaining their own scraper.
Why use this actor?
- 💸 Cheap & fast — search-result pages are parsed with plain HTTP (Cheerio), no browser needed. A full listing card, including price per m² and energy class, is extracted in a single request.
- 📊 Investor-ready fields — price per m² lets you compare listings instantly; energy class (A+ to F) helps identify cost-risk properties.
- 📞 Lead generation — agent/agency contact details (phone, email, company) are extracted from listing detail pages.
- 📍 Location intelligence — geo coordinates, full address, and district names for mapping and research.
- 🔒 Safe to run — all traffic routes through the Apify proxy (residential recommended), protecting your IP.
- 🇩🇪 Germany-focused — targets immowelt.de specifically, Germany's #2 property portal, with fields tuned to German listing conventions (Kaltmiete, Kaufpreis, Energieausweis).
Use cases
Market research & price comparables
Analysts benchmarking rents and sale prices across German cities. Input: search URLs per city · Output: price, price/m², rooms, energy class · Use: build price/rent comparables and heatmaps.
Lead generation for real estate agents
Agents sourcing listings and contacts to win new mandates. Input: search by region · Output: agent name, phone, email, company · Use: build outreach lists and prioritize follow-ups.
Investment & rental-yield analysis
Investors modelling yields on apartments and houses. Input: filtered search by price/area · Output: price, price/m², energy data · Use: compute gross yields and cost-risk scores at scale.
PropTech & data products
Builders feeding a German property data product or valuation model. Input: scheduled runs per region · Output: structured JSON · Use: power a search or valuation app without an Immowelt API key.
Relocation & site selection
Companies and relocation services finding housing near a new office or for clients moving cities. Input: search by city/postcode · Output: address, geo coordinates, price, energy class · Use: build map-ready shortlists.
Energy & housing research
Researchers and journalists studying building efficiency or housing affordability. Input: detail-mode runs per region · Output: energy class, construction year, heating type · Use: analyze the German housing stock.
How to use
- Open the actor's Input tab.
- Paste one or more immowelt.de search URLs. Good defaults:
https://www.immowelt.de/suche/kaufen/wohnung/deutschland/ad02de1(buy apartments, whole Germany)- any other
/suche/...URL from the immowelt sitemaps (or your own filters) - direct expose URLs
/expose/{id}are also accepted
- Set Max listings (default 100), Max pages per search (default 5), and whether to scrape details.
- Click Run (free preview gives 10 listings), then download the dataset as JSON, CSV, Excel, or HTML.
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | Germany-wide buy search | immowelt.de search or expose URLs |
maxItems | int | 100 | Max listings to scrape |
maxPagesPerSearch | int | 5 | SERP pages per search URL (~25 listings each) |
scrapeDetails | bool | true | Fetch expose pages for energy/contact/dates/geo |
maxRequestsPerCrawl | int | 250 | Hard cap on HTTP requests |
proxy | proxy object | Apify Residential | Proxy group to use |
Example input:
{"startUrls": ["https://www.immowelt.de/suche/kaufen/wohnung/hamburg/ad08de1113"],"maxItems": 200,"maxPagesPerSearch": 8,"scrapeDetails": true,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Output
Example dataset item:
{"exposeId": "0c5b0a9b-48ab-4a2f-85c7-1f27fb289993","url": "https://www.immowelt.de/expose/0c5b0a9b-48ab-4a2f-85c7-1f27fb289993","title": "Maisonette zum Kauf","listingType": "buy","price": 92000,"pricePerSqm": 1832,"priceText": "92.000 € 1.832 €/m²","rooms": 2,"livingAreaSqm": 50.2,"address": "Königsbrück, Königsbrück (01936)","energyClass": "E","description": "Vermietete 2-Zimmer-Eigentumswohnung in Königsbrück...","detailScraped": true,"detailBlocked": false,"energy": {"efficiencyClass": "D","certificateType": "Verbrauchsausweis","endEnergyConsumption": "145 kWh/(m²·a)","primaryEnergySource": "Erdgas","heatingType": "Zentralheizung","constructionYear": 1995},"contact": {"company": "Immobilien GmbH","contactPerson": "Max Mustermann","phone": "+49 123 456 789","email": "info@example-immobilien.de"},"exposureDates": {"published": "01.06.2026","availableFrom": "sofort"},"geo": { "latitude": 51.27, "longitude": 13.92 },"scrapedAt": "2026-08-12T08:00:00.000Z"}
You can download the dataset as JSON, HTML, CSV, or Excel directly from the Apify dataset.
Data table
| Field | Description |
|---|---|
title | Listing headline |
price / pricePerSqm | Purchase/rental price (EUR) and price per m² |
rooms / livingAreaSqm | Rooms and living area |
address | City, district, postcode |
energyClass | Energy efficiency class (A+..F) |
energy.* | Detail: certificate type, kWh consumption, energy source, heating, construction year |
contact.* | Detail: agency/company, contact person, phone, email |
exposureDates.* | Detail: published / available-from dates |
geo | Detail: latitude / longitude |
detailScraped / detailBlocked | Whether the expose page was scraped / blocked |
Integration examples
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('ahmed_jasarevic/immowelt-de-property-scraper').call({startUrls: ['https://www.immowelt.de/suche/mieten/wohnung/deutschland/ad02de1'],maxItems: 100,scrapeDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('ahmed_jasarevic/immowelt-de-property-scraper').call(run_input={'startUrls': ['https://www.immowelt.de/suche/kaufen/wohnung/deutschland/ad02de1'],'maxItems': 100,'scrapeDetails': True,})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/ahmed_jasarevic~immowelt-de-property-scraper/runs?token=YOUR_TOKEN" \-H 'Content-Type: application/json' \-d '{"startUrls":["https://www.immowelt.de/suche/kaufen/wohnung/deutschland/ad02de1"],"maxItems":100,"scrapeDetails":true}'
Automation workflows (n8n / Zapier / Make)
- Trigger: schedule or webhook
- HTTP Request: call the actor API
- Process: parse the JSON results
- Action: save to a sheet/DB, notify, or feed into your own valuation model
How much does it cost to scrape immowelt.de?
The actor is Cheerio-based, so compute costs are low — roughly one request per SERP card plus one request per expose detail page. A 100-listing run typically uses well under 1 Compute Unit. Free runs are capped at 10 listings.
At $0.9 per 1,000 results, a 1,000-listing overview run costs less than a coffee.
Tips and advanced options
- SERP pages have no bot protection — if you only need price / price-per-m² / rooms / area / energy class, set
scrapeDetails: falseand the run is very fast and cheap. - Expose detail pages are protected by DataDome — enable the Residential proxy group for the best success rate. If detail pages come back blocked, the actor still saves the full SERP-level record with
detailBlocked: true. - Use
maxPagesPerSearchto control depth; combine multiple filtered search URLs to build broad city/region coverage. - Check immowelt's
robots.txt/sitemaps/sitemap_index.xmlfor canonical search URLs to feed intostartUrls.
FAQ
How much does it cost? $0.9 per 1,000 results. Free tier gives 10 listings per run to test before you scale up.
Do I need a proxy? Not for SERP-only runs. For detail pages (agent contact, geo, energy data), a Residential proxy group is strongly recommended since those pages are protected by DataDome.
What's the difference between overview and detail scraping?
Overview (scrapeDetails: false) returns everything visible on the search-results card — fast and cheap. Detail mode additionally visits each expose page for energy data, agent contact, exposure dates, and geo coordinates.
Can I scrape a specific city or region only?
Yes — paste a filtered immowelt.de search URL (city, price range, property type, rent/buy) into startUrls; the actor respects whatever filters are already in the URL.
Can I scrape rentals and sales in the same run?
Yes — add multiple startUrls, one per search type (e.g. one mieten URL and one kaufen URL).
Is scraping immowelt.de legal? Scraping public property data for research and analysis is generally acceptable, but always respect immowelt.de's Terms of Service and German data protection rules (GDPR). Do not resell personal contact data without a legal basis. Read more in Apify's blog post on the legality of web scraping.
Will it break when Immowelt updates their site? The actor is actively maintained and updated when Immowelt changes its page structure.
What output formats are supported? JSON, CSV, Excel, and HTML — all exportable directly from the Apify dataset.
Known limitations
- immowelt.de uses DataDome on expose detail pages; without a residential proxy (or in rare hard-block cases) detail fields may be unavailable.
- Field availability varies by listing — private sellers often omit energy data.
Support
Found a bug or need a custom field? Open an issue in the actor's Issues tab, or reach out for custom German real-estate scraping solutions.
Immowelt® is a trademark of its respective owner. This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Immowelt or the AVIV Group.