Aller au contenu

🏨 Booking.com API

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 -

Promotions

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