Öffentliche API-Doku
Anmelden
API-Doku

OpenAPI-Referenz

Käufer-API v1: Ablauf, Regeln, Fehlerkatalog und Beispiele – jedes Beispiel läuft bei jedem Build als Test.

TourAPI Kaeufer-API · 1.0.0-entwurf

Verfuegbarkeit, Preis, Suche, Buchung, Buchungsinfo und Storno fuer Abnehmer eines Veranstalters.

Maschinenlesbarer Vertrag zum API-Handbuch (HANDBUCH.md, liegt neben dieser Datei). Das Handbuch erklaert Ablauf, Regeln, Fehlerkatalog und Beispiele; jedes Beispiel dort laeuft bei jedem Build als Test gegen eine echte Instanz.

  • Alle Betraege sind ganze Cent in der Vertragswaehrung des Hotels (keine Umrechnung).
  • Datumsfelder sind Kalendertage JJJJ-MM-TT; ein Aufenthalt ist [checkIn, checkOut).
  • Stichtag ist das Serverdatum (Europe/Berlin); das Feld now wird ignoriert.
  • Kompatibilitaet innerhalb v1 nur additiv (neue optionale Felder, neue Endpunkte, neue ERR_*-Codes); unbekannte Antwortfelder ignorieren. Details: Handbuch Abschnitt 1.9.
Authentifizierung
X-Api-Key (header)

API-Key aus dem Zugangspaket; bestimmt Veranstalter und Kundengruppe. Test-Keys (tk_test_...) lesen wie ihr Live-Key und buchen nur in der Sandbox; jede Antwort auf einen angenommenen Key traegt den Kopf X-TourAPI-Mode (test|live), Handbuch Abschnitt 11.

Server
{baseUrl} – Basis-URL aus dem Zugangspaket
{baseUrl}
Basis-URL aus dem Zugangspaket

Gruppen

Auskunft
Verfuegbarkeit und Preis (BA)
Buchung
Buchung (B), Buchungsinfo, Storno (S)
Betrieb
Gesundheit des Knotens
Lieferung
EDF-Lieferung (Cache-Export) fuer Abnehmer mit Export-Recht
Inhalte
Hotelinhalte (Content-API) fuer Abnehmer mit Inhalts-Recht (Handbuch Abschnitt 12)

Maschinenlesbar: openapi.yaml

Endpunkte

POST /v1/price

Preis fuer ein Zimmer, eine Verpflegung, eine Belegung

Ohne room wird das guenstigste VERFUEGBARE Zimmer bepreist, das die Belegung zulaesst und das board anbietet (ist keines verfuegbar, das guenstigste davon mit availability.available=false); room in der Antwort nennt es. Nicht angebotenes board -> 422 ERR_BOARD_NOT_OFFERED.

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited | price_timeout)

Anfrage

application/json PriceRequest

Antworten

Status
200
Beschreibung
Preis
Inhalt
application/json PriceResponse
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
Status
400
Beschreibung
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Veranstalter des Keys gesperrt (ERR_TENANT_SUSPENDED), Kundengruppe des Keys inaktiv (ERR_KEY_GROUP_INACTIVE) oder X-TourAPI-Require-Mode passt nicht zum Key (ERR_MODE_MISMATCH). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
404
Beschreibung
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
503
Beschreibung
Verkauf auf dem Knoten aus (ERR_BOOKING_DISABLED), Buchung/Storno wegen gleichzeitiger Vorgaenge am selben Hotel nicht durchgekommen (ERR_BOOKING_BUSY, mit Retry-After; mit demselben idemKey wiederholen), Suche zu lang (ERR_SEARCH_TIMEOUT) oder Preisrechnung zu lang (ERR_PRICE_TIMEOUT, /v1/price ohne room und /v1/prices, auch mit room und boards; /v1/price mit room hat keine eigene Frist). Nie eine Teilantwort; bei Zeitlimit eingrenzen, dann wiederholen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Nur bei ERR_BOOKING_BUSY - frueheste Wiederholung in ganzen Sekunden

POST /v1/prices

Preise aller Verpflegungen (und Zimmer) in einer Antwort

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited | price_timeout)

Anfrage

application/json PricesRequest

Antworten

Status
200
Beschreibung
Preise je Zimmer und Verpflegung
Inhalt
application/json PricesResponse
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
Status
400
Beschreibung
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Veranstalter des Keys gesperrt (ERR_TENANT_SUSPENDED), Kundengruppe des Keys inaktiv (ERR_KEY_GROUP_INACTIVE) oder X-TourAPI-Require-Mode passt nicht zum Key (ERR_MODE_MISMATCH). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
404
Beschreibung
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
503
Beschreibung
Verkauf auf dem Knoten aus (ERR_BOOKING_DISABLED), Buchung/Storno wegen gleichzeitiger Vorgaenge am selben Hotel nicht durchgekommen (ERR_BOOKING_BUSY, mit Retry-After; mit demselben idemKey wiederholen), Suche zu lang (ERR_SEARCH_TIMEOUT) oder Preisrechnung zu lang (ERR_PRICE_TIMEOUT, /v1/price ohne room und /v1/prices, auch mit room und boards; /v1/price mit room hat keine eigene Frist). Nie eine Teilantwort; bei Zeitlimit eingrenzen, dann wiederholen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Nur bei ERR_BOOKING_BUSY - frueheste Wiederholung in ganzen Sekunden

GET /v1/destinations

Gueltige destination-Codes des Keys

Zielgebiet- und Flughafen-Codes der Hotels dieses Keys (Hotels des Veranstalters; beim Key einer Kundengruppe mit Zuteilung nur Hotels mit Zuteilung), aufsteigend, je Code einmal - genau die Codes, auf die /v1/search filtern kann (Handbuch Abschnitt 4.5). Keine Parameter.

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). An diesem Endpunkt wirkt nur rate_limited. Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited)

Antworten

Status
200
Beschreibung
Ziel-Codes
Inhalt
application/json DestinationsResponse
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Veranstalter des Keys gesperrt (ERR_TENANT_SUSPENDED), Kundengruppe des Keys inaktiv (ERR_KEY_GROUP_INACTIVE) oder X-TourAPI-Require-Mode passt nicht zum Key (ERR_MODE_MISMATCH). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)

Buchbare Hotels mit Ab-Preis suchen

Seitenweise (pageSize, Standard 50, hoechstens 100) in Hotel-Code-Reihenfolge; Preis-Sortierung je Seite. Weitere Seiten mit cursor = nextCursor der Vorseite (Handbuch Abschnitt 4.3). destination ohne Hotel fuer diesen Key (erste Seite, ohne cursor) -> 422 ERR_UNKNOWN_DESTINATION (gueltige Codes: GET /v1/destinations).

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited | search_busy)

Anfrage

application/json SearchRequest

Antworten

Status
200
Beschreibung
Treffer und Diagnose
Inhalt
application/json SearchResponse
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
Status
400
Beschreibung
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Veranstalter des Keys gesperrt (ERR_TENANT_SUSPENDED), Kundengruppe des Keys inaktiv (ERR_KEY_GROUP_INACTIVE) oder X-TourAPI-Require-Mode passt nicht zum Key (ERR_MODE_MISMATCH). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
503
Beschreibung
Verkauf auf dem Knoten aus (ERR_BOOKING_DISABLED), Buchung/Storno wegen gleichzeitiger Vorgaenge am selben Hotel nicht durchgekommen (ERR_BOOKING_BUSY, mit Retry-After; mit demselben idemKey wiederholen), Suche zu lang (ERR_SEARCH_TIMEOUT) oder Preisrechnung zu lang (ERR_PRICE_TIMEOUT, /v1/price ohne room und /v1/prices, auch mit room und boards; /v1/price mit room hat keine eigene Frist). Nie eine Teilantwort; bei Zeitlimit eingrenzen, dann wiederholen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Nur bei ERR_BOOKING_BUSY - frueheste Wiederholung in ganzen Sekunden

POST /v1/search/open

Offene Suche - bestes Angebot je Hotel ueber Anreisefenster und Dauer-Spanne

Ohne Hotelcode und festen Termin: je Hotel das beste Angebot (Preis exakt wie /v1/price mit demselben Tupel, Reihenfolge bewiesen), global sortiert, Seiten per cursor = nextCursor (Handbuch Abschnitt 4a). Recht je Key (sonst 403 ERR_OPEN_SEARCH_NOT_ALLOWED), Grenzen aus dem Suchprofil des Keys (422 am Feld). Jedes unbekannte Feld -> 422 ERR_UNKNOWN_FIELD. Unter Last wird nur die Seite kuerzer (coverage.complete=false), nie der Preis ungenauer; kann die Suche ein Ergebnis nicht beweisen, 500 ERR_INTERNAL.

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)

Anfrage

application/json OpenSearchRequest

Antworten

Status
200
Beschreibung
Treffer, Abdeckung, Stand
Inhalt
application/json OpenSearchResponse
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
Status
400
Beschreibung
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Kein Recht fuer die offene Suche (ERR_OPEN_SEARCH_NOT_ALLOWED), Ziel oder Hotel ausserhalb der erlaubten Ziele (ERR_DESTINATION_NOT_ALLOWED) oder wie bei allen Endpunkten (Forbidden)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
404
Beschreibung
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
500
Beschreibung
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
Verkauf auf dem Knoten aus (ERR_BOOKING_DISABLED), Buchung/Storno wegen gleichzeitiger Vorgaenge am selben Hotel nicht durchgekommen (ERR_BOOKING_BUSY, mit Retry-After; mit demselben idemKey wiederholen), Suche zu lang (ERR_SEARCH_TIMEOUT) oder Preisrechnung zu lang (ERR_PRICE_TIMEOUT, /v1/price ohne room und /v1/prices, auch mit room und boards; /v1/price mit room hat keine eigene Frist). Nie eine Teilantwort; bei Zeitlimit eingrenzen, dann wiederholen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Nur bei ERR_BOOKING_BUSY - frueheste Wiederholung in ganzen Sekunden

POST /v1/search/open/dates

Termin-Matrix eines Hotels - Anreise x Dauer ueber dasselbe Fenster wie die offene Suche

Stufe 2 der offenen Suche (Handbuch Abschnitt 4b): ein Hotel, Zellen dicht in der Ordnung checkIn, nights (mit perBoard zusaetzlich je Verpflegung). Zelle offer = guenstigstes verkaufbares Zimmer/Verpflegung, Preis exakt wie /v1/price mit diesem Tupel; none mit reason; unchecked nur, wenn das Zeitbudget ablief (nie als none). Das beste Angebot der offenen Suche ist bei gleichem Filter und Stand die erste offer-Zelle mit minimalem Kriterium. Recht und Grenzen aus dem Suchprofil des Keys (Fenster matrixMaxWindowDays, Zellen matrixMaxCells). Jedes unbekannte Feld -> 422 ERR_UNKNOWN_FIELD; nicht beweisbar -> 500 ERR_INTERNAL.

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)

Anfrage

application/json OpenDatesRequest

Antworten

Status
200
Beschreibung
Zellen, Abdeckung, Stand
Inhalt
application/json OpenDatesResponse
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
Status
400
Beschreibung
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Kein Recht fuer die offene Suche (ERR_OPEN_SEARCH_NOT_ALLOWED), Hotel ausserhalb der erlaubten Ziele (ERR_DESTINATION_NOT_ALLOWED) oder wie bei allen Endpunkten (Forbidden)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
404
Beschreibung
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
500
Beschreibung
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
Verkauf auf dem Knoten aus (ERR_BOOKING_DISABLED), Buchung/Storno wegen gleichzeitiger Vorgaenge am selben Hotel nicht durchgekommen (ERR_BOOKING_BUSY, mit Retry-After; mit demselben idemKey wiederholen), Suche zu lang (ERR_SEARCH_TIMEOUT) oder Preisrechnung zu lang (ERR_PRICE_TIMEOUT, /v1/price ohne room und /v1/prices, auch mit room und boards; /v1/price mit room hat keine eigene Frist). Nie eine Teilantwort; bei Zeitlimit eingrenzen, dann wiederholen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Nur bei ERR_BOOKING_BUSY - frueheste Wiederholung in ganzen Sekunden

GET /v1/limits

Wirksame Grenzen des eigenen Keys (Takt, Export-Recht, Inhalts-Zugang, Suchprofil)

Das effektive Suchprofil des Keys (Minimum aus Plattform-Deckel, Veranstalter-Obergrenze und Key-Profil) - dieselben Werte, die /v1/search/open und /v1/search/open/dates anwenden; ohne Recht nur openSearch.allowed=false. Keine Interna (weder Ebene noch Grund); Ziele nur im Bestand des Keys. Dazu der Takt aller Anfragen des Keys, das Export-Recht und der Zugang zur Content-API (content.allowed, dieselbe Regel wie /v1/content/*; Handbuch Abschnitt 4c). Keine Parameter (jeder -> 422 ERR_UNKNOWN_FIELD).

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). An diesem Endpunkt wirkt nur rate_limited. Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited)

Antworten

Status
200
Beschreibung
Grenzen des Keys
Inhalt
application/json LimitsResponse
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Veranstalter des Keys gesperrt (ERR_TENANT_SUSPENDED), Kundengruppe des Keys inaktiv (ERR_KEY_GROUP_INACTIVE) oder X-TourAPI-Require-Mode passt nicht zum Key (ERR_MODE_MISMATCH). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)

POST /v1/book

Buchen (idempotent ueber idemKey)

Lehnt jedes unbekannte Feld ab (ERR_UNKNOWN_FIELD). Ein schon verbuchter idemKey wird vor Stichtag, Grenzen und priceCheck beantwortet (alreadyBooked), nur ein neuer idemKey durchlaeuft diese Pruefungen.

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited | booking_busy | price_drift | sold_out)

Anfrage

application/json BookRequest

Antworten

Status
200
Beschreibung
Gebucht oder idempotente Wiederholung (alreadyBooked)
Inhalt
application/json BookResponse
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
Status
400
Beschreibung
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Veranstalter des Keys gesperrt (ERR_TENANT_SUSPENDED), Kundengruppe des Keys inaktiv (ERR_KEY_GROUP_INACTIVE) oder X-TourAPI-Require-Mode passt nicht zum Key (ERR_MODE_MISMATCH). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
404
Beschreibung
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
409
Beschreibung
Preis geaendert (ERR_PRICE_DRIFT) oder idemKey-Konflikt (ERR_IDEMPOTENCY_MISMATCH, ERR_IDEM_KEY_RELEASED)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
500
Beschreibung
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
Verkauf auf dem Knoten aus (ERR_BOOKING_DISABLED), Buchung/Storno wegen gleichzeitiger Vorgaenge am selben Hotel nicht durchgekommen (ERR_BOOKING_BUSY, mit Retry-After; mit demselben idemKey wiederholen), Suche zu lang (ERR_SEARCH_TIMEOUT) oder Preisrechnung zu lang (ERR_PRICE_TIMEOUT, /v1/price ohne room und /v1/prices, auch mit room und boards; /v1/price mit room hat keine eigene Frist). Nie eine Teilantwort; bei Zeitlimit eingrenzen, dann wiederholen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Nur bei ERR_BOOKING_BUSY - frueheste Wiederholung in ganzen Sekunden

GET /v1/booking

Buchung ueber TourAPI-Referenz oder eigene Referenz lesen

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). An diesem Endpunkt wirkt nur rate_limited. Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited)
Name
ref
Ort
query
Pflicht
ja
Typ
string
Beschreibung
Buchungsreferenz (TA-...) oder die eigene reference aus der Buchung. Die TourAPI-Referenz gewinnt; passt die eigene reference zu mehreren Buchungen: 409.

Antworten

Status
200
Beschreibung
Buchung
Inhalt
application/json Booking
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
Status
400
Beschreibung
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Veranstalter des Keys gesperrt (ERR_TENANT_SUSPENDED), Kundengruppe des Keys inaktiv (ERR_KEY_GROUP_INACTIVE) oder X-TourAPI-Require-Mode passt nicht zum Key (ERR_MODE_MISMATCH). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
404
Beschreibung
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
409
Beschreibung
Die eigene reference passt zu mehreren Buchungen (ERR_REFERENCE_AMBIGUOUS); message nennt die TourAPI-Referenzen. Mit der TourAPI-Referenz (TA-...) lesen.
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
500
Beschreibung
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
Verkauf auf dem Knoten aus (ERR_BOOKING_DISABLED), Buchung/Storno wegen gleichzeitiger Vorgaenge am selben Hotel nicht durchgekommen (ERR_BOOKING_BUSY, mit Retry-After; mit demselben idemKey wiederholen), Suche zu lang (ERR_SEARCH_TIMEOUT) oder Preisrechnung zu lang (ERR_PRICE_TIMEOUT, /v1/price ohne room und /v1/prices, auch mit room und boards; /v1/price mit room hat keine eigene Frist). Nie eine Teilantwort; bei Zeitlimit eingrenzen, dann wiederholen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Nur bei ERR_BOOKING_BUSY - frueheste Wiederholung in ganzen Sekunden

POST /v1/cancel

Stornieren (idempotent)

Lehnt jedes unbekannte Feld ab (ERR_UNKNOWN_FIELD). Der Storno wird beim Veranstalter mit Zeitpunkt und key_id des Keys protokolliert (Wiederholung ohne zweiten Eintrag).

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited | booking_busy)

Anfrage

application/json CancelRequest

Antworten

Status
200
Beschreibung
Storniert oder war schon storniert (alreadyReleased)
Inhalt
application/json CancelResponse
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
Status
400
Beschreibung
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Veranstalter des Keys gesperrt (ERR_TENANT_SUSPENDED), Kundengruppe des Keys inaktiv (ERR_KEY_GROUP_INACTIVE) oder X-TourAPI-Require-Mode passt nicht zum Key (ERR_MODE_MISMATCH). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
404
Beschreibung
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
500
Beschreibung
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
Verkauf auf dem Knoten aus (ERR_BOOKING_DISABLED), Buchung/Storno wegen gleichzeitiger Vorgaenge am selben Hotel nicht durchgekommen (ERR_BOOKING_BUSY, mit Retry-After; mit demselben idemKey wiederholen), Suche zu lang (ERR_SEARCH_TIMEOUT) oder Preisrechnung zu lang (ERR_PRICE_TIMEOUT, /v1/price ohne room und /v1/prices, auch mit room und boards; /v1/price mit room hat keine eigene Frist). Nie eine Teilantwort; bei Zeitlimit eingrenzen, dann wiederholen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Nur bei ERR_BOOKING_BUSY - frueheste Wiederholung in ganzen Sekunden

GET /v1/health

Gesundheit des Knotens (ohne Key)

200 nur, wenn die Lese-Sicht geladen und der letzte Abgleich mit der Datenbank frisch ist; sonst 503 mit Grund. Keine Mandanten- oder Bestandsdaten. Mehr als 10 Aufrufe je Sekunde (Burst 50) von einer Absender-IP werden verzoegert beantwortet (hoechstens 1 s).

Ohne API-Key erreichbar.

Antworten

Status
200
Beschreibung
gesund (status ok)
Inhalt
application/json Health
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
nicht gesund (status degraded oder down, reason nennt den Grund)
Inhalt
application/json Health
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).

GET /v1/export/edf/full

EDF-Lieferung, Vollstand zum aktuellen Stand (Zip, Seitenkette)

Zuschnitt nur ueber den Key (Veranstalter, Kundengruppe), kein Parameter dafuer. Braucht das Export-Recht am Key. Ohne epoch/since/until beginnt eine Kette (hoechstens einmal je Stunde und Key; 400, 422 und 503 ERR_EXPORT_NOT_READY zaehlen nicht, Handbuch 10.3) - passt der Vollstand auf eine Seite (10.000 Dateien, 1 GiB entpackt, max_bytes), ist sie der ganze Vollstand (more false); sonst traegt sie more true und den Kettenschluessel in X-Export-Until. Folgeseiten mit epoch, since (to der Vorseite) und until (X-Export-Until der Vorseite) laufen im Seiten-Takt; nach kurzem Fehler dieselbe Folgeseite wiederholen statt neu beginnen. Angewendet wird am Kettenende. Scheitert das Paket nach dem ersten Byte, bricht der Server die Verbindung ab (Transportfehler); jedes Paket vor dem Anwenden gegen das Manifest pruefen (Dateien vollstaendig, bytes, sha256). Das Zip enthaelt manifest.json (Schema ExportManifest) und je Hotel eine Preis- und eine Allotment-Datei (Handbuch Abschnitt 10).

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). An diesem Endpunkt wirkt nur rate_limited. Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited)
Name
epoch
Ort
query
Pflicht
nein
Typ
string
Beschreibung
nur Folgeseiten - epoch der ersten Seite
Name
since
Ort
query
Pflicht
nein
Typ
string
Beschreibung
nur Folgeseiten - to der Vorseite (to_seq bzw. to_seq:to_after) (pattern ^[1-9][0-9]*(:(hotel|allotment)/[A-Za-z0-9._-]{1,64})?$)
Name
until
Ort
query
Pflicht
nein
Typ
string
Beschreibung
nur Folgeseiten - Kettenschluessel (X-Export-Until der Vorseite, unveraendert). Versiegelt, gebunden an Key, epoch und genau den Stand since, 15 min gueltig nach der letzten Seite; sonst 400. (pattern ^f1\.[A-Za-z0-9_-]+$)
Name
max_bytes
Ort
query
Pflicht
nein
Typ
integer
Beschreibung
Seitengroesse in Bytes (mindestens eine Datei je Seite, mindestens 65536); ohne = nur die festen Grenzen (10.000 Dateien, 1 GiB entpackt) (minimum 65536)

Antworten

Status
200
Beschreibung
Zip mit manifest.json (Schema ExportManifest) als erstem Eintrag, danach die Dateien in Manifest-Reihenfolge. Jede Datei hat sha256 und Laenge im Manifest; ganz oder gar nicht anwenden.
Inhalt
application/zip string – Zip-Container; contentSchema beschreibt dessen ersten Eintrag manifest.json (ExportManifest)
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
X-Export-Epoch – Aufbau des Feeds (ULID); wechselt nur bei Neuaufbau (dann 409)
X-Export-Seq – letzter vollstaendiger Stand dieser Antwort; endet die Seite mitten in einem Stand (to_after), der Stand davor (erste full-Seiten 0) - massgeblich ist to_seq im Manifest
X-Export-From – Stand, ab dem geliefert wurde (0 bei der ersten Seite eines full)
X-Export-More – true = weitere Seiten der Kette folgen
X-Export-Until – Kettenschluessel (bei jedem changes-Paket, bei einer full-Seite nur mit more true), versiegelt und undurchsichtig; unveraendert als until der Folgeseite schicken
Status
400
Beschreibung
Stand-Parameter fehlt oder unlesbar (ERR_EXPORT_BAD_CURSOR) bzw. Body/Query unlesbar (ERR_BAD_REQUEST)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Key ohne Export-Recht (ERR_EXPORT_NOT_ALLOWED), Veranstalter gesperrt (ERR_TENANT_SUSPENDED) oder Kundengruppe inaktiv (ERR_KEY_GROUP_INACTIVE)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
409
Beschreibung
epoch passt nicht oder Stand (since, until, seq der Quittung) groesser als der aktuelle Lieferstand (ERR_EXPORT_EPOCH) - full abrufen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
410
Beschreibung
Stand aelter als die Aufbewahrung (ERR_EXPORT_CURSOR_EXPIRED) - full abrufen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
500
Beschreibung
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
Lieferung fuer diesen Key noch nicht gebaut, voruebergehend nicht aktuell (Lieferwerk mehr als 2 min hinterher) bzw. auf dem Knoten nicht eingerichtet (ERR_EXPORT_NOT_READY)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden

GET /v1/export/edf/changes

EDF-Lieferung, Aenderungen nach einem Stand (Zip, 204 wenn nichts neu)

Objekte und Tombstones nach since bis zum Ziel der Kette. Ohne until beginnt eine Kette (hoechstens einmal je Minute und Key; 400, 422 und 503 ERR_EXPORT_NOT_READY zaehlen nicht, 200, 204 und 409 zaehlen; die Takt-Pruefung kommt vor der epoch-Pruefung, Handbuch 10.3) und der Server gibt ihren versiegelten Kettenschluessel in X-Export-Until aus; nur Folgeseiten mit diesem Schluessel als until laufen im Seiten-Takt (nach kurzem Fehler dieselbe Folgeseite wiederholen). Angewendet wird am Kettenende (more false). Scheitert das Paket nach dem ersten Byte, bricht der Server die Verbindung ab; jedes Paket vor dem Anwenden gegen das Manifest pruefen.

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). An diesem Endpunkt wirkt nur rate_limited. Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited)
Name
epoch
Ort
query
Pflicht
ja
Typ
string
Beschreibung
epoch aus dem letzten Manifest
Name
since
Ort
query
Pflicht
ja
Typ
string
Beschreibung
to_seq des letzten Pakets, bei einer Seite mitten in einem Stand to_seq:to_after (pattern ^(0|[1-9][0-9]*)(:(hotel|allotment)/[A-Za-z0-9._-]{1,64})?$)
Name
until
Ort
query
Pflicht
nein
Typ
string
Beschreibung
Kettenschluessel (X-Export-Until der Vorseite, unveraendert), nur fuer Folgeseiten. Versiegelt, gebunden an Key und epoch, 15 min gueltig nach der letzten Seite; eine Zahl, ein fremder oder abgelaufener Schluessel -> 400. (pattern ^u1\.[A-Za-z0-9_-]+$)
Name
max_bytes
Ort
query
Pflicht
nein
Typ
integer
Beschreibung
Seitengroesse in Bytes (mindestens eine Datei je Seite, mindestens 65536); ohne = nur die festen Grenzen (10.000 Dateien, 1 GiB entpackt) (minimum 65536)

Antworten

Status
200
Beschreibung
Zip mit manifest.json (Schema ExportManifest) als erstem Eintrag, danach die Dateien in Manifest-Reihenfolge. Jede Datei hat sha256 und Laenge im Manifest; ganz oder gar nicht anwenden.
Inhalt
application/zip string – Zip-Container; contentSchema beschreibt dessen ersten Eintrag manifest.json (ExportManifest)
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
X-Export-Epoch – Aufbau des Feeds (ULID); wechselt nur bei Neuaufbau (dann 409)
X-Export-Seq – letzter vollstaendiger Stand dieser Antwort; endet die Seite mitten in einem Stand (to_after), der Stand davor (erste full-Seiten 0) - massgeblich ist to_seq im Manifest
X-Export-From – Stand, ab dem geliefert wurde (0 bei der ersten Seite eines full)
X-Export-More – true = weitere Seiten der Kette folgen
X-Export-Until – Kettenschluessel (bei jedem changes-Paket, bei einer full-Seite nur mit more true), versiegelt und undurchsichtig; unveraendert als until der Folgeseite schicken
Status
204
Beschreibung
nichts neu (since steht auf dem Ziel); ohne Kettenschluessel
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
X-Export-Epoch – Aufbau des Feeds (ULID); wechselt nur bei Neuaufbau (dann 409)
X-Export-Seq – letzter vollstaendiger Stand dieser Antwort; endet die Seite mitten in einem Stand (to_after), der Stand davor (erste full-Seiten 0) - massgeblich ist to_seq im Manifest
X-Export-From – Stand, ab dem geliefert wurde (0 bei der ersten Seite eines full)
X-Export-More – true = weitere Seiten der Kette folgen
Status
400
Beschreibung
Stand-Parameter fehlt oder unlesbar (ERR_EXPORT_BAD_CURSOR) bzw. Body/Query unlesbar (ERR_BAD_REQUEST)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Key ohne Export-Recht (ERR_EXPORT_NOT_ALLOWED), Veranstalter gesperrt (ERR_TENANT_SUSPENDED) oder Kundengruppe inaktiv (ERR_KEY_GROUP_INACTIVE)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
409
Beschreibung
epoch passt nicht oder Stand (since, until, seq der Quittung) groesser als der aktuelle Lieferstand (ERR_EXPORT_EPOCH) - full abrufen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
410
Beschreibung
Stand aelter als die Aufbewahrung (ERR_EXPORT_CURSOR_EXPIRED) - full abrufen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
500
Beschreibung
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
Lieferung fuer diesen Key noch nicht gebaut, voruebergehend nicht aktuell (Lieferwerk mehr als 2 min hinterher) bzw. auf dem Knoten nicht eingerichtet (ERR_EXPORT_NOT_READY)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden

POST /v1/export/edf/ack

EDF-Lieferung, Stand als verarbeitet quittieren

Nur fuer die Ueberwachung beim Veranstalter; aendert nichts an der Lieferung. Lehnt jedes unbekannte Feld ab (ERR_UNKNOWN_FIELD).

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). An diesem Endpunkt wirkt nur rate_limited. Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited)

Anfrage

application/json ExportAckRequest

Antworten

Status
204
Beschreibung
quittiert
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
X-Export-Epoch – Aufbau des Feeds (ULID); wechselt nur bei Neuaufbau (dann 409)
X-Export-Seq – letzter vollstaendiger Stand dieser Antwort; endet die Seite mitten in einem Stand (to_after), der Stand davor (erste full-Seiten 0) - massgeblich ist to_seq im Manifest
X-Export-From – Stand, ab dem geliefert wurde (0 bei der ersten Seite eines full)
X-Export-More – true = weitere Seiten der Kette folgen
Status
400
Beschreibung
Stand-Parameter fehlt oder unlesbar (ERR_EXPORT_BAD_CURSOR) bzw. Body/Query unlesbar (ERR_BAD_REQUEST)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Key ohne Export-Recht (ERR_EXPORT_NOT_ALLOWED), Veranstalter gesperrt (ERR_TENANT_SUSPENDED) oder Kundengruppe inaktiv (ERR_KEY_GROUP_INACTIVE)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
409
Beschreibung
epoch passt nicht oder Stand (since, until, seq der Quittung) groesser als der aktuelle Lieferstand (ERR_EXPORT_EPOCH) - full abrufen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
500
Beschreibung
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
Lieferung fuer diesen Key noch nicht gebaut, voruebergehend nicht aktuell (Lieferwerk mehr als 2 min hinterher) bzw. auf dem Knoten nicht eingerichtet (ERR_EXPORT_NOT_READY)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden

GET /v1/content/hotels

Verzeichnis der Hotels des Keys (Content-API)

Hotels des Keys aufsteigend nach code, seitenweise (dasselbe Universum wie /v1/destinations, unabhaengig von der Verfuegbarkeit). feedToken = Stand fuer /v1/content/changes (alle Seiten eines Durchlaufs tragen den Stand der ersten Seite); scopeHash wechselt mit der Hotelmenge des Keys (Handbuch 12.2). Unbekannte Parameter -> warnings.

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). An diesem Endpunkt wirkt nur rate_limited. Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited)
Name
pageSize
Ort
query
Pflicht
nein
Typ
integer
Beschreibung
Seitengroesse 1-1000 (Standard 500) (minimum 1; maximum 1000; default 500)
Name
cursor
Ort
query
Pflicht
nein
Typ
string
Beschreibung
nextCursor der Vorseite, unveraendert (versiegelt, an den Key gebunden) (pattern ^cv1\.[A-Za-z0-9_-]+$)

Antworten

Status
200
Beschreibung
Eine Seite des Verzeichnisses
Inhalt
application/json ContentDirectoryResponse
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
Status
400
Beschreibung
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Inhalte fuer den Veranstalter nicht freigeschaltet (auch Testumgebung auf dieser Installation nicht beliefert) oder Key ohne Inhalts-Recht (ERR_CONTENT_NOT_ALLOWED); ausserdem wie Forbidden (ERR_TENANT_SUSPENDED, ERR_KEY_GROUP_INACTIVE, ERR_MODE_MISMATCH)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
500
Beschreibung
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
Inhalte bzw. Bild-Adressen auf diesem Knoten nicht eingerichtet (ERR_CONTENT_NOT_READY)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden

GET /v1/content/hotels/{code}

Inhalt eines Hotels (Content-API)

Stamm, Lage, Kategorien, Fakten, sichtbare Texte, fertige sichtbare Bilder und Ausstattung eines Hotels des Keys. Nie Kontaktdaten. Ohne lang alle Inhaltssprachen ohne Rueckfall; mit lang je Texttyp genau ein Eintrag je Sprache, fehlend ueber die Rueckfallkette (Standardsprache des Veranstalters, dann en) mit fallbackFrom (Handbuch 12.3). ETag; mit If-None-Match 304 ohne Koerper.

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). An diesem Endpunkt wirkt nur rate_limited. Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited)
Name
code
Ort
path
Pflicht
ja
Typ
string
Beschreibung
Hotel-Code aus dem Verzeichnis
Name
lang
Ort
query
Pflicht
nein
Typ
string
Beschreibung
1-5 Sprachen (ISO 639-1, klein), kommagetrennt, je eine Inhaltssprache des Veranstalters (pattern ^[a-z]{2}(,[a-z]{2}){0,4}$)
Name
If-None-Match
Ort
header
Pflicht
nein
Typ
string
Beschreibung
ETag einer frueheren Antwort

Antworten

Status
200
Beschreibung
Inhalt des Hotels
Inhalt
application/json ContentHotel
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
ETag – Undurchsichtiger Stand der Antwort (aendert sich mit Inhalt, Sprachwahl und Darstellung); als If-None-Match zurueckschicken
Status
304
Beschreibung
unveraendert seit dem genannten ETag (kein Koerper)
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
ETag – Undurchsichtiger Stand der Antwort (aendert sich mit Inhalt, Sprachwahl und Darstellung); als If-None-Match zurueckschicken
Status
400
Beschreibung
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Inhalte fuer den Veranstalter nicht freigeschaltet (auch Testumgebung auf dieser Installation nicht beliefert) oder Key ohne Inhalts-Recht (ERR_CONTENT_NOT_ALLOWED); ausserdem wie Forbidden (ERR_TENANT_SUSPENDED, ERR_KEY_GROUP_INACTIVE, ERR_MODE_MISMATCH)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
404
Beschreibung
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
500
Beschreibung
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
Inhalte bzw. Bild-Adressen auf diesem Knoten nicht eingerichtet (ERR_CONTENT_NOT_READY)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden

GET /v1/content/changes

Aenderungen der Hotelinhalte nach einem Stand

Aenderungen nach since in der Reihenfolge, in der sie gespeichert wurden, lueckenlos, je Hotel hoechstens einmal je Seite (mit seinem letzten Stand), nur Hotels des Keys. more true = sofort mit next weiterlesen. Stand vor dem Horizont (30 Tage) -> 410, dann Verzeichnis neu holen (Handbuch 12.4).

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). An diesem Endpunkt wirkt nur rate_limited. Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited)
Name
pageSize
Ort
query
Pflicht
nein
Typ
integer
Beschreibung
Seitengroesse 1-1000 (Standard 500) (minimum 1; maximum 1000; default 500)
Name
since
Ort
query
Pflicht
ja
Typ
string
Beschreibung
feedToken des Verzeichnisses oder next der Vorseite (versiegelt, an den Key gebunden) (pattern ^cf1\.[A-Za-z0-9_-]+$)

Antworten

Status
200
Beschreibung
Eine Seite der Aenderungen
Inhalt
application/json ContentChangesResponse
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
Status
400
Beschreibung
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Inhalte fuer den Veranstalter nicht freigeschaltet (auch Testumgebung auf dieser Installation nicht beliefert) oder Key ohne Inhalts-Recht (ERR_CONTENT_NOT_ALLOWED); ausserdem wie Forbidden (ERR_TENANT_SUSPENDED, ERR_KEY_GROUP_INACTIVE, ERR_MODE_MISMATCH)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
410
Beschreibung
since liegt vor dem Aufbewahrungshorizont des Feeds (ERR_CONTENT_CURSOR_EXPIRED) - Verzeichnis neu holen
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
500
Beschreibung
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
Inhalte bzw. Bild-Adressen auf diesem Knoten nicht eingerichtet (ERR_CONTENT_NOT_READY)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden

GET /v1/content/catalog

Kataloge der Hotelinhalte mit Beschriftungen

Objektarten, Kategorieskalen, Text- und Bildtypen, Ausstattungsgruppen und -merkmale mit Beschriftungen; languages = Inhaltssprachen des Veranstalters. ETag; mit If-None-Match 304 (Handbuch 12.5).

Parameter

Name
X-TourAPI-Require-Mode
Ort
header
Pflicht
nein
Typ
string
Beschreibung
test = jede Anfrage eines Live-Keys wird mit 403 ERR_MODE_MISMATCH abgelehnt, nichts ausgefuehrt (Test-Umgebungen, Agenten, CI); live = umgekehrt. Handbuch Abschnitt 11.1. (Werte: test | live)
Name
X-TourAPI-Sandbox-Scenario
Ort
header
Pflicht
nein
Typ
string
Beschreibung
Nur Test-Key (Sandbox): erzwingt einen Fehlerfall zum Testen der Wiederhol-Logik (Handbuch Abschnitt 11.3). An diesem Endpunkt wirkt nur rate_limited. Mit Live-Key, unbekanntem Wert oder einem Szenario, das an diesem Endpunkt nicht wirkt: 422 ERR_SCENARIO_NOT_ALLOWED. (Werte: rate_limited)
Name
lang
Ort
query
Pflicht
nein
Typ
string
Beschreibung
Beschriftungssprachen (de, en, tr), kommagetrennt; ohne = alle
Name
If-None-Match
Ort
header
Pflicht
nein
Typ
string
Beschreibung
ETag einer frueheren Antwort

Antworten

Status
200
Beschreibung
Kataloge
Inhalt
application/json ContentCatalogResponse
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
X-TourAPI-Mode – Modus des angenommenen API-Keys - test (Test-Key, Buchungen nur in der Sandbox) oder live. Steht auf jeder Antwort, sobald der Key angenommen ist, auch auf Fehlerantworten danach (Handbuch Abschnitt 11.1).
ETag – Undurchsichtiger Stand der Antwort (aendert sich mit Inhalt, Sprachwahl und Darstellung); als If-None-Match zurueckschicken
Status
304
Beschreibung
unveraendert seit dem genannten ETag (kein Koerper)
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
ETag – Undurchsichtiger Stand der Antwort (aendert sich mit Inhalt, Sprachwahl und Darstellung); als If-None-Match zurueckschicken
Status
400
Beschreibung
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
401
Beschreibung
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
403
Beschreibung
Inhalte fuer den Veranstalter nicht freigeschaltet (auch Testumgebung auf dieser Installation nicht beliefert) oder Key ohne Inhalts-Recht (ERR_CONTENT_NOT_ALLOWED); ausserdem wie Forbidden (ERR_TENANT_SUSPENDED, ERR_KEY_GROUP_INACTIVE, ERR_MODE_MISMATCH)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
405
Beschreibung
Falsche HTTP-Methode (ERR_METHOD_NOT_ALLOWED). Nach vielen Fehl-Anfragen (401/403/404/405) von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
422
Beschreibung
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
429
Beschreibung
Rate-Limit je Key (ERR_RATE_LIMITED) oder Such-Gate (ERR_SEARCH_BUSY). Wer Retry-After missachtet, bekommt die 429 verzoegert (hoechstens 1 s, je API-Key), bei sehr vielen verzoegerten Anfragen sofort (Handbuch, Abschnitt 8)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden (mindestens 1)
Status
500
Beschreibung
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Status
503
Beschreibung
Inhalte bzw. Bild-Adressen auf diesem Knoten nicht eingerichtet (ERR_CONTENT_NOT_READY)
Inhalt
application/json Error
Köpfe
Server-Timing – Rechenzeit der API (W3C Server Timing), genau ein Wert tourapi;dur=<ms>, z. B. tourapi;dur=12.4 - Millisekunden vom Eingang der Anfrage am Endpunkt bis zum Beginn der Antwort, inkl. Lesen des Anfrage-Koerpers und Warten an Takt/Such-Gate, ohne Uebertragung der Antwort. Steht auf jeder Antwort eines Endpunkts, auch auf Fehlerantworten (Handbuch Abschnitt 1.6).
Retry-After – Frueheste Wiederholung in ganzen Sekunden

Schemata

Date

Kalendertag JJJJ-MM-TT

Typ
string (date)
Regeln
pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}$

Cents

Betrag in ganzen Cent der Vertragswaehrung

Typ
integer (int64)

Warnings

Hinweise zur Anfrage (ignorierte Felder, Waehrung, now). Bitte loggen.

Typ
array<string>

Traveller

FeldTypPflichtBeschreibung
ageintegerjaAlter am Anreisetag (minimum 0; maximum 120)
namestringneinnur Anzeige, ohne Wirkung auf den Preis
typestringneinnur Anzeige (adult, child), ohne Wirkung auf den Preis

Occupancy

FeldTypPflichtBeschreibung
travellersarray<Traveller>ja(minItems 1; maxItems 20)

Availability

Feld
configured
Typ
boolean
Pflicht
ja
Beschreibung
fuer das Zimmer ist Kontingent hinterlegt
Feld
available
Typ
boolean
Pflicht
ja
Beschreibung
jede Nacht des Aufenthalts ist fuer diesen Key buchbar (freie Kapazitaet, Tagesstatus, beim Key einer Kontingent-Gruppe deren Zuteilung; eine Preisgruppe zaehlt wie der Basis-Key) - genau das, was /v1/book verkauft
Feld
minFree
Typ
integer
Pflicht
ja
Beschreibung
kleinste freie Anzahl ueber die Naechte fuer diesen Key, exakt bis 99 (wie das EDF-Allotment der Lieferung, PatternLength 2); 0 = mindestens eine Nacht Stop-Sale, auf Anfrage, ausgebucht oder ohne Kapazitaet; -1 = jede Nacht mehr als 99 frei oder Freiverkauf

PriceRequest

FeldTypPflichtBeschreibung
hotelstringja
roomstringneinleer = guenstigstes verfuegbares Zimmer, das die Belegung zulaesst
boardstringjaVerpflegungs-Code
checkInDateja
checkOutDateja
nowstringneinwird ignoriert (Stichtag = Serverdatum); abweichend -> Hinweis (veraltet)
currencystringneinWunschwaehrung, nur Hinweis bei Abweichung
occupancyOccupancyja

PricesRequest

FeldTypPflichtBeschreibung
hotelstringja
roomstringneinleer = alle Zimmer
boardsarray<string>neinleer = alle Verpflegungen des Zimmers
boardstringneinfiltert hier nicht (Hinweis in warnings); boards benutzen (veraltet)
checkInDateja
checkOutDateja
nowstringneinwird ignoriert (Stichtag = Serverdatum) (veraltet)
currencystringnein
occupancyOccupancyja

SearchRequest

Feld
destination
Typ
string
Pflicht
nein
Beschreibung
Zielgebiet- oder Flughafen-Code des Hotels, exakter Vergleich (Gross-/Kleinschreibung zaehlt); ein Code ohne Hotel fuer diesen Key -> 422 ERR_UNKNOWN_DESTINATION (gueltige Codes GET /v1/destinations); leer = alle Hotels
Feld
includeUnavailable
Typ
boolean
Pflicht
nein
Beschreibung
nicht buchbare Hotels gekennzeichnet mitliefern (default false)
Feld
board
Typ
string
Pflicht
ja
Feld
checkIn
Typ
Date
Pflicht
ja
Feld
checkOut
Typ
Date
Pflicht
ja
Feld
now
Typ
string
Pflicht
nein
Beschreibung
wird ignoriert (Stichtag = Serverdatum) (veraltet)
Feld
currency
Typ
string
Pflicht
nein
Feld
occupancy
Typ
Occupancy
Pflicht
ja
Feld
pageSize
Typ
integer
Pflicht
nein
Beschreibung
Hotels je Seite (minimum 1; maximum 100; default 50)
Feld
cursor
Typ
string
Pflicht
nein
Beschreibung
nextCursor der Vorseite, unveraendert

PriceCheck

FeldTypPflichtBeschreibung
boardstringja
nowstringneinleer lassen; abweichend vom Stichtag -> ERR_NOW_MISMATCH
currencystringneinmuss zur Vertragswaehrung passen (ERR_CURRENCY_NOT_AVAILABLE) (maxLength 3)
occupancyOccupancyja
expectedCentsCentsja
tolerancePercentnumberjaerlaubte Abweichung in Prozent (minimum 0)

BookRequest

Feld
hotel
Typ
string
Pflicht
ja
Feld
room
Typ
string
Pflicht
ja
Feld
checkIn
Typ
Date
Pflicht
ja
Feld
checkOut
Typ
Date
Pflicht
ja
Feld
quantity
Typ
integer
Pflicht
ja
Beschreibung
Anzahl Zimmer (minimum 1; maximum 1000000)
Feld
idemKey
Typ
string
Pflicht
ja
Beschreibung
eigener eindeutiger Schluessel des Vorgangs (Idempotenz); laenger -> 422 ERR_VALIDATION (maxLength 128)
Feld
reference
Typ
string
Pflicht
nein
Beschreibung
eigene Buchungsreferenz; laenger -> 422 ERR_VALIDATION (maxLength 128)
Feld
leadPaxName
Typ
string
Pflicht
nein
Beschreibung
laenger -> 422 ERR_VALIDATION (maxLength 255)
Feld
metadata
Pflicht
nein
Beschreibung
freies JSON (ueblich ein Objekt), gespeichert und zurueckgegeben, nicht ausgewertet; metadata.correlationId (bis 64 Zeichen, laenger -> 422 ERR_VALIDATION) wird uebernommen
Feld
priceCheck
Typ
PriceCheck
Pflicht
nein

CancelRequest

FeldTypPflichtBeschreibung
idemKeystringjalaenger -> 422 ERR_VALIDATION (maxLength 128)

Rounding

Rundungsregel aller Cent-Betraege der Antwort (dieselbe, die der EDF-Export deklariert)

FeldTypPflichtBeschreibung
modestringjakaufmaennisch, 0,5 wird vom Nullpunkt weg gerundet (Werte: Commercial)
decimalPlacesintegerja(Werte: 2)
scopestringjaje Reisendem wird die exakte Summe seiner Posten einmal gerundet (Werte: Person)

BreakdownLine

Ein Posten. Reihenfolge: Nacht aufsteigend (Posten je Aufenthalt, night -1, zuletzt), darin Reisender aufsteigend, darin Rechenschritt (BaseCharge/PhantomBaseCharge, GuestCharge, BoardCharge - jeweils direkt gefolgt von ihrer ApplyToBoard-GuestCharge -, Extra nach SortIndex). Die amountCents eines Reisenden summieren sich exakt zu seinem perTravellerCents.

Feld
chargeType
Typ
string
Pflicht
nein
Beschreibung
BaseCharge, PhantomBaseCharge, GuestCharge, BoardCharge oder Extra
Feld
code
Typ
string
Pflicht
nein
Feld
traveller
Typ
integer
Pflicht
nein
Beschreibung
Index des Reisenden in perTravellerCents (Alter absteigend, 0 = aeltester); Zimmerposten 0
Feld
night
Typ
integer
Pflicht
nein
Beschreibung
Index der Nacht ab 0; -1 = Posten je Aufenthalt
Feld
amountCents
Typ
Cents
Pflicht
nein
Feld
amountExact
Typ
string
Pflicht
nein
Beschreibung
exakter, ungerundeter Betrag des Postens in der Vertragswaehrung als Dezimalzahl (z.B. "-13.485"). amountCents ist der daraus summentreu verteilte Anzeige-Cent: gerundete laufende Summe des Reisenden bis zu dieser Zeile minus die bis zur Vorzeile. (pattern ^-?[0-9]+\.[0-9]{2,}$)
Feld
applianceCode
Typ
string
Pflicht
nein
Beschreibung
nur bei Extras
Feld
variant
Typ
string
Pflicht
nein
Beschreibung
nur bei Extras einer Extra-Familie (mehrere Extras mit demselben applianceCode): die Variante des Extras; erst applianceCode und variant zusammen nennen das Extra.
Feld
freeNight
Typ
boolean
Pflicht
nein
Beschreibung
nur gesetzt (true) bei den Posten einer Freinacht ("7=6"): diese Nacht ist ganz oder anteilig erlassen. Die Freinacht wird vor den uebrigen Extras angewandt; Prozent-Extras rechnen nur auf den nicht erlassenen Rest der Nacht (eine Freinacht verteuert nie).

SeparateExtra

Einzeln ausgewiesenes Extra. amountCents ist die exakte Summe seiner Posten, einmal gerundet; bei inTotal=true kann sie von der Summe seiner breakdown-Zeilen abweichen, auch um mehrere Cent je Reisendem (die Anzeige-Cent der Zeilen verteilen die Rundung des ganzen Personen-Topfs, nicht die des Extras). Massgeblich fuer den Preis sind totalCents, perTravellerCents und breakdown; exakter Wert des Extras = Summe der amountExact seiner Zeilen.

Feld
code
Typ
string
Pflicht
nein
Feld
variant
Typ
string
Pflicht
nein
Beschreibung
nur bei Extras einer Extra-Familie (mehrere Extras mit demselben code): die Variante des Extras; erst code und variant zusammen nennen das Extra.
Feld
name
Typ
string
Pflicht
nein
Feld
amountCents
Typ
Cents
Pflicht
nein
Feld
mandatory
Typ
boolean
Pflicht
nein
Feld
inTotal
Typ
boolean
Pflicht
nein
Beschreibung
false = optionales Extra, nicht im Gesamtpreis
Feld
eventStart
Typ
Date
Pflicht
nein
Feld
eventEnd
Typ
Date
Pflicht
nein

PriceResponse

Feld
room
Typ
string
Pflicht
ja
Beschreibung
das bepreiste Zimmer (ohne room in der Anfrage das guenstigste verfuegbare; Zimmer mit Vertragsfehler werden ausgelassen und in warnings genannt); so in /v1/book verwendbar
Feld
currency
Typ
string
Pflicht
ja
Beschreibung
Vertragswaehrung; leer = am Vertrag nicht hinterlegt
Feld
totalCents
Typ
Cents
Pflicht
ja
Feld
rounding
Typ
Rounding
Pflicht
ja
Feld
perTravellerCents
Typ
array<Cents>
Pflicht
ja
Beschreibung
je Reisendem (Alter absteigend) die exakte Summe seiner Posten, einmal gerundet; totalCents = Summe; Zimmerpreis steht beim ersten Reisenden
Feld
breakdown
Typ
array<BreakdownLine>
Pflicht
ja
Feld
separateExtras
Typ
array<SeparateExtra>
Pflicht
nein
Feld
availability
Typ
Availability
Pflicht
ja
Feld
warnings
Typ
Warnings
Pflicht
nein

BoardPrice

Feld
board
Typ
string
Pflicht
nein
Feld
globalType
Typ
string
Pflicht
nein
Beschreibung
Verpflegungsart wie im EDF-Export und in der offenen Suche (boardType) - AO fuer RO, sonst die Zuordnung des Veranstalters, sonst der Code selbst, wenn er eine Verpflegungsart ist, sonst XX (nicht zuordenbar); Handbuch 3.2
Feld
totalCents
Typ
Cents
Pflicht
nein
Feld
perTravellerCents
Typ
array<Cents>
Pflicht
nein
Feld
separateExtras
Typ
array<SeparateExtra>
Pflicht
nein
Feld
availability
Typ
Availability
Pflicht
nein

RoomPrices

Feld
room
Typ
string
Pflicht
nein
Feld
boards
Typ
array<BoardPrice>
Pflicht
nein
Feld
errors
Typ
array<BoardError>
Pflicht
nein
Beschreibung
Verpflegungen dieses Zimmers, die fuer die angefragte Belegung nicht rechnen oder an einem Vertragsfehler des Zimmers scheitern, z. B. ERR_NO_SECTION (ohne Preis; die uebrigen Zimmer bleiben bepreist; Handbuch 3.2, 3.5, 7.5)

BoardError

Feld
board
Typ
string
Pflicht
ja
Feld
globalType
Typ
string
Pflicht
nein
Beschreibung
Verpflegungsart wie im EDF-Export und in der offenen Suche (boardType) - AO fuer RO, sonst die Zuordnung des Veranstalters, sonst der Code selbst, wenn er eine Verpflegungsart ist, sonst XX (nicht zuordenbar); Handbuch 3.2
Feld
errorCode
Typ
string
Pflicht
ja
Beschreibung
ein Vertragsfehler-Code (Handbuch 7.5, z. B. ERR_NO_SECTION, ERR_INVALID_AMOUNT, ERR_NEGATIVE_TRAVELLER_PRICE, ERR_NEGATIVE_PERCENT_BASE) oder ERR_BOARD_NOT_AVAILABLE (Verpflegung fuer diese Reisegruppe nicht buchbar, Handbuch 3.5)
Feld
message
Typ
string
Pflicht
ja

PricesResponse

FeldTypPflichtBeschreibung
currencystringja
roundingRoundingja
roomsarray<RoomPrices>ja
warningsWarningsnein

SearchResult

Feld
hotel
Typ
string
Pflicht
nein
Feld
name
Typ
string
Pflicht
nein
Feld
room
Typ
string
Pflicht
nein
Beschreibung
Zimmer, auf das sich fromTotalCents bezieht (das guenstigste verfuegbare; bei bookable=false das guenstigste)
Feld
currency
Typ
string
Pflicht
nein
Feld
fromTotalCents
Typ
Cents
Pflicht
nein
Feld
availability
Typ
Availability
Pflicht
nein
Feld
bookable
Typ
boolean
Pflicht
nein
Feld
reason
Typ
string
Pflicht
nein
Beschreibung
nur bei bookable=false. ERR_NO_INVENTORY = mindestens eine Nacht ohne Kontingent (wie /v1/book), ERR_NOT_AVAILABLE = jede Nacht hat Kontingent, nicht jede ist offen (auch Zuteilung der Kundengruppe erschoepft oder fuer Zimmer/Nacht nicht vorhanden)
Feld
priceInformational
Typ
boolean
Pflicht
nein
Beschreibung
true = nur Preisauskunft, kein buchbares Angebot

SearchSkip

FeldTypPflichtBeschreibung
reasonstringnein
countintegernein

SearchDiagnostics

Feld
considered
Typ
integer
Pflicht
nein
Beschreibung
gepruefte Hotels = returned + skipped
Feld
returned
Typ
integer
Pflicht
nein
Feld
skipped
Typ
integer
Pflicht
nein
Feld
reasons
Typ
array<SearchSkip>
Pflicht
nein
Feld
timeBudgetExhausted
Typ
boolean
Pflicht
nein
Beschreibung
Seite wegen Zeitbudget kuerzer als pageSize
Feld
roomErrors
Typ
array<SearchSkip>
Pflicht
nein
Beschreibung
Zimmer der geprueften Hotels, die wegen eines Vertragsfehlers (Rechenkern, z.B. ERR_INVALID_AMOUNT) ausgelassen wurden, je Code mit Anzahl (reason = Code, count = Zimmer); auch wenn das Hotel mit einem anderen Zimmer trifft

SearchResponse

FeldTypPflichtBeschreibung
resultsarray<SearchResult>ja
diagnosticsSearchDiagnosticsja
warningsWarningsnein
nextCursorstringneingesetzt, solange weitere Hotels zu pruefen sind

OpenSearchRequest

Feld
destinations
Typ
array<string>
Pflicht
nein
Beschreibung
Ziel-Codes wie GET /v1/destinations (Vereinigung); nicht zusammen mit hotels; hoechstens laut Suchprofil (minItems 1)
Feld
hotels
Typ
array<string>
Pflicht
nein
Beschreibung
Hotel-Codes des Keys; nicht zusammen mit destinations. Ohne beides der ganze Bestand des Keys (nur wenn das Suchprofil alle Ziele erlaubt) (minItems 1)
Feld
arrivalFrom
Typ
Date
Pflicht
ja
Feld
arrivalTo
Typ
Date
Pflicht
ja
Feld
nightsMin
Typ
integer
Pflicht
ja
Beschreibung
(minimum 1; maximum 30)
Feld
nightsMax
Typ
integer
Pflicht
ja
Beschreibung
(minimum 1; maximum 30)
Feld
occupancy
Typ
Occupancy
Pflicht
ja
Feld
boards
Typ
array<string>
Pflicht
nein
Beschreibung
Verpflegungs-Codes genau wie im Vertrag; ohne = alle (minItems 1)
Feld
boardTypes
Typ
array<string>
Pflicht
nein
Beschreibung
Verpflegungsart wie im EDF-Export; mit boards zusammen muessen beide passen (minItems 1) (Werte: AO | BB | HB | HB+ | FB | FB+ | SC | AI | AI+ | XX)
Feld
minTotalCents
Typ
Cents
Pflicht
nein
Feld
maxTotalCents
Typ
Cents
Pflicht
nein
Feld
currency
Typ
string
Pflicht
nein
Beschreibung
Filter auf die Vertragswaehrung (keine Umrechnung); Pflicht, wenn der Suchraum mehrere Waehrungen hat (ERR_CURRENCY_REQUIRED)
Feld
sort
Typ
string
Pflicht
nein
Beschreibung
(Werte: price | pricePerNight | hotel; default price)
Feld
pageSize
Typ
integer
Pflicht
nein
Beschreibung
1 bis Suchprofil; ohne Angabe min(20, Suchprofil) (minimum 1)
Feld
cursor
Typ
string
Pflicht
nein
Beschreibung
nextCursor der Vorseite, unveraendert (15 Minuten gueltig)
Feld
category
Typ
OpenSearchCategoryFilter
Pflicht
nein
Feld
regions
Typ
array<string>
Pflicht
nein
Beschreibung
Regionen aus dem Hotelstamm (Adresse), eine davon, exakt verglichen. Hotels ohne Region zaehlen mit Grund ERR_NO_REGION (minItems 1; maxItems 50) (minLength 1; maxLength 80)
Feld
geo
Typ
OpenSearchGeoFilter
Pflicht
nein

OpenSearchCategoryFilter

Offizielle Kategorie aus dem Hotelstamm; Grenzen eingeschlossen, 4 Superior zaehlt als 4. Hotels ohne offizielle Kategorie zaehlen mit Grund ERR_NO_CATEGORY

FeldTypPflichtBeschreibung
schemestringja(Werte: stars | keys)
minnumberneinohne = 1; Nullen am Ende erlaubt (3.50 = 3.5) (minimum 1; maximum 5)
maxnumberneinohne = 5; Nullen am Ende erlaubt (4.0 = 4) (minimum 1; maximum 5)

OpenSearchGeoFilter

Umkreis (Haversine, Erdradius 6371 km, Abstand auf ganze Meter gerundet, Rand eingeschlossen). Hotels ohne Koordinaten zaehlen mit Grund ERR_NO_GEO

FeldTypPflichtBeschreibung
latnumberjaDezimalgrad, hoechstens 6 Nachkommastellen (minimum -90; maximum 90)
lonnumberjaDezimalgrad, hoechstens 6 Nachkommastellen (minimum -180; maximum 180)
radiusKmnumberjaKilometer, hoechstens 3 Nachkommastellen (ganze Meter) (minimum 0.001; maximum 500)

OpenSearchOffer

FeldTypPflichtBeschreibung
checkInDateja
checkOutDateja
nightsintegerja
roomstringja
boardstringja
boardTypestringjaVerpflegungsart wie im EDF-Export
currencystringja
totalCentsCentsja
perTravellerCentsarray<Cents>ja
availabilityAvailabilityja

OpenSearchAlternatives

Vorpruefung ohne Preis (Obergrenze, keine Preis- oder Trefferaussage)

FeldTypPflichtBeschreibung
datesintegernein
boardsarray<string>nein
boardTypesarray<string>nein
roomsintegernein

OpenSearchResult

FeldTypPflichtBeschreibung
hotelstringja
bestOpenSearchOfferja
alternativesOpenSearchAlternativesja

OpenSearchCoverage

Feld
complete
Typ
boolean
Pflicht
nein
Beschreibung
false = das Zeitbudget hat die Seite gekuerzt; die Treffer sind trotzdem exakt und in bewiesener Reihenfolge
Feld
timeBudgetExhausted
Typ
boolean
Pflicht
nein
Feld
standChanged
Typ
boolean
Pflicht
nein
Beschreibung
Datenstand seit der Vorseite gewechselt; Folgeseite im neuen Stand ab derselben Stelle
Feld
hotelsInScope
Typ
integer
Pflicht
nein
Feld
hotelsFeasible
Typ
integer
Pflicht
nein
Beschreibung
Hotels mit mindestens einem Termin laut Vorpruefung (Obergrenze der Trefferzahl)
Feld
hotelsPriced
Typ
integer
Pflicht
nein
Feld
undecided
Typ
integer
Pflicht
nein
Feld
reasons
Typ
array<SearchSkip>
Pflicht
nein
Feld
priceReasons
Typ
array<SearchSkip>
Pflicht
nein
Feld
roomErrors
Typ
array<SearchSkip>
Pflicht
nein

OpenSearchResponse

FeldTypPflichtBeschreibung
resultsarray<OpenSearchResult>ja
coverageOpenSearchCoverageja
standstringjaKennung des Datenstands der Seite (undurchsichtig)
nextCursorstringneingesetzt, solange weitere Treffer folgen koennen
warningsWarningsnein

OpenDatesRequest

Feld
hotel
Typ
string
Pflicht
ja
Beschreibung
Hotel-Code des Keys (z. B. aus der offenen Suche)
Feld
arrivalFrom
Typ
Date
Pflicht
ja
Feld
arrivalTo
Typ
Date
Pflicht
ja
Feld
nightsMin
Typ
integer
Pflicht
ja
Beschreibung
(minimum 1; maximum 30)
Feld
nightsMax
Typ
integer
Pflicht
ja
Beschreibung
(minimum 1; maximum 30)
Feld
occupancy
Typ
Occupancy
Pflicht
ja
Feld
boards
Typ
array<string>
Pflicht
nein
Beschreibung
Verpflegungs-Codes genau wie im Vertrag; jeder muss im Hotel angeboten werden (ERR_BOARD_NOT_OFFERED); ohne = alle (minItems 1)
Feld
boardTypes
Typ
array<string>
Pflicht
nein
Beschreibung
Verpflegungsart wie im EDF-Export; mit boards zusammen muessen beide passen (minItems 1) (Werte: AO | BB | HB | HB+ | FB | FB+ | SC | AI | AI+ | XX)
Feld
rooms
Typ
array<string>
Pflicht
nein
Beschreibung
Zimmer-Codes des Hotels (unbekannt -> 404 ERR_ROOM_NOT_FOUND); ohne = alle (minItems 1)
Feld
minTotalCents
Typ
Cents
Pflicht
nein
Feld
maxTotalCents
Typ
Cents
Pflicht
nein
Feld
currency
Typ
string
Pflicht
nein
Beschreibung
Filter auf die Vertragswaehrung; rechnet das Hotel anders oder ohne gueltige Waehrung -> 422 ERR_CURRENCY_NOT_AVAILABLE
Feld
perBoard
Typ
boolean
Pflicht
nein
Beschreibung
je Termin eine Zelle je Verpflegung (Reihenfolge in boards der Antwort) (default false)
Feld
category
Typ
OpenSearchCategoryFilter
Pflicht
nein
Feld
regions
Typ
array<string>
Pflicht
nein
Beschreibung
Regionen aus dem Hotelstamm wie in /v1/search/open. Hotel ausserhalb = keine Zelle (cells leer), ohne Region = jede Zelle none mit ERR_NO_REGION (minItems 1; maxItems 50) (minLength 1; maxLength 80)
Feld
geo
Typ
OpenSearchGeoFilter
Pflicht
nein

OpenDatesCell

Feld
checkIn
Typ
Date
Pflicht
ja
Feld
checkOut
Typ
Date
Pflicht
ja
Feld
nights
Typ
integer
Pflicht
ja
Feld
status
Typ
string
Pflicht
ja
Beschreibung
offer = Angebot (exakt wie /v1/price), none = kein Angebot (reason), unchecked = Zeitbudget abgelaufen, nie als none (Werte: offer | none | unchecked)
Feld
room
Typ
string
Pflicht
nein
Feld
board
Typ
string
Pflicht
nein
Beschreibung
Verpflegung des Angebots; mit perBoard die Verpflegung der Zelle (auch bei none/unchecked)
Feld
boardType
Typ
string
Pflicht
nein
Feld
totalCents
Typ
Cents
Pflicht
nein
Feld
perTravellerCents
Typ
array<Cents>
Pflicht
nein
Feld
availability
Typ
Availability
Pflicht
nein
Feld
reason
Typ
string
Pflicht
nein
Beschreibung
Fehlercode wie /v1/price (nur none); mit Filtern nach Hotelstamm auch ERR_NO_CATEGORY, ERR_NO_REGION, ERR_NO_GEO

OpenDatesCoverage

FeldTypPflichtBeschreibung
completebooleanneinfalse = Zellen sind unchecked (Zeitbudget)
timeBudgetExhaustedbooleannein
cellsintegernein
offersintegernein
noneintegernein
uncheckedintegernein
roomErrorsarray<SearchSkip>nein

OpenDatesResponse

Feld
hotel
Typ
string
Pflicht
ja
Feld
currency
Typ
string
Pflicht
ja
Feld
stand
Typ
string
Pflicht
ja
Beschreibung
Kennung des Datenstands (undurchsichtig, wie in der offenen Suche)
Feld
boards
Typ
array<string>
Pflicht
nein
Beschreibung
nur mit perBoard - die Verpflegungen je Termin in Zellen-Reihenfolge = Vertragsreihenfolge (erstes Auftreten ueber die Zimmer, RO zuerst, wie /v1/prices)
Feld
cells
Typ
array<OpenDatesCell>
Pflicht
ja
Beschreibung
dicht (checkIn, nights, mit perBoard Verpflegung); leer nur, wenn das Hotel ausserhalb der Filter nach Hotelstamm liegt
Feld
coverage
Typ
OpenDatesCoverage
Pflicht
ja
Feld
warnings
Typ
Warnings
Pflicht
nein

LimitsRate

FeldTypPflichtBeschreibung
perSecondnumbernein
burstintegernein
scopestringneinkey = je Key und Knoten; testCircle = gemeinsamer Topf aller Test-Keys des Kreises (Werte: key | testCircle)

LimitsExport

FeldTypPflichtBeschreibung
allowedbooleannein

LimitsContent

Zugang zur Content-API (/v1/content/*) mit diesem Key - Freischaltung des Veranstalters und Inhalts-Recht des Keys; ohne Grund.

FeldTypPflichtBeschreibung
allowedbooleanja

LimitsOpenSearch

Ohne Recht nur allowed=false; sonst alle Grenzen. destinations fehlt bei allDestinations=true.

FeldTypPflichtBeschreibung
allowedbooleanja
maxWindowDaysintegernein
nightsMinintegernein
nightsMaxintegernein
maxNightsSpanintegernein
maxDestinationsintegernein
maxHotelsintegernein
maxCandidatesintegernein
maxPageSizeintegernein
timeBudgetMsintegernein
rateintegernein
burstintegernein
concurrencyintegernein
matrixMaxWindowDaysintegernein
matrixMaxCellsintegernein
allDestinationsbooleannein
destinationsarray<string>nein

LimitsResponse

FeldTypPflichtBeschreibung
rateLimitsRateja
exportLimitsExportja
contentLimitsContentja
openSearchLimitsOpenSearchja

ContentDirectoryResponse

FeldTypPflichtBeschreibung
hotelsarray<ContentDirectoryHotel>ja
nextCursorstringneinfehlt auf der letzten Seite
feedTokenstringjaStand fuer /v1/content/changes (since)
scopeHashstringjawechselt mit der Hotelmenge des Keys
warningsWarningsnein

ContentDirectoryHotel

Feld
code
Typ
string
Pflicht
ja
Feld
name
Typ
string
Pflicht
ja
Feld
destination
Typ
string
Pflicht
nein
Feld
contentVersion
Typ
integer
Pflicht
ja
Beschreibung
zaehlt jede Aenderung der Auslieferung; 0 = noch kein Inhalt
Feld
updatedAt
Typ
string (date-time)
Pflicht
nein
Beschreibung
letzte Aenderung (UTC); fehlt bei contentVersion 0
Feld
category
Typ
ContentCategory
Pflicht
nein
Feld
geo
Typ
ContentGeo
Pflicht
nein
Feld
websiteReady
Typ
boolean
Pflicht
ja
Beschreibung
Reifegrad webseitenbereit (Handbuch 12.3); Kennzahl, beeinflusst weder Verkauf noch Auslieferung
Feld
missing
Typ
array<string>
Pflicht
ja
Beschreibung
fehlende Kriterien des Reifegrads in fester Reihenfolge, leer = webseitenbereit; unbekannte Werte ignorieren (Werte: general_text | geo | category | images | amenities)

ContentCategory

FeldTypPflichtBeschreibung
kindstringja(Werte: official | operator)
schemestringja(Werte: stars | keys)
valuenumberja1 bis 5 in halben Schritten
superiorbooleanneinnur bei stars; fehlt = false

ContentGeo

FeldTypPflichtBeschreibung
latnumberja
lonnumberja
precisionstringnein(Werte: address | street | locality | unknown)

ContentAddress

FeldTypPflichtBeschreibung
streetstringnein
postalCodestringnein
citystringnein
regionstringnein
countrystringneinISO 3166-1 alpha-2

ContentFacts

FeldTypPflichtBeschreibung
roomsintegernein
floorsintegernein
builtintegernein
renovatedintegernein
checkInFromstringneinHH:MM
checkOutUntilstringneinHH:MM
minAgeintegernein

ContentText

FeldTypPflichtBeschreibung
typestringjaTexttyp aus dem Katalog (GENERAL, LOCATION, ...)
langstringjagelieferte Sprache
fallbackFromstringneinangefragte Sprache, fuer die dieser Text einspringt
htmlstringjanur p, br, b, strong, i, em, ul, ol, li ohne Attribute
machineTranslatedbooleannein
updatedAtstring (date-time)ja

ContentLabel

FeldTypPflichtBeschreibung
langstringja
fallbackFromstringnein
textstringja

ContentFocus

FeldTypPflichtBeschreibung
xintegerja(minimum 0; maximum 100)
yintegerja(minimum 0; maximum 100)

ContentVariant

FeldTypPflichtBeschreibung
namestringja(Werte: w320 | w640 | w1024 | w1600 | w2048)
widthintegerja
heightintegerja
bytesintegerja
urlstring (uri)ja

ContentMedium

FeldTypPflichtBeschreibung
idstringjastabil, solange das Bild im Hotel bleibt
typestringjaBildtyp aus dem Katalog
orderintegerja1 = Hauptbild
roomCodestringnein
widthintegerja
heightintegerja
focusContentFocusnein
titlesarray<ContentLabel>ja
altsarray<ContentLabel>ja
creditstringnein
attributionRequiredbooleanjatrue = credit muss neben dem Bild stehen
variantsarray<ContentVariant>ja

ContentAmenity

FeldTypPflichtBeschreibung
codestringja
availablebooleanjafalse = ausdruecklich nicht vorhanden (fehlendes Merkmal = unbekannt)
countintegernein
distanceMintegernein
areaM2integernein
refstringneinBezug der Entfernung (IATA-Code des Flughafens)
chargestringnein(Werte: included | extra | unknown)

ContentHotel

Inhalt eines Hotels. Kein Feld fuer Kontaktdaten.

Feld
code
Typ
string
Pflicht
ja
Feld
name
Typ
string
Pflicht
ja
Feld
destination
Typ
string
Pflicht
nein
Feld
giataCode
Typ
string
Pflicht
nein
Feld
contentVersion
Typ
integer
Pflicht
ja
Feld
updatedAt
Typ
string (date-time)
Pflicht
nein
Beschreibung
fehlt bei contentVersion 0
Feld
accommodationType
Typ
string
Pflicht
nein
Feld
chain
Typ
string
Pflicht
nein
Feld
categories
Typ
array<ContentCategory>
Pflicht
ja
Feld
address
Typ
ContentAddress
Pflicht
nein
Feld
geo
Typ
ContentGeo
Pflicht
nein
Feld
facts
Typ
ContentFacts
Pflicht
nein
Feld
texts
Typ
array<ContentText>
Pflicht
ja
Feld
media
Typ
array<ContentMedium>
Pflicht
ja
Feld
amenities
Typ
array<ContentAmenity>
Pflicht
ja
Feld
websiteReady
Typ
boolean
Pflicht
ja
Beschreibung
Reifegrad webseitenbereit (Handbuch 12.3); Kennzahl, beeinflusst weder Verkauf noch Auslieferung
Feld
missing
Typ
array<string>
Pflicht
ja
Beschreibung
fehlende Kriterien des Reifegrads in fester Reihenfolge, leer = webseitenbereit; unbekannte Werte ignorieren (Werte: general_text | geo | category | images | amenities)
Feld
warnings
Typ
Warnings
Pflicht
nein

ContentChangesResponse

FeldTypPflichtBeschreibung
changesarray<ContentChange>ja
nextstringjaStand fuer den naechsten Aufruf (since)
morebooleanja
scopeHashstringja
warningsWarningsnein

ContentChange

Feld
code
Typ
string
Pflicht
ja
Feld
change
Typ
string
Pflicht
ja
Beschreibung
(Werte: upsert | removed)
Feld
contentVersion
Typ
integer
Pflicht
nein
Beschreibung
aktuelle Version (nur bei upsert)
Feld
reason
Typ
string
Pflicht
nein
Beschreibung
optional - languages, media_ready, contract (name, destination oder giataCode aus dem Vertrag geaendert), deleted; unbekannte Werte ignorieren

ContentCatalogResponse

FeldTypPflichtBeschreibung
versionstringja
languagesarray<string>jaInhaltssprachen des Veranstalters
defaultLanguagestringnein
labelLanguagesarray<string>ja
accommodationTypesarray<ContentCatalogEntry>ja
categorySchemesarray<ContentCatalogEntry>ja
textTypesarray<ContentCatalogEntry>ja
mediaTypesarray<ContentCatalogEntry>ja
amenityGroupsarray<ContentCatalogEntry>ja
amenitiesarray<ContentCatalogAmenity>ja
warningsWarningsnein

ContentCatalogEntry

FeldTypPflichtBeschreibung
codestringja
sortintegerja
labelsobjectnein
lockedbooleanneinentfallen (bleibt lesbar, nie umgedeutet)

ContentCatalogAmenity

FeldTypPflichtBeschreibung
codestringja
groupstringja
sortintegerja
valueTypestringja(Werte: flag | anzahl | meter | flaeche_m2 | meter_mit_bezug)
unitstringnein
chargeablebooleanja
labelsobjectja
lockedbooleannein

DestinationsResponse

FeldTypPflichtBeschreibung
destinationsarray<Destination>ja
warningsWarningsnein

Destination

FeldTypPflichtBeschreibung
codestringjaCode, genau so in destination zu uebergeben (Gross-/Kleinschreibung zaehlt) (pattern ^[A-Za-z0-9._-]{1,64}$)
namestringneinKlartext zur Anzeige; fehlt, wenn TourAPI den Code nicht kennt

BookResponse

Feld
booked
Typ
boolean
Pflicht
ja
Feld
alreadyBooked
Typ
boolean
Pflicht
ja
Beschreibung
true = idempotente Wiederholung, nichts neu verkauft
Feld
reference
Typ
string
Pflicht
ja
Beschreibung
TourAPI-Buchungsreferenz (TA-...; Testbuchung SB-...)
Feld
correlationId
Typ
string
Pflicht
nein
Beschreibung
metadata.correlationId der Anfrage; fehlt sie, eine vom Server vergebene UUID. Bei alreadyBooked die am Beleg gespeicherte ID des ersten Aufrufs.
Feld
sandbox
Typ
boolean
Pflicht
nein
Beschreibung
true = Testbuchung eines Test-Keys (Sandbox, nie beim Veranstalter); fehlt live

CancelResponse

FeldTypPflichtBeschreibung
releasedbooleanja
alreadyReleasedbooleanjatrue = war schon storniert
sandboxbooleanneintrue = Storno einer Testbuchung (Test-Key); fehlt live

Booking

FeldTypPflichtBeschreibung
referencestringnein
customerReferencestringneineigene reference aus der Buchung; fehlt ohne reference
hotelstringnein
roomstringnein
groupstringneinKundengruppe, nur bei Gruppen-Buchungen (pattern ^[A-Za-z0-9._-]{1,64}$)
checkInDatenein
checkOutDatenein
quantityintegernein
statusstringnein(Werte: confirmed | released)
bookedAtstring (date-time)neinBuchungszeitpunkt, RFC 3339 in UTC (z. B. 2026-09-26T08:15:03Z)
updatedAtstring (date-time)neinletzte Aenderung, bei Storno die Stornozeit; RFC 3339 in UTC
metadataneinmetadata aus der Buchung, unveraendert; fehlt ohne metadata
totalCentsinteger | null (int64)neinPreis aus priceCheck; null = ohne priceCheck gebucht
currencystringneinVertragswaehrung aus priceCheck; leer ohne priceCheck
boardstringneinVerpflegung aus priceCheck; leer ohne priceCheck
sandboxbooleanneintrue = Testbuchung aus der Sandbox (Test-Key); fehlt live

Error

FeldTypPflichtBeschreibung
errorCodestringjastabiler Code, siehe Fehlerkatalog (Handbuch Abschnitt 7)
messagestringjaText fuer Menschen, kann sich aendern
warningsWarningsnein

Health

Feld
status
Typ
string
Pflicht
ja
Beschreibung
(Werte: ok | degraded | down)
Feld
reason
Typ
string
Pflicht
nein
Beschreibung
nur bei degraded/down (Werte: sync_stale | replica_lag | replica_lag_unknown | view_not_loaded | health_not_configured)
Feld
detail
Typ
string
Pflicht
nein
Beschreibung
Text fuer Menschen zum Grund, kann sich aendern
Feld
replica_lag_s
Typ
integer
Pflicht
nein
Beschreibung
nur wenn der Knoten ueber eine Lese-Replica liest und deren Verzug messbar ist, in Sekunden (minimum 0)
Feld
warnings
Typ
array<string>
Pflicht
nein
Beschreibung
Hinweise, die den Status nicht kippen (replica_lag = Verzug der Lese-Replica ueber 5 s; db_error = letzte DB-Messung gescheitert; capacity_overlap = Bestandspruefung fand ueberlappende Kapazitaets-Zeitraeume) (Werte: replica_lag | db_error | capacity_overlap)
Feld
db
Typ
string
Pflicht
nein
Beschreibung
Ergebnis der letzten DB-Messung (im Abgleich-Takt, nicht je Aufruf); fehlt, solange nicht gemessen (Werte: ok | error)
Feld
db_latency_ms
Typ
integer
Pflicht
nein
Beschreibung
Dauer der letzten DB-Rundreise in Millisekunden, nur bei db ok (minimum 0)
Feld
uptime_s
Typ
integer
Pflicht
ja
Beschreibung
Laufzeit des Prozesses in Sekunden (minimum 0)
Feld
version
Typ
string
Pflicht
ja
Beschreibung
Build-Stand (Commit, "+" = ungesicherte Aenderungen); leer bei einem Build ohne Stand

ExportAckRequest

FeldTypPflichtBeschreibung
epochstringjaepoch des verarbeiteten Stands
seqintegerjato_seq des verarbeiteten Stands (hoechstens der aktuelle) (minimum 0)

ExportManifest

Inhalt von manifest.json im Paket. Kanonische Form (Reihenfolge, Einrueckung) und Grenzen im Liefervertrag (auf Anfrage beim Betreiber); der Referenz-Empfaenger lehnt jede andere Form ab.

FeldTypPflichtBeschreibung
formatstringja(const tourapi-edf-feed/1)
tenantstringjaVeranstalter-Code (TOC im Dateinamen)
scopestringjaKundengruppe des Keys, leer = Basisvertrag
epochstringja
typestringja(Werte: full | changes)
from_seqintegerjaStand, ab dem die Seite liefert (0 = erste Seite eines full)
from_afterstringneinnur bei einer Seite, die mitten in einem Stand beginnt
to_seqintegerja
to_afterstringneinnur bei einer Seite, die mitten in einem Stand endet (Folgeseite mit since=to_seq:to_after)
morebooleanja
generated_atstring (date-time)ja
rulesExportRulesja
objectsarray<ExportObject>ja
removedarray<ExportRemoval>ja

ExportRules

FeldTypPflichtBeschreibung
edfstringja
allotmentstringja
specstringja

ExportObject

FeldTypPflichtBeschreibung
pathstringja
kindstringja(Werte: hotel | allotment)
hotelstringja
seqintegerja
sha256stringja
bytesintegerja
source_revintegerja

ExportRemoval

Feld
kind
Typ
string
Pflicht
ja
Beschreibung
(Werte: hotel | allotment)
Feld
hotel
Typ
string
Pflicht
ja
Feld
seq
Typ
integer
Pflicht
ja
Feld
reason
Typ
string
Pflicht
ja
Beschreibung
(Werte: withdrawn:deleted | withdrawn:variant_error | withdrawn:not_exportable | withdrawn:no_currency | withdrawn:not_in_universe)