Immowelt.de Scraper — German Real Estate
Pricing
from $0.63 / 1,000 results
Immowelt.de Scraper — German Real Estate
Extract property listings from Immowelt.de, Germany's leading real estate portal. Buy & rent apartments, houses, land. No proxy required.
Pricing
from $0.63 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
1
Monthly active users
18 days ago
Last modified
Categories
Share
Immowelt.de Scraper

Extract property listings from immowelt.de at scale, in a clean, consistent structure ready for market analysis, valuation models, lead generation and monitoring. No API key required.
Why this scraper?
🎯 Built for Germany
A dedicated German scraper, not a global tool with a country dropdown. Locations, price formats and currency (EUR) are tuned for immowelt.de.
💶 Structured pricing
Asking price or rent as a clean number in EUR, plus the price exactly as displayed. Price-on-request listings return null, never a guess.
🏠 Property characteristics
Bedrooms, rooms, surface and property type in structured fields, ready for filtering and analysis.
📄 Full listing content
Complete listing description and title for every record, with a direct link back to the source.
🖼️ Listing photos
Photo URLs for every listing where the source publishes them.
🔁 Repost & change detection
Every record carries isRepost and changeStatus, so daily feeds return genuinely new listings instead of reposted duplicates.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
transaction | string | "sale" | Property operation type: buy or rent |
propertyType | string | "apartments" | Type of property to search |
location | string | "deutschland" | City name as in Immowelt URLs: muenchen, berlin, hamburg, frankfurt, koeln, duesseldorf, stuttgart, nuernberg. Use 'deutschland' for all Germany. |
minPrice | integer | (empty) | Minimum listing price (local currency). Leave empty for no minimum. |
maxPrice | integer | (empty) | Maximum listing price (local currency). Leave empty for no maximum. |
daysOld | integer | (empty) | Only return listings published within the last N days. Leave empty for no recency filter. |
fetchDetails | boolean | false | If true, opens each listing detail page to extract additional fields (description, floor plan, agent contact). Increases run time and cost. |
maxItems | integer | 100 | Maximum number of results to return |
startUrls | array | (empty) | Specific Immowelt search URLs. Overrides all other params. |
Output schema
Every field below is present on every record. Fields the source does not publish for a given listing are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
id | string | Unique listing ID from the source. |
url | string | Direct link to the listing. |
title | string | Listing title as published. |
operationType | string | Operation type. |
propertyType | string | Property type (e.g. apartment, house). |
bedrooms | number | Number of bedrooms (null if not stated). |
bathrooms | string | Number of bathrooms (null if not stated). |
surfaceTotal | number | Surface total. |
surfacePlot | string | Surface plot. |
surfaceCovered | string | Surface covered. |
surfaceUnit | string | Surface unit. |
floorNumber | number | Floor number. |
priceText | string | Price text. |
priceAmount | number | Asking price or rent as a number (null if price on request). |
priceCurrency | string | Currency code of the price. |
priceType | string | Price type. |
streetAddress | string | Street address. |
neighborhood | string | Neighborhood. |
postalCode | string | Postal code of the property. |
country | string | Country of the property. |
energyClass | string | Energy class. |
agencyName | string | Agency name. |
features | array | Feature list as published on the listing. |
images | array | URLs of listing photos. |
shortDescription | string | Short description. |
descriptionText | string | Description text. |
descriptionHtml | string | Full listing description in HTML. |
descriptionMarkdown | string | Description markdown. |
publishDate | string | Publish date. |
publishDateISO | string | Publish date iso. |
source | string | Source. |
scrapedAt | string | Timestamp when this record was scraped. |
contentHash | string | Stable hash of the listing content, used for repost and change detection. |
Example record
{"id": "d79822e1-70f5-4c82-936d-84f8bc75d851","url": "https://www.immowelt.de/expose/d79822e1-70f5-4c82-936d-84f8bc75d851","title": "Wohnung zum Kauf - Erstbezug - Brandenburg an der Havel - 532.300 € - 3 Zimmer, 98,7 m², 5. Geschoss, frei ab sofort","operationType": "sale","propertyType": "Wohnung","bedrooms": 3,"bathrooms": null,"surfaceTotal": 98.7,"surfacePlot": null,"surfaceCovered": null,"surfaceUnit": "m²","floorNumber": 5,"priceText": "532.300 €","priceAmount": 532300,"priceCurrency": "EUR","priceType": "5.393 €/m²","streetAddress": null,"neighborhood": "Eichamtstraße, Neustadt","postalCode": "14776","country": "DE","energyClass": "B","agencyName": null,"features": ["frei ab sofort"],"images": ["https://mms.immowelt.de/d/7/5/0/d750d48c-0cf1-4031-94c4-f997d1b8adee.jpg","https://mms.immowelt.de/9/b/b/b/9bbb8f84-5f1e-4539-9d25-bc83952f6da4.jpg","https://mms.immowelt.de/4/0/e/8/40e88991-0906-4a9a-bc24-ba174fa49d41.png"],"shortDescription": "Objektbeschreibung Im Herzen der Stadt, dennoch zurückgezogen von Lärm und Hektik und vom Wasser umarmt – hier ist das Packhof-Quartier gewachsen. Nicht nur die Lage bietet Ihnen dann zukünftig schön. …","descriptionText": null,"descriptionHtml": null,"descriptionMarkdown": null,"publishDate": null,"publishDateISO": null,"source": "immowelt.de","scrapedAt": "2026-06-24T17:00:30.192Z","contentHash": "c956416333a40de1"}
Examples
Listings in Berlin:
{"location": "Berlin","maxItems": 100}
Cap the price:
{"location": "Berlin","maxItems": 100,"maxPrice": 285000}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.immowelt.de/liste/muenchen/wohnungen/mieten"}],"maxItems": 200}
Daily feed of new listings (run on a schedule):
{"location": "Berlin","daysOld": 1,"maxItems": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only listings added in the last 24 hours.
💰 Pricing
$0.79 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.08 |
| 1,000 | ~$0.79 |
| 10,000 | ~$7.9 |
| 100,000 | ~$79 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.47 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Known limitations
- Some fields (surface, year built, energy label) are only returned when the lister publishes them — expect
nullon a share of records. - Listing photos and agent details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Listings can be withdrawn at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: immowelt.de — Germany property listings
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl