Every flight has exactly one operating carrier: the airline whose aircraft and crew fly the leg, and whose operations centre decides when it leaves. It can have any number of marketing carriers: airlines that sell seats on that same aircraft under flight numbers of their own, through a codeshare agreement.
A passenger who buys from Lufthansa may hold LH8320. The aircraft at the gate is United's, the board says UA906, and the crew announce a United flight. Both numbers are correct. They name one aircraft.
Where each number shows up
| Place | Number it usually shows |
|---|---|
| Booking confirmation, e-ticket, itinerary email | Marketing, often with "operated by" in small print |
| Boarding pass | Marketing, sometimes both |
| Airport departure and arrival boards | Operating, with the others rotating through |
| Airline status feeds | Operating first, codeshares as a list |
| Baggage belt displays | Operating |
Why it matters to an integration
Anything built from booking emails starts with marketing numbers. Anything a passenger reads at the airport is the operating number. Three problems follow:
- Matching. A user who tells support "my flight is UA906" and an itinerary that says
LH8320are describing the same leg. Without the link, the app looks wrong. - Counting. Two travellers on one aircraft, one booked through each airline, look like two flights. A system that watches both pays twice and sends two sets of alerts that say the same thing.
- Who decides. Delays, gates and cancellations are the operating carrier's to announce. The marketing carrier's own channels often lag.
In FlightByte
Look up or subscribe with whichever number the passenger holds; either resolves to the same leg. The snapshot tells you about the rest:
| Field | Meaning |
|---|---|
carrier | The airline of the number you asked with. |
operatedBy | The operating airline, present only when it is not carrier. |
codeshares[] | Every other number for this leg, each with carrier, name and flightNumber. |
To avoid watching one aircraft twice, keep the set of numbers a watched leg answers to, your own plus everything in codeshares[], and check a new booking against that set before subscribing. From a booking email to a watched flight walks through it. When the list itself changes, which is rare and usually days ahead, the codeshares.changed event says so.