Is there an ImmoScout24 API?
Yes, there is an official ImmoScout24 API, but it is built for estate agents and their software suppliers. You register for keys, and the API serves the objects of an ImmoScout24 customer who authorises your application.
We found no public API that returns search results across all of Germany (checked on 23 October 2026). If you need the listings themselves, a scraper reads the same public search pages you see in the browser.
Official ImmoScout24 API
The ImmoScout24 API Developer Portal documents the API. Authentication is OAuth 1.0a. Your application gets a consumer key and a consumer secret. For anything that acts on a customer's account, the customer also has to log in once and authorise your application, which gives you an access token.
The Customer Website tutorial describes two APIs for showing a customer's objects on their own website:
| Search and Expose API | Import/Export API | |
|---|---|---|
| Suited to | Realtors with more than 100 objects | Smaller realtors |
| Result | Search results and single objects | All objects in one request |
| Search, paging, sorting | Yes, within one real estate type | No |
The registration form asks what you are building. The tutorial says to choose "Kundenwebsite / Immobilienverwaltungssoftware" so that the key has the right permissions. Both APIs are about the objects of ImmoScout24 customers. The portal shows no endpoint that exports the whole marketplace.
So the official API suits a property management tool that shows or syncs one agent's listings. It does not help an analyst who wants rents across a city.
ImmoScout24 listings without an API
Our ImmobilienScout24 Scraper reads the public search results on immobilienscout24.de. You give it a city, a property type and rent or buy, or you paste a search URL. It returns the listings as a spreadsheet or JSON.
The Berlin rental run used this input:
{
"location": "berlin",
"propertyType": "wohnung",
"listingType": "mieten",
"maxResults": 50
} One listing from it, trimmed to the main fields:
{
"title": "Leben im Neuen Gartenfeld/ Neubauwohnung im Erstbezug / WBS erforderlich",
"price": 896.08,
"currency": "EUR",
"listingType": "rent",
"propertyType": "apartment",
"address": "Alandstr. 69",
"city": "Berlin",
"postalCode": "13599",
"bedrooms": 3,
"surface": 77.92,
"buildYear": 2026,
"agencyName": "Gewobag Wohnungsbau-Aktiengesellschaft Berlin",
"url": "https://www.immobilienscout24.de/expose/169486775"
} The same input works for houses (haus), land (grundstueck), rooms, shared flats, garages and offices, and for buying (kaufen).
Search by URL
Filters for price, rooms and district are easiest to set on immobilienscout24.de itself. Copy the URL of the result page into startUrls and the actor uses every filter in it. This is also the route for any city outside Berlin, Hamburg and Bremen (see Limits).
{
"startUrls": [
{ "url": "https://www.immobilienscout24.de/Suche/de/bayern/muenchen/wohnung-mieten" }
],
"maxResults": 50
} Field coverage
How often each field came back filled in the Berlin rental run (filled rows / all rows):
| Field | Berlin rent, 50 rows |
|---|---|
| Title, price, city, postal code, surface, bedrooms, URL | 50/50 |
| Photos | 48/50 |
| Street address | 42/50 |
| Latitude and longitude | 40/50 |
| Build year | 36/50 |
| Agency name | 33/50 |
| Description, energy rating, bathrooms, land surface, agency URL | 0/50 |
Limits
- The location field only works for Berlin, Hamburg and Bremen. A search with
location: muenchenreturned 0 listings in two runs. The same search as a pasted URL (/Suche/de/bayern/muenchen/wohnung-mieten) returned 20 listings. We filed this as a bug on the actor. Until it is fixed, usestartUrlsfor other cities. - A run can return fewer listings than
maxResults. WithmaxResults30, the Munich URL run and a Berlin house-buy run each returned 20. - No description text, energy rating or bathroom count. These fields exist in the output but came back empty in every row.
- Terms of use. Read the ImmoScout24 terms of use before you use the data in a product.
- Prices are the advertised amount. For rentals this is the rent as listed, and the page decides whether that means cold or warm rent.
Cost
The actor charges $0.005 per listing plus $0.01 per run. The run fee is $0.01 per GB of memory and the actor starts with 1 GB. 100 listings cost about $0.51 and 1,000 listings about $5.01. A run that returns no listings still pays the run fee.
For commercial property see ImmoScout24 Gewerbe Scraper. For Austria see ImmoScout24 Austria Scraper. If you need listings delivered on a schedule, we also run managed feeds: hello@studioamba.dev.
The actor is on the Apify Store: apify.com/studio-amba/immoscout24-scraper