Discover/ImmobilienScout24 API
live

ImmobilienScout24 APIimmobilienscout24.de ↗

Access ImmobilienScout24.de listings, property details, images, realtor profiles, and geocode suggestions via a structured API. Covers Germany's largest real estate portal.

Endpoint health
verified 3h ago
get_listing_images
get_geocode_suggestions
get_listing_details
get_realtor_details
2/4 passing latest checkself-healing
Endpoints
4
Updated
1mo ago

What is the ImmobilienScout24 API?

This API exposes 4 endpoints covering ImmobilienScout24.de, Germany's largest real estate portal. Use get_listing_details to retrieve structured property data including rent, room count, living space, heating type, and gallery images for any listing by its expose ID. Additional endpoints resolve location queries to geo identifiers, fetch all listing images with full-size URLs, and return realtor company profiles including ratings and contact details.

This call costs1 credit / call— charged only on success
Try it
Location search query (city name, postcode, street, district, train station, POI, or address)
→ api.parse.bot/scraper/c161b4d9-ffca-40ff-b4e9-3bb0e8bdc884/<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/c161b4d9-ffca-40ff-b4e9-3bb0e8bdc884/get_geocode_suggestions?QUERY=Berlin' \
  -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 immobilienscout24-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.immobilienscout24_api import ImmobilienScout24, ResourceNotFound

client = ImmobilienScout24()

# Search for locations matching a city name
for location in client.locations.search(query="Berlin", limit=5):
    print(location.label, location.type, location.id)

# Fetch a specific listing by expose ID
listing = client.listings.get(expose_id="139440647")
print(listing.real_estate_type, listing.base_rent, listing.total_rent)
print(listing.location_address.city, listing.location_address.street)

# Browse listing images via sub-resource
for image in listing.images.list(limit=3):
    print(image.caption, image.full_size_picture_url)

# Get realtor details with typed error handling
try:
    realtor = client.realtors.get(company_wide_id="009.ecb352e3-56cd-4e07-aee2-97f5dee45a69")
    print(realtor.company_name, realtor.focus_type)
except ResourceNotFound as exc:
    print(f"Realtor not found: {exc}")

print("exercised: locations.search / listings.get / listing.images.list / realtors.get")
All endpoints · 4 totalmissing one? ·

Resolve a location name to structured geo identifiers. Returns an object with a 'data' array of location suggestions matching the query, including cities, districts, postcodes, streets, train stations, POIs, and addresses. Each suggestion carries type, id, label, and geopath URI. Results are ordered by relevance.

Input
ParamTypeDescription
QUERYrequiredstringLocation search query (city name, postcode, street, district, train station, POI, or address)
Response
{
  "type": "object",
  "fields": {
    "data": "array of location objects, each with id, type, label, shapeId, and geopath"
  },
  "sample": {
    "data": {
      "data": [
        {
          "id": "1276003001",
          "type": "city",
          "label": "Berlin",
          "geopath": "/de/berlin/berlin",
          "shapeId": "1276003001"
        },
        {
          "id": "1100000006",
          "type": "quarterOrTown",
          "label": "Berlin - Steglitz-Zehlendorf",
          "geopath": "/de/berlin/berlin/steglitz-zehlendorf",
          "shapeId": "1100000006"
        }
      ]
    },
    "status": "success"
  }
}

About the ImmobilienScout24 API

Location Resolution

The get_geocode_suggestions endpoint accepts a free-text QUERY parameter — a city name, postcode, street, district, train station, POI, or address — and returns an array of matching location objects. Each object includes an id, type (e.g. city, district, postcode), human-readable label, shapeId, and a geopath URI. These identifiers can be used to scope property searches to specific German administrative regions or transport hubs.

Listing Data

The get_listing_details endpoint takes a numeric LISTING_ID (the expose ID visible in any ImmobilienScout24.de listing URL) and returns a structured object. Key fields include baseRent, totalRent, propertyPrice, and an isResidential boolean. The keyValues object holds property-level attributes such as obj_livingSpace, obj_noRooms, obj_balcony, and heating type. The contactData field contains a nested realtorInformation block and contact person details. The galleryData field includes an images array with counts.

Images and Media

The get_listing_images endpoint retrieves all images for a given listing separately from the detail payload. It returns an array of image objects each carrying galleryPictureUrl, fullSizePictureUrl, thumbnailUrl, caption, and type, plus the total imageCount and totalCount of gallery items. This makes it straightforward to build image galleries or download full-resolution assets without parsing the broader listing detail response.

Realtor Profiles

The get_realtor_details endpoint accepts a REALTOR_ID in the format <prefix>.<uuid> and returns company-level information: companyName, logoUrl, profilePageUrl, products, focusType, virtualBadges, and an evaluations object containing rating data. The branchenbuchContactDetails field provides contact person details for the brokerage. If the ID does not match any realtor, the endpoint returns input_not_found.

Reliability & maintenanceVerified

The ImmobilienScout24 API is a managed, monitored endpoint for immobilienscout24.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when immobilienscout24.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 immobilienscout24.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
3h ago
Latest check
2/4 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 German rental listings with price, room count, and living space data for market analysis
  • Build a property comparison tool using baseRent, totalRent, and keyValues attributes from get_listing_details
  • Download full-resolution listing photos via fullSizePictureUrl for property showcase applications
  • Resolve German city names or postcodes to structured geo identifiers for location-scoped search UIs
  • Look up realtor ratings and contact details via get_realtor_details to qualify brokerages
  • Monitor onTopProduct placement tiers to track premium-listed properties over time
  • Enrich CRM records with realtor company data including logos, profile URLs, and virtual badges
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does ImmobilienScout24 have an official developer API?+
ImmobilienScout24 previously offered a developer API (IS24 REST API) aimed at partner integrations, but access was restricted to certified partners and the program is no longer broadly available to independent developers. This Parse API provides structured access to publicly visible listing, geocode, and realtor data without requiring partner status.
What does get_geocode_suggestions return beyond city names?+
The endpoint matches against multiple location types: cities, districts, postcodes, streets, train stations, POIs, and full addresses. Each result in the data array carries a type field indicating which category matched, a label for display, and a geopath URI. This lets you distinguish between, say, a postcode match and a train station match for the same query string.
Does get_listing_details return floor plan data or energy certificates?+
The current endpoint does not surface floor plan documents or structured energy certificate fields. It covers keyValues attributes (living space, room count, balcony, heating type), pricing fields, contact data, and gallery metadata. You can fork this API on Parse and revise it to add extraction of floor plan or energy certificate fields if those are present on the listing page.
Is there an endpoint to search listings by location or filter by price and size?+
Not currently. The API provides get_geocode_suggestions for resolving locations to geo identifiers and get_listing_details for fetching a known listing by ID, but there is no search endpoint that accepts filters like price range, room count, or area. You can fork this API on Parse and revise it to add a search endpoint that accepts those parameters.
What happens if a listing has been removed or expired?+
ImmobilienScout24 delists expired or withdrawn exposés. If the listing is no longer available, the get_listing_details and get_listing_images endpoints will not return valid property data. It is good practice to handle missing or empty responses in your integration and treat the expose ID as potentially transient.
Page content last updated . Spec covers 4 endpoints from immobilienscout24.de.
Related APIs in Real EstateSee all →
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.
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.
immowelt.de API
Search and browse real estate listings across Germany on Immowelt.de, with access to property details, images, and features for both rentals and sales. Filter results by location and sorting preferences to find properties that match your needs.
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.
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.
autoscout24.de API
Access data from autoscout24.de.
realtor.com API
Search millions of real estate listings on Realtor.com, view detailed property information, find qualified agents in your area, and access market analytics to understand pricing trends. Get location suggestions and property insights all in one place to help you make informed decisions about buying, selling, or investing in real estate.
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.