# Skyscanner Flight Search API Documentation

Search Skyscanner flights one way or round trip. Each itinerary returns a price in GBP, a public Skyscanner url, one leg (one way) or two legs (round trip) with airports, local departure and arrival times, duration in minutes, number of stops, marketing and operating carriers and the flight numbers, plus the three cheapest booking offers. Add return_date for a round trip. The whole result list is sorted and cut to limit, there is no cursor. Results are collected live: a one-way search usually takes 2 to 15 seconds and a round trip up to 40 seconds. complete is false when Skyscanner was still collecting offers at the time limit. A search without flights is a successful empty response.

- **Documentation:** [https://scrappa.co/docs/skyscanner-api/skyscanner_flights_search](https://scrappa.co/docs/skyscanner-api/skyscanner_flights_search)
- **API group:** Skyscanner API
- **Endpoint:** `GET https://scrappa.co/api/skyscanner/flights/search`

## 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_id` | string | Yes | Origin entity_id from the autocomplete endpoint, digits only. City and airport ids both work. Example: 27544008 (London). |
| `destination_id` | string | Yes | Destination entity_id from the autocomplete endpoint, digits only. Must differ from the origin. Example: 27537542 (New York). |
| `departure_date` | string | Yes | Departure date as YYYY-MM-DD, today or up to 330 days ahead. Example: 2026-12-04. |
| `return_date` | string | No | Return date as YYYY-MM-DD, on or after the departure date. Set it for a round trip. Example: 2026-12-11. |
| `adults` | integer | No | Number of adult passengers, 1 to 8. Defaults to 1. |
| `limit` | integer | No | Itineraries to return, 1 to 50. Defaults to 20. |
| `sort` | string | No | Sort order: price (cheapest first) or duration (shortest first). Defaults to price. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/skyscanner/flights/search?origin_id=27544008&destination_id=27537542&departure_date=2026-12-04"
```

## Example response

```json
{
    "success": true,
    "data": {
        "origin_id": "27544008",
        "destination_id": "27537542",
        "departure_date": "2026-12-04",
        "currency": "GBP",
        "total_results": 677,
        "complete": true,
        "itineraries": [
            {
                "id": "16574-2612042055--31915,-32217-2-12712-2612051800",
                "price": 263.19,
                "price_formatted": "\u00a3264",
                "is_self_transfer": false,
                "url": "https://www.skyscanner.net/transport/flights/stn/jfk/261204/",
                "legs": [
                    {
                        "origin": {
                            "airport_code": "STN",
                            "name": "London Stansted",
                            "city": "London"
                        },
                        "destination": {
                            "airport_code": "JFK",
                            "name": "New York John F. Kennedy",
                            "city": "New York"
                        },
                        "departure_local": "2026-12-04T20:55:00",
                        "arrival_local": "2026-12-05T18:00:00",
                        "duration_minutes": 1565,
                        "stops": 2,
                        "carriers": [
                            {
                                "code": "FR",
                                "name": "Ryanair",
                                "logo_url": "https://logos.skyscnr.com/images/airlines/favicon/FR.png"
                            },
                            {
                                "code": "FI",
                                "name": "Icelandair",
                                "logo_url": "https://logos.skyscnr.com/images/airlines/favicon/FI.png"
                            }
                        ],
                        "operating_carriers": [
                            {
                                "code": "JF",
                                "name": "Buzz",
                                "logo_url": "https://logos.skyscnr.com/images/airlines/favicon/JF.png"
                            },
                            {
                                "code": "FI",
                                "name": "Icelandair",
                                "logo_url": "https://logos.skyscnr.com/images/airlines/favicon/FI.png"
                            }
                        ],
                        "segments": [
                            {
                                "flight_number": "FR545",
                                "origin_code": "STN",
                                "destination_code": "GDN"
                            },
                            {
                                "flight_number": "FI553",
                                "origin_code": "GDN",
                                "destination_code": "KEF"
                            },
                            {
                                "flight_number": "FI615",
                                "origin_code": "KEF",
                                "destination_code": "JFK"
                            }
                        ]
                    }
                ],
                "agents": [
                    {
                        "name": "Trip.com",
                        "price": 263.19
                    },
                    {
                        "name": "Kiwi.com",
                        "price": 281
                    }
                ]
            }
        ]
    },
    "meta": {
        "endpoint_family": "flight_search",
        "billable": true
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required query parameter is missing or invalid. This response is not billable. |
| 404 | Place or Route Not Found | Skyscanner does not know the place code or entity id. This response is not billable. |
| 503 | Upstream Blocked | The upstream service is temporarily unavailable. Please retry shortly. |
| 503 | Service Unavailable | Skyscanner did not answer, answered too slowly or returned an unexpected response. Retry shortly. 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)
