Booking Links
Get direct booking URLs for a specific flight. There are two ways to request booking links.
Option 1: Using ignav_id
The easiest way. Every itinerary from a fare search includes an ignav_id. Pass it to get booking links for that exact itinerary.
| Parameter | Type | Required | Description |
|---|---|---|---|
| ignav_id | string | Yes | The ignav_id from a previous fare search. |
curl -X POST "https://ignav.com/api/fares/booking-links" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ignav_id":"5e4fcd2f1dc340649eb19f6ee2afb57a"}'Option 2: Manual flight details
If you don't have an ignav_id, you can specify the flight details manually. For exact itinerary matches, prefer ignav_id.
Passenger mix uses the same fields as fare search: adults, children, infants_in_seat, and infants_on_lap.
| Parameter | Type | Required | Description |
|---|---|---|---|
| origin | string | Yes | 3-letter IATA departure airport code. |
| destination | string | Yes | 3-letter IATA arrival airport code. |
| departure_date | string | Yes | Departure date in YYYY-MM-DD format. |
| outbound_carrier_code | string | Yes | 2-character airline code for the outbound flight. |
| outbound_flight_number | string | Yes | Flight number for the outbound flight. |
| return_date | string | No | Return date in YYYY-MM-DD format. |
| inbound_carrier_code | string | No | 2-character airline code for the return flight. Required when return_date is set. |
| inbound_flight_number | string | No | Flight number for the return flight. Required when return_date is set. |
| adults | integer | No | Number of adult passengers. Default: 1. Max total passengers: 9. |
| children | integer | No | Number of child passengers. Default: 0. |
| infants_in_seat | integer | No | Number of infants with their own seat. Default: 0. |
| infants_on_lap | integer | No | Number of lap infants. Cannot exceed adults. Default: 0. |
| market | string | No | 2-letter country code. Default: "US". |
curl -X POST "https://ignav.com/api/fares/booking-links" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"origin":"SFO","destination":"JFK","departure_date":"2026-05-12","outbound_carrier_code":"AA","outbound_flight_number":"100"}'Round-trip booking with return flight
Include return_date, inbound_carrier_code, and inbound_flight_number for round-trip bookings:
curl -X POST "https://ignav.com/api/fares/booking-links" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"origin":"LAX","destination":"NRT","departure_date":"2026-05-12","outbound_carrier_code":"NH","outbound_flight_number":"5","return_date":"2026-05-26","inbound_carrier_code":"NH","inbound_flight_number":"6","adults":2}'Response
{
"itinerary": {
"price": {
"amount": 488,
"currency": "USD"
},
"outbound": {
"carrier": "American Airlines",
"duration_minutes": 330,
"segments": [
{
"marketing_carrier_code": "AA",
"flight_number": "100",
"operating_carrier_name": "American Airlines",
"departure_airport": "SFO",
"departure_time_local": "2026-05-12T08:00:00",
"departure_timezone": "America/Los_Angeles",
"departure_time_utc": "2026-05-12T15:00:00Z",
"arrival_airport": "JFK",
"arrival_time_local": "2026-05-12T16:30:00",
"arrival_timezone": "America/New_York",
"arrival_time_utc": "2026-05-12T20:30:00Z",
"duration_minutes": 330,
"aircraft": "Boeing 777"
}
]
},
"cabin_class": "economy"
},
"booking_options": [
{
"legs": [
"outbound"
],
"links": [
{
"provider_name": "American Airlines",
"provider_type": "airline",
"fare_name": "Main Cabin",
"price": {
"amount": 488,
"currency": "USD"
},
"url": "aa.com/booking/..."
},
{
"provider_name": "Expedia",
"provider_type": "third_party",
"price": {
"amount": 502,
"currency": "USD"
},
"url": "expedia.com/flights/..."
}
]
}
]
}The booking_options array contains one or more purchase options. Each option has a legs array and a links array. Each link includes a provider_name, provider_type, may include fare_name and per-offer price, and ends with a url.
One-way results usually return a single option with legs: ["outbound"]. Round trips return either one option with both legs, or separate outbound and inbound options when only leg-level booking is available.
Ready to get started?
Create a free account to get your API key, or try the playground — no signup required.