🏠 ImmoScout24 API
Portal: api.immobilienscout24.de
Auth: OAuth 2.0 (Three-Legged / Two-Legged / Personal Access Token)
Status: 🟢 Ready
Übersicht
ImmoScout24 ist das größte Immobilienportal Deutschlands. Die API ermöglicht:
- Inserate erstellen, aktualisieren, löschen
- Exposé-Daten abrufen
- Kontakte und Leads verwalten
- Statistiken und Reports
Authentifizierung
OAuth 2.0 Options
| Typ |
Beschreibung |
Use Case |
| Three-Legged |
User-Consent erforderlich |
Makler-Portal |
| Two-Legged |
Server-to-Server |
Automatisierung |
| Personal Access Token |
Statischer Token |
Entwicklung |
// Two-Legged OAuth
const token = await getOAuthToken({
clientId: process.env.IMMOSCOUT_CLIENT_ID,
clientSecret: process.env.IMMOSCOUT_CLIENT_SECRET,
grantType: 'client_credentials'
});
Endpunkte
Real Estate (Objekte)
| Methode |
Endpunkt |
Beschreibung |
Cache TTL |
GET |
/api/immoscout/realestate |
Alle Objekte abrufen |
15 min |
GET |
/api/immoscout/realestate/:id |
Einzelnes Objekt |
15 min |
POST |
/api/immoscout/realestate |
Objekt erstellen |
- |
PUT |
/api/immoscout/realestate/:id |
Objekt aktualisieren |
- |
DELETE |
/api/immoscout/realestate/:id |
Objekt löschen |
- |
Attachments (Bilder & Dokumente)
| Methode |
Endpunkt |
Beschreibung |
Cache TTL |
GET |
/api/immoscout/realestate/:id/attachments |
Alle Anhänge |
30 min |
POST |
/api/immoscout/realestate/:id/attachments |
Anhang hochladen |
- |
PUT |
/api/immoscout/realestate/:id/attachments/:aid |
Anhang aktualisieren |
- |
DELETE |
/api/immoscout/realestate/:id/attachments/:aid |
Anhang löschen |
- |
PUT |
/api/immoscout/realestate/:id/attachments/order |
Reihenfolge ändern |
- |
Publishing (Veröffentlichung)
| Methode |
Endpunkt |
Beschreibung |
Cache TTL |
GET |
/api/immoscout/publish/:id/channels |
Publikationskanäle |
60 min |
POST |
/api/immoscout/publish/:id |
Objekt veröffentlichen |
- |
DELETE |
/api/immoscout/publish/:id |
Veröffentlichung löschen |
- |
| Methode |
Endpunkt |
Beschreibung |
Cache TTL |
GET |
/api/immoscout/contacts |
Alle Kontakte |
30 min |
GET |
/api/immoscout/contacts/:id |
Einzelner Kontakt |
30 min |
POST |
/api/immoscout/contacts |
Kontakt erstellen |
- |
PUT |
/api/immoscout/contacts/:id |
Kontakt aktualisieren |
- |
DELETE |
/api/immoscout/contacts/:id |
Kontakt löschen |
- |
Expose (Öffentliche Daten)
| Methode |
Endpunkt |
Beschreibung |
Cache TTL |
GET |
/api/immoscout/expose/:id |
Exposé abrufen |
5 min |
GET |
/api/immoscout/expose/:id/video |
Video-URL |
30 min |
POST |
/api/immoscout/expose/:id/contact |
Kontaktanfrage senden |
- |
Geo Services
| Methode |
Endpunkt |
Beschreibung |
Cache TTL |
GET |
/api/immoscout/geo/autocomplete |
Geo Auto-Complete |
24h |
GET |
/api/immoscout/geo/hierarchy |
Geo Hierarchie |
24h |
Reports
| Methode |
Endpunkt |
Beschreibung |
Cache TTL |
GET |
/api/immoscout/reports/daily |
Täglicher Report |
1h |
GET |
/api/immoscout/reports/statistics |
Statistiken |
1h |
Request-Beispiel
// POST /api/immoscout/realestate
const response = await fetch('/api/immoscout/realestate', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({
type: 'APARTMENT_RENT',
title: 'Moderne 3-Zimmer-Wohnung in Top-Lage',
address: {
street: 'Musterstraße',
houseNumber: '1',
postcode: '80331',
city: 'München',
quarter: 'Altstadt-Lehel'
},
livingSpace: 85.5,
numberOfRooms: 3,
floor: 2,
numberOfFloors: 5,
price: {
baseRent: 1500,
additionalCosts: 200,
heatingCosts: 100,
currency: 'EUR'
},
features: ['BALCONY', 'ELEVATOR', 'BUILT_IN_KITCHEN'],
energyCertificate: {
type: 'CONSUMPTION',
value: 85,
validUntil: '2030-12-31'
}
})
});
// Response
{
"id": "123456789",
"scoutId": "IS24-123456789",
"status": "ACTIVE",
"createdAt": "2024-12-30T12:00:00Z",
"publishedAt": null,
"cached": false
}
TypeScript Types
interface ImmoScoutRealEstate {
id: string;
scoutId: string;
type: 'APARTMENT_RENT' | 'APARTMENT_BUY' | 'HOUSE_RENT' | 'HOUSE_BUY' | 'PLOT' | 'OFFICE';
title: string;
description: string;
address: ImmoScoutAddress;
livingSpace: number;
plotArea?: number;
numberOfRooms: number;
floor?: number;
price: ImmoScoutPrice;
features: string[];
energyCertificate?: ImmoScoutEnergyCertificate;
status: 'DRAFT' | 'ACTIVE' | 'INACTIVE' | 'ARCHIVED';
createdAt: string;
updatedAt: string;
}
interface ImmoScoutAddress {
street: string;
houseNumber: string;
postcode: string;
city: string;
quarter?: string;
geoCoordinates?: { latitude: number; longitude: number };
}
interface ImmoScoutPrice {
baseRent?: number;
purchasePrice?: number;
additionalCosts?: number;
heatingCosts?: number;
currency: 'EUR';
pricePerSqm?: number;
}
interface ImmoScoutAttachment {
id: string;
type: 'PICTURE' | 'FLOOR_PLAN' | 'VIDEO' | 'DOCUMENT';
title: string;
url: string;
order: number;
}
Rate Limits
| Limit |
Wert |
| Requests/Minute |
100 |
| Requests/Tag |
10.000 |
| Burst |
20 |
Sandbox
Für Entwicklung steht eine Sandbox zur Verfügung:
- URL: https://sandbox.immobilienscout24.de/api/v1
- Postman Collection: api.immobilienscout24.de/api-docs/postman
Dokumentation basiert auf: api.immobilienscout24.de