Immowelt Scraper - German Real Estate Listings
Pricing
Pay per usage
Immowelt Scraper - German Real Estate Listings
Scrape real estate listings from Immowelt.de — Germany's #2 property portal. Search apartments and houses for sale or rent. Get prices, addresses, rooms, surfaces, energy ratings, photos, and agent details.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Immowelt Scraper
Extract property listings from Immowelt.de — Germany's #2 real estate portal — into structured JSON with prices, locations, rooms, surfaces, energy ratings, photos, and full property details.
What is Immowelt Scraper?
Immowelt Scraper lets you extract structured real estate data from one of Germany's largest property platforms, helping you monitor the market, compare prices, and automate property research — all without manual browsing or login.
- Track market prices by city and district: extract listings with prices, surface areas, and price-per-m2 to build price maps across German cities
- Monitor new listings automatically: schedule daily runs to catch new properties the moment they appear
- Build property datasets for analysis: export thousands of listings for valuation models, investment screening, or academic research
- Compare rental vs. sale markets: switch between Kaufen and Mieten to analyse yield gaps and rental demand
- Feed your CRM or dashboard: export structured data to Google Sheets, Airtable, or any BI tool via Apify integrations
Immowelt.de has no public API and no bulk export feature. This scraper is the only way to get structured data out at scale.
What data does Immowelt Scraper extract?
- Title and full property description
- Address — street, postal code, city, district
- Price — asking price for sale or monthly rent
- Price per m2 — calculated if not provided
- Listing type — sale or rent
- Property details — type, rooms, bedrooms, bathrooms, surface (m2), land surface (m2), floor, build year
- Energy data — energy efficiency rating, consumption value, heating type
- Condition and availability date
- Agency/agent name and URL
- All images — main photo and full gallery
- Features — amenities and equipment list
- Direct URL to the listing on Immowelt.de
How to scrape Immowelt data
The input is simple: choose your search criteria and hit run. You can configure the scraper through the Apify Console UI or programmatically via the API.
Input fields
| Field | Type | Default | Description |
|---|---|---|---|
| startUrls | Array | — | Immowelt search result URLs or individual listing URLs |
| searchQuery | String | "Berlin" | City or region to search (e.g., "Muenchen", "Hamburg", "Koeln") |
| listingType | String | "kaufen" | "kaufen" (buy) or "mieten" (rent) |
| propertyType | String | "wohnungen" | "wohnungen" (apartments), "haeuser" (houses), or "wohnungen-und-haeuser" (all) |
| maxResults | Integer | 100 | Maximum number of listings to return (1-10,000) |
| proxyConfiguration | Object | — | Proxy settings (DE residential recommended) |
Tips for best results
- Use
searchQueryfor quick location searches: type a city name like"Berlin"or"Muenchen"to target a specific area - Use
startUrlsfor advanced filtering: apply filters on Immowelt.de (price range, number of rooms, balcony, etc.), copy the URL, and paste it as a start URL to preserve all filters - Proxy is recommended. Immowelt has bot detection. Use DE residential proxy for large runs to avoid rate limits
- Start with a small
maxResults(e.g., 20) to verify the output, then scale up - Schedule daily runs to track new listings — Immowelt sees hundreds of new properties per day across Germany
Output
Results are stored in a dataset that you can download in JSON, CSV, Excel, XML, or HTML format directly from the Apify Console.
JSON example
{"listingTitle": "Wohnung zum Kauf in Berlin-Mitte","price": 350000,"pricePerSqm": 5000,"currency": "EUR","url": "https://www.immowelt.de/expose/2y5e94d","scrapedAt": "2026-06-07T10:30:00.000Z","listingType": "sale","propertyType": "apartment","address": "Mitte, Berlin (10115)","city": "Berlin","postalCode": "10115","district": "Mitte","latitude": null,"longitude": null,"rooms": 3,"bedrooms": 2,"bathrooms": 1,"surface": 70,"landSurface": null,"floor": "2. OG","buildYear": 1998,"energyRating": "C","energyConsumption": "120 kWh/(m2*a)","heatingType": "Zentralheizung","condition": "Gepflegt","availableFrom": "sofort","imageUrl": "https://media.immowelt.de/photos/abc123/1.jpg","imageUrls": ["https://media.immowelt.de/photos/abc123/1.jpg","https://media.immowelt.de/photos/abc123/2.jpg","https://media.immowelt.de/photos/abc123/3.jpg"],"description": "Helle 3-Zimmer-Wohnung in zentraler Lage mit Balkon und Einbaukueche. Naehe U-Bahn Rosenthaler Platz.","features": ["Balkon", "Einbaukueche", "Aufzug", "Keller"],"agencyName": "ABC Immobilien GmbH","agencyUrl": "https://www.immowelt.de/anbieter/abc-immobilien"}
How much does it cost to scrape Immowelt?
Immowelt Scraper uses Playwright (real browser) because Immowelt relies on JavaScript rendering and has anti-bot protections.
| Scenario | Est. cost | Time |
|---|---|---|
| 20 listings | ~$0.20 | ~1 min |
| 100 listings | ~$0.85 | ~5 min |
| 1,000 listings | ~$8.50 | ~45 min |
| 5,000 listings | ~$42 | ~3 hrs |
Pricing breakdown:
- Per result: $0.008
- Start fee: $0.01
Can I integrate Immowelt Scraper with other apps?
Yes. Immowelt Scraper connects with any tool through Apify integrations:
- Google Sheets — automatically export property data to a spreadsheet
- Slack / Email — get notified when new listings match your criteria
- Zapier / Make — trigger workflows when data is ready
- Airtable — build a searchable property database
- REST API — call the scraper programmatically from any language
- Webhooks — get notified when a run finishes
Can I use Immowelt Scraper as an API?
Yes. Use the Apify API to run Immowelt Scraper programmatically.
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("studio-amba/immowelt-scraper").call(run_input={"searchQuery": "Berlin","listingType": "kaufen","propertyType": "wohnungen","maxResults": 200,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['listingTitle']} -- {item['city']} -- EUR {item['price']:,}")
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('studio-amba/immowelt-scraper').call({searchQuery: 'Berlin',listingType: 'kaufen',propertyType: 'wohnungen',maxResults: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Check the API tab for full documentation.
FAQ
What is Immowelt.de?
Immowelt.de is one of Germany's largest real estate portals, with hundreds of thousands of active property listings. It covers the entire German market — all 16 Bundeslaender — for both sales and rentals across apartments, houses, commercial properties, and land. It's operated by Immowelt GmbH, part of the AVIV Group (Axel Springer SE).
How does Immowelt Scraper work?
It uses a real browser (Playwright) to load Immowelt search result pages and listing detail pages, extracting structured data from the rendered HTML. Search results are parsed directly from the listing cards for speed, while detail pages are visited for full property information. Pagination is handled automatically.
Can I scrape both sale and rental listings?
Yes. Set listingType to "kaufen" for sales or "mieten" for rentals. You can also filter by property type: "wohnungen" (apartments), "haeuser" (houses), or "wohnungen-und-haeuser" for all types.
Can I filter by price, rooms, or other criteria?
Yes. Apply any filters on Immowelt.de directly, then copy the resulting URL and paste it into startUrls. The scraper will respect all URL parameters including price range, number of rooms, balcony, garden, and more.
Is it legal to scrape Immowelt?
This scraper extracts publicly available listing data that Immowelt.de displays to all visitors. The data is factual (prices, addresses, property specifications) and does not contain private personal information. As with any scraping tool, use the data responsibly and in compliance with applicable laws. No login or cookies required.
Limitations
- Germany only. Immowelt.de covers exclusively German real estate.
- Browser-based. Uses Playwright, which is slower and more expensive than HTTP-only scrapers — but necessary because Immowelt requires JavaScript rendering.
- Proxy recommended. Immowelt has bot detection. DE residential proxy is recommended for runs over 100 listings.
- Some fields may be null. Not all sellers fill in every field —
landSurface,buildYear,energyRating, orbathroomsmay be missing. - Detail page extraction is optional. Search results provide key fields (title, price, rooms, surface, city). For full data (description, images, energy ratings), use
startUrlswith individual expose URLs.
Other real estate scrapers
Combine Immowelt Scraper with these actors for comprehensive European property market coverage:
- ImmoScout24 Scraper — Germany's #1 real estate portal
- Immoweb Scraper — Belgium's #1 property portal
- Funda Scraper — Netherlands' largest property platform
- Zimmo Scraper — Belgian real estate listings
- Immoscoop Scraper — Belgian property search
- Willhaben Scraper — Austria's largest marketplace with real estate
- Otodom Scraper — Poland's leading property portal
Your feedback
Found a bug or have a feature request? Please open an issue on the Issues tab. We actively maintain this scraper and respond to all reports.