Travel To Discover

Loading documentation…

3. API Reference

Export .md

Common headers

Every transaction accepts the same set of request headers. Only Authorization is always mandatory; the rest are optional until a feature or account restriction needs them. Send them consistently — they are how the platform attributes, localises, traces and bounds your calls.


Request headers

Header Required Type Description
Authorization Yes string Bearer credential. The value must be prefixed with Bearer — the token comes from the Ticket response (or an OAuth 2.0 access token; see the API Reference authentication section). The Ticket call itself does not require this header.
Session-Id Booking flow string Recommended on every client request, and mandatory throughout the booking flow — HotelRates, CheckAvail, Book and Cancel. See Conventions — Sessions.
Request-Id No string Identifies this single request. Values must not repeat across requests — a duplicate is the client's bug, and the echo of the value in the response is how support finds the exact call.
Trace-Id No string Correlates a group of related requests. Send the same value for everything belonging to one traveller journey or one batch job.
Language No string IETF BCP 47 language tag, e.g. "en", "en-US", "ar". Defaults to en-US.
Currency No string ISO 4217 code for the currency rates should be quoted in, e.g. USD, EUR, AED. USD is the default; other majors are supported where the supplier permits.
Market Conditional string Point-of-sale market for this call, as an ISO 3166-1 alpha-2 country code. Required only when your account carries a market restriction: an allow-list cannot admit a market you have not stated, so such an account refuses calls that omit it.
User-Ref Conditional string Your own identifier for the person on whose behalf this call is made. Required only once named users have been authorised on your account, after which every call must identify one and is authorised against that user's scopes as well as the key's.
Client-Request-Timestamp No integer Client request time (when the client began sending the request), as a unix timestamp.
IP No string Client IP address; accepts both IPv4 and IPv6.
Timeout-Milliseconds No integer Client-imposed timeout; the server makes a best effort to respond within it.
Test No string Test switches as key-value pairs, e.g. hotel=HC1&scenario=priceChange. Unrecognised values are ignored and the call proceeds as if the header had not been sent — see Test more scenarios.

Response headers

Header Description
Request-Id Echo of the request identifier, or the server's value when you did not send one — quote it when contacting support.
Trace-Id Echo of the trace correlation value.
Session-Id The verified session id for the flow.
Server-Cost-Milliseconds Server-side processing time for the call, in milliseconds (e.g. 500).
X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset Rate-limit counter state for the endpoint just called — see Rate limit.
Retry-After Sent on a 429 only; the number of seconds to wait before retrying.

Tracing in practice

A typical integration sends:

text
Request-Id: 9d1f4b2a-7c60-4f3e-9a58-1b0c2d3e4f50   (fresh UUID per call)
Trace-Id:    checkout-2026-01-01-0001               (one per user journey)
Session-Id:  374337a797454a344ad999c7730da01c       (one per search-to-book flow)

When something goes wrong, the platform can follow Request-Id to the exact call and Trace-Id across the whole journey — include both, plus the timestamp, when you write to integrations@ttdbooking.com.


Need help?

Questions about headers or request context: integrations@ttdbooking.com Full documentation: developer.ttdbooking.com/hotel-api/docs