immonet.de APIimmonet.de ↗
Search and retrieve German property listings from immonet.de. Get prices, area, rooms, agent info, features, and location data for apartments, houses, and more.
curl -X GET 'https://api.parse.bot/scraper/8ae1d2f5-78e4-4e3e-b1f3-c6df9e50cb5d/search?page=1&location=berlin&estate_type=wohnungen&distribution_type=kaufen' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for real estate listings (apartments, houses, etc.) in Germany. Returns paginated results with listing summaries including price, area, and rooms.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| location | string | City or region name (e.g., 'berlin', 'hamburg', 'muenchen'). |
| estate_type | string | Type of property: 'wohnungen', 'haeuser', 'grundstuecke', 'gewerbe'. |
| distribution_type | string | 'kaufen' for buying, 'mieten' for renting. |
{
"type": "object",
"fields": {
"page": "integer current page number",
"has_more": "boolean indicating if more pages are available",
"listings": "array of listing summary objects with id, url, summary, price, area, rooms",
"total_count": "integer total number of matching listings"
},
"sample": {
"data": {
"page": 1,
"has_more": true,
"listings": [
{
"id": "79feeecf-9447-41b7-9e39-d219fee0a51e",
"url": "https://www.immowelt.de/expose/79feeecf-9447-41b7-9e39-d219fee0a51e",
"area": "69",
"price": "342.000",
"rooms": "2",
"summary": "Wohnung zum Kauf 2 Zimmer · 69 m² · Geschoss 3/4 · frei ab sofort Jessnerstraße 11, Friedrichshain, Berlin (10247)"
}
],
"total_count": 7172
},
"status": "success"
}
}About the immonet.de API
The immonet.de API provides access to Germany's real estate market through 2 endpoints covering property search and detailed listing retrieval. The search endpoint returns paginated summaries including price, area, and room count across property types like apartments, houses, and commercial space. The get_details endpoint goes deeper, returning agent contact details, full feature lists, images, and structured location data for any individual listing.
Search German Real Estate Listings
The search endpoint accepts four optional parameters: location (city or region name such as berlin or muenchen), estate_type (one of wohnungen, haeuser, grundstuecke, or gewerbe), distribution_type (kaufen for purchase, mieten for rental), and page for pagination. It returns a listings array of summary objects, each containing an id, url, summary, price, area, and rooms. The response also includes total_count and has_more so you can iterate through result pages without guessing at the end condition.
Detailed Property Data
The get_details endpoint accepts a uuid taken directly from search result id fields. It returns a richer data shape: an attributes object with price, area, and rooms; a location object with city, district, and zip_code; a features array listing property characteristics as strings; an images array of URLs; a description string from the listing body; and an agent object containing name, address, and company_type. This makes it straightforward to build a pipeline where you filter with search and then hydrate selected listings with get_details.
Coverage and Scope
The API covers residential and commercial property in Germany, including apartments (wohnungen), houses (haeuser), land plots (grundstuecke), and commercial properties (gewerbe). Both buying and renting markets are accessible. Location filtering works at the city or region level — sub-district filtering is not a current input parameter. Pagination is explicit via the page parameter, and the has_more flag indicates whether additional pages exist for a given query.
- Aggregate buy-vs-rent price comparisons across German cities using
priceanddistribution_typefields. - Build a property alert system that checks
searchresults daily for new listings matching a given location and estate type. - Populate a CRM with agent
name,address, andcompany_typedata for real estate brokers active on immonet.de. - Generate per-district price-per-sqm statistics using
area,price, andlocation.districtfromget_details. - Feed a map visualization with
zip_codeandcitycoordinates alongside listing prices. - Track inventory depth in a market by monitoring
total_countacrosswohnungenandhaeuserover time. - Filter commercial property (
gewerbe) listings in a target city to identify available office or retail space.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does immonet.de offer an official developer API?+
What does the `search` endpoint return for each listing?+
listings array includes a unique id (the UUID used with get_details), a url to the listing page, a summary string, and structured price, area, and rooms values. The response-level total_count and has_more fields support pagination without requiring you to track offsets manually.Can I filter searches by sub-district or postal code rather than just city?+
search endpoint accepts city or region-level input via the location parameter. Sub-district and ZIP-code filtering are not exposed as inputs. You can fork this API on Parse and revise it to add more granular location parameters.Does `get_details` return mortgage estimates or valuation data?+
attributes object covers price, area, and rooms, and the broader response covers agent info, features, images, and location. Calculated valuations and mortgage figures are not part of the current response shape. You can fork this API on Parse and revise it to add any valuation or financing data if those fields become accessible.Are there any known limitations with pagination on large result sets?+
has_more boolean indicates whether additional pages exist, but the search endpoint does not return a total page count — only total_count (total matching listings). You will need to paginate by incrementing the page parameter until has_more returns false. For very broad queries (e.g., all apartments in Berlin), the total result set can be large, so targeted queries using estate_type and distribution_type together are more efficient.