Skyscanner Scraper — Flight Prices & Destinations avatar

Skyscanner Scraper — Flight Prices & Destinations

Pricing

from $8.50 / 1,000 page priceds

Go to Apify Store
Skyscanner Scraper — Flight Prices & Destinations

Skyscanner Scraper — Flight Prices & Destinations

Both Skyscanner fare datasets behind one mode picker: prices for a city pair, or the cheapest flights into a place from anywhere. Each row is a whole page — quoted deals with carriers and dates, twelve months of prices, nearby airports, airlines and route Q&A.

Pricing

from $8.50 / 1,000 page priceds

Rating

0.0

(0)

Developer

The Netaji

The Netaji

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Skyscanner Scraper

Both Skyscanner fare datasets behind one mode picker. Pick routeFares to price a city pair, or destinationFares for the cheapest flights into a place from anywhere. Either way a row is a whole page: the headline fare and its currency, every quoted deal with legs, carriers, dates and the moment each fare was quoted, twelve months of cheapest-by-month, the airports serving the destination, the airlines flying it, the page's own Q&A, and fifteen route facts from the cheapest month to the destination's wettest.

The two modes cost the same because they are the same amount of work — one page read, one row, no pagination on either surface. That is the whole reason they sit in one Actor rather than being sold as one product with an asterisk.

Accepted input

scraperType picks the mode and is required.

routeFares reads routes — city pairs, one per line, written as the code to fly from and the code to fly to:

lond-nyca

lond/nyca, lond nyca and a pasted route page link all work too.

destinationFares reads places — place codes, one per line, such as nyca or lax, or pasted destination page links.

A place code is two to four characters, and a place name is not a place code. lond is London, nyca is New York; lhr, sfo and lax are airports. london is refused before any request is made, by name, with real codes in the message — there is no place-name lookup on this site, and a name sent anyway returns a page that does not exist, which reads as "Skyscanner has no London" rather than "that was the wrong kind of value".

Codes come from results. Every row publishes origin_code and destination_code, every deal names its own places, every leg names its airports and every nearby airport carries a code — all of them valid inputs to either mode.

maxItems caps how many pages a run reads and defaults to 100. One page is one row and one request. Set 0 for no limit.

{
"scraperType": "routeFares",
"routes": ["lond-nyca", "lhr-jfk"],
"maxItems": 10
}

Response fields

One row per page read. This is the row that exact run produced for lond-nyca, with the long lists shortened:

{
"requested_origin": "lond",
"requested_destination": "nyca",
"url": "https://www.skyscanner.net/routes/lond/nyca",
"origin_code": "LOND",
"origin_name": "London",
"origin_country": "United Kingdom",
"destination_code": "NYCA",
"destination_name": "New York",
"destination_country": null,
"title": "£146 Cheap Flights from London (LOND) to New York (NYCA) | Skyscanner",
"cheapest_price": 146,
"currency": "GBP",
"deals_count": 16,
"deals": [
{
"id": "{bl}:202608211200*I*SEN*EWR*20261205*skyp*EZY",
"price": 188,
"formatted_price": "£188",
"direct": false,
"legs": [
{
"date": "2026-12-05",
"quoted_at": "2026-08-21T12:00Z",
"origin": { "sky_code": "SEN", "name": "London Southend" },
"destination": { "sky_code": "EWR", "name": "New York Newark" },
"carrier_name": "easyJet",
"carrier_code": "EZY"
}
]
}
],
"cheapest_by_month": [
{ "month": "2026-09", "month_name": "September", "price": 227, "formatted_price": "£227" },
{ "month": "2026-10", "month_name": "October", "price": 226, "formatted_price": "£226" }
],
"nearby_airports": [
{
"airport_name": "New York Newark",
"sky_code": "EWR",
"distance": 9,
"formatted_price": "£188",
"carrier_name": "easyJet",
"is_cheapest": true,
"is_closest": false
}
],
"faqs": [
{
"question": "How many airports are there in New York?",
"answer": "There are 6 airports in New York: New York LaGuardia, New York Newark, New York John F. Kennedy, Westchester County, Islip, and Stewart International."
}
],
"cheapest_month": "October",
"most_expensive_month": "August",
"cheapest_airline": "Ryanair",
"most_popular_airline": "British Airways",
"average_flight_time": "8 hours",
"warmest_month": "July",
"wettest_month": "August"
}

The full row carries all 16 deals, 12 months, 6 nearby airports, 26 direct airlines, 6 popular airlines, 13 FAQs and all fifteen route facts.

The two modes fill different identity columns and share everything else. A route row carries requested_origin, requested_destination and the origin columns; a destination row carries requested_place and no origin at all, because that page prices fares into a place and each deal names its own origin instead.

These are cached quotes, not a live search. Every leg states its own quoted_at — the fare above was quoted two days before the run.

currency is stated on every row and is not the caller's. This storefront serves one currency regardless of where a request comes from.

requested_origin and origin_code are both published because they are not always equal: Skyscanner canonicalises an airport to its city, so a run that asks for lhr gets a page whose origin is LOND. The run log says so when it happens.

Behaviour on partial results

A pair or place with no page of its own is logged and skipped, and the run continues with the next one. A page that exists but quotes nothing comes back as a normal row with an empty deals list and deals_count of 0, counted from what arrived rather than copied off the page.

A value that is a place name rather than a code stops the run before any request is made.

On destinationFares, the run log states how many distinct origins the deals actually came from. That matters: on one measured destination page, all sixteen deals departed from the same city. "From anywhere" means the page picks an origin, not that it surveys the world.

Frequently asked questions

Which mode should I pick? routeFares when you know both ends. destinationFares when you know only where you want to go — then take an origin code off any deal and run routeFares on that pair.

Why can't I type a city name? Because there is no place-name lookup on this site to call, and a made-up one would be right for a hundred cities and wrong for the rest. Codes are two to four characters and every result publishes them.

How current are the prices? As current as quoted_at on each leg says. They are cached quotes rather than a live search.

Why did a page take longer than its size suggests? Because this surface occasionally serves an empty shell instead of its fares and is asked again before the row is built. That recovery happens inside the request — still one request, still one charge — so a page that takes a while is not stuck.

Can I ask for a specific date? Not as an input. What arrives is the cheapest fare per month for twelve months and the exact dates on the quoted deals.

Is a Skyscanner account, cookie or API key required? No. No account, session cookie or key of any kind is supplied to the Actor or needed by it.

Skyscanner Route Scraper is the route mode on its own, for a run that only ever prices pairs.

Skyscanner Destination Scraper is the destination mode on its own, for a run that only ever asks where cheap flights land.