Skyscanner Flights & Travel API avatar

Skyscanner Flights & Travel API

Pricing

Pay per usage

Go to Apify Store
Skyscanner Flights & Travel API

Skyscanner Flights & Travel API

Comprehensive Skyscanner scraping API with real-time flights, hotels, and car hire data. 20 endpoints.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Elis Bushaj

Elis Bushaj

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Extract real-time flight prices, hotel listings, and car hire data from Skyscanner's internal API — the same data shown to users in the Skyscanner app, with full session-managed anti-bot handling. This is the only Skyscanner Actor on Apify that covers flights, hotels, and car hire in a single integration, priced 32% below the only request-model competitor.

20 endpoints | Pay-Per-Event pricing | Batch mode — bulk download & export


Features

  • Full flight search + Google Flights — one-way, return, multi-stop, "fly everywhere", and Google Flights roundtrip/one-way with price grids; more flight data types than any Skyscanner competitor on Apify
  • Only Skyscanner Actor with hotels and car hire — search destinations, compare hotel prices and reviews, find car hire options; no competitor on Apify includes these
  • Price calendars with 2D return grids — find cheapest travel windows with one-way and return date-grid pricing; the 2D return calendar is missing from the leading RapidAPI competitor
  • Batch mode — paste URLs/requests, run, get results in the dataset. No polling, no API client required.
  • Pay only for what you use — no monthly commitment, cancel any time; pricing active from 2026-04-29

Quick Start

Option 1 — Apify Console

  1. Click Try for free on this listing
  2. In the Input tab, fill in your request (see example below)
  3. Click Start and wait ~30 seconds
  4. Open the Output tab to view results or download as JSON/CSV

Example input (London → New York, 2026-08-01):

{
"requests": [
{
"originSkyId": "LOND",
"destinationSkyId": "NYCA",
"originEntityId": "27544008",
"destinationEntityId": "27537542",
"date": "2026-08-01",
"currency": "USD",
"market": "US"
}
]
}

Option 2 — REST API (Standby)

curl -X GET \
"https://elis--skyscanner-api.apify.actor/flights/searchAirport?query=London" \
-H "Authorization: Bearer $APIFY_TOKEN"

Replace $APIFY_TOKEN with your token from Apify Console → Settings → Integrations.

Example response (trimmed):

{
"status": 200,
"data": {
"places": [
{
"skyId": "LOND",
"entityId": "27544008",
"iataCode": "LON",
"name": "London",
"cityName": "London",
"countryName": "United Kingdom",
"placeType": "CITY"
}
]
}
}

Pricing & Budget Guide

Pricing model: Pay-Per-Event — charged once per URL/request processed.

EventPriceWhen it fires
request$0.0034Once per request processed in a batch run

Budget translation — set ACTOR_MAX_TOTAL_CHARGE_USD to cap your spend:

Budget~RequestsUse case
$0.10~29Quick test, try all endpoint types
$1.00~294Hobbyist — daily flight monitoring
$9.99~2,938Pro — route research, price tracking
$99.99~29,408Heavy — bulk scraping, multiple routes

When your budget is reached, the Actor stops cleanly and saves all results collected so far. Raise ACTOR_MAX_TOTAL_CHARGE_USD and re-run to continue.

Market context: Pricing active 2026-04-29 (14-day notice period). The only direct Skyscanner competitor on Apify charges $0.0025/result-item (per-result model); our per-request model charges once per API call regardless of result count.


Endpoint Reference

GET /flights/searchAirport

Search for airports and cities by name — returns skyId and entityId needed for flight searches.

ParameterTypeRequiredDescription
querystringCity or airport name (e.g. "London", "JFK")
marketstringMarket code, default "US"
localestringLocale code, default "en-US"
curl "https://elis--skyscanner-api.apify.actor/flights/searchAirport?query=London" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /flights/searchFlights

Search for one-way or return flights between two airports.

ParameterTypeRequiredDescription
originSkyIdstringOrigin SkyId (e.g. "LOND")
destinationSkyIdstringDestination SkyId (e.g. "NYCA")
originEntityIdstringOrigin entity ID (e.g. "27544008")
destinationEntityIdstringDestination entity ID (e.g. "27537542")
datestringOutbound date YYYY-MM-DD
returnDatestringReturn date for round trips
adultsintegerNumber of adults, default 1
cabinClassstringeconomy, premiumeconomy, business, first
currencystringCurrency code, default "USD"
marketstringMarket code, default "US"
countryCodestringCountry code, default "US"
curl "https://elis--skyscanner-api.apify.actor/flights/searchFlights?originSkyId=LOND&destinationSkyId=NYCA&originEntityId=27544008&destinationEntityId=27537542&date=2026-08-01" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /flights/searchIncomplete

Paginate a live flight search session — call after searchFlights to load additional itineraries.

ParameterTypeRequiredDescription
sessionIdstringSession ID from searchFlights response
curl "https://elis--skyscanner-api.apify.actor/flights/searchIncomplete?sessionId=SESSION_ID" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /flights/getFlightDetails

Retrieve full details for a specific itinerary including booking links.

ParameterTypeRequiredDescription
itineraryIdstringItinerary ID from searchFlights
sessionIdstringSession ID from searchFlights
curl "https://elis--skyscanner-api.apify.actor/flights/getFlightDetails?itineraryId=ITINERARY_ID&sessionId=SESSION_ID" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /flights/getPriceCalendar

Get a one-way price calendar — minimum prices per departure date for a route.

ParameterTypeRequiredDescription
originSkyIdstringOrigin SkyId
destinationSkyIdstringDestination SkyId
fromDatestringStart date YYYY-MM-DD
toDatestringEnd date YYYY-MM-DD
cabinClassstringCabin class
currencystringCurrency code
curl "https://elis--skyscanner-api.apify.actor/flights/getPriceCalendar?originSkyId=LOND&destinationSkyId=NYCA&fromDate=2026-08-01" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /flights/getPriceCalendarReturn

Get a 2D return price calendar — outbound × return date grid with minimum prices. Not available in the leading competitor.

ParameterTypeRequiredDescription
originSkyIdstringOrigin SkyId
destinationSkyIdstringDestination SkyId
fromDatestringOutbound start date
toDatestringOutbound end date
returnFromDatestringReturn start date
returnToDatestringReturn end date
currencystringCurrency code
curl "https://elis--skyscanner-api.apify.actor/flights/getPriceCalendarReturn?originSkyId=LOND&destinationSkyId=NYCA&fromDate=2026-08-01&returnFromDate=2026-08-08" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /flights/searchFlightsMultiStops

Search for multi-stop itineraries across several legs in a single request.

ParameterTypeRequiredDescription
legsstring (JSON)JSON array of leg objects with originSkyId, destinationSkyId, date
adultsintegerNumber of adults
cabinClassstringCabin class
currencystringCurrency code
curl "https://elis--skyscanner-api.apify.actor/flights/searchFlightsMultiStops?legs=[{\"originSkyId\":\"LOND\",\"destinationSkyId\":\"NYCA\",\"date\":\"2026-08-01\"},{\"originSkyId\":\"NYCA\",\"destinationSkyId\":\"CDGB\",\"date\":\"2026-08-10\"}]" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /flights/searchFlightEverywhere

Discover the cheapest destinations from an origin — "fly anywhere" price discovery.

ParameterTypeRequiredDescription
originSkyIdstringOrigin SkyId
originEntityIdstringOrigin entity ID
cabinClassstringCabin class
currencystringCurrency code
marketstringMarket code
curl "https://elis--skyscanner-api.apify.actor/flights/searchFlightEverywhere?originSkyId=LOND&originEntityId=27544008" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /flights/getCheapestOneway

Get the cheapest one-way fares from an origin across all destinations.

ParameterTypeRequiredDescription
originSkyIdstringOrigin SkyId
originEntityIdstringOrigin entity ID
currencystringCurrency code
marketstringMarket code
curl "https://elis--skyscanner-api.apify.actor/flights/getCheapestOneway?originSkyId=LOND&originEntityId=27544008" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /hotels/searchDestination

Search for hotel destinations by name — returns destination IDs for hotel searches.

ParameterTypeRequiredDescription
querystringDestination name (e.g. "Paris")
localestringLocale code, default "en-GB"
curl "https://elis--skyscanner-api.apify.actor/hotels/searchDestination?query=Paris" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /hotels/searchHotels

Search for hotels at a destination with pricing and availability.

ParameterTypeRequiredDescription
entityIdstringDestination entity ID from searchDestination
checkinstringCheck-in date YYYY-MM-DD
checkoutstringCheck-out date YYYY-MM-DD
adultsintegerNumber of adults, default 1
roomsintegerNumber of rooms, default 1
currencystringCurrency code
marketstringMarket code
curl "https://elis--skyscanner-api.apify.actor/hotels/searchHotels?entityId=27539733&checkin=2026-08-01&checkout=2026-08-05" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /hotels/getHotelDetails

Get full details for a specific hotel including amenities and location.

ParameterTypeRequiredDescription
hotelIdstringHotel ID from searchHotels
entityIdstringDestination entity ID
checkinstringCheck-in date
checkoutstringCheck-out date
currencystringCurrency code
curl "https://elis--skyscanner-api.apify.actor/hotels/getHotelDetails?hotelId=HOTEL_ID&entityId=27539733&checkin=2026-08-01&checkout=2026-08-05" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /hotels/getHotelPrices

Get room prices and availability for a hotel.

ParameterTypeRequiredDescription
hotelIdstringHotel ID
entityIdstringDestination entity ID
checkinstringCheck-in date
checkoutstringCheck-out date
adultsintegerNumber of adults
currencystringCurrency code
curl "https://elis--skyscanner-api.apify.actor/hotels/getHotelPrices?hotelId=HOTEL_ID&entityId=27539733&checkin=2026-08-01&checkout=2026-08-05" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /hotels/getHotelReviews

Retrieve guest reviews for a specific hotel.

ParameterTypeRequiredDescription
hotelIdstringHotel ID
entityIdstringDestination entity ID
localestringLocale for reviews, default "en-GB"
curl "https://elis--skyscanner-api.apify.actor/hotels/getHotelReviews?hotelId=HOTEL_ID&entityId=27539733" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /hotels/getSimilarHotels

Get a list of similar hotels near a given hotel.

ParameterTypeRequiredDescription
hotelIdstringReference hotel ID
entityIdstringDestination entity ID
checkinstringCheck-in date
checkoutstringCheck-out date
curl "https://elis--skyscanner-api.apify.actor/hotels/getSimilarHotels?hotelId=HOTEL_ID&entityId=27539733&checkin=2026-08-01&checkout=2026-08-05" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /hotels/getNearbyMap

Get hotels near a specific map location (lat/lng).

ParameterTypeRequiredDescription
latnumberLatitude
lngnumberLongitude
checkinstringCheck-in date
checkoutstringCheck-out date
currencystringCurrency code
curl "https://elis--skyscanner-api.apify.actor/hotels/getNearbyMap?lat=48.8566&lng=2.3522&checkin=2026-08-01&checkout=2026-08-05" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /cars/searchLocation

Search for car hire pickup/dropoff locations by name.

ParameterTypeRequiredDescription
querystringLocation name (e.g. "Heathrow Airport")
localestringLocale code
curl "https://elis--skyscanner-api.apify.actor/cars/searchLocation?query=Heathrow+Airport" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /cars/searchCars

Search for available car hire options between pickup and dropoff.

ParameterTypeRequiredDescription
pickupEntityIdstringPickup location entity ID
dropoffEntityIdstringDropoff location entity ID
pickupDatestringPickup date YYYY-MM-DD
dropoffDatestringDropoff date YYYY-MM-DD
pickupTimestringPickup time HH:MM, default "10:00"
dropoffTimestringDropoff time HH:MM, default "10:00"
currencystringCurrency code
marketstringMarket code
curl "https://elis--skyscanner-api.apify.actor/cars/searchCars?pickupEntityId=ENTITY_ID&dropoffEntityId=ENTITY_ID&pickupDate=2026-08-01&dropoffDate=2026-08-08" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /config/getLocale

Get locale information for a market including currency, language, and country.

ParameterTypeRequiredDescription
marketstringMarket code, default "US"
curl "https://elis--skyscanner-api.apify.actor/config/getLocale?market=US" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /config/getExchangeRates

Get current exchange rates for a base currency.

ParameterTypeRequiredDescription
baseCurrencystringBase currency code (e.g. "USD")
curl "https://elis--skyscanner-api.apify.actor/config/getExchangeRates?baseCurrency=USD" \
-H "Authorization: Bearer $APIFY_TOKEN"

FAQ

How is this different from the official Skyscanner API? Skyscanner's official Partner API requires approval and is only available to approved travel businesses. This Actor uses Skyscanner's internal web API (the same endpoints the app uses) — no approval needed, works today.

Is there a free tier? New Apify accounts receive $5 free credit. At $0.0034/request, that's approximately 1,470 free requests to evaluate the API across all endpoint types.

How does batch mode work? Fill in the Input tab with a requests array — each entry is one API call. Click Start, wait for the run to finish, then download all results from the Output tab as JSON, CSV, or JSONL. No client library required.

What happens when I reach my budget? The Actor stops cleanly after the current request finishes. All results collected so far are saved to the dataset. Increase ACTOR_MAX_TOTAL_CHARGE_USD and re-run to continue.

Can I automate this via API? Yes — use the Apify REST API or any Apify SDK (Node.js, Python). Runs are schedulable via Apify Console → Schedules. See Apify API docs for details.

Does this include Google Flights data? Yes — /flights/searchFlightEverywhere and /flights/getCheapestOneway use Google Flights data for price discovery. Standard flight search endpoints use Skyscanner data.

What if a request fails due to anti-bot? The Actor uses session-managed proxy rotation to handle Skyscanner's anti-bot. If a request fails, it is retried automatically. Persistent failures are recorded with status: "error" and the reason.