Public API docs
Sign in
API docs

OpenAPI reference

Buyer API v1: flow, rules, error catalogue and examples – every example runs as a test on every build.

TourAPI Kaeufer-API · 1.0.0-entwurf

The descriptions in the OpenAPI file are in German (authoritative); labels are in your language.

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.
Authentication
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

Groups

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)

Machine-readable: openapi.yaml

Endpoints

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.

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited | price_timeout)

Request

application/json PriceRequest

Responses

Status
200
Description
Preis
Content
application/json PriceResponse
Headers
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
Description
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
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
Content
application/json Error
Headers
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

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited | price_timeout)

Request

application/json PricesRequest

Responses

Status
200
Description
Preise je Zimmer und Verpflegung
Content
application/json PricesResponse
Headers
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
Description
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
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
Content
application/json Error
Headers
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.

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited)

Responses

Status
200
Description
Ziel-Codes
Content
application/json DestinationsResponse
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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).

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited | search_busy)

Request

application/json SearchRequest

Responses

Status
200
Description
Treffer und Diagnose
Content
application/json SearchResponse
Headers
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
Description
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
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
Content
application/json Error
Headers
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.

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)

Request

application/json OpenSearchRequest

Responses

Status
200
Description
Treffer, Abdeckung, Stand
Content
application/json OpenSearchResponse
Headers
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
Description
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Content
application/json Error
Headers
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
Description
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
Content
application/json Error
Headers
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.

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)

Request

application/json OpenDatesRequest

Responses

Status
200
Description
Zellen, Abdeckung, Stand
Content
application/json OpenDatesResponse
Headers
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
Description
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Content
application/json Error
Headers
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
Description
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
Content
application/json Error
Headers
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).

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited)

Responses

Status
200
Description
Grenzen des Keys
Content
application/json LimitsResponse
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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.

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited | booking_busy | price_drift | sold_out)

Request

application/json BookRequest

Responses

Status
200
Description
Gebucht oder idempotente Wiederholung (alreadyBooked)
Content
application/json BookResponse
Headers
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
Description
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Preis geaendert (ERR_PRICE_DRIFT) oder idemKey-Konflikt (ERR_IDEMPOTENCY_MISMATCH, ERR_IDEM_KEY_RELEASED)
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Content
application/json Error
Headers
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
Description
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
Content
application/json Error
Headers
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

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited)
Name
ref
In
query
Required
yes
Type
string
Description
Buchungsreferenz (TA-...) oder die eigene reference aus der Buchung. Die TourAPI-Referenz gewinnt; passt die eigene reference zu mehreren Buchungen: 409.

Responses

Status
200
Description
Buchung
Content
application/json Booking
Headers
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
Description
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Die eigene reference passt zu mehreren Buchungen (ERR_REFERENCE_AMBIGUOUS); message nennt die TourAPI-Referenzen. Mit der TourAPI-Referenz (TA-...) lesen.
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Content
application/json Error
Headers
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
Description
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
Content
application/json Error
Headers
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).

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited | booking_busy)

Request

application/json CancelRequest

Responses

Status
200
Description
Storniert oder war schon storniert (alreadyReleased)
Content
application/json CancelResponse
Headers
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
Description
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Content
application/json Error
Headers
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
Description
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
Content
application/json Error
Headers
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).

Reachable without an API key.

Responses

Status
200
Description
gesund (status ok)
Content
application/json Health
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
nicht gesund (status degraded oder down, reason nennt den Grund)
Content
application/json Health
Headers
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).

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited)
Name
epoch
In
query
Required
no
Type
string
Description
nur Folgeseiten - epoch der ersten Seite
Name
since
In
query
Required
no
Type
string
Description
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
In
query
Required
no
Type
string
Description
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
In
query
Required
no
Type
integer
Description
Seitengroesse in Bytes (mindestens eine Datei je Seite, mindestens 65536); ohne = nur die festen Grenzen (10.000 Dateien, 1 GiB entpackt) (minimum 65536)

Responses

Status
200
Description
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.
Content
application/zip string – Zip-Container; contentSchema beschreibt dessen ersten Eintrag manifest.json (ExportManifest)
Headers
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
Description
Stand-Parameter fehlt oder unlesbar (ERR_EXPORT_BAD_CURSOR) bzw. Body/Query unlesbar (ERR_BAD_REQUEST)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
Key ohne Export-Recht (ERR_EXPORT_NOT_ALLOWED), Veranstalter gesperrt (ERR_TENANT_SUSPENDED) oder Kundengruppe inaktiv (ERR_KEY_GROUP_INACTIVE)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
epoch passt nicht oder Stand (since, until, seq der Quittung) groesser als der aktuelle Lieferstand (ERR_EXPORT_EPOCH) - full abrufen
Content
application/json Error
Headers
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
Description
Stand aelter als die Aufbewahrung (ERR_EXPORT_CURSOR_EXPIRED) - full abrufen
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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.

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited)
Name
epoch
In
query
Required
yes
Type
string
Description
epoch aus dem letzten Manifest
Name
since
In
query
Required
yes
Type
string
Description
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
In
query
Required
no
Type
string
Description
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
In
query
Required
no
Type
integer
Description
Seitengroesse in Bytes (mindestens eine Datei je Seite, mindestens 65536); ohne = nur die festen Grenzen (10.000 Dateien, 1 GiB entpackt) (minimum 65536)

Responses

Status
200
Description
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.
Content
application/zip string – Zip-Container; contentSchema beschreibt dessen ersten Eintrag manifest.json (ExportManifest)
Headers
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
Description
nichts neu (since steht auf dem Ziel); ohne Kettenschluessel
Headers
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
Description
Stand-Parameter fehlt oder unlesbar (ERR_EXPORT_BAD_CURSOR) bzw. Body/Query unlesbar (ERR_BAD_REQUEST)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
Key ohne Export-Recht (ERR_EXPORT_NOT_ALLOWED), Veranstalter gesperrt (ERR_TENANT_SUSPENDED) oder Kundengruppe inaktiv (ERR_KEY_GROUP_INACTIVE)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
epoch passt nicht oder Stand (since, until, seq der Quittung) groesser als der aktuelle Lieferstand (ERR_EXPORT_EPOCH) - full abrufen
Content
application/json Error
Headers
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
Description
Stand aelter als die Aufbewahrung (ERR_EXPORT_CURSOR_EXPIRED) - full abrufen
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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).

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited)

Request

application/json ExportAckRequest

Responses

Status
204
Description
quittiert
Headers
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
Description
Stand-Parameter fehlt oder unlesbar (ERR_EXPORT_BAD_CURSOR) bzw. Body/Query unlesbar (ERR_BAD_REQUEST)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
Key ohne Export-Recht (ERR_EXPORT_NOT_ALLOWED), Veranstalter gesperrt (ERR_TENANT_SUSPENDED) oder Kundengruppe inaktiv (ERR_KEY_GROUP_INACTIVE)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
epoch passt nicht oder Stand (since, until, seq der Quittung) groesser als der aktuelle Lieferstand (ERR_EXPORT_EPOCH) - full abrufen
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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.

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited)
Name
pageSize
In
query
Required
no
Type
integer
Description
Seitengroesse 1-1000 (Standard 500) (minimum 1; maximum 1000; default 500)
Name
cursor
In
query
Required
no
Type
string
Description
nextCursor der Vorseite, unveraendert (versiegelt, an den Key gebunden) (pattern ^cv1\.[A-Za-z0-9_-]+$)

Responses

Status
200
Description
Eine Seite des Verzeichnisses
Content
application/json ContentDirectoryResponse
Headers
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
Description
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Content
application/json Error
Headers
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
Description
Inhalte bzw. Bild-Adressen auf diesem Knoten nicht eingerichtet (ERR_CONTENT_NOT_READY)
Content
application/json Error
Headers
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.

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited)
Name
code
In
path
Required
yes
Type
string
Description
Hotel-Code aus dem Verzeichnis
Name
lang
In
query
Required
no
Type
string
Description
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
In
header
Required
no
Type
string
Description
ETag einer frueheren Antwort

Responses

Status
200
Description
Inhalt des Hotels
Content
application/json ContentHotel
Headers
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
Description
unveraendert seit dem genannten ETag (kein Koerper)
Headers
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
Description
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Hotel, Zimmer oder Buchung fuer diesen Key nicht vorhanden
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Content
application/json Error
Headers
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
Description
Inhalte bzw. Bild-Adressen auf diesem Knoten nicht eingerichtet (ERR_CONTENT_NOT_READY)
Content
application/json Error
Headers
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).

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited)
Name
pageSize
In
query
Required
no
Type
integer
Description
Seitengroesse 1-1000 (Standard 500) (minimum 1; maximum 1000; default 500)
Name
since
In
query
Required
yes
Type
string
Description
feedToken des Verzeichnisses oder next der Vorseite (versiegelt, an den Key gebunden) (pattern ^cf1\.[A-Za-z0-9_-]+$)

Responses

Status
200
Description
Eine Seite der Aenderungen
Content
application/json ContentChangesResponse
Headers
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
Description
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
since liegt vor dem Aufbewahrungshorizont des Feeds (ERR_CONTENT_CURSOR_EXPIRED) - Verzeichnis neu holen
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Content
application/json Error
Headers
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
Description
Inhalte bzw. Bild-Adressen auf diesem Knoten nicht eingerichtet (ERR_CONTENT_NOT_READY)
Content
application/json Error
Headers
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).

Parameters

Name
X-TourAPI-Require-Mode
In
header
Required
no
Type
string
Description
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. (Values: test | live)
Name
X-TourAPI-Sandbox-Scenario
In
header
Required
no
Type
string
Description
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. (Values: rate_limited)
Name
lang
In
query
Required
no
Type
string
Description
Beschriftungssprachen (de, en, tr), kommagetrennt; ohne = alle
Name
If-None-Match
In
header
Required
no
Type
string
Description
ETag einer frueheren Antwort

Responses

Status
200
Description
Kataloge
Content
application/json ContentCatalogResponse
Headers
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
Description
unveraendert seit dem genannten ETag (kein Koerper)
Headers
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
Description
Body kein JSON oder zu gross, Pflichtparameter fehlt (ERR_BAD_REQUEST, ERR_QUANTITY_INVALID, ERR_INVALID_IDEM_KEY, ...)
Content
application/json Error
Headers
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
Description
Key fehlt, unbekannt oder widerrufen (ERR_UNAUTHORIZED). Nach vielen Abweisungen von derselben Absender-IP kommt die Antwort verzoegert (hoechstens 1 s, Handbuch Abschnitt 8)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Anfrage fachlich nicht erfuellbar oder Feld ungueltig, u. a. Aufenthalt durch eine Verkaufsregel des Zimmers ausgeschlossen (Handbuch 3.4; Fehlerkatalog Abschnitt 7)
Content
application/json Error
Headers
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
Description
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)
Content
application/json Error
Headers
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
Description
Interner Fehler (ERR_INTERNAL) oder Kontingent-Invariante verletzt (ERR_INVENTORY_DRIFT, ERR_RELEASE_DRIFT, ...)
Content
application/json Error
Headers
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
Description
Inhalte bzw. Bild-Adressen auf diesem Knoten nicht eingerichtet (ERR_CONTENT_NOT_READY)
Content
application/json Error
Headers
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

Schemas

Date

Kalendertag JJJJ-MM-TT

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

Cents

Betrag in ganzen Cent der Vertragswaehrung

Type
integer (int64)

Warnings

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

Type
array<string>

Traveller

FieldTypeRequiredDescription
ageintegeryesAlter am Anreisetag (minimum 0; maximum 120)
namestringnonur Anzeige, ohne Wirkung auf den Preis
typestringnonur Anzeige (adult, child), ohne Wirkung auf den Preis

Occupancy

FieldTypeRequiredDescription
travellersarray<Traveller>yes(minItems 1; maxItems 20)

Availability

Field
configured
Type
boolean
Required
yes
Description
fuer das Zimmer ist Kontingent hinterlegt
Field
available
Type
boolean
Required
yes
Description
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
Field
minFree
Type
integer
Required
yes
Description
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

FieldTypeRequiredDescription
hotelstringyes
roomstringnoleer = guenstigstes verfuegbares Zimmer, das die Belegung zulaesst
boardstringyesVerpflegungs-Code
checkInDateyes
checkOutDateyes
nowstringnowird ignoriert (Stichtag = Serverdatum); abweichend -> Hinweis (deprecated)
currencystringnoWunschwaehrung, nur Hinweis bei Abweichung
occupancyOccupancyyes

PricesRequest

FieldTypeRequiredDescription
hotelstringyes
roomstringnoleer = alle Zimmer
boardsarray<string>noleer = alle Verpflegungen des Zimmers
boardstringnofiltert hier nicht (Hinweis in warnings); boards benutzen (deprecated)
checkInDateyes
checkOutDateyes
nowstringnowird ignoriert (Stichtag = Serverdatum) (deprecated)
currencystringno
occupancyOccupancyyes

SearchRequest

Field
destination
Type
string
Required
no
Description
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
Field
includeUnavailable
Type
boolean
Required
no
Description
nicht buchbare Hotels gekennzeichnet mitliefern (default false)
Field
board
Type
string
Required
yes
Field
checkIn
Type
Date
Required
yes
Field
checkOut
Type
Date
Required
yes
Field
now
Type
string
Required
no
Description
wird ignoriert (Stichtag = Serverdatum) (deprecated)
Field
currency
Type
string
Required
no
Field
occupancy
Type
Occupancy
Required
yes
Field
pageSize
Type
integer
Required
no
Description
Hotels je Seite (minimum 1; maximum 100; default 50)
Field
cursor
Type
string
Required
no
Description
nextCursor der Vorseite, unveraendert

PriceCheck

FieldTypeRequiredDescription
boardstringyes
nowstringnoleer lassen; abweichend vom Stichtag -> ERR_NOW_MISMATCH
currencystringnomuss zur Vertragswaehrung passen (ERR_CURRENCY_NOT_AVAILABLE) (maxLength 3)
occupancyOccupancyyes
expectedCentsCentsyes
tolerancePercentnumberyeserlaubte Abweichung in Prozent (minimum 0)

BookRequest

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

CancelRequest

FieldTypeRequiredDescription
idemKeystringyeslaenger -> 422 ERR_VALIDATION (maxLength 128)

Rounding

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

FieldTypeRequiredDescription
modestringyeskaufmaennisch, 0,5 wird vom Nullpunkt weg gerundet (Values: Commercial)
decimalPlacesintegeryes(Values: 2)
scopestringyesje Reisendem wird die exakte Summe seiner Posten einmal gerundet (Values: 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.

Field
chargeType
Type
string
Required
no
Description
BaseCharge, PhantomBaseCharge, GuestCharge, BoardCharge oder Extra
Field
code
Type
string
Required
no
Field
traveller
Type
integer
Required
no
Description
Index des Reisenden in perTravellerCents (Alter absteigend, 0 = aeltester); Zimmerposten 0
Field
night
Type
integer
Required
no
Description
Index der Nacht ab 0; -1 = Posten je Aufenthalt
Field
amountCents
Type
Cents
Required
no
Field
amountExact
Type
string
Required
no
Description
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,}$)
Field
applianceCode
Type
string
Required
no
Description
nur bei Extras
Field
variant
Type
string
Required
no
Description
nur bei Extras einer Extra-Familie (mehrere Extras mit demselben applianceCode): die Variante des Extras; erst applianceCode und variant zusammen nennen das Extra.
Field
freeNight
Type
boolean
Required
no
Description
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.

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

PriceResponse

Field
room
Type
string
Required
yes
Description
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
Field
currency
Type
string
Required
yes
Description
Vertragswaehrung; leer = am Vertrag nicht hinterlegt
Field
totalCents
Type
Cents
Required
yes
Field
rounding
Type
Rounding
Required
yes
Field
perTravellerCents
Type
array<Cents>
Required
yes
Description
je Reisendem (Alter absteigend) die exakte Summe seiner Posten, einmal gerundet; totalCents = Summe; Zimmerpreis steht beim ersten Reisenden
Field
breakdown
Type
array<BreakdownLine>
Required
yes
Field
separateExtras
Type
array<SeparateExtra>
Required
no
Field
availability
Type
Availability
Required
yes
Field
warnings
Type
Warnings
Required
no

BoardPrice

Field
board
Type
string
Required
no
Field
globalType
Type
string
Required
no
Description
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
Field
totalCents
Type
Cents
Required
no
Field
perTravellerCents
Type
array<Cents>
Required
no
Field
separateExtras
Type
array<SeparateExtra>
Required
no
Field
availability
Type
Availability
Required
no

RoomPrices

Field
room
Type
string
Required
no
Field
boards
Type
array<BoardPrice>
Required
no
Field
errors
Type
array<BoardError>
Required
no
Description
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

Field
board
Type
string
Required
yes
Field
globalType
Type
string
Required
no
Description
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
Field
errorCode
Type
string
Required
yes
Description
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)
Field
message
Type
string
Required
yes

PricesResponse

FieldTypeRequiredDescription
currencystringyes
roundingRoundingyes
roomsarray<RoomPrices>yes
warningsWarningsno

SearchResult

Field
hotel
Type
string
Required
no
Field
name
Type
string
Required
no
Field
room
Type
string
Required
no
Description
Zimmer, auf das sich fromTotalCents bezieht (das guenstigste verfuegbare; bei bookable=false das guenstigste)
Field
currency
Type
string
Required
no
Field
fromTotalCents
Type
Cents
Required
no
Field
availability
Type
Availability
Required
no
Field
bookable
Type
boolean
Required
no
Field
reason
Type
string
Required
no
Description
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)
Field
priceInformational
Type
boolean
Required
no
Description
true = nur Preisauskunft, kein buchbares Angebot

SearchSkip

FieldTypeRequiredDescription
reasonstringno
countintegerno

SearchDiagnostics

Field
considered
Type
integer
Required
no
Description
gepruefte Hotels = returned + skipped
Field
returned
Type
integer
Required
no
Field
skipped
Type
integer
Required
no
Field
reasons
Type
array<SearchSkip>
Required
no
Field
timeBudgetExhausted
Type
boolean
Required
no
Description
Seite wegen Zeitbudget kuerzer als pageSize
Field
roomErrors
Type
array<SearchSkip>
Required
no
Description
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

FieldTypeRequiredDescription
resultsarray<SearchResult>yes
diagnosticsSearchDiagnosticsyes
warningsWarningsno
nextCursorstringnogesetzt, solange weitere Hotels zu pruefen sind

OpenSearchRequest

Field
destinations
Type
array<string>
Required
no
Description
Ziel-Codes wie GET /v1/destinations (Vereinigung); nicht zusammen mit hotels; hoechstens laut Suchprofil (minItems 1)
Field
hotels
Type
array<string>
Required
no
Description
Hotel-Codes des Keys; nicht zusammen mit destinations. Ohne beides der ganze Bestand des Keys (nur wenn das Suchprofil alle Ziele erlaubt) (minItems 1)
Field
arrivalFrom
Type
Date
Required
yes
Field
arrivalTo
Type
Date
Required
yes
Field
nightsMin
Type
integer
Required
yes
Description
(minimum 1; maximum 30)
Field
nightsMax
Type
integer
Required
yes
Description
(minimum 1; maximum 30)
Field
occupancy
Type
Occupancy
Required
yes
Field
boards
Type
array<string>
Required
no
Description
Verpflegungs-Codes genau wie im Vertrag; ohne = alle (minItems 1)
Field
boardTypes
Type
array<string>
Required
no
Description
Verpflegungsart wie im EDF-Export; mit boards zusammen muessen beide passen (minItems 1) (Values: AO | BB | HB | HB+ | FB | FB+ | SC | AI | AI+ | XX)
Field
minTotalCents
Type
Cents
Required
no
Field
maxTotalCents
Type
Cents
Required
no
Field
currency
Type
string
Required
no
Description
Filter auf die Vertragswaehrung (keine Umrechnung); Pflicht, wenn der Suchraum mehrere Waehrungen hat (ERR_CURRENCY_REQUIRED)
Field
sort
Type
string
Required
no
Description
(Values: price | pricePerNight | hotel; default price)
Field
pageSize
Type
integer
Required
no
Description
1 bis Suchprofil; ohne Angabe min(20, Suchprofil) (minimum 1)
Field
cursor
Type
string
Required
no
Description
nextCursor der Vorseite, unveraendert (15 Minuten gueltig)
Field
category
Type
OpenSearchCategoryFilter
Required
no
Field
regions
Type
array<string>
Required
no
Description
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)
Field
geo
Type
OpenSearchGeoFilter
Required
no

OpenSearchCategoryFilter

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

FieldTypeRequiredDescription
schemestringyes(Values: stars | keys)
minnumbernoohne = 1; Nullen am Ende erlaubt (3.50 = 3.5) (minimum 1; maximum 5)
maxnumbernoohne = 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

FieldTypeRequiredDescription
latnumberyesDezimalgrad, hoechstens 6 Nachkommastellen (minimum -90; maximum 90)
lonnumberyesDezimalgrad, hoechstens 6 Nachkommastellen (minimum -180; maximum 180)
radiusKmnumberyesKilometer, hoechstens 3 Nachkommastellen (ganze Meter) (minimum 0.001; maximum 500)

OpenSearchOffer

FieldTypeRequiredDescription
checkInDateyes
checkOutDateyes
nightsintegeryes
roomstringyes
boardstringyes
boardTypestringyesVerpflegungsart wie im EDF-Export
currencystringyes
totalCentsCentsyes
perTravellerCentsarray<Cents>yes
availabilityAvailabilityyes

OpenSearchAlternatives

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

FieldTypeRequiredDescription
datesintegerno
boardsarray<string>no
boardTypesarray<string>no
roomsintegerno

OpenSearchResult

FieldTypeRequiredDescription
hotelstringyes
bestOpenSearchOfferyes
alternativesOpenSearchAlternativesyes

OpenSearchCoverage

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

OpenSearchResponse

FieldTypeRequiredDescription
resultsarray<OpenSearchResult>yes
coverageOpenSearchCoverageyes
standstringyesKennung des Datenstands der Seite (undurchsichtig)
nextCursorstringnogesetzt, solange weitere Treffer folgen koennen
warningsWarningsno

OpenDatesRequest

Field
hotel
Type
string
Required
yes
Description
Hotel-Code des Keys (z. B. aus der offenen Suche)
Field
arrivalFrom
Type
Date
Required
yes
Field
arrivalTo
Type
Date
Required
yes
Field
nightsMin
Type
integer
Required
yes
Description
(minimum 1; maximum 30)
Field
nightsMax
Type
integer
Required
yes
Description
(minimum 1; maximum 30)
Field
occupancy
Type
Occupancy
Required
yes
Field
boards
Type
array<string>
Required
no
Description
Verpflegungs-Codes genau wie im Vertrag; jeder muss im Hotel angeboten werden (ERR_BOARD_NOT_OFFERED); ohne = alle (minItems 1)
Field
boardTypes
Type
array<string>
Required
no
Description
Verpflegungsart wie im EDF-Export; mit boards zusammen muessen beide passen (minItems 1) (Values: AO | BB | HB | HB+ | FB | FB+ | SC | AI | AI+ | XX)
Field
rooms
Type
array<string>
Required
no
Description
Zimmer-Codes des Hotels (unbekannt -> 404 ERR_ROOM_NOT_FOUND); ohne = alle (minItems 1)
Field
minTotalCents
Type
Cents
Required
no
Field
maxTotalCents
Type
Cents
Required
no
Field
currency
Type
string
Required
no
Description
Filter auf die Vertragswaehrung; rechnet das Hotel anders oder ohne gueltige Waehrung -> 422 ERR_CURRENCY_NOT_AVAILABLE
Field
perBoard
Type
boolean
Required
no
Description
je Termin eine Zelle je Verpflegung (Reihenfolge in boards der Antwort) (default false)
Field
category
Type
OpenSearchCategoryFilter
Required
no
Field
regions
Type
array<string>
Required
no
Description
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)
Field
geo
Type
OpenSearchGeoFilter
Required
no

OpenDatesCell

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

OpenDatesCoverage

FieldTypeRequiredDescription
completebooleannofalse = Zellen sind unchecked (Zeitbudget)
timeBudgetExhaustedbooleanno
cellsintegerno
offersintegerno
noneintegerno
uncheckedintegerno
roomErrorsarray<SearchSkip>no

OpenDatesResponse

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

LimitsRate

FieldTypeRequiredDescription
perSecondnumberno
burstintegerno
scopestringnokey = je Key und Knoten; testCircle = gemeinsamer Topf aller Test-Keys des Kreises (Values: key | testCircle)

LimitsExport

FieldTypeRequiredDescription
allowedbooleanno

LimitsContent

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

FieldTypeRequiredDescription
allowedbooleanyes

LimitsOpenSearch

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

FieldTypeRequiredDescription
allowedbooleanyes
maxWindowDaysintegerno
nightsMinintegerno
nightsMaxintegerno
maxNightsSpanintegerno
maxDestinationsintegerno
maxHotelsintegerno
maxCandidatesintegerno
maxPageSizeintegerno
timeBudgetMsintegerno
rateintegerno
burstintegerno
concurrencyintegerno
matrixMaxWindowDaysintegerno
matrixMaxCellsintegerno
allDestinationsbooleanno
destinationsarray<string>no

LimitsResponse

FieldTypeRequiredDescription
rateLimitsRateyes
exportLimitsExportyes
contentLimitsContentyes
openSearchLimitsOpenSearchyes

ContentDirectoryResponse

FieldTypeRequiredDescription
hotelsarray<ContentDirectoryHotel>yes
nextCursorstringnofehlt auf der letzten Seite
feedTokenstringyesStand fuer /v1/content/changes (since)
scopeHashstringyeswechselt mit der Hotelmenge des Keys
warningsWarningsno

ContentDirectoryHotel

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

ContentCategory

FieldTypeRequiredDescription
kindstringyes(Values: official | operator)
schemestringyes(Values: stars | keys)
valuenumberyes1 bis 5 in halben Schritten
superiorbooleannonur bei stars; fehlt = false

ContentGeo

FieldTypeRequiredDescription
latnumberyes
lonnumberyes
precisionstringno(Values: address | street | locality | unknown)

ContentAddress

FieldTypeRequiredDescription
streetstringno
postalCodestringno
citystringno
regionstringno
countrystringnoISO 3166-1 alpha-2

ContentFacts

FieldTypeRequiredDescription
roomsintegerno
floorsintegerno
builtintegerno
renovatedintegerno
checkInFromstringnoHH:MM
checkOutUntilstringnoHH:MM
minAgeintegerno

ContentText

FieldTypeRequiredDescription
typestringyesTexttyp aus dem Katalog (GENERAL, LOCATION, ...)
langstringyesgelieferte Sprache
fallbackFromstringnoangefragte Sprache, fuer die dieser Text einspringt
htmlstringyesnur p, br, b, strong, i, em, ul, ol, li ohne Attribute
machineTranslatedbooleanno
updatedAtstring (date-time)yes

ContentLabel

FieldTypeRequiredDescription
langstringyes
fallbackFromstringno
textstringyes

ContentFocus

FieldTypeRequiredDescription
xintegeryes(minimum 0; maximum 100)
yintegeryes(minimum 0; maximum 100)

ContentVariant

FieldTypeRequiredDescription
namestringyes(Values: w320 | w640 | w1024 | w1600 | w2048)
widthintegeryes
heightintegeryes
bytesintegeryes
urlstring (uri)yes

ContentMedium

FieldTypeRequiredDescription
idstringyesstabil, solange das Bild im Hotel bleibt
typestringyesBildtyp aus dem Katalog
orderintegeryes1 = Hauptbild
roomCodestringno
widthintegeryes
heightintegeryes
focusContentFocusno
titlesarray<ContentLabel>yes
altsarray<ContentLabel>yes
creditstringno
attributionRequiredbooleanyestrue = credit muss neben dem Bild stehen
variantsarray<ContentVariant>yes

ContentAmenity

FieldTypeRequiredDescription
codestringyes
availablebooleanyesfalse = ausdruecklich nicht vorhanden (fehlendes Merkmal = unbekannt)
countintegerno
distanceMintegerno
areaM2integerno
refstringnoBezug der Entfernung (IATA-Code des Flughafens)
chargestringno(Values: included | extra | unknown)

ContentHotel

Inhalt eines Hotels. Kein Feld fuer Kontaktdaten.

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

ContentChangesResponse

FieldTypeRequiredDescription
changesarray<ContentChange>yes
nextstringyesStand fuer den naechsten Aufruf (since)
morebooleanyes
scopeHashstringyes
warningsWarningsno

ContentChange

Field
code
Type
string
Required
yes
Field
change
Type
string
Required
yes
Description
(Values: upsert | removed)
Field
contentVersion
Type
integer
Required
no
Description
aktuelle Version (nur bei upsert)
Field
reason
Type
string
Required
no
Description
optional - languages, media_ready, contract (name, destination oder giataCode aus dem Vertrag geaendert), deleted; unbekannte Werte ignorieren

ContentCatalogResponse

FieldTypeRequiredDescription
versionstringyes
languagesarray<string>yesInhaltssprachen des Veranstalters
defaultLanguagestringno
labelLanguagesarray<string>yes
accommodationTypesarray<ContentCatalogEntry>yes
categorySchemesarray<ContentCatalogEntry>yes
textTypesarray<ContentCatalogEntry>yes
mediaTypesarray<ContentCatalogEntry>yes
amenityGroupsarray<ContentCatalogEntry>yes
amenitiesarray<ContentCatalogAmenity>yes
warningsWarningsno

ContentCatalogEntry

FieldTypeRequiredDescription
codestringyes
sortintegeryes
labelsobjectno
lockedbooleannoentfallen (bleibt lesbar, nie umgedeutet)

ContentCatalogAmenity

FieldTypeRequiredDescription
codestringyes
groupstringyes
sortintegeryes
valueTypestringyes(Values: flag | anzahl | meter | flaeche_m2 | meter_mit_bezug)
unitstringno
chargeablebooleanyes
labelsobjectyes
lockedbooleanno

DestinationsResponse

FieldTypeRequiredDescription
destinationsarray<Destination>yes
warningsWarningsno

Destination

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

BookResponse

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

CancelResponse

FieldTypeRequiredDescription
releasedbooleanyes
alreadyReleasedbooleanyestrue = war schon storniert
sandboxbooleannotrue = Storno einer Testbuchung (Test-Key); fehlt live

Booking

FieldTypeRequiredDescription
referencestringno
customerReferencestringnoeigene reference aus der Buchung; fehlt ohne reference
hotelstringno
roomstringno
groupstringnoKundengruppe, nur bei Gruppen-Buchungen (pattern ^[A-Za-z0-9._-]{1,64}$)
checkInDateno
checkOutDateno
quantityintegerno
statusstringno(Values: confirmed | released)
bookedAtstring (date-time)noBuchungszeitpunkt, RFC 3339 in UTC (z. B. 2026-09-26T08:15:03Z)
updatedAtstring (date-time)noletzte Aenderung, bei Storno die Stornozeit; RFC 3339 in UTC
metadatanometadata aus der Buchung, unveraendert; fehlt ohne metadata
totalCentsinteger | null (int64)noPreis aus priceCheck; null = ohne priceCheck gebucht
currencystringnoVertragswaehrung aus priceCheck; leer ohne priceCheck
boardstringnoVerpflegung aus priceCheck; leer ohne priceCheck
sandboxbooleannotrue = Testbuchung aus der Sandbox (Test-Key); fehlt live

Error

FieldTypeRequiredDescription
errorCodestringyesstabiler Code, siehe Fehlerkatalog (Handbuch Abschnitt 7)
messagestringyesText fuer Menschen, kann sich aendern
warningsWarningsno

Health

Field
status
Type
string
Required
yes
Description
(Values: ok | degraded | down)
Field
reason
Type
string
Required
no
Description
nur bei degraded/down (Values: sync_stale | replica_lag | replica_lag_unknown | view_not_loaded | health_not_configured)
Field
detail
Type
string
Required
no
Description
Text fuer Menschen zum Grund, kann sich aendern
Field
replica_lag_s
Type
integer
Required
no
Description
nur wenn der Knoten ueber eine Lese-Replica liest und deren Verzug messbar ist, in Sekunden (minimum 0)
Field
warnings
Type
array<string>
Required
no
Description
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) (Values: replica_lag | db_error | capacity_overlap)
Field
db
Type
string
Required
no
Description
Ergebnis der letzten DB-Messung (im Abgleich-Takt, nicht je Aufruf); fehlt, solange nicht gemessen (Values: ok | error)
Field
db_latency_ms
Type
integer
Required
no
Description
Dauer der letzten DB-Rundreise in Millisekunden, nur bei db ok (minimum 0)
Field
uptime_s
Type
integer
Required
yes
Description
Laufzeit des Prozesses in Sekunden (minimum 0)
Field
version
Type
string
Required
yes
Description
Build-Stand (Commit, "+" = ungesicherte Aenderungen); leer bei einem Build ohne Stand

ExportAckRequest

FieldTypeRequiredDescription
epochstringyesepoch des verarbeiteten Stands
seqintegeryesto_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.

FieldTypeRequiredDescription
formatstringyes(const tourapi-edf-feed/1)
tenantstringyesVeranstalter-Code (TOC im Dateinamen)
scopestringyesKundengruppe des Keys, leer = Basisvertrag
epochstringyes
typestringyes(Values: full | changes)
from_seqintegeryesStand, ab dem die Seite liefert (0 = erste Seite eines full)
from_afterstringnonur bei einer Seite, die mitten in einem Stand beginnt
to_seqintegeryes
to_afterstringnonur bei einer Seite, die mitten in einem Stand endet (Folgeseite mit since=to_seq:to_after)
morebooleanyes
generated_atstring (date-time)yes
rulesExportRulesyes
objectsarray<ExportObject>yes
removedarray<ExportRemoval>yes

ExportRules

FieldTypeRequiredDescription
edfstringyes
allotmentstringyes
specstringyes

ExportObject

FieldTypeRequiredDescription
pathstringyes
kindstringyes(Values: hotel | allotment)
hotelstringyes
seqintegeryes
sha256stringyes
bytesintegeryes
source_revintegeryes

ExportRemoval

Field
kind
Type
string
Required
yes
Description
(Values: hotel | allotment)
Field
hotel
Type
string
Required
yes
Field
seq
Type
integer
Required
yes
Field
reason
Type
string
Required
yes
Description
(Values: withdrawn:deleted | withdrawn:variant_error | withdrawn:not_exportable | withdrawn:no_currency | withdrawn:not_in_universe)