Portal: connect.booking.com / developers.booking.com
Auth: OAuth 2.0 / API Key
Status: 🟡 Partner-Programm erforderlich
Übersicht
Booking.com bietet verschiedene API-Produkte:
| API |
Beschreibung |
Zugang |
| Connectivity API |
Property Management (Channel Manager) |
Partner-Programm |
| Demand API |
Buchungen für Reiseanbieter |
Partner-Programm |
| Metasearch API |
Preisvergleich-Integration |
Metasearch Partner |
⚠️ Hinweis: Direkte Anbindung einzelner Properties ist derzeit pausiert. Channel Manager erforderlich.
Connectivity API
Rates & Availability
| Methode |
Endpunkt |
Beschreibung |
Cache TTL |
GET |
/api/booking/properties |
Alle Properties |
30 min |
GET |
/api/booking/properties/:id |
Property Details |
30 min |
PUT |
/api/booking/properties/:id/availability |
Verfügbarkeit aktualisieren |
- |
PUT |
/api/booking/properties/:id/rates |
Preise aktualisieren |
- |
GET |
/api/booking/properties/:id/calendar |
Verfügbarkeitskalender |
5 min |
Content & Images
| Methode |
Endpunkt |
Beschreibung |
Cache TTL |
POST |
/api/booking/properties |
Property erstellen |
- |
PUT |
/api/booking/properties/:id/content |
Content aktualisieren |
- |
POST |
/api/booking/properties/:id/photos |
Fotos hochladen |
- |
DELETE |
/api/booking/properties/:id/photos/:pid |
Foto löschen |
- |
Reservations
| Methode |
Endpunkt |
Beschreibung |
Cache TTL |
GET |
/api/booking/reservations |
Alle Reservierungen |
5 min |
GET |
/api/booking/reservations/:id |
Reservierung Details |
5 min |
PUT |
/api/booking/reservations/:id/confirm |
Reservierung bestätigen |
- |
PUT |
/api/booking/reservations/:id/cancel |
Reservierung stornieren |
- |
| Methode |
Endpunkt |
Beschreibung |
Cache TTL |
GET |
/api/booking/promotions |
Aktive Promotions |
1h |
POST |
/api/booking/promotions |
Promotion erstellen |
- |
DELETE |
/api/booking/promotions/:id |
Promotion löschen |
- |
Demand API
Für Reisevermittler (Affiliate/White-Label):
| Methode |
Endpunkt |
Beschreibung |
Cache TTL |
GET |
/api/booking/search |
Unterkünfte suchen |
10 min |
GET |
/api/booking/hotels/:id |
Hotel Details |
30 min |
GET |
/api/booking/hotels/:id/availability |
Verfügbarkeit prüfen |
5 min |
POST |
/api/booking/bookings |
Buchung erstellen |
- |
GET |
/api/booking/bookings/:id |
Buchung abrufen |
5 min |
Request-Beispiel
// PUT /api/booking/properties/:id/availability
const response = await fetch('/api/booking/properties/12345/availability', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({
roomTypeId: 'room-001',
dates: [
{ date: '2025-01-15', available: 2, price: 150.00 },
{ date: '2025-01-16', available: 2, price: 150.00 },
{ date: '2025-01-17', available: 1, price: 180.00 }
],
restrictions: {
minStay: 2,
maxStay: 14,
closedToArrival: false,
closedToDeparture: false
}
})
});
// Response
{
"success": true,
"updated": 3,
"propertyId": "12345",
"syncedAt": "2024-12-30T12:00:00Z"
}
TypeScript Types
interface BookingProperty {
id: string;
name: string;
address: BookingAddress;
starRating: number;
roomTypes: BookingRoomType[];
amenities: string[];
policies: BookingPolicies;
photos: BookingPhoto[];
}
interface BookingRoomType {
id: string;
name: string;
maxOccupancy: number;
bedConfiguration: string;
size: number;
amenities: string[];
}
interface BookingReservation {
id: string;
propertyId: string;
guestName: string;
checkIn: string;
checkOut: string;
roomTypeId: string;
totalPrice: number;
currency: string;
status: 'PENDING' | 'CONFIRMED' | 'CANCELLED' | 'NO_SHOW';
bookedAt: string;
}
interface BookingAvailability {
date: string;
available: number;
price: number;
restrictions?: {
minStay?: number;
maxStay?: number;
closedToArrival?: boolean;
closedToDeparture?: boolean;
};
}
Compliance
| Anforderung |
Beschreibung |
| PCI-DSS |
Kreditkartendaten verschlüsselt |
| GDPR |
EU-Datenschutz konform |
| PII |
Personenbezogene Daten geschützt |
Rate Limits
| API |
Limit |
Window |
| Connectivity |
1000/h |
Rolling |
| Demand |
500/min |
Per API Key |
Dokumentation: developers.booking.com