tripId |
string |
yes |
Opaque trip id, shaped {searchId}:{tripCode}; read it back with GET /v1/flights/trips/{tripId}. |
featured |
best_value | cheapest | cheapest_direct |
no |
The single highest-priority featured label, best_value > cheapest > cheapest_direct. best_value ranks on the score of the trip’s CHEAPEST fare, the same statistic sort=score_desc orders by, so on a score_desc read it lands on the first result. cheapest and cheapest_direct break a price tie by that same score, then by leg-1 departure – cheapest keeps the LATER departure, cheapest_direct the EARLIER one. Under sort=score_desc the two picks are also MOVED toward positions 2 and 3, matching wego.com. Those positions are targets, not guarantees: a pick already at or above its target stays put, and cheapest_direct lands at position 2 when the first result is itself at the cheapest price. |
stops |
number |
yes |
Trip-level stop count, the max across legs. |
durationMinutes |
number |
yes |
Total trip duration in minutes, summed across legs. |
outbound |
object |
yes |
The outbound leg. |
↳ from |
string |
yes |
Departure airport IATA code. |
↳ to |
string |
yes |
Arrival airport IATA code. |
↳ departsAt |
string |
yes |
Leg departure, ISO 8601 with offset. |
↳ arrivesAt |
string |
yes |
Leg arrival, ISO 8601 with offset. |
↳ durationMinutes |
number |
yes |
Total leg duration in minutes. |
↳ stops |
number |
yes |
Stops on this leg (0 is nonstop). |
↳ airlines |
string[] |
yes |
Raw IATA airline codes on the leg (unchanged). See airlinesDetail for display names. |
↳ airlinesDetail |
object[] |
no |
Index-aligned display names for airlines, resolved from the search snapshot’s airline dictionary – the same join the results cards use; the bare code is the fallback on a dictionary miss. Omitted when the leg carries no airline codes. Additive – raw airlines codes are unaffected. |
↳ operatingAirlines |
object[] |
no |
Carriers that fly a segment of this leg they do not market. airlines / airlinesDetail name the MARKETING carriers only, so on a leg sold by one airline every code here is a carrier absent from the ticket; on an interline leg sold by two, one of these may also market a different segment. Read this before telling a traveller who they fly – mileage accrual, lounge access and baggage rules follow the operating carrier. Distinct codes, folded from this leg’s own segments; pair it with segments[] to see which flight each one operates. PRESENT ONLY WHEN A SEGMENT PROVES A CODESHARE: absent means none was proven on this leg, never a promise that the marketing carrier operates every segment. |
↳ transportTypes |
FLIGHT | TRAIN | BUS | OTHER[] |
yes |
Distinct transport modes across this leg’s segments, in segment order. Always present and never empty: an all-flight leg reads [“FLIGHT”], so one read of this field replaces folding segments[] yourself. Anything else means part of this leg is not a plane, and segments[] says which part. |
↳ segments |
object[] |
no |
Per-segment identity (marketing/operating carrier, flight number, times, transport mode); omitted when upstream carries no segments for the leg. Previously reachable only via ?view=detail. |
return |
object |
no |
The return leg; present only on a round trip. |
↳ from |
string |
yes |
Departure airport IATA code. |
↳ to |
string |
yes |
Arrival airport IATA code. |
↳ departsAt |
string |
yes |
Leg departure, ISO 8601 with offset. |
↳ arrivesAt |
string |
yes |
Leg arrival, ISO 8601 with offset. |
↳ durationMinutes |
number |
yes |
Total leg duration in minutes. |
↳ stops |
number |
yes |
Stops on this leg (0 is nonstop). |
↳ airlines |
string[] |
yes |
Raw IATA airline codes on the leg (unchanged). See airlinesDetail for display names. |
↳ airlinesDetail |
object[] |
no |
Index-aligned display names for airlines, resolved from the search snapshot’s airline dictionary – the same join the results cards use; the bare code is the fallback on a dictionary miss. Omitted when the leg carries no airline codes. Additive – raw airlines codes are unaffected. |
↳ operatingAirlines |
object[] |
no |
Carriers that fly a segment of this leg they do not market. airlines / airlinesDetail name the MARKETING carriers only, so on a leg sold by one airline every code here is a carrier absent from the ticket; on an interline leg sold by two, one of these may also market a different segment. Read this before telling a traveller who they fly – mileage accrual, lounge access and baggage rules follow the operating carrier. Distinct codes, folded from this leg’s own segments; pair it with segments[] to see which flight each one operates. PRESENT ONLY WHEN A SEGMENT PROVES A CODESHARE: absent means none was proven on this leg, never a promise that the marketing carrier operates every segment. |
↳ transportTypes |
FLIGHT | TRAIN | BUS | OTHER[] |
yes |
Distinct transport modes across this leg’s segments, in segment order. Always present and never empty: an all-flight leg reads [“FLIGHT”], so one read of this field replaces folding segments[] yourself. Anything else means part of this leg is not a plane, and segments[] says which part. |
↳ segments |
object[] |
no |
Per-segment identity (marketing/operating carrier, flight number, times, transport mode); omitted when upstream carries no segments for the leg. Previously reachable only via ?view=detail. |
fares |
object[] |
yes |
Bookable fares for this trip, cheapest-first. |
↳ kind |
wego | airline | partner |
yes |
Fare source: wego (Book-on-Wego), airline (booked with the carrier) or partner (an OTA). |
↳ fareId |
string |
yes |
Opaque fare id; pass it to the fare-options and booking-link routes. |
↳ providerCode |
string |
yes |
Booking provider code (the OTA or airline selling this fare). |
↳ providerName |
string |
yes |
Booking provider display name. |
↳ price |
object |
yes |
Fare price. total/totalUsd are the whole-party amount, fee-inclusive, and are the authoritative figure for this fare. Search-time fares carry no per-passenger breakdown. |
↳ refundable |
boolean |
yes |
Whether this fare is refundable, as the provider states it. |
↳ hasFareOptions |
boolean |
yes |
Whether GET /v1/flights/fares/{fareId}/options can expand this fare into branded options. |
↳ handoffUrl |
string |
yes |
Deep link that hands the booking off to the provider or wego.com checkout for this fare. |
metadata |
object |
yes |
What this read resolved currency and locale to, and how each was decided. |
↳ currencyCode |
string |
yes |
The currency this read ASKED upstream for, and the one every price on it is meant to be in. Read it beside currencyCodeSource before you show a number: a price computed in the wrong currency renders as a perfectly normal price, with no error and no odd shape to notice, so the response states which one rather than leaving it to be inferred. Where the operation also publishes a top-level currencyCode, that field reports the currency the prices actually came back in; the two agree unless upstream declined to reprice. |
↳ currencyCodeSource |
explicit | default |
yes |
How the API resolved currencyCode: explicit (the caller sent currency – including a value equal to the default) or default (USD, no currency sent). A default here is the one signal that the request never carried the currency you meant. |
↳ locale |
string |
yes |
The language tag this read asked upstream for – what any localized text on it was resolved in (room and board names, airline and airport names, review prose). |
↳ localeSource |
explicit | default |
yes |
How the API resolved locale: explicit (the caller sent locale – including a value equal to the default) or default (en, no locale sent). A default here explains text that came back in a language the caller did not ask for. |