Immowelt Germany Property Scraper
Pricing
from $0.50 / 1,000 listings
Immowelt Germany Property Scraper
Collect property listings from immowelt.de search results for market research and listing monitoring. Search by city or postcode, rent or buy, and apartment, house or plot; alternatively supply an Immowelt search URL.
Pricing
from $0.50 / 1,000 listings
Rating
0.0
(0)
Developer
Philip Kirkbride
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
Collect property listings from immowelt.de search results for market research and listing monitoring. Search by city or postcode, rent or buy, and apartment, house or plot; alternatively supply an Immowelt search URL. Price, rooms and living area ranges filter the returned listings.
Usage
{"searchUrl": "https://www.immowelt.de/suche/mieten/wohnung/berlin/berlin-10115/ad08de8634","maxResults": 20}
Empty input uses Berlin apartments for rent, up to 20 listings. Search URLs override location, transaction and property type; numeric ranges apply locally. Filters apply to the first 30 results of each search and cannot promise 20 matches. Location names are resolved through Immowelt redirects; for a specific locality prefer an exact search URL. Results vary with current availability.
Output
Each row includes listingId, url, title, transactionType, propertyType, price, currency, priceOnRequest, coldRent, warmRent, purchasePrice, rooms, livingArea, plotArea, floor, yearBuilt, energyClass, city, district, postcode, availableFrom, agencyName, images, postedAt and updatedAt.
Amounts are EUR; price is the main displayed amount. Cold rent, warm rent and purchase price are kept separate when labelled by the source. Listings the source marks as price on request keep price and currency null with priceOnRequest true. Areas are square metres. Floor and availability retain the German source text. Dates are source creation/update timestamps and may differ from the first public posting date. Missing values are null; images is an array, empty if none are shown. Company names are limited to agency titles with an explicit corporate legal form (for example GmbH, AG or KG) to avoid exporting personal agent names. Sole traders, partnerships that trade under the owners' personal names and other unverified agency names remain null. Contact names, telephone numbers, emails and raw provider objects are excluded.
This version reads search data only. There is no includeDetails input and no request to expose pages. Detail-only information such as year built will often be null. Suggestions and broadened search results are excluded; only the search's main classified IDs are processed.
Coverage and limits
Each search returns at most its first 30 listings. Deeper paging is not supported yet: listing detail pages and deeper result pages are not fetched. Use searchUrls (a list of SEO URLs), or locations (a list of cities or postcodes), to cover several searches. searchUrls overrides searchUrl and locations. Set fanOutMax to the number of searches to run (1 by default, at most 50). No automatic district expansion is performed: the saved search state contains room-count links, not a district or postcode list. For example, use two district SEO URLs and fanOutMax: 2 for wider coverage. URLs must start with https://www.immowelt.de/suche/ and have no query parameters.
Listings are deduplicated by source ID across all searches. maxResults caps delivery; the available first pages, filters, charge limit and deadline may stop earlier. The source client declares a 10,000-result navigation cap, but this actor only reads the first 30 per search and cannot exhaust that inventory. An empty page is requested a second time before confirming no results. A shared deadline reserves 20 seconds for finishing and bounds every request and retry delay. Retry-After is honoured in full; the actor finishes if it cannot fit. Delivered rows remain available when a later search is blocked or the deadline expires. An empty blocked or genuinely empty search fails with a readable status; deadline and charge-limit stops succeed even with zero rows. The status and summary identify incomplete searches. Fan-out stops on the first unavailable search.
Direct HTTP is attempted first. Optional proxyConfiguration enables standard Apify proxy after a block; residential fallback is disabled. It does not solve challenges. Default runs use 512 MB. Under a per-event plan the platform counts one start event at this memory size and the SDK counts one dataset-item event per unique emitted listing. Blocked, rejected, filtered and duplicate rows produce no dataset-item charges. The SDK charge limit is checked before further requests and delivery. Consult the current Store pricing.
Download the dataset in JSON, CSV or Excel. The OUTPUT key-value record reports delivery count, stop reason and network usage.