Build1 publisher2 min readPublished
Code still calling Amadeus Self-Service is aimed at a test host that no longer resolves
Amadeus disabled its Self-Service API keys on 17 July 2026 and archived its official SDKs the same day. Code failing against test.api.amadeus.com needs a migration, and only the read-only price calls have a drop-in path.
The Engineer · Build desk
Drafted by a language model from the sources cited here and checked against its claim ledger before publication. How we use AISend a correction

What happened
- PhocusWire reported the shutdown plan on 9 February, with new registrations paused first and Amadeus's Enterprise APIs continuing after the cutoff.
- More than 190 GitHub issues and pull requests have mentioned Amadeus Self-Service since February, some removing the Amadeus adapter and others swapping in another API.
- A developer now sells an Apify replacement that takes the old Self-Service parameter names, fetches live Google Flights prices and returns Amadeus-shaped JSON.
- Moving a Python flight search to that replacement leaves the parsing loop as it was, except that response.data becomes response["data"].
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- decision There is no upstream fix to wait for, so teams choose between a read-only shim for price lookups and a booking contract with an airline, a consolidator or Amadeus Enterprise.
- cost At the seller's prices a 10-offer search costs $0.008, so Apify's $5 monthly free credit covers about 625 searches before a polling tracker starts paying.
- constraint Fare alerts tuned to old Amadeus price-metrics thresholds will fire on different numbers after migration and need retuning against the new quartiles.
- exposure A migrated tracker now depends on two outside parties: a single developer's Apify actor and Google Flights as the upstream price source.
The post's author, a developer who sells a replacement, wrote that if a project "suddenly can't reach test.api.amadeus.com or gets auth errors, it's not your code." [6] On 2 October that host, the SDK default, had no DNS A record at Google or Cloudflare's resolvers [5]. A client asking for the address gets nothing back. The request fails at name resolution, before any credential leaves the machine [4]. The auth errors match the disabled keys [3].
Amadeus's developer portal says the self-service portal "has been decommissioned on July 17th" [2]. The amadeus-python, amadeus-node and amadeus-java repositories were archived on GitHub that day, along with the Ruby and .NET SDKs [4]. PhocusWire reported the plan on 9 February [3], 158 days before the cutoff [1]. Many of the projects now filing issues are student work that started an Amadeus integration after registrations had closed [8].
The author's shim gets the interface right, and its helper is short. It calls client.actor("kuezi/flight-offers-api").call() with the endpoint and parameters, then reads the "RESPONSE" record from that run's default key-value store [12]. Every Amadeus-style request is a full actor run [12].
The post's JFK-LAX search took 5 seconds [14]. Its cheapest-date call priced 30 dates in 18 seconds [15], about 0.6 seconds a date [3]. Five seconds is slow for a search box and irrelevant to a nightly fare check. These are the seller's numbers, for one route on one day. They transfer if your routes price about as fast through Google Flights and your code uses only the three calls the shim covers [10]. Round trips take a single trip length such as duration=7. Amadeus-style ranges like 1,15 are not supported [16].
Price metrics moved to a different basis. Amadeus built its quartiles from its booking data [18]. For JFK-LAX on 12 November, the shim's price-metrics call returned a minimum of 167.00 and a third quartile of 204.00 [17]. The flight-offers run for the same route and date, capped at max=5, returned five offers, all at 204.00 [14].
I think the shim is a reasonable trade for a hobby tracker that polls on a schedule and only parses offers. I would not put it behind anything that needs a sub-second answer [14].
What to watch
- Whether Amadeus documents a path for former Self-Service users into the Enterprise APIs that PhocusWire reported will continue.
- Whether the seller publishes how the replacement's price-metrics quartiles are built, so they can be compared with Amadeus's booking-data figures.
- Whether GitHub issues mentioning Amadeus Self-Service keep climbing past 190 as dormant student and hobby projects are rerun.