Immonet APIimmonet.de ↗
Access immonet.de real estate data via API. Search listings by location, property type, and transaction type. Retrieve prices, features, agent info, and images.
What is the Immonet API?
The immonet.de API provides 2 endpoints for querying German real estate listings and retrieving full property details. The search endpoint returns paginated results across Germany filtered by location, estate type, and distribution type (sale or rent), while get_details delivers per-listing data covering 8 response fields including agent contact, features, images, and structured location data.
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'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace immonet-de-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.immowelt_de_germany_real_estate_api import ImmoWelt, ListingSummary, Listing, EstateType, DistributionType
client = ImmoWelt()
# Search for apartments for rent in Hamburg
for listing in client.listingsummaries.search(
location="hamburg",
estate_type=EstateType.WOHNUNGEN,
distribution_type=DistributionType.MIETEN,
limit=5,
):
print(listing.summary, listing.price, listing.area, listing.rooms)
# Get full details for the first listing found
detail = listing.details()
print(detail.title, detail.attributes.price)
print(detail.location.city, detail.location.zip_code)
print(detail.agent.name)
for img in detail.images[:2]:
print(img)
break
Search for real estate listings (apartments, houses, etc.) in Germany. Returns paginated results with listing summaries including price, area, and rooms. Pagination via page number; each page returns up to 20 listings. Total count reflects the server-reported number of matching properties.
| 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. |
| distribution_type | string | Transaction type for the listing. |
{
"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": "1215b46c-9e03-4081-bc72-67209544ff9f",
"url": "https://www.immowelt.de/expose/1215b46c-9e03-4081-bc72-67209544ff9f",
"area": "45",
"price": "170.000",
"rooms": "2",
"summary": "Herr Andreas Kiener 1 / 14 D 170.000 € 3.778 €/m² Wohnung zum Kauf 2 Zimmer · 45 m² Köpenick, Berlin (12557)"
}
],
"total_count": 8184
},
"status": "success"
}
}About the Immonet API
Search German Real Estate Listings
The search endpoint accepts four optional parameters: location (city or region name such as berlin or muenchen), estate_type (e.g. apartment or house), distribution_type (sale or rent), and page for pagination. Each response page returns up to 20 listing summaries, each containing an id, url, summary, price, area, and rooms. The total_count field reflects the total number of server-reported matching listings, and has_more tells you whether additional pages exist.
Retrieve Full Listing Details
The get_details endpoint takes a single required parameter — the listing uuid obtained from a search response — and returns a structured object with all available property data. This includes attributes (price, area, rooms as string values), a location object with city, district, and zip_code, an agent object with name, address, and company_type, a description string, a features array listing property characteristics, and an images array of image URLs. The title field provides a human-readable page title summarising the listing.
Coverage and Scope
The API covers residential listings on immonet.de, one of Germany's established real estate portals. Filtering is available at the search stage by city or region name, property type, and transaction type. Detail retrieval requires a valid UUID, which is only obtainable via the search endpoint — standalone detail lookups without a prior search are not supported.
The Immonet API is a managed, monitored endpoint for immonet.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when immonet.de changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official immonet.de API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a German rental market monitor tracking price and availability by city using
locationanddistribution_typefilters - Aggregate apartment listings in Munich or Hamburg to compare
areaandpriceper district - Extract agent
name,company_type, andaddressfrom listings to build a database of active real estate agents in Germany - Collect
imagesanddescriptiontext fromget_detailsto populate a property comparison tool - Track
total_countover time for a givenlocationandestate_typeto monitor supply trends - Pull
featuresarrays across listings to identify which amenities are most common in a given zip code - Feed listing
urlandattributesinto an alert system notifying users when new properties match their criteria
| 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 | 100 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, and can I filter by price range?+
search response includes id, url, summary, price, area, and rooms. Filtering is currently supported by location, estate_type, and distribution_type only — price range is not a supported input parameter. You can fork this API on Parse and revise it to add price-range filtering if that capability is needed.Does the API return map coordinates or geocoded positions for listings?+
location object in get_details returns city, district, and zip_code as strings, but no latitude/longitude coordinates. You can fork this API on Parse and revise it to geocode the returned address fields using a separate mapping service.How does pagination work in the `search` endpoint?+
search endpoint returns up to 20 listings per page. Use the page integer parameter to advance through results. The has_more boolean in the response indicates whether additional pages exist, and total_count gives the total number of matching listings reported by the source.Is commercial real estate (office, retail, industrial) covered by this API?+
estate_type parameter accepts; the API does not explicitly document commercial categories as supported values. You can fork this API on Parse and revise it to target commercial listing types if the source carries them.