One-Way Flight Search API
Search for one-way flights between two airports or metro areas on a specific date.
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
| origin | string | Yes | 3-letter IATA airport or metro code for departure (e.g. SFO or LON). |
| destination | string | Yes | 3-letter IATA airport or metro code for arrival (e.g. JFK or PAR). |
| departure_date | string | Yes | Departure date in YYYY-MM-DD format. |
| adults | integer | No | Number of passengers age 12 or older. Default: 1. Max total passengers: 9. |
| children | integer | No | Number of child passengers ages 2–11. 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 number of adults. Default: 0. |
| cabin_class | string | No | One of "economy", "premium_economy", "business", or "first". Default: "economy". Returned itineraries stay in this requested cabin class. |
| max_stops | integer | No | Maximum number of stops (0, 1, or 2). Omit this field to allow any number of stops. |
| min_carry_on_bags | integer | No | Minimum carry-on bags included. |
| min_checked_bags | integer | No | Minimum checked bags included. |
| max_price | integer | No | Strict maximum price in the market's currency. |
| departure_time_range | object | No | Filter by departure/arrival hour. Fields: earliest_hour, latest_hour, arrival_earliest_hour, arrival_latest_hour (0–23, airport-local time). |
| airlines_include | string[] | No | Only include flights from these 2-character airline codes. A code cannot also appear in airlines_exclude. |
| airlines_exclude | string[] | No | Exclude flights from these 2-character airline codes. A code cannot also appear in airlines_include. |
| allow_self_transfer | boolean | No | Allow itineraries identified as requiring separate tickets (self-transfer). Setting false is a best-effort filter; same-carrier separate tickets may not be identifiable. Default: true. |
| market | string | No | 2-letter country code for pricing locale (e.g. "US", "GB"). Default: "US". |
Send an official metro code directly, for example PAR to LON. The top-level response preserves those requested codes, while each segment identifies the airports used. You do not need to call airport search first.
For departure_time_range, hours are interpreted in local airport time (not UTC): departure fields use the departure airport's local clock, and arrival fields use the arrival airport's local clock.
Example
curl -X POST "https://ignav.com/api/fares/one-way" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"origin":"SFO","destination":"JFK","departure_date":"2026-11-09"}'{
"origin": "SFO",
"destination": "JFK",
"departure_date": "2026-11-09",
"observed_at": "2026-01-01T12:00:00Z",
"cache_hit": false,
"itineraries": [
{
"price": {
"amount": 299,
"currency": "USD",
"status": "verified"
},
"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-11-09T08:00:00",
"departure_timezone": "America/Los_Angeles",
"departure_time_utc": "2026-11-09T15:00:00Z",
"arrival_airport": "JFK",
"arrival_time_local": "2026-11-09T16:30:00",
"arrival_timezone": "America/New_York",
"arrival_time_utc": "2026-11-09T20:30:00Z",
"duration_minutes": 330,
"aircraft": "Boeing 777"
}
]
},
"cabin_class": "economy",
"requires_self_transfer": false,
"ignav_id": "5e4fcd2f1dc340649eb19f6ee2afb57a"
}
]
}Family in premium economy
Search for 2 adults and 1 child in premium economy from New York to Paris:
curl -X POST "https://ignav.com/api/fares/one-way" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"origin":"JFK","destination":"CDG","departure_date":"2026-11-09","adults":2,"children":1,"cabin_class":"premium_economy"}'Different market (GBP pricing)
Set market to GB to get prices in British pounds:
curl -X POST "https://ignav.com/api/fares/one-way" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"origin":"LHR","destination":"DXB","departure_date":"2026-11-09","market":"GB"}'Response fields
observed_at is the UTC time Ignav finished retrieving the search result, or null when unknown. It stays the same when the result is reused. It is not the airline’s quote time or a guarantee that the fare is still available. cache_hit is true when this request reused a cached result. Cache hits are billed normally.
The response contains origin, destination, departure_date, and an itineraries array. Each itinerary includes:
| Parameter | Type | Required | Description |
|---|---|---|---|
| price | object | Yes | Price with amount, currency, and status fields. |
| outbound | object | Yes | Outbound leg object with carrier, duration_minutes, and segments. |
| cabin_class | string | Yes | Requested cabin class for this itinerary. |
| bags | object | No | Baggage allowance: carry_on and checked counts. |
| requires_self_transfer | boolean | Yes | Best-effort indication that the itinerary requires separate tickets. False does not guarantee a protected through-ticket, especially for same-carrier connections. |
| ignav_id | string | Yes | Unique ID for this itinerary. Use it to fetch booking links. |
Leg fields
| Parameter | Type | Required | Description |
|---|---|---|---|
| carrier | string | No | Airline display name for this leg when available. |
| duration_minutes | integer | No | Elapsed leg travel time in minutes, including layovers when present. |
| segments | array | Yes | Array of flight segments for this leg (see below). |
Segment fields
| Parameter | Type | Required | Description |
|---|---|---|---|
| marketing_carrier_code | string | null | Yes | 2-character airline code of the marketing carrier. |
| flight_number | string | null | Yes | Flight number. |
| operating_carrier_name | string | null | Yes | Name of the operating carrier (may differ from marketing carrier). |
| departure_airport | string | Yes | 3-letter IATA departure airport code. |
| departure_time_local | string | Yes | Local departure time in YYYY-MM-DDTHH:MM:SS format. |
| departure_timezone | string | null | Yes | IANA timezone name for the departure airport. |
| departure_time_utc | string | null | Yes | Departure timestamp converted to UTC (RFC 3339). |
| arrival_airport | string | Yes | 3-letter IATA arrival airport code. |
| arrival_time_local | string | Yes | Local arrival time in YYYY-MM-DDTHH:MM:SS format. |
| arrival_timezone | string | null | Yes | IANA timezone name for the arrival airport. |
| arrival_time_utc | string | null | Yes | Arrival timestamp converted to UTC (RFC 3339). |
| duration_minutes | integer | Yes | Duration of the segment in minutes. |
| aircraft | string | null | Yes | Aircraft type (e.g. "Boeing 777"). |
Related docs
Ready to get started?
Create a free account to get your API key, or try the playground — no signup required.