# Kiwi.com Price Graph API Documentation

<p><strong>Kiwi.com Price Graph API Documentation</strong> Get a price curve for return trips: one point per departure date with the matching return date for the stay length you choose. Prices are economy prices for the date and party. They are not the cheapest fare of a flight search. Use the curve to find the best departure day for a stay of 3 to 5 nights, then open the flight search.</p>

- **Documentation:** [https://scrappa.co/docs/kiwi-api/kiwi_price_graph](https://scrappa.co/docs/kiwi-api/kiwi_price_graph)
- **API group:** Kiwi.com API
- **Endpoint:** `GET https://scrappa.co/api/kiwi/calendar/price-graph`

## 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 |
| --- | --- | --- | --- |
| `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. |
| `start_date` | string | Yes | First day of the window, YYYY-MM-DD, today or later. |
| `end_date` | string | Yes | Last day of the window, YYYY-MM-DD, at most 62 days after the start. |
| `nights_min` | integer | Yes | Shortest stay in nights, 1 to 60. |
| `nights_max` | integer | Yes | Longest stay in nights, 1 to 60, not below nights_min. |
| `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. |
| `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": {
        "nights": {
            "max": 5,
            "min": 3
        },
        "points": [
            {
                "price": 140,
                "currency": "EUR",
                "return_date": "2026-11-22",
                "departure_date": "2026-11-19"
            },
            {
                "price": 147,
                "currency": "EUR",
                "return_date": "2026-11-23",
                "departure_date": "2026-11-20"
            },
            {
                "price": 126,
                "currency": "EUR",
                "return_date": "2026-11-24",
                "departure_date": "2026-11-21"
            }
        ],
        "currency": "EUR",
        "end_date": "2026-11-21",
        "start_date": "2026-11-19",
        "price_basis": "Price for this departure date and stay length in economy. It is not the cheapest fare of a flight search."
    },
    "meta": {
        "billable": true,
        "endpoint_family": "price_graph"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A parameter is missing or invalid. 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)
