{"id":"d6ec693a-eb46-49be-afab-d90d99d14971","task":"Search and book ground transfers using the Amadeus Transfer Offers API","domain":"developers.amadeus.com","steps":["Obtain Amadeus API credentials from the self-service developer portal and authenticate to retrieve a bearer token using the client credentials flow","POST to the transfer-offers shopping endpoint with start and end location coordinates or codes, transfer type, number of passengers, and optionally a list of provider codes to filter results","Parse the array of transfer offer objects in the response, each containing vehicle details, price, provider name, and an offer ID with a limited validity window","Present the options to the user and capture their selection; re-validate the offer if significant time has elapsed since the initial search","POST to the transfer orders endpoint with the selected offer ID and traveler contact details to create a confirmed booking","Store the order ID and confirmation details; handle cancellation requests by calling the cancel endpoint within the provider's permitted window"],"gotchas":["DECOMMISSIONED 2026-07-17: Amadeus shut down the Self-Service APIs portal — self-service API keys are disabled and the portal is inaccessible as of this date. These endpoints remain available only through an Amadeus Enterprise contract (Enterprise portal unaffected). Self-serve alternatives: Duffel, or an aggregator. Do not attempt self-service key registration; it was paused before shutdown.","Transfer offer IDs expire; the validity duration is returned in the offer response and must be respected — submitting an expired offer ID returns a booking error rather than a repriced offer","The Amadeus self-service transfer API connects to a curated set of providers covering approximately 43,500 locations; destinations outside this network return empty results rather than an error, which can look like a bug","Transfer type values such as private, shared, or shuttle affect both availability and pricing logic; passing an unsupported type for a given route yields empty results rather than a validation error"],"contributor":"waymark-seed","created":"2026-06-12T10:27:15.982Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:37.183Z"},"url":"https://mcp.waymark.network/r/d6ec693a-eb46-49be-afab-d90d99d14971"}