Entwickler · für Entwickler
API-Schnellstart
API-Schlüssel erstellen, ersten Aufruf senden, Buchungen aus dem PMS anlegen, Check-in- und Zahlungsstatus lesen, per Webhook auf Ereignisse reagieren.
Alles, was das Dashboard kann, steht als JSON-REST-API zur Verfügung. Typische Einsatzzwecke: Buchungen aus Ihrem PMS oder Ihrer Buchungsmaschine anlegen, den Gästeportal-Link in Ihre eigenen Nachrichten einfügen, die Daten des Online-Check-ins lesen oder die MTA-Meldung in die Buchhaltung übernehmen.
Die vollständige Referenz finden Sie unter /api/docs, maschinenlesbar als OpenAPI 3.1.
1. API-Schlüssel erstellen #
Settings → API keys (Einstellungen → API-Schlüssel, nur für Owner): Geben Sie dem Schlüssel einen Namen und eine Rolle. Der Schlüssel darf genau das, was diese Rolle darf – verwenden Sie Viewer für reine Lese-Integrationen. Der vollständige Schlüssel (gpk_…) wird einmal angezeigt; bewahren Sie ihn in Ihrem Secret Store auf. Dort können Sie ihn jederzeit widerrufen.
2. Erster Aufruf #
Senden Sie den Schlüssel als Bearer-Token. Die Basis-URL ist Ihre Portaladresse.
curl https://stay.example.com/api/v1/me \
-H "Authorization: Bearer gpk_xxxxxxxxxxxx"
Die Antwort nennt Ihnen den Mandanten, die Rolle des Schlüssels und seine Berechtigungen.
3. Buchung anlegen #
curl -X POST https://stay.example.com/api/v1/bookings \
-H "Authorization: Bearer gpk_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"propertyId": "p_xxxxxxxxxx",
"checkIn": "2026-11-18", "checkOut": "2026-11-23",
"adults": 2, "children": 0,
"guest": { "firstName": "Sofia", "lastName": "Rossi", "email": "sofia@example.com", "phone": "+39 333 1234567" },
"source": "mypms", "externalId": "RES-48213",
"sendPortalLink": true
}'
- Mit
source+externalIdist der Aufruf ein Upsert: Senden Sie dieselbe Reservierung erneut, wird sie aktualisiert statt doppelt angelegt. - Überschneidende Daten liefern 409; fügen Sie
"allowOverlap": truehinzu, wenn das beabsichtigt ist. - Die Antwort enthält die Buchung mit
portalUrl– dem persönlichen Link des Gastes.
Die IDs der Unterkünfte erhalten Sie über GET /api/v1/properties.
4. Status und Check-in-Daten lesen #
GET /api/v1/bookings?from=2026-11-01&to=2026-11-30– Liste mit Zahlungsstatus (eco.status,deposit.status),stayStateundunlocked.GET /api/v1/bookings/{id}– vollständige Buchung inkl. Daten des Online-Check-ins und Aktivitätsprotokoll.GET /api/v1/bookings?format=csv– Export als Tabelle.
Weitere Endpunkte #
| Endpunkt | Funktion |
|---|---|
GET /api/v1/reports/stats?propertyId=&from=&to= | Statistiken pro Unterkunft und Zeitraum (format=csv für CSV) |
GET /api/v1/reports/owner-statement?propertyId=&from=&to= | Eco-Contribution-Abrechnung für den Eigentümer; POST …/owner-statement/send versendet sie per E-Mail |
GET/PUT /api/v1/properties/{id}/translations | Die Übersetzungen der Gästemappe pro Sprache; POST …/translations/auto ergänzt fehlende |
PATCH /api/v1/settings | Enthält stayTimes (früh/spät), journey (Gästenachrichten), pushArrivalHours und checkin.formType (short oder long) |
POST /api/v1/settings/journey/test | Sendet Ihnen einen Schritt des Nachrichtenablaufs als Test |
GET /api/v1/push, POST /api/v1/push/subscribe | Push-Benachrichtigungen des angemeldeten Benutzers |
Die Gäste-API akzeptiert den Header X-GP-Lang (en, de, it, fr, es, nl, pl, mt) und liefert die Gästemappe in dieser Sprache.
5. Auf Ereignisse reagieren #
Statt regelmäßig abzufragen, registrieren Sie einen Webhook (Settings → Webhooks) und erhalten signierte Ereignisse wie checkin.completed, payment.completed oder feedback.received – siehe Webhooks.
Konventionen #
| Thema | Regel |
|---|---|
| Format | JSON in beide Richtungen, UTF-8; Datumsangaben YYYY-MM-DD, Zeitstempel ISO 8601 UTC |
| Fehler | HTTP-Status + { "error": "message" } – 400 ungültige Eingabe, 401 ungültiger Schlüssel, 403 nicht erlaubt, 404 nicht gefunden, 409 Konflikt, 429 zu viele Anfragen |
| Beträge | Dezimalzahlen in der Kontowährung (standardmäßig EUR) |
| Geheimnisse | In Antworten maskiert; senden Sie einen leeren Wert, um ein gespeichertes Geheimnis zu behalten |
Häufige Fragen #
Gibt es eine Sandbox? #
Nutzen Sie das Demo-Konto zum Ausprobieren und den Sandbox-Modus von Revolut für Zahlungen. In der Demo können keine API-Schlüssel erstellt werden – legen Sie für die Entwicklung ein kostenloses Konto an.
Gibt es eine API für Plattformbetreiber? #
Ja: Die Plattform-API (/api/platform/v1, Schlüssel beginnen mit gpp_) richtet Mandanten und Domains ein. Siehe den Plattform-Abschnitt der API-Referenz.
