Kiwi.com Flight Detail API Documentation Get the full record of one itinerary. Send the same search parameters as the flight search and the itinerary id from its results. The endpoint runs the search once and returns the matching itinerary with all segments, layovers, baggage rules and the booking link. If the itinerary is no longer offered, the answer is 404 and not billable. Prices change often, so read the price again at booking.
Run this endpoint
Endpoint
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
4 required parameters needed before sending a request.
14 optional filters available.
string
Required
The id of an itinerary from the flight search with the same parameters.
1234567890
string
Required
Kiwi.com place id from the locations endpoint (City:berlin_de, Station:airport:BER) or an airport code (BER). Example: City:berlin_de.
example
string
Required
Place id or airport code of the destination. Example: City:london_gb.
example
string
Required
Departure date, YYYY-MM-DD, today or later. Every result departs on this date.
2026-06-15
string
Optional
Return date, YYYY-MM-DD. Leave it out for a one-way search. Every inbound leg departs on this date.
2026-06-15
integer
Optional
Adults, 1 to 9. Defaults to 1. Adults, children and infants together are at most 9.
10
integer
Optional
Children, 0 to 8. Defaults to 0.
10
integer
Optional
Infants, 0 to 8. Each infant needs an adult. Defaults to 0.
10
string
Optional
economy, premium_economy, business or first. Defaults to economy.
example
integer
Optional
Maximum stops per leg, 0 to 3. 0 returns direct flights only.
10
integer
Optional
Minimum total price in the chosen currency.
10
integer
Optional
Maximum total price in the chosen currency.
10
string
Optional
quality, price or duration. Defaults to quality.
relevance
integer
Optional
Itineraries to return, 1 to 50. Defaults to 25. A search has no pages.
10
string
Optional
Only these airlines, 2-letter codes, comma separated. Example: LH,AF.
example
string
Optional
Leave out these airlines, 2-letter codes, comma separated.
example
string
Optional
Price currency, a 3-letter code such as EUR or USD. Defaults to EUR.
USD
string
Optional
Language of names, such as en or de. Defaults to en.
en-US
Response Schema
Example response fields are illustrative; inspect the JSON before integrating.
Example response fields
Scan these fields before integrating.
data
meta
success
{
"data": {
"itinerary": {
"id": "ItineraryOneWay:eyJwcm92aWRlcnMiOiJLSVdJIiwicm91...",
"type": "one_way",
"price": {
"amount": 69,
"currency": "EUR",
"formatted": "69 \u20ac"
},
"stops": 0,
"arrival": {
"city": "London",
"airport": "Luton",
"country": "United Kingdom",
"local_time": "2026-11-19T18:05:00",
"airport_code": "LTN",
"country_code": "GB"
},
"baggage": {
"hand_bags_included": 0,
"no_checked_baggage": false,
"checked_bags_included": 0,
"personal_item_included": 1,
"checked_bag_tier_prices": [
75,
150
]
},
"carriers": [
{
"code": "U2",
"icao": "EZY",
"name": "easyJet"
}
],
"duration": 7200,
"layovers": [],
"provider": {
"code": "KIWI",
"name": "Kiwi.com",
"content_provider": {
"id": "ContentProvider:KIWI",
"name": "kiwi.com"
}
},
"segments": [
{
"type": "FLIGHT",
"arrival": {
"city": "London",
"airport": "Luton",
"country": "United Kingdom",
"local_time": "2026-11-19T18:05:00",
"airport_code": "LTN",
"country_code": "GB"
},
"carrier": {
"code": "U2",
"name": "easyJet"
},
"duration": 7200,
"departure": {
"city": "Berlin",
"airport": "Berlin Brandenburg",
"country": "Germany",
"local_time": "2026-11-19T17:05:00",
"airport_code": "BER",
"country_code": "DE"
},
"cabin_class": "ECONOMY",
"flight_number": "U22602",
"operating_carrier": {
"code": "U2",
"name": "easyJet"
}
}
],
"share_id": "eyJyIjoiVTI6MjYwMjpCRVI6MTc5NTEwNDMwMDpMVE46MTc5...",
"departure": {
"city": "Berlin",
"airport": "Berlin Brandenburg",
"country": "Germany",
"local_time": "2026-11-19T17:05:00",
"airport_code": "BER",
"country_code": "DE"
},
"price_eur": 69,
"booking_url": "https://www.kiwi.com/en/booking/?direct=true&locale=en¤cy=eur&passengers=1-0-0&token=...",
"travel_hacks": {
"hidden_city": false,
"virtual_interlining": false
}
},
"itinerary_id": "ItineraryOneWay:eyJwcm92aWRlcnMiOiJLSVdJIiwicm91..."
},
"meta": {
"billable": true,
"endpoint_family": "flight_detail"
},
"success": true
}
Errors
Handle these documented responses before retrying or showing customer-facing failures.
Validation Error
A parameter is missing or invalid. This response is not billable.
{
"errors": {
"itinerary_id": [
"An itinerary id is required. Take it from the flight search with the same parameters."
]
},
"message": "The request validation failed"
}Itinerary Not Found
The itinerary is not in the current results for these parameters. This response is not billable.
{
"meta": {
"billable": false,
"retryable": false,
"endpoint_family": "flight_detail"
},
"error": {
"code": "NOT_FOUND",
"message": "The requested Kiwi.com itinerary was not found in the current results."
},
"success": false
}Upstream Unavailable
Kiwi.com did not answer in time. Retry the request. This response is not billable.
{
"meta": {
"billable": false,
"retryable": true,
"endpoint_family": "flight_search"
},
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "The Kiwi.com API is temporarily unavailable. Please retry."
},
"success": false
}Unexpected Upstream Answer
Kiwi.com answered in a form this API does not read. This response is not billable.
{
"meta": {
"billable": false,
"retryable": false,
"endpoint_family": "flight_search"
},
"error": {
"code": "PARSER_DRIFT",
"message": "Kiwi.com rejected the request. Check the parameters and try again."
},
"success": false
}Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Try It Live
Test this endpoint in our interactive playground with real data.