GET /v1/flights/schedules
What actually flies a route – times, duration, aircraft, and the weekdays each flight runs – with no prices and no search to settle. Nonstop flights only. Airport codes resolve to their parent city (LHR to LON), and metadata echoes what each side resolved to.
Operation ID: getFlightSchedules
Parameters
| Name | In | Type | Required | Constraints | Description |
|---|---|---|---|---|---|
from |
query | string | yes | pattern ^[A-Z]{3}$ |
Departure city or airport code; an airport resolves to its city. |
to |
query | string | yes | pattern ^[A-Z]{3}$ |
Arrival city or airport code; an airport resolves to its city. |
airline |
query | string | no | pattern ^[A-Z0-9]{2}$ |
Filter to one marketing carrier (e.g. SQ). |
siteCode |
query | string | no | pattern ^[A-Z]{2}$ |
Wego market as a 2-letter code. Omitted, the API defaults to US and says so in metadata.siteCodeSource. |
locale |
query | string | no | length 1..35; default "en" |
Response language tag. |
page |
query | integer | no | 1..20; default 1 |
Page number, 1-based (max 20). Defaults to 1. A timetable is a bounded list the API reads whole, so paging is rarely needed and the cap is low by design. |
pageSize |
query | integer | no | 1..200; default 200 |
Rows per page (1-200). Defaults to 200, which is also the maximum, so most routes return whole on one page. A busier route exceeds it and says so with hasMore. pageSize exists to narrow a long answer, never to force paging. |
Responses
| Status | Description |
|---|---|
200 |
Scheduled flights, plus the resolved route and the market used. |
400 |
Malformed code, a code that resolves to no city, or a page or pageSize outside its range – an out-of-range paging value is rejected, never clamped. |
401 |
Missing or invalid bearer token. |
429 |
Rate limit exceeded; retry after the Retry-After seconds. |
502 |
The upstream schedules service returned an invalid response. |
503 |
The schedules service is temporarily unavailable (upstream_unavailable) or rate-limited upstream (upstream_rate_limited); retry after the Retry-After seconds. |
200 body
| Field | Type | Always present | Description |
|---|---|---|---|
results |
object[] | yes | The scheduled flights for this route, a timetable with no prices. |
↳ airlineCode |
string | yes | Marketing carrier code – what airline filters on. |
↳ departureAirportCode |
string | yes | Departure airport IATA code. |
↳ arrivalAirportCode |
string | yes | Arrival airport IATA code. |
↳ departureTime |
string | yes | Local HH:MM at the departure airport. |
↳ arrivalTime |
string | yes | Local HH:MM at the arrival airport. |
↳ durationMinutes |
number | yes | Total scheduled duration in minutes. |
↳ stopsCount |
number | yes | Stops on the route, as the timetable reports them; 0 is nonstop. This read covers nonstop scheduled flights, so a connecting itinerary is absent rather than listed with a stop. |
↳ arrivalDayOffset |
number | yes | Days the arrival falls after departure; 1 means next-day. |
↳ segments |
object[] | yes | The individual flights that make up this schedule. |
↳ operatingPeriods |
object[] | yes | When this flight runs – one entry per published operating period. Empty when the upstream states no recurrence, which means unknown, never daily. |
↳ flightNumber |
string | no | The marketed designator, present on a single-segment schedule. |
↳ aircraftCode |
string | no | Aircraft type code, when reported. |
metadata |
object | yes | The page returned, how much the upstream held, the resolved route endpoints, and the market echoed. |
↳ page |
integer | yes | The 1-based page returned. |
↳ pageSize |
integer | yes | Rows requested per page. |
↳ resultCount |
integer | yes | Scheduled flights on this page (always <= pageSize). |
↳ totalCandidates |
integer | yes | Scheduled flights the upstream held for this route, pre-pagination – the ceiling paging can reach. 0 means the upstream publishes no timetable for this route, NOT that nothing flies it. |
↳ hasMore |
boolean | yes | True when a further page exists. |
↳ coverage |
complete | truncated |
yes | complete when the upstream returned its whole set for this route, truncated when it filled the API’s upstream ceiling and may hold more. While truncated, read totalCandidates as a floor rather than a total. |
↳ from |
object | yes | Departure route endpoint: what the caller sent and the city code it resolved to. |
↳ to |
object | yes | Arrival route endpoint: what the caller sent and the city code it resolved to. |
↳ siteCode |
string | yes | The market this request resolved to, as a 2-letter code. Echoed for consistency with the priced reads – a published timetable does not vary by market, so it does not change these rows. |
↳ siteCodeSource |
explicit | default |
yes | explicit when the caller supplied siteCode, default when the API applied the US floor. |
Example
curl -s -H "Authorization: Bearer $TOKEN" \
"https://api.wego.com/v1/flights/schedules?from=DXB&to=LHR"