Immowelt Scraper — Germany Property Data & API
Pricing
from $1.00 / 1,000 overview listings
Immowelt Scraper — Germany Property Data & API
Immowelt.de scraper & real estate data API for Germany's #2 property portal. Sale & rent listings: price, Kaltmiete/Warmmiete, deposit, size, rooms, floor, address, GPS, photos, agent, energy class & build year — clean JSON/CSV. Fast overview or full detail. No-code, no API key.
Pricing
from $1.00 / 1,000 overview listings
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Immowelt Scraper — Germany Property Data & Real Estate API 🏠
🎉 Every Immowelt.de listing as clean structured data — price, size, rooms, GPS, agent & energy class, no code
Built for German real-estate analysts, agents, investors and proptech teams
📋 Overview
Turn Immowelt.de into a structured dataset in minutes — Germany's #2 property portal (AVIV Group), scraped into clean JSON/CSV/Excel for analysts, agents, investors and proptech builders.
Why thousands of professionals choose us:
- ✅ Full German RE field set: price, Kaltmiete/Warmmiete, Kaution, Nebenkosten, size, rooms, floor, address, postal code, GPS, energy class, build year, agent — 39 fields
- ⚡ Two modes, your call: fast & cheap Overview (every search card) or full Detail (price breakdown, GPS, Baujahr, features, agent vs. private)
- 🎯 Accurate by design: parses Immowelt's own server-rendered data — not guesswork
- 💰 Pay per result: you're only charged for listings actually extracted; generous free tier to test
- 💎 Dual-currency: every price also in USD at the run's live FX rate, plus €/m²
- ✨ No-code & no API key: paste a search URL or pick a region — done
✨ Features
- 🏠 Sale & rent listings: mieten (rent) and kaufen (sale), Wohnung (apartment) and Haus (house)
- 🔗 Search by URL or query: paste any Immowelt search URL (filters preserved) or pick contract + type + region
- 💶 Full price breakdown: base price, Warmmiete, Nebenkosten, Kaution — and price-per-m²
- 🧭 GPS coordinates: exact latitude/longitude for every detail listing (map-ready)
- ⚡ Energy & build data: energy class (A+…H), build year (Baujahr), condition
- 🧑💼 Agent intelligence: agency name + contact, or flagged as private seller, with reference number
- 🖼️ All photos: every listing image plus a thumbnail-first field
- 💵 Dual-currency: EUR price + USD conversion at the live FX rate
- 🎚️ Powerful filters: price, rooms, living area, sort order
- 📤 Clean exports: JSON, CSV, Excel straight from the Apify dataset
🎬 Quick Start
Pick a mode and a search, hit run, and collect a clean dataset. Paste an Immowelt search URL or choose contract + property type + region. Results stream into the dataset as they're scraped.
curl -X POST "https://api.apify.com/v2/acts/sian.agency~immowelt-property-scraper/runs?token=YOUR_TOKEN" \-H 'Content-Type: application/json' \-d '{"scrapeMode":"overview","searchMode":"bySearchUrl","searchUrls":["https://www.immowelt.de/suche/mieten/wohnung/deutschland/ad02de1"],"maxResults":60}'
🚀 Getting Started (3 Simple Steps)
Step 1: Choose your search
Paste an Immowelt.de search URL, or set contract (rent/sale), property type and a region.
Step 2: Pick a mode
Overview for fast, cheap listing cards — or Detail for the full field set.
Step 3: Run & export
Hit Start and download your results as JSON, CSV or Excel.
That's it! In a few minutes, you'll have:
- A clean, structured property dataset
- Prices in EUR and USD, plus €/m²
- Map-ready GPS coordinates and agent contacts
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| scrapeMode | string | No | overview (fast, cheap) or detail (full fields) |
| searchMode | string | No | byQuery or bySearchUrl |
| searchUrls | array | No | Immowelt.de search URLs (bySearchUrl mode) |
| contract | string | No | rent (mieten) or sale (kaufen) — byQuery mode |
| propertyType | string | No | wohnung or haus — byQuery mode |
| geoId | string | No | AVIV region token, e.g. ad02de1 (all Germany) — byQuery mode |
| maxResults | integer | No | Listing cap this run (FREE: 25, PAID: unlimited) |
| priceMin / priceMax | integer | No | Price filter (€) |
| roomsMin / roomsMax | number | No | Rooms filter |
| areaMin / areaMax | integer | No | Living-area filter (m²) |
Example (by search URL):
{"scrapeMode": "detail","searchMode": "bySearchUrl","searchUrls": ["https://www.immowelt.de/suche/kaufen/wohnung/hamburg/ad08de1113"],"maxResults": 100}
Example (by query):
{"scrapeMode": "overview","searchMode": "byQuery","contract": "rent","propertyType": "wohnung","geoId": "ad02de1","priceMax": 1500,"maxResults": 200}
📤 Output
Results are saved to the Apify dataset with 39 fields including:
| Field | Type | Description |
|---|---|---|
| id | string | Immowelt Online-ID (join key) |
| url | string | Listing URL |
| propertyTitle | string | Listing title / summary |
| contract | string | rent or sale |
| property_type | string | Wohnung / Haus |
| price | number | Base price (Kaltmiete / Kaufpreis), € |
| price_usd | number | Price in USD at live FX |
| price_per_sqm | number | €/m² |
| total_rent | number | Warmmiete (detail) |
| deposit | number | Kaution (detail) |
| area_sqm | number | Living area (m²) |
| rooms | number | Rooms |
| floor | string | Floor / Geschoss |
| city / zip / district | string | Location |
| latitude / longitude | number | GPS (detail) |
| energy_class | string | Energy class A+…H |
| construction_year | number | Build year (detail) |
| agent_name | string | Agency / contact |
| is_private | boolean | Private seller flag |
| images | array | All photo URLs |
Example:
{"id": "26N7GPBIXZKP","url": "https://www.immowelt.de/expose/adf39d0f-3c0f-417c-a8d0-818ab59795da","propertyTitle": "Wohnung zur Miete - Hamburg - 1.280 € - 2 Zimmer, 66 m², 2. Geschoss","contract": "rent","property_type": "Wohnung","price": 1280,"price_usd": 1382,"price_per_sqm": 19,"area_sqm": 66,"rooms": 2,"city": "Hamburg","zip": "22043","latitude": 53.5689,"longitude": 10.0949,"energy_class": "A","currency": "EUR"}
💼 Use Cases & Examples
1. Market Research & Comparables
Analysts benchmarking rents and sale prices across German cities. Input: Search URLs per city · Output: Price, €/m², size, energy class · Use: Build price/rent comparables and heatmaps.
2. Lead Generation for Agents
Agents sourcing private-seller listings to win mandates. Input: Rent/sale by region · Output: Agent name, private-seller flag, reference number · Use: Prioritise direct-from-owner outreach.
3. Investment & Rental-Yield Analysis
Investors modelling yields on apartments. Input: By query with price/area filters · Output: Kaltmiete, Warmmiete, Nebenkosten, €/m² · Use: Compute gross/net yields at scale.
4. Proptech Real-Estate Data API
Builders feeding a German property data product. Input: Scheduled runs per region · Output: Structured JSON · Use: Power a search/valuation app without an Immowelt API key.
5. Relocation & Site Selection
Companies finding housing near new offices. Input: By query around a postal code · Output: Address, GPS, price, energy class · Use: Shortlist map-ready options.
6. Energy & Sustainability Studies
Researchers studying building efficiency. Input: Detail mode per region · Output: Energy class, build year, condition · Use: Analyse the German housing stock's efficiency.
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/immowelt-property-scraper').call({scrapeMode: 'overview',searchMode: 'bySearchUrl',searchUrls: ['https://www.immowelt.de/suche/mieten/wohnung/deutschland/ad02de1'],maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/immowelt-property-scraper').call(run_input={'scrapeMode': 'detail','searchMode': 'byQuery','contract': 'sale','propertyType': 'wohnung','geoId': 'ad02de1','maxResults': 50,})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~immowelt-property-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"scrapeMode":"overview","searchMode":"byQuery","contract":"rent","propertyType":"wohnung","geoId":"ad02de1"}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: Schedule or webhook
- HTTP Request: Call the actor API
- Process: Handle the JSON results
- Action: Save to a sheet/DB, notify, or transform
📊 Performance & Pricing
FREE Tier (Try It Now)
- 25 listings per run — full feature access, same quality
- No credit card required
- Perfect for testing and small projects
PAID Tier (Production Ready)
- Unlimited listings per run
- Faster throughput, no delays
- Pay-per-result: only charged for listings actually extracted
💰 Fair, transparent pricing — a cheap high-volume Overview event and a premium Detail event for the full field set.
❓ Frequently Asked Questions
Q: How many listings can I extract? A: FREE tier: 25 per run. PAID tier: unlimited.
Q: What's the difference between Overview and Detail? A: Overview returns the search-card fields (price, rooms, area, address, energy, agent) fast and cheap. Detail visits each listing for the full set — price breakdown, GPS, build year, features, private/agent.
Q: Do I need an Immowelt account or API key? A: No. Just paste a search URL or pick a region.
Q: What output formats are available? A: JSON, CSV, Excel — export directly from the Apify dataset.
Q: Can I scrape a whole city or all of Germany? A: Yes. Note Immowelt's pager caps a single query at ~10,000 results — split large regions by price/type bands to enumerate fully.
Q: Are prices available in USD?
A: Yes — every row carries price_usd at the run's live FX rate, plus price_per_sqm.
Q: Is this legal? A: We only extract publicly available data. See the legal note below.
🐛 Troubleshooting
No results returned
- Confirm the search URL opens real listings in a browser
- Widen filters (price/rooms/area) — they may be too narrow
- For byQuery, verify the
geoIdtoken (use bySearchUrl if unsure)
Fewer results than expected
- Immowelt caps a single query at ~10,000 listings; split by region/price bands
- Check
maxResultsandmaxPages
Missing detail-only fields (GPS, deposit, build year)
- Those appear in Detail mode only — switch
scrapeModetodetail
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
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.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's repository
- Check SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools