Transport and encoding
- HTTPS only. Requests are
POSTwithContent-Type: application/json, except order status, which is aGETwith no body. Every response is JSON. - Property names are camelCase, including dictionary keys (baggage per passenger type is keyed
adult,child,infant). - Enumerations are strings in responses (
"tripType": "RoundTrip"). Requests accept the name ("Economy") or the number (1). See Enumerations. - Search and offer ids are GUIDs. Order ids are integers.
- Offers carry IATA codes for airlines and airports. Their English names come once per response in the
dictionariesblock. - Optional fields with no value are omitted from the JSON rather than sent as
null. - Money is decimal, in the offer’s
price.currency.
Dates and times
Headers
Responses
A successful call (HTTP 200) returns the resource directly, with no wrapper. A failed call (4xx or 5xx) returns the error envelope:string
English text for humans. It may change, so don’t parse it.
string
One of
Validation, Authentication, NotFound, Conflict, Payment, Provider, Timeout, RateLimit, System, BusinessRule.integer
Same as the HTTP status.
object
Optional context. For validation failures it maps field names to lists of messages.
string
What to do next.
string
Trace id for support.
Validation failures
HTTP 400 always usesINVALID_REQUEST_FORMAT and names each offending field:

