Flight search API without integrating individual providers
Two flight-search providers, one endpoint, pay per call — no Sabre account, no Aviasales account, no per-provider key.
Live tools
| Tool | Price | What it returns |
|---|---|---|
sabre.search_flights | $0.01 | Real-time flight offers with prices between two airports (Sabre GDS) |
aviasales.search_flights | $0.005 | Flights between two airports |
aviasales.cheap_flights | $0.001 | Cheapest flights from a single origin, no fixed destination |
sabre.destination_finder | $0.005 | Cheapest flight destinations from an origin airport, within a max fare |
sabre.airline_lookup | $0.002 | Airline details by IATA or ICAO code |
Prices and schemas above are a snapshot; the live, always-current entries are at /api/v1/tools (filter with ?category=travel) or via GET /api/v1/discover?intent=search+flights.
Why two providers instead of one
Sabre is a GDS (global distribution system) with airline-direct fare data; Aviasales aggregates OTA pricing. They don't always agree on the cheapest fare for the same route — querying both from one endpoint costs a few cents in call fees instead of two separate signups, two separate credential sets, and two separate response shapes to normalize.
How to call it
curl -X POST https://apibase.pro/api/v1/tools/sabre.search_flights/call \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{"params": {"origin": "JFK", "destination": "LHR", "departure_date": "2026-11-01"}}'
No API key yet? /connect covers all three ways to get one (or to skip getting one and pay directly from a wallet). A call without a payment header on a priced tool returns an HTTP 402 challenge with the exact price to sign, on either x402 (Base) or MPP (Tempo).
Related
- Why APIbase — the general discover/evaluate/pay/execute loop
- Full catalog
- Pricing