Book a flight via Amadeus GDS — pay $0.09 per request, no API keys needed.
What it does
The `/api/flights/book` endpoint on StableTravel creates a flight booking order through the Amadeus Global Distribution System. It accepts a POST request with a JSON body containing a `flight-order` type, flight offers (obtained from a prior search and price-confirm step), traveler details, contacts, and optional ticketing agreements. The endpoint costs $0.09 per call and settles via USDC on Base, Solana, or Tempo using the x402/MPP micropayment protocol — no API keys, OAuth tokens, or subscriptions required.
This endpoint is the final step in a three-call booking workflow: first search flights via `/api/flights/search` ($0.05), then confirm pricing via `/api/flights/price` ($0.03), then book via `/api/flights/book`. The full workflow costs roughly $0.17 in API fees. The booking endpoint supports one-way, round-trip, and multi-city itineraries across all GDS-connected airlines. Related endpoints let you retrieve orders (`/api/flights/orders`, $0.005), cancel orders (`/api/flights/orders/cancel`, $0.005), view seat maps, and get upsell offers.
StableTravel is part of a broader travel API suite by Merit Systems that also covers hotels, activities, airport transfers, reference data, Google Flights price comparison, and real-time flight tracking via FlightAware AeroAPI. All endpoints follow the same pay-per-request model with no signup.
Capabilities
Use cases
- —AI travel agent autonomously booking flights after search and price confirmation
- —Automating corporate travel booking workflows without managing Amadeus credentials
- —Building a chatbot that can search, compare, and book flights end-to-end
- —Programmatic flight booking for itinerary planning tools
Fit
Best for
- —Autonomous AI agents that need to book flights without pre-provisioned API keys
- —Developers who want GDS booking without Amadeus account setup
- —Low-volume or bursty booking workloads where pay-per-request is cheaper than a subscription
Not for
- —High-volume travel agencies needing bulk/negotiated Amadeus rates
- —Use cases requiring direct airline NDC content not available through GDS
- —Scenarios where you only need price comparison (use Google Flights search instead)
Quick start
# 1. Search flights
npx agentcash fetch "https://stabletravel.dev/api/flights/search?originLocationCode=JFK&destinationLocationCode=LAX&departureDate=2025-07-15&adults=1&max=3"
# 2. Confirm pricing (pass flight offer from step 1)
npx agentcash fetch -X POST -H "Content-Type: application/json" \
-d '{"data":{"type":"flight-offers-pricing","flightOffers":[<offer>]}}' \
"https://stabletravel.dev/api/flights/price"
# 3. Book (pass priced offer + traveler info)
npx agentcash fetch -X POST -H "Content-Type: application/json" \
-d '{"data":{"type":"flight-order","flightOffers":[<priced-offer>],"travelers":[{"id":"1","dateOfBirth":"1990-01-01","name":{"firstName":"JOHN","lastName":"DOE"},"gender":"MALE","contact":{"emailAddress":"john@example.com","phones":[{"number":"1234567890","countryCallingCode":"1"}]},"documents":[{"documentType":"PASSPORT","number":"AB1234567","expiryDate":"2030-01-01","issuanceCountry":"US","nationality":"US","holder":true}]}]}}' \
"https://stabletravel.dev/api/flights/book"Example
Request
{
"data": {
"type": "flight-order",
"travelers": [
{
"id": "1",
"name": {
"lastName": "DOE",
"firstName": "JOHN"
},
"gender": "MALE",
"contact": {
"phones": [
{
"number": "1234567890",
"countryCallingCode": "1"
}
],
"emailAddress": "john@example.com"
},
"documents": [
{
"holder": true,
"number": "AB1234567",
"expiryDate": "2030-01-01",
"nationality": "US",
"documentType": "PASSPORT",
"issuanceCountry": "US"
}
],
"dateOfBirth": "1990-01-01"
}
],
"flightOffers": [
"<priced-flight-offer-object-from-/flights/price>"
]
}
}Response
{
"data": {
"id": "eJzTd9f3NjIJDQYADPcCVQ",
"type": "flight-order",
"travelers": [
"..."
],
"flightOffers": [
"..."
],
"associatedRecords": [
{
"reference": "ABC123",
"creationDate": "2025-07-10",
"originSystemCode": "GDS"
}
]
},
"dictionaries": {}
}Endpoint
Quality
Full OpenAPI 3.1 schema with detailed request body, clear pricing ($0.09/call), extensive guidance docs, and documented multi-step workflow. The endpoint returned 405 on HEAD/GET probes, which is expected since it only accepts POST. No live 402 challenge was captured for this specific endpoint, but the broader API is well-documented and the OpenAPI spec includes x-payment-info confirming the MPP/x402 protocol.
Warnings
- —Probe returned 405 on HEAD and GET — expected for a POST-only endpoint, but no direct 402 challenge was captured for /api/flights/book specifically.
- —The response schema for the booking endpoint uses generic `{}` items rather than fully typed Amadeus order objects, so the exact response structure must be inferred from Amadeus documentation.
- —This endpoint creates real bookings in the Amadeus GDS — test carefully to avoid unintended reservations.
Citations
- —The /api/flights/book endpoint costs $0.09 per call (listed as $0.086400 in OpenAPI).https://stabletravel.dev/openapi.json
- —Payment is via USDC on Base, Solana, or Tempo using x402/MPP protocol with no API keys needed.https://stabletravel.dev
- —The booking workflow is search → price → book.https://stabletravel.dev/docs
- —The request body requires type 'flight-order' with flightOffers array.https://stabletravel.dev/openapi.json
- —StableTravel is operated by Merit Systems.https://stabletravel.dev/docs