Compare · Checked October 25, 2026

Moving off Amadeus Flight Status

On July 17, 2026 Amadeus decommissioned the Self-Service section of Amadeus for Developers. Self-service API keys stopped working, and only the Enterprise APIs remain, through an Amadeus contract. If your app called On-Demand Flight Status with a self-service key, it has been getting errors since. FlightByte takes the same three inputs, carrier, flight number and local departure date, and returns the same flight with gates, delays and the baggage belt. It also pushes the changes, which Amadeus never did.

What happened, and what still works

From Amadeus’s letter to self-service users as reported by PhocusWire, and the notice now on developers.amadeus.com.

Amadeus tells self-service users the portal will close
February 2026
Registration for new users paused
March 2026
Self-Service portal decommissioned, keys disabled
July 17, 2026
Enterprise portal and Enterprise APIs
Still available, by contract

Amadeus gave no reason. Enterprise customers who also used self-service APIs were told to move their applications through their account managers. Everyone else needs another provider for each API they used: for flight status, that is what this page is about.

In thirty seconds

Amadeus Self-Service
FlightByte
Availability
Closed July 17, 2026
Self-service keys disabled; Enterprise by contract only.
Self-serve
Sign up, take a key from the dashboard, 3 flights a month free.
Authentication
OAuth2 token
Client ID and secret exchanged for a short-lived bearer token.
One header
x-api-key, no token to refresh.
Lookup inputs
Carrier, number, date
scheduledDepartureDate is local to the departure airport.
Carrier, number, date
The same three, and the same date rule.
Push
Pull only
Ask again to find out whether anything changed.
Signed webhooks
23 typed change events, retried and logged.
Delays
ISO 8601 durations
Attached to a timing, such as PT25M.
Minutes and events
delayMinutes, delay.increased and delay.decreased.
Gate and terminal
In the response
mainGate and a terminal code per flight point.
With change events
departure.gate.changed, arrival.terminal.changed and the rest.
Baggage belt
Not in the response
No baggage claim field.
arrival.baggage
And arrival.baggage.changed when it is set.
Status
No status field
Departed, landed or cancelled had to be inferred from the timings.
status.phase
Ten values from scheduled to arrived, plus delayed, cancelled and diverted flags.
Delay prediction
A separate API, now closed
Flight Delay Prediction returned a probability for four delay bands.
Not offered
Only what the airline publishes.
Search and booking
Enterprise only now
Flight offers and booking left Self-Service with everything else.
Not offered
Flight status only.

Amadeus figures from its archived OpenAPI specification and the notice on developers.amadeus.com, checked October 25, 2026. If something here is out of date, tell us and we will fix it.

The two calls, side by side

On the left, what a self-service app sent until July 17; on the right, the call that replaces it.

# Amadeus Self-Service (until July 17, 2026)
POST https://api.amadeus.com/v1/security/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&client_id=$AMADEUS_ID&client_secret=$AMADEUS_SECRET

GET https://api.amadeus.com/v2/schedule/flights
  ?carrierCode=UA
  &flightNumber=1
  &scheduledDepartureDate=2026-10-25
Authorization: Bearer $ACCESS_TOKEN
# FlightByte
GET https://api.flightbyte.dev/v1/flights/UA/1/2026-10-25
x-api-key: $FLIGHTBYTE_KEY

# or, the same lookup as a query
GET https://api.flightbyte.dev/v1/flights/search
  ?carrier=UA&flightNumber=1&date=2026-10-25
x-api-key: $FLIGHTBYTE_KEY

Field mapping

Where an On-Demand Flight Status response and a FlightByte snapshot meet, and what only one of them has.

Field mapping from Amadeus On-Demand Flight Status to FlightByte
AmadeusFlightByteNote
carrierCode, flightNumbercarrier, flightNumberPath segments here, query parameters there.
scheduledDepartureDatedateThe same rule: the local departure date at the origin.
flightPoints[].iataCodedeparture.airport.iata, arrival.airport.iataPlus icao, name, city, timezone and a country.
timings with qualifier STD, STAtimes.scheduledGateIn UTC and local time; estimated and actual times sit beside it.
timings[].delays[].durationdelayMinutesPT25M becomes 25, on each side of the flight.
departure.gate.mainGatedeparture.gateAnd arrival.gate.
departure.terminal.codedeparture.terminalAnd arrival.terminal.
segments[].partnership.operatingFlightoperatedBy, codesharesEvery other number for the same leg is listed too.
legs[].aircraftEquipment.aircraftTypeequipment.iata, equipment.namePlus equipment.tailNumber.
segments, legsalternates, originA number with several legs lists each one; origin picks yours.
—arrival.baggageThe baggage belt.
—status.phaseScheduled, boarding, departed, en route, landed, arrived, cancelled, diverted.
—timelineThe airline's own history of changes for the leg.

Replace the polling loop

Most status integrations on Amadeus asked the same question on a timer. Subscribe once instead.

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",
  "events": ["departure.gate.changed", "delay.increased",
             "flight.departed", "flight.arrived",
             "flight.cancelled"],
  "metadata": { "bookingId": "BK-1042" }
}

FlightByte polls the flight on its own schedule, every few hours a week out and every three minutes at the gate, compares each answer with the last, and sends only the changes you asked for. Each delivery is signed with HMAC-SHA256, retried with backoff if your endpoint is down, and logged.

The subscription ends itself once the flight is in and the window for the baggage belt has passed. What the timer was costing you is worked out in Why polling a flight API costs more than you think.

Migration checklist

From a self-service status call to FlightByte, in the order that keeps the app working.

  1. Take a key. The free plan has every feature, and the quickstart walks through the first call.
  2. Delete the token code. No client ID, secret or refresh; send x-api-key on every request.
  3. Swap the endpoint. /v2/schedule/flights becomes /v1/flights/{carrier}/{flightNumber}/{date} with the same values.
  4. Map the fields. Use the table above; keep bestTimeUtc for the one time a screen shows.
  5. Turn the timer into a subscription. One per flight you care about, up to seven days ahead.
  6. Verify the receiver. Send a test event and check the signature as in Verifying webhook signatures.

Questions people ask after the shutdown

Is the Amadeus Self-Service API shut down?
Yes. Amadeus decommissioned the Self-Service section of Amadeus for Developers on July 17, 2026. Self-service API keys were disabled that day, and developers.amadeus.com now serves the Enterprise portal only.
Can I still get an Amadeus API key?
Only as an Amadeus Enterprise customer. The Enterprise portal and its APIs remain available, through a contract and an account manager; there is no self-serve sign-up any more.
What replaces On-Demand Flight Status?
Any flight status API that takes a carrier, a flight number and a local departure date. FlightByte takes exactly those three, GET /v1/flights/UA/1/2026-10-25, with an x-api-key header instead of an OAuth token, and adds gates, the baggage belt, a phase to branch on and webhooks when the flight changes.
What does FlightByte cost compared with Amadeus Self-Service?
Amadeus Self-Service charged per call above a free monthly quota, and it no longer exists to compare. FlightByte charges per watched flight: 3 a month free, then $9 for 100, with lookups and webhook deliveries included.
Does FlightByte predict delays like Amadeus did?
No. Amadeus's Flight Delay Prediction API returned a probability for four delay bands; it closed with the rest of Self-Service. FlightByte reports what the airline publishes, estimated times and the delay that follows from them, and pushes it as soon as it changes.
I also used Amadeus for flight search and booking. Does FlightByte do that?
No. FlightByte does flight status only. For search and booking, look at Amadeus Enterprise or a booking API such as Duffel, and keep FlightByte for what happens to the flight after it is booked.
Get started

Your status calls, working again tonight.

Three flights a month free, a hundred for nine dollars. The same three inputs, and the changes pushed to you.

A free key in a minute, no card. Paid plans are paid by card in the dashboard.