# Kiwi.com Cheapest Dates API Documentation

<p><strong>Kiwi.com Cheapest Dates API Documentation</strong> Get one calendar price per departure day in a window, rated cheap, average or expensive, with the rating thresholds. Add nights_min and nights_max for a return calendar. The calendar has no cabin filter and its prices are economy prices for the date and party. They are calendar prices, not the cheapest fare of a flight search, and can differ from search results. Use the calendar to pick a day and the flight search to see the offers.</p>

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

## 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 | No | Shortest stay in nights, 1 to 60. Send it with nights_max for a return calendar. |
| `nights_max` | integer | No | 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": {
        "days": [
            {
                "date": "2026-11-19",
                "price": 69,
                "rating": "AVERAGE",
                "currency": "EUR"
            },
            {
                "date": "2026-11-20",
                "price": 74,
                "rating": "AVERAGE",
                "currency": "EUR"
            },
            {
                "date": "2026-11-21",
                "price": 64,
                "rating": "CHEAP",
                "currency": "EUR"
            }
        ],
        "nights": null,
        "origin": {
            "id": "City:berlin_de",
            "name": "Berlin"
        },
        "currency": "EUR",
        "end_date": "2026-11-21",
        "trip_type": "one_way",
        "start_date": "2026-11-19",
        "thresholds": {
            "cheap": 64,
            "average": 69,
            "expensive": 74
        },
        "destination": {
            "id": "City:london_gb",
            "name": "London"
        },
        "price_basis": "Calendar price for this date and party in economy. It is not the cheapest fare of a flight search."
    },
    "meta": {
        "billable": true,
        "endpoint_family": "cheapest_dates"
    },
    "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)
