Search flights
POST /flights/search needs origin, destination and date (airport codes from GET /airports). Optional: adults (1–9, default 1), children, infants (no more than adults), cabin.
{ "origin": "LOS", "destination": "ABV", "date": "2026-12-20", "adults": 2, "children": 1 }
The answer lists options, each with an offer_id, flight segments, fare details (family, refundable, baggage_kg, seats_left) and price_per_adult.
Partial results#
{ "data": { "options": [ … ], "unavailable_airlines": { "SW": "timeout", "NR": "circuit_open" }, "elapsed_ms": 1840 } }
Searches run against every airline in parallel with a deadline of about 7 seconds. An airline that is slow or down is listed in unavailable_airlines and the rest still come back. Reasons: timeout, error, circuit_open (recent failures, backing off), float_paused, no_route, not_available.
Indicative prices#
price_per_adult is a guide. Price the offer for your exact party before you show a total to a customer:
curl -X POST https://sandbox-api.flyrail.space/v1/offers/OFFER_ID/price -d '{"adults":2,"children":1}' ...
The airline confirms the fare and taxes. If it differs from the search price, price_changed is true. total is what will be held.