Skip to content
Scrappa Get API key
Kiwi.com API 1 credit/request

Kiwi.com Flight Detail API Documentation

GET https://scrappa.co/api/kiwi/flights/detail

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.

Kiwi.com Flight Detail API Documentation 1 credit/request

Endpoint

Request preview
GET
https://scrappa.co/api/kiwi/flights/detail
Auth header
x-api-key
Cost
1 credit/request
itinerary_id = 1234567890 origin = example destination = example
Response preview
200 OK
{
    "data": {
        "itinerary": {
            "id": "ItineraryOneWay:eyJwcm92aWRlcnMiOiJLSVdJIiwicm91...",
            "type": "one_way",
            "price": {
                "amount": 69,
                "currency": "EUR",
                "formatted": "69 \u20ac"
            },
            "stops": 0,
            "arrival": {
                "city": "London",
                "airport": "Luton",
...

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.

itinerary_id string Required

The id of an itinerary from the flight search with the same parameters.

Example value 1234567890
origin 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 value example
destination string Required

Place id or airport code of the destination. Example: City:london_gb.

Example value example
departure_date string Required

Departure date, YYYY-MM-DD, today or later. Every result departs on this date.

Example value 2026-06-15
return_date string Optional

Return date, YYYY-MM-DD. Leave it out for a one-way search. Every inbound leg departs on this date.

Example value 2026-06-15
adults integer Optional

Adults, 1 to 9. Defaults to 1. Adults, children and infants together are at most 9.

Example value 10
children integer Optional

Children, 0 to 8. Defaults to 0.

Example value 10
infants integer Optional

Infants, 0 to 8. Each infant needs an adult. Defaults to 0.

Example value 10
cabin string Optional

economy, premium_economy, business or first. Defaults to economy.

Example value example
max_stops integer Optional

Maximum stops per leg, 0 to 3. 0 returns direct flights only.

Example value 10
min_price integer Optional

Minimum total price in the chosen currency.

Example value 10
max_price integer Optional

Maximum total price in the chosen currency.

Example value 10
sort string Optional

quality, price or duration. Defaults to quality.

Example value relevance
limit integer Optional

Itineraries to return, 1 to 50. Defaults to 25. A search has no pages.

Example value 10
carriers string Optional

Only these airlines, 2-letter codes, comma separated. Example: LH,AF.

Example value example
exclude_carriers string Optional

Leave out these airlines, 2-letter codes, comma separated.

Example value example
currency string Optional

Price currency, a 3-letter code such as EUR or USD. Defaults to EUR.

Example value USD
locale string Optional

Language of names, such as en or de. Defaults to en.

Example value 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
JSON Response
200 OK
{
    "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&currency=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.

422

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"
}
404

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
}
503

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
}
503

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.