Discover/Immowelt API
live

Immowelt APIimmowelt.de

Access German property listings from Immowelt.de. Search rentals and sales by location, price, rooms, and area. Retrieve full details, features, and images via 3 endpoints.

Endpoint health
verified 3d ago
get_listing_images
search_listings
get_listing_details
3/3 passing latest checkself-healing
Endpoints
3
Updated
22d ago

What is the Immowelt API?

The Immowelt.de API provides access to German real estate listings across 3 endpoints, covering both rental and purchase markets. The search_listings endpoint returns paginated listing cards with price, rooms, area, and address, while get_listing_details exposes full property data including description, features, key facts, and image URLs — all keyed by the listing UUID returned from search.

Try it
Page number for pagination.
Sort order for results.
Location path including city, district/ZIP, and geoid (e.g. 'berlin/berlin-10115/ad08de8634'). Forms part of the URL path and must match Immowelt's internal location format.
Maximum price filter.
Minimum price filter.
Minimum number of rooms.
Minimum living area in square meters.
Transaction type.
Property type to search for.
api.parse.bot/scraper/e8fdb8a3-31d8-4834-a13d-ac909ddc6d4d/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/e8fdb8a3-31d8-4834-a13d-ac909ddc6d4d/search_listings?page=1&order=Default&location=berlin%2Fberlin-10115%2Fad08de8634&price_max=2000&price_min=500&rooms_min=2&space_min=50&transaction=mieten&property_type=wohnung' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 immowelt-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_real_estate_api import Immowelt, Transaction, PropertyType, Sort, ListingNotFound

client = Immowelt()

# Search for apartments for rent in Berlin, sorted by price
for listing in client.listingsummaries.search(
    location="berlin/berlin-10115/ad08de8634",
    transaction=Transaction.MIETEN,
    property_type=PropertyType.WOHNUNG,
    order=Sort.PRICE_ASC,
    rooms_min=2,
    limit=5,
):
    print(listing.uuid, listing.price_raw, listing.rooms, listing.address)

    # Navigate from summary to full detail
    detail = listing.details()
    print(detail.title, detail.price, detail.key_facts)

    # Access images sub-resource on the detail
    for img in detail.images.list():
        print(img.url)
All endpoints · 3 totalmissing one? ·

Search for real estate listings (rent or buy) with optional filters. Returns paginated listing cards with basic info including price, rooms, area, and address. The location parameter must be a full path as used in Immowelt URLs, including city name, district/ZIP, and geoid. Each page returns up to ~20 listings.

Input
ParamTypeDescription
pageintegerPage number for pagination.
orderstringSort order for results.
locationrequiredstringLocation path including city, district/ZIP, and geoid (e.g. 'berlin/berlin-10115/ad08de8634'). Forms part of the URL path and must match Immowelt's internal location format.
price_maxintegerMaximum price filter.
price_minintegerMinimum price filter.
rooms_minintegerMinimum number of rooms.
space_minintegerMinimum living area in square meters.
transactionstringTransaction type.
property_typestringProperty type to search for.
Response
{
  "type": "object",
  "fields": {
    "url": "string the constructed search URL",
    "page": "integer current page number",
    "listings": "array of listing summary objects with id, url, uuid, price_raw, rooms, area, address, agency, main_image",
    "total_count_text": "string showing total number of results (e.g. '4.366 Wohnungen mieten in Berlin')"
  },
  "sample": {
    "data": {
      "url": "https://www.immowelt.de/suche/mieten/wohnung/berlin/berlin-10115/ad08de8634",
      "page": 1,
      "listings": [
        {
          "id": "26UBAUCV6EY5",
          "url": "https://www.immowelt.de/expose/7847437c-82b4-4347-a6b6-452ecc09f62d",
          "area": "29,5 m²",
          "uuid": "7847437c-82b4-4347-a6b6-452ecc09f62d",
          "rooms": "1 Zimmer",
          "address": "Friedenauer Höhe 6, Friedenau, Berlin (12159)",
          "price_raw": "929 €Kaltmiete",
          "main_image": "https://mms.immowelt.de/b/f/2/1/bf213538-3e94-4549-9aef-a9063d983f6f.jpg?ci_seal=3b1d4022350df6c3ca4b9f8fb7eec7acb30acdfe&h=50",
          "keyfacts_raw": "1 Zimmer|·|29,5 m²|·|5. Geschoss"
        }
      ],
      "total_count_text": "4.366 Wohnungen mieten in Berlin"
    },
    "status": "success"
  }
}

About the Immowelt API

Search and Filter Listings

The search_listings endpoint accepts a required location parameter formatted as a URL path including city, district or ZIP, and a geoid (e.g. berlin/berlin-10115/ad08de8634). Optional filters include price_min, price_max, rooms_min, space_min, and transaction type. Results are paginated via the page parameter and sortable via order. Each result in the listings array carries an id, uuid, url, price_raw, rooms, area, address, agency, and main_image. The total_count_text field shows the raw count string from the site (e.g. 4.366 Wohnungen mieten in Berlin).

Property Details and Images

Passing a listing UUID to get_listing_details returns the full expose: title, address, price, key_facts (rooms, area, floor), a description text block, a features array, and an images array of full-resolution URLs. The get_listing_images endpoint is a focused alternative that returns only the UUID and its associated image URLs from the mms.immowelt.de CDN — useful when you only need to display or store photos without fetching the entire listing payload.

Coverage and Scope

All three endpoints cover listings across Germany. The transaction parameter on search_listings determines whether results are rentals or sales. Location paths follow Immowelt's URL structure, so you can derive the correct location value directly from any Immowelt search URL. UUIDs from search_listings are stable identifiers that feed directly into get_listing_details and get_listing_images.

Reliability & maintenanceVerified

The Immowelt API is a managed, monitored endpoint for immowelt.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when immowelt.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 immowelt.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.

Last verified
3d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Aggregate rental listings across multiple German cities using search_listings with different location paths
  • Monitor asking prices over time by storing price_raw and address from paginated search results
  • Build a property comparison tool using key_facts, features, and description from get_listing_details
  • Populate a real estate portfolio site with listing photos by calling get_listing_images for each UUID
  • Filter listings by minimum rooms and area using rooms_min and space_min to qualify leads for relocation services
  • Extract agency names from search_listings results to identify the most active brokers in a given district
  • Feed property data into a GIS tool by pairing address fields with a geocoding service
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Immowelt have an official developer API?+
Immowelt does not offer a public developer API. There is no documented REST or GraphQL interface available for third-party access to their listing data.
What format does the `location` parameter require for `search_listings`?+
The location value must be a full path matching Immowelt's URL structure, combining a city slug, a district or ZIP segment, and a geoid — for example, berlin/berlin-10115/ad08de8634. You can derive the correct path from any Immowelt search result URL for the area you want to query.
Does `search_listings` return contact details for the listing agent or landlord?+
The search results include an agency field with the listing agency name, but individual agent contact details such as phone numbers or email addresses are not returned. The get_listing_details endpoint also does not expose contact information. You can fork this API on Parse and revise it to add a contact-details endpoint if that data is accessible on the listing page.
Can I retrieve sold or expired listings through the API?+
The API reflects currently active listings as they appear on Immowelt. Historical, sold, or deactivated listings are not covered. You can fork this API on Parse and revise it to target archived or recently-removed listing pages if those are accessible on the site.
How does pagination work for `search_listings`?+
Results are paged using the page integer parameter. The response includes a total_count_text string (e.g. 4.366 Wohnungen mieten in Berlin) that indicates the total result count, which you can use to calculate how many pages are available. There is no explicit total_pages field returned — you need to derive page count from the total count text.
Page content last updated . Spec covers 3 endpoints from immowelt.de.
Related APIs in Real EstateSee all →
immonet.de API
Search real estate listings across Germany and retrieve detailed property information including pricing, features, and location data from immonet.de. Find properties for sale or rent with comprehensive market data.
immoscout24.de API
Search and browse real estate listings from Germany's leading property portal Immobilienscout24. Filter by location, property type, and price range, and retrieve comprehensive listing details including size, amenities, contact information, and more.
immobilienscout24.de API
Access Germany's largest real estate portal to retrieve geocode suggestions, detailed listing information, property images, and realtor contact details. Browse ImmobilienScout24.de properties with comprehensive data on locations, descriptions, photos, and agent information at your fingertips.
immoscout24.ch API
Search residential and commercial property listings on ImmoScout24 by location, price, and room count, then access detailed information including images, company details, and property types. Find your ideal property with comprehensive filtering options and complete listing data all in one place.
inberlinwohnen.de API
Search and browse affordable apartment listings from Berlin's state-owned housing companies, view detailed property information, and access company profiles and tenant guides. Find your next home in Berlin with comprehensive data on available rentals and housing provider information in one place.
wg-gesucht.de API
Search and filter housing listings on WG-Gesucht.de to find shared apartments and rooms that match your budget, location, and availability preferences. Retrieve detailed listing information including rent, room size, district, and contact details.
immobiliare.it API
Search Italian property listings for sale or rent, browse real estate agencies, and explore price trends across Italian cities — all via immobiliare.it.
kleinanzeigen.de API
Search and retrieve classified ad listings from kleinanzeigen.de. Filter by keyword, category, price range, and sorting order. Supports vehicles, real estate, jobs, electronics, and general products, with full listing details including title, price, description, location, and seller information.