Skip to main content

Transport and encoding

  • HTTPS only. Requests are POST with Content-Type: application/json, except order status, which is a GET with 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 dictionaries block.
  • 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
Stable machine-readable code. Branch on this, never on the message. Full list in Errors.
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 uses INVALID_REQUEST_FORMAT and names each offending field: