Skyscanner Flights API
The Skyscanner Flights API returns Skyscanner's flight itineraries for a route and dates, one-way or round trip. Each itinerary carries its price for all passengers, its legs with their flights, and the sellers that offer it, each with a price and a booking link. An option sold as two tickets, one for each direction, has is_split_booking, with each ticket's seller, price and booking link under departure and arrival. Itineraries come in Skyscanner's order, and a search returns every itinerary Skyscanner finds. Prices are in US dollars.
API Parameters
Search Query
-
- Name
-
departure_id - Required
- Required
- Description
-
Parameter defines the departure airport or city as an IATA code, such as
JFKfor John F. Kennedy orNYCfor every New York airport. A code that a city shares with one of its airports, such asHOU, means that airport. A code Skyscanner does not know returns an error.
-
- Name
-
arrival_id - Required
- Required
- Description
-
Parameter defines the arrival airport or city as an IATA code, such as
LAXfor Los Angeles International orLONfor every London airport. A code that a city shares with one of its airports, such asHOU, means that airport. A code Skyscanner does not know returns an error. It must differ fromdeparture_id. Two places in the same city, such asNYCandJFKorJFKandLGA, return an error.
Filters
-
- Name
-
flight_type - Required
- Optional
- Description
-
Parameter defines the type of trip. It can be set to
one_wayorround_trip, and defaults toround_trip.
-
- Name
-
outbound_date - Required
- Required
- Description
-
Parameter defines the departure date in
YYYY-MM-DDformat, from today up to 13 months ahead. Today means today at the departure airport, so a date already past there returns an error.
-
- Name
-
return_date - Required
- Optional
- Description
-
Parameter defines the return date in
YYYY-MM-DDformat, on or afteroutbound_dateand up to 13 months ahead. It is required whenflight_typeisround_tripand cannot be used withone_way.
-
- Name
-
travel_class - Required
- Optional
- Description
-
Parameter defines the travel class. It can be set to
economy,premium_economy,businessorfirst_class, and defaults toeconomy.
Number of Passengers
-
- Name
-
adults - Required
- Optional
- Description
-
Parameter defines the number of adult passengers, from 1 to 8. A search without it is for one adult. Prices are totals for all passengers.
Engine
-
- Name
-
engine - Required
- Required
- Description
-
Parameter defines an engine that will be used to retrieve real-time data. It must be set to
skyscanner_flights.
API key
-
- Name
-
api_key - Required
- Required
- Description
-
The
api_keyauthenticates your requests. Use it as a query parameter (https://www.searchapi.io/api/v1/search?api_key=YOUR_API_KEY) or in the Authorization header (Bearer YOUR_API_KEY).
Zero Data Retention
-
- Name
-
zero_retention - Enterprise Only
- Enterprise Only
- Required
- Optional
- Description
-
Set this parameter to
trueto disable all logging and persistent storage. No request parameters, HTML, or JSON responses are stored or logged. Suitable for high-compliance use cases. Debugging and support may be limited while enabled.
API Examples
Full Response
https://www.searchapi.io/api/v1/search?arrival_id=LAX&departure_id=JFK&engine=skyscanner_flights&flight_type=one_way&outbound_date=2026-11-25
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "skyscanner_flights",
"departure_id": "JFK",
"arrival_id": "LAX",
"outbound_date": "2026-11-25",
"flight_type": "one_way"
}
response = requests.get(url, params=params)
print(response.text)
{
"search_metadata": {
"id": "search_f41zgiuKmcgSKfrD9REMVqLj",
"status": "Success",
"created_at": "2026-10-14T07:01:12Z",
"request_time_taken": 6.87,
"parsing_time_taken": 0.05,
"total_time_taken": 6.92,
"request_url": "https://www.skyscanner.com/transport/flights/jfk/lax/261113/?adultsv2=1&cabinclass=economy&rtn=0",
"html_url": "https://www.searchapi.io/api/v1/searches/search_f41zgiuKmcgSKfrD9REMVqLj.html",
"json_url": "https://www.searchapi.io/api/v1/searches/search_f41zgiuKmcgSKfrD9REMVqLj"
},
"search_parameters": {
"engine": "skyscanner_flights",
"departure_id": "JFK",
"arrival_id": "LAX",
"outbound_date": "2026-11-13",
"flight_type": "one_way",
"travel_class": "economy"
},
"itineraries": [
{
"id": "12712-2611131100--32385-0-13416-2611131414",
"price": 203.4,
"legs": [
{
"departure_airport": {
"id": "JFK",
"name": "New York John F. Kennedy",
"city": "New York",
"country": "United States",
"date": "2026-11-13",
"time": "11:00"
},
"arrival_airport": {
"id": "LAX",
"name": "Los Angeles International",
"city": "Los Angeles",
"country": "United States",
"date": "2026-11-13",
"time": "14:14"
},
"total_duration": 374,
"stops": 0,
"flights": [
{
"departure_airport": {
"id": "JFK",
"name": "New York John F. Kennedy",
"city": "New York",
"country": "United States",
"date": "2026-11-13",
"time": "11:00"
},
"arrival_airport": {
"id": "LAX",
"name": "Los Angeles International",
"city": "Los Angeles",
"country": "United States",
"date": "2026-11-13",
"time": "14:14"
},
"duration": 374,
"airline": "Delta",
"airline_code": "DL",
"airline_logo": "https://logos.skyscnr.com/images/airlines/favicon/DL.png",
"flight_number": "DL 747",
"operating_airline": "Delta"
}
]
}
],
"booking_options": [
{
"book_with": "Delta",
"price": 203.4,
"tracking_link": "https://www.skyscanner.com/transport_deeplink/4.0/US/en-US/USD/dela/1/12712.13416.2026-11-13/air/air...",
"is_airline": true,
"rating": 4.94,
"reviews": 4674
}
]
},
"..."
]
}
Round Trip Sold as Two Tickets
https://www.searchapi.io/api/v1/search?arrival_id=BCN&departure_id=LON&engine=skyscanner_flights&outbound_date=2026-11-29&return_date=2026-12-03
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "skyscanner_flights",
"departure_id": "LON",
"arrival_id": "BCN",
"outbound_date": "2026-11-29",
"return_date": "2026-12-03"
}
response = requests.get(url, params=params)
print(response.text)
{
"search_metadata": {
"id": "search_Q8LGJb0430Zbc0vgw59nyzNW",
"status": "Success",
"created_at": "2026-10-22T05:24:40Z",
"request_time_taken": 25.93,
"parsing_time_taken": 0.14,
"total_time_taken": 26.07,
"request_url": "https://www.skyscanner.com/transport/flights/lon/bcn/261124/261128/?adultsv2=1&cabinclass=economy&rt...",
"html_url": "https://www.searchapi.io/api/v1/searches/search_Q8LGJb0430Zbc0vgw59nyzNW.html",
"json_url": "https://www.searchapi.io/api/v1/searches/search_Q8LGJb0430Zbc0vgw59nyzNW"
},
"search_parameters": {
"engine": "skyscanner_flights",
"departure_id": "LON",
"arrival_id": "BCN",
"outbound_date": "2026-11-24",
"return_date": "2026-11-28",
"flight_type": "round_trip",
"travel_class": "economy"
},
"itineraries": [
{
"id": "13771-2611241215--30972-0-9772-2611241525|9772-2611281955--31915-0-16574-2611282120",
"price": 55.7,
"legs": [
{
"departure_airport": {
"id": "LTN",
"name": "London Luton",
"city": "London",
"country": "United Kingdom",
"date": "2026-11-24",
"time": "12:15"
},
"arrival_airport": {
"id": "BCN",
"name": "Barcelona",
"city": "Barcelona",
"country": "Spain",
"date": "2026-11-24",
"time": "15:25"
},
"total_duration": 130,
"stops": 0,
"flights": [
{
"departure_airport": {
"id": "LTN",
"name": "London Luton",
"city": "London",
"country": "United Kingdom",
"date": "2026-11-24",
"time": "12:15"
},
"arrival_airport": {
"id": "BCN",
"name": "Barcelona",
"city": "Barcelona",
"country": "Spain",
"date": "2026-11-24",
"time": "15:25"
},
"duration": 130,
"airline": "Wizz Air UK",
"airline_code": "W9",
"airline_logo": "https://logos.skyscnr.com/images/airlines/favicon/%7E9.png",
"flight_number": "W9 5377",
"operating_airline": "Wizz Air UK"
}
]
},
{
"departure_airport": {
"id": "BCN",
"name": "Barcelona",
"city": "Barcelona",
"country": "Spain",
"date": "2026-11-28",
"time": "19:55"
},
"arrival_airport": {
"id": "STN",
"name": "London Stansted",
"city": "London",
"country": "United Kingdom",
"date": "2026-11-28",
"time": "21:20"
},
"total_duration": 145,
"stops": 0,
"flights": [
{
"departure_airport": {
"id": "BCN",
"name": "Barcelona",
"city": "Barcelona",
"country": "Spain",
"date": "2026-11-28",
"time": "19:55"
},
"arrival_airport": {
"id": "STN",
"name": "London Stansted",
"city": "London",
"country": "United Kingdom",
"date": "2026-11-28",
"time": "21:20"
},
"duration": 145,
"airline": "Ryanair",
"airline_code": "FR",
"airline_logo": "https://logos.skyscnr.com/images/airlines/favicon/FR.png",
"flight_number": "FR 9045",
"operating_airline": "Ryanair"
}
]
}
],
"booking_options": [
{
"book_with": "Trip.com",
"price": 55.7,
"tracking_link": "https://www.skyscanner.com/transport_deeplink/4.0/US/en-US/USD/cust/2/4698.9772.2026-11-24,9772.4698...",
"rating": 4.72,
"reviews": 4367
},
{
"is_split_booking": true,
"book_with": "Wizz Air, Ryanair",
"price": 56.4,
"departure": {
"book_with": "Wizz Air",
"price": 37.33,
"tracking_link": "https://www.skyscanner.com/transport_deeplink/4.0/US/en-US/USD/wizz/1/13771.9772.2026-11-24/air/airl...",
"is_airline": true,
"rating": 3.19,
"reviews": 216
},
"arrival": {
"book_with": "Ryanair",
"price": 19.07,
"tracking_link": "https://www.skyscanner.com/transport_deeplink/4.0/US/en-US/USD/ryan/1/9772.16574.2026-11-28/air/airl...",
"is_airline": true,
"rating": 4.6,
"reviews": 702
}
},
"..."
]
},
"..."
]
}