Get upsell offers (cabin upgrades, branded fares) for an Amadeus flight offer at $0.03/request via MPP micropayment.
What it does
The `/api/flights/upsell` endpoint on StableTravel returns upsell offers for a given flight offer obtained from a prior search. It wraps the Amadeus Flight Offers Upselling API behind a pay-per-request micropayment wall — no API keys, no subscriptions. You POST a JSON body containing `{ "data": { "type": "flight-offers-upselling", "flightOffers": [ <flight-offer-object> ] } }` and receive back an array of alternative offers with higher cabin classes, branded fare bundles, or additional services.
This endpoint is part of the broader StableTravel platform, which exposes 60+ travel endpoints covering Amadeus GDS flights (search, price, book, seatmap, availability, status), hotels, activities, airport transfers, reference data, Google Flights price comparison, and FlightAware real-time/historical flight tracking. All endpoints are paid per-request via the MPP (method: tempo) or x402 protocol using USDC on Base, Solana, or Tempo. The upsell endpoint costs $0.03 per call (listed as 0.032400 USD in the OpenAPI spec). No OAuth, no API keys — the micropayment itself serves as authentication.
Typical workflow: search flights via `/api/flights/search`, take a flight offer from the results, then POST it to `/api/flights/upsell` to discover premium alternatives. The returned offers can then be confirmed via `/api/flights/price` and booked via `/api/flights/book`.
Capabilities
Use cases
- —An AI travel agent searches economy flights then automatically fetches upsell offers to present business/first class alternatives to the user
- —A booking bot compares base fare vs. branded fare bundles (extra legroom, baggage, lounge access) before confirming a purchase
- —An itinerary optimizer checks whether upgrading a specific leg is cost-effective relative to the traveler's budget
- —A corporate travel tool surfaces premium options that fall within policy limits after initial search
Fit
Best for
- —AI agents that need programmatic access to flight cabin upgrades and branded fares
- —Developers building travel booking flows who want Amadeus GDS data without managing API keys
- —Pay-as-you-go use cases where subscription pricing is overkill
Not for
- —Direct consumer-facing flight search (Google Flights endpoint is cheaper for price comparison)
- —Use cases requiring free/unlimited API calls — every request costs $0.03
- —Non-flight travel data (use the hotels, activities, or transfers endpoints instead)
Quick start
# 1. Search flights first, then upsell a result
npx agentcash fetch -X POST -H "Content-Type: application/json" \
-d '{"data":{"type":"flight-offers-upselling","flightOffers":[<flight-offer-from-search>]}}' \
"https://stabletravel.dev/api/flights/upsell"Example
Request
{
"data": {
"type": "flight-offers-upselling",
"flightOffers": [
{
"id": "1",
"type": "flight-offer",
"price": {
"total": "250.00",
"currency": "USD"
},
"source": "GDS",
"itineraries": [
{
"segments": [
{
"number": "1",
"arrival": {
"at": "2025-07-15T11:30:00",
"iataCode": "LAX"
},
"aircraft": {
"code": "77W"
},
"duration": "PT5H30M",
"departure": {
"at": "2025-07-15T08:00:00",
"iataCode": "JFK"
},
"carrierCode": "AA"
}
]
}
],
"travelerPricings": [
{
"fareOption": "STANDARD",
"travelerId": "1",
"travelerType": "ADULT"
}
]
}
]
}
}Response
{
"data": [
{
"id": "2",
"type": "flight-offer",
"price": {
"total": "450.00",
"currency": "USD"
},
"source": "GDS",
"itineraries": [
{
"segments": [
{
"number": "1",
"arrival": {
"at": "2025-07-15T11:30:00",
"iataCode": "LAX"
},
"departure": {
"at": "2025-07-15T08:00:00",
"iataCode": "JFK"
},
"carrierCode": "AA"
}
]
}
],
"travelerPricings": [
{
"fareOption": "STANDARD",
"travelerId": "1",
"travelerType": "ADULT",
"fareDetailsBySegment": [
{
"cabin": "BUSINESS",
"brandedFare": "BUSFLEX"
}
]
}
]
}
],
"dictionaries": {}
}Endpoint
Quality
Full OpenAPI 3.1 schema with request/response types, clear pricing ($0.032400 USD), documented request body format, and comprehensive guidance text. The probe did not capture a live 402 challenge on this POST-only endpoint (HEAD/GET returned 405, which is expected), so liveness is inferred from the broader platform being live (root returned 200) and the OpenAPI spec being served.
Warnings
- —Probe returned 405 on HEAD and GET because this is a POST-only endpoint; liveness inferred from root 200 and OpenAPI availability, not from a direct 402 challenge
- —Example request/response JSON is illustrative based on Amadeus upselling conventions; actual GDS response structure may vary
- —The flight-offer object passed to upsell must come from a prior /api/flights/search call — it cannot be constructed from scratch
Citations
- —Upsell endpoint costs $0.03 per request (0.032400 USD in OpenAPI)https://stabletravel.dev/openapi.json
- —Request body must use type: flight-offers-upsellinghttps://stabletravel.dev/openapi.json
- —Payment via USDC on Base, Solana, or Tempo (x402/MPP protocol) serves as authenticationhttps://stabletravel.dev
- —Typical workflow: search → price → book, with upsell as an optional step after searchhttps://stabletravel.dev/openapi.json
- —StableTravel is powered by Amadeus and FlightAwarehttps://stabletravel.dev