# Kiwi.com Flight Detail API Documentation

<p><strong>Kiwi.com Flight Detail API Documentation</strong> 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.</p>

- **Documentation:** [https://scrappa.co/docs/kiwi-api/kiwi_flight_detail](https://scrappa.co/docs/kiwi-api/kiwi_flight_detail)
- **API group:** Kiwi.com API
- **Endpoint:** `GET https://scrappa.co/api/kiwi/flights/detail`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `itinerary_id` | string | Yes | The id of an itinerary from the flight search with the same parameters. |
| `origin` | string | Yes | Kiwi.com place id from the locations endpoint (City:berlin_de, Station:airport:BER) or an airport code (BER). Example: City:berlin_de. |
| `destination` | string | Yes | Place id or airport code of the destination. Example: City:london_gb. |
| `departure_date` | string | Yes | Departure date, YYYY-MM-DD, today or later. Every result departs on this date. |
| `return_date` | string | No | Return date, YYYY-MM-DD. Leave it out for a one-way search. Every inbound leg departs on this date. |
| `adults` | integer | No | Adults, 1 to 9. Defaults to 1. Adults, children and infants together are at most 9. |
| `children` | integer | No | Children, 0 to 8. Defaults to 0. |
| `infants` | integer | No | Infants, 0 to 8. Each infant needs an adult. Defaults to 0. |
| `cabin` | string | No | economy, premium_economy, business or first. Defaults to economy. |
| `max_stops` | integer | No | Maximum stops per leg, 0 to 3. 0 returns direct flights only. |
| `min_price` | integer | No | Minimum total price in the chosen currency. |
| `max_price` | integer | No | Maximum total price in the chosen currency. |
| `sort` | string | No | quality, price or duration. Defaults to quality. |
| `limit` | integer | No | Itineraries to return, 1 to 50. Defaults to 25. A search has no pages. |
| `carriers` | string | No | Only these airlines, 2-letter codes, comma separated. Example: LH,AF. |
| `exclude_carriers` | string | No | Leave out these airlines, 2-letter codes, comma separated. |
| `currency` | string | No | Price currency, a 3-letter code such as EUR or USD. Defaults to EUR. |
| `locale` | string | No | Language of names, such as en or de. Defaults to en. |

## Example response

```json
{
    "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

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A parameter is missing or invalid. This response is not billable. |
| 404 | Itinerary Not Found | The itinerary is not in the current results for these parameters. This response is not billable. |
| 503 | Upstream Unavailable | Kiwi.com did not answer in time. Retry the request. This response is not billable. |
| 503 | Unexpected Upstream Answer | Kiwi.com answered in a form this API does not read. This response is not billable. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
