United Airlines API for flight status
United does not publish a self-serve API for flight status. What it offers developers is NDC: booking and servicing for travel agencies and corporate travel, reached through a GDS, an aggregator or a direct connection. If you need to know whether UA1 leaves on time, which gate it uses or when it lands, that comes from a flight status provider. FlightByte answers for any UA flight number on any date in its live window, and pushes every change to you.
In thirty seconds
/v1/flights/UA/1/2026-10-25, any UA number in the live window.operatedBy names the airline flying it.United’s developer offer as described on united.business, checked October 25, 2026. If something here is out of date, tell us and we will fix it.
What United offers developers
A booking channel for agencies and corporate travel, not a status feed.
United’s developer-facing programme is New Distribution Capability: United fares and bookings, and the changes to them, for travel agencies and corporate travel programmes. A company connects through its travel agency, a GDS or an approved aggregator, or asks United for a direct connection, which United itself describes as the longer route that needs real IT resources. Corporate programmes can also receive booking changes through their duty-of-care providers. None of it is a flight status API you can sign up for.
Search for a United API and you will also find endpoints reverse-engineered from United’s mobile app, written up on GitHub and Reddit. They work until they don’t: nothing documents them, any app release can change them, and nothing licenses them for your product.
Looking up a United flight
Carrier, number and the local departure date. This is UA1 as FlightByte returned it on October 25, 2026, trimmed.
GET https://api.flightbyte.dev/v1/flights/UA/1/2026-10-25 x-api-key: $FLIGHTBYTE_KEY
{
"flightKey": "UA1:2026-10-25@SFO-SIN",
"carrier": { "iata": "UA", "icao": "UAL", "name": "United Airlines" },
"departure": {
"airport": { "iata": "SFO", "timezone": "America/Los_Angeles" },
"terminal": "INTL",
"gate": "G1",
"times": {
"scheduledGate": {
"utc": "2026-10-26T05:40:00.000Z",
"local": "2026-10-25T22:40:00.000"
}
},
"delayMinutes": 0
},
"arrival": {
"airport": { "iata": "SIN", "timezone": "Asia/Singapore" },
"terminal": "2",
"times": {
"scheduledGate": {
"utc": "2026-10-26T23:00:00.000Z",
"local": "2026-10-27T07:00:00.000"
}
}
},
"status": {
"label": "Scheduled",
"phase": "scheduled",
"delayed": false
},
"equipment": {
"tailNumber": "N61101",
"iata": "789",
"name": "Boeing 787-9"
},
"timeline": [
{
"title": "Time Adjustment",
"source": "Airline",
"events": [
"Departure Gate changed to G1",
"Tail Number changed to N61101"
]
}
]
}The date is where the flight leaves
UA1 leaves San Francisco at 22:40 on the 25th and reaches Singapore at 07:00 on the 27th, local time. It is still the flight of the 25th: the date is always the local departure date at the origin.
Both clocks
Every time comes in UTC and in the airport's local time, with the timezone. A driver in Singapore and a server in Virginia read the same field.
United's own record
The timeline is the airline's history of changes for this leg, newest first: the gate assignment, the tail swap, each new estimate.
United Express and codeshares
A UA number is not always a United aircraft. Look up the number the passenger holds; the snapshot says who flies it.
United Express flights are sold as UA and flown by regional airlines: SkyWest, Republic, Mesa, GoJet and CommuteAir among them. In the other direction, UA numbers ride on partner aircraft across Star Alliance and United’s joint ventures. On October 25, 2026, UA8841 was Lufthansa’s LH400 from Frankfurt to New York:
GET https://api.flightbyte.dev/v1/flights/UA/8841/2026-10-25 x-api-key: $FLIGHTBYTE_KEY
{
"flightKey": "UA8841:2026-10-25@FRA-JFK",
"providerFlightId": "1416161131",
"carrier": { "iata": "UA", "name": "United Airlines" },
"operatedBy": "Operated by Lufthansa 400",
"codeshares": [
{ "carrier": "ET", "flightNumber": "1610" },
{ "carrier": "NZ", "flightNumber": "4226" },
{ "carrier": "SN", "flightNumber": "7230" },
{ "carrier": "TG", "flightNumber": "7722" }
],
"departure": {
"airport": { "iata": "FRA" },
"terminal": "1",
"gate": "Z19"
},
"equipment": { "tailNumber": "D-AIXA", "name": "Airbus A350-900" }
}Looking up LH400 on the same date returns the same providerFlightId and lists UA 8841 among its codeshares. Two numbers, one aircraft: keep one watch for both. The guide From a booking email to a watched flight shows the alias table that stops two passengers on one aircraft becoming two subscriptions, and Codeshare flight explains the operating and marketing carrier.
Being told instead of asking
Subscribe once, up to seven days ahead, and the changes come to you as signed webhooks.
POST https://api.flightbyte.dev/v1/subscriptions
x-api-key: $FLIGHTBYTE_KEY
{
"carrier": "UA",
"flightNumber": "1",
"date": "2026-10-25",
"origin": "SFO",
"webhookUrl": "https://yourapp.com/hooks/flights",
"delayThresholdMinutes": 15,
"events": ["departure.gate.changed", "delay.increased", "delay.decreased",
"flight.departed", "flight.arrived", "arrival.baggage.changed",
"flight.cancelled", "flight.diverted"],
"metadata": { "bookingId": "BK-1042" }
}| Event | When it fires |
|---|---|
departure.gate.changed | The gate moved. At a hub the first assignment is often not the last. |
delay.increased | The gate delay grew past your threshold; delay.decreased when it recovers. |
flight.departed | Pushed back from the gate. |
flight.arrived | At the arrival gate; status.phase says landed before that. |
arrival.baggage.changed | The belt for checked bags, usually set after the aircraft reaches the gate. |
flight.cancelled | Cancelled; flight.reinstated if it comes back. |
flight.diverted | Landing somewhere other than planned. |
origin picks the leg when a number flies more than one that day. The quickstart has a receiver in Node and Python; Webhooks lists all 23 change types.
Connections through United's hubs
Where a late first leg becomes a problem on the second.
Most United itineraries pass through a hub: Chicago O’Hare, Denver, Houston Intercontinental, Newark, San Francisco, Washington Dulles or Los Angeles, and Guam in the Pacific. A connection is not a property of either flight; it lives in the gap between them. Watch both legs and compute the gap yourself: Missed connection alerts shows how, with a threshold per airport and the rules that keep it quiet until it matters.
What it costs
You pay per flight you watch. Lookups and deliveries are included.
- Free: 3 watched flights a month
- $0
- Hobby: 100 watched flights
- $9 / month
- Starter: 500 watched flights
- $19 / month
Every feature is on every plan, the free one included, and commercial use is allowed. Larger plans are on the pricing page.
Questions people ask about a United API
Does United Airlines have a public API?
How do I get United flight status in my app?
GET /v1/flights/UA/1/2026-10-25 with an x-api-key header, for any UA number in the live window: a few days back to a couple of days ahead. To be told about changes instead of asking, subscribe to the flight up to seven days ahead.Can I track United Express flights?
operatedBy names the airline flying the leg when it is not United, and the times, gates and events work the same as on mainline flights.Why does a UA flight number show a Lufthansa aircraft?
Can I get notified when a United flight lands?
flight.arrived and arrival.baggage.changed. FlightByte sends a signed POST when each one happens, retries if your endpoint is down, and ends the subscription itself once the flight is in.Can I use the endpoints from the United app instead?
Watch a United flight tonight.
Three flights a month free, a hundred for nine dollars. Every gate, delay and landing, pushed to you and signed.
A free key in a minute, no card. Paid plans are paid by card in the dashboard.