Search award flight availability via seats.aero API. Triggers on: award flights, mileage bookings, points redemptions, finding business/first class availability, route availability searches.
Search award flight availability across 24 mileage programs using the seats.aero partner API.
Before searching, you need a seats.aero API key:
Partner-Authorization: Bearer {api_key}/search)Search cached availability across all mileage programs for a specific origin-destination pair.
/availabilityExplore all availability from a single mileage program, optionally filtered by region.
/routes)Get all routes monitored for a specific mileage program.
/trips/{id})Get detailed flight segments and booking links for a specific availability.
| Item | Value |
|---|---|
| Base URL | https://seats.aero/partnerapi/ |
| Auth Header | Partner-Authorization: Bearer {key} |
| Date Format | YYYY-MM-DD |
Y = EconomyW = Premium EconomyJ = BusinessF = FirstNorth America, South America, Europe, Africa, Middle East, Asia, Oceania
aeroplan, alaska, american, aeromexico, azul, copa, delta, emirates,
ethiopian, etihad, finnair, flyingblue, gol, jetblue, lufthansa,
qantas, qatar, sas, saudia, singapore, turkish, united,
virginatlantic, virginaustralia
User: "Find business class SFO to Tokyo next month"
/search endpoint with:
origin_airport=SFOdestination_airport=NRT,HND (both Tokyo airports)cabin=Jstart_date and end_date for the date rangeUser: "What United awards are available from Europe?"
/availability endpoint with:
source=unitedorigin_region=EuropeUser: "Show me details for that flight"
/trips/{id} with the availability ID from previous searchUser: "What routes does Aeroplan monitor?"
/routes endpoint with source=aeroplan| Parameter | Required | Description |
|---|---|---|
| origin_airport | Yes | 3-letter IATA code |
| destination_airport | Yes | 3-letter IATA code(s), comma-separated |
| cabin | No | Y, W, J, or F (comma-separated for multiple) |
| start_date | No | YYYY-MM-DD |
| end_date | No | YYYY-MM-DD |
| sources | No | Program name(s), comma-separated |
| only_direct | No | true/false |
| take | No | Results per page (default 100) |
| cursor | No | Pagination cursor |
| Parameter | Required | Description |
|---|---|---|
| source | Yes | Single program name |
| cabin | No | Single cabin code |
| origin_region | No | Filter by origin region |
| destination_region | No | Filter by destination region |
| start_date | No | YYYY-MM-DD |
| end_date | No | YYYY-MM-DD |
| take | No | Results per page |
For complex or repeated searches, use the Python helper:
from scripts.seats_api import search_availability, format_results
results = search_availability(
api_key="your_key",
origin="SFO",
destination="NRT",
start_date="2024-03-01",
end_date="2024-03-31",
cabins="J,F"
)
print(format_results(results["data"], cabin="J"))
See scripts/seats_api.py for full API client implementation.
ID - Use for /trips/{id} lookupRoute - Origin-Destination pairDate - Flight dateYAvailable, WAvailable, JAvailable, FAvailable - Boolean availabilityYMileageCost, etc. - Points required per cabinYDirects, etc. - Number of direct flights availableSource - Program nameComputedLastSeen - Data freshness timestamponly_direct=true to filter connectionscursor from response for more resultsComputedLastSeen - older data may be staleFor complete API specification including all fields and response schemas, see references/api-spec.md.