Skyscanner Flight Scraper API ✈️ avatar

Skyscanner Flight Scraper API ✈️

Pricing

from $0.99 / 1,000 results

Go to Apify Store
Skyscanner Flight Scraper API ✈️

Skyscanner Flight Scraper API ✈️

Scrape Skyscanner flight data at scale with this fast, reliable API. Extract flight prices, airlines, routes, schedules, departure and arrival times, stops, and travel options for market research, fare tracking, price comparison, analytics, and travel apps.

Pricing

from $0.99 / 1,000 results

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

What does Skyscanner Flight Scraper API do?

Skyscanner Flight Scraper collects live flight itineraries for one-way and round-trip searches. Provide a public Skyscanner flight URL, or enter the route and dates separately, and receive structured prices, airlines, flight numbers, stops, durations, airports, schedules, and booking links.

The Actor is designed for airfare monitoring, route research, travel comparison products, and automated flight-data workflows. It keeps loading unique itineraries until it saves the number requested in results_wanted, reaches the end of the available search, or reaches the max_pages safety limit.

Why use Skyscanner Flight Scraper?

  • Collect the requested result count - The Actor continues through search updates and deduplicates itineraries until it reaches results_wanted or the source has no more matching flights.
  • Save progress during the run - New flights are written to the dataset in batches, so completed work is preserved if a later request encounters a temporary problem.
  • Use flexible route inputs - Start with a full Skyscanner URL, an airport code, a city name, or a Skyscanner route code.
  • Compare complete itineraries - Inspect outbound and return legs, segments, operating carriers, marketing carriers, stop counts, and total journey duration.
  • Filter before export - Keep direct flights only or apply a maximum stop count.
  • Automate recurring searches - Schedule runs, connect webhooks, export datasets, or retrieve results programmatically through Apify.

What flight data can you extract from Skyscanner?

FieldTypeDescription
itineraryIdStringUnique identifier for the flight itinerary
bucketStringResult group such as Best, Cheapest, Fastest, or Direct when supplied
priceObjectRaw amount, formatted fare, and currency when available
bookingUrlStringBooking or fare-selection link when published for the itinerary
scoreNumberSearch ranking score when available
tagsArrayLabels assigned to the itinerary when available
stopCountIntegerTotal number of stops across all legs
totalDurationInMinutesIntegerCombined duration of the complete itinerary
airlinesArrayMarketing and operating airline details
flightNumbersArrayFlight numbers found across all segments
outboundObjectOutbound airports, schedule, duration, stops, carriers, and segments
inboundObjectReturn-leg details for round-trip searches
legsArrayAll itinerary legs in travel order
sourcePageIntegerSearch update in which the itinerary was first saved
sourceUrlStringSkyscanner search URL associated with the request
originStringRequested origin value
destinationStringRequested destination value
outboundDateStringDeparture date in YYYY-MM-DD format
inboundDateStringReturn date when supplied
adultsIntegerNumber of adult passengers
childrenAgesArrayChild ages included in the search when supplied
cabinClassStringRequested cabin class
marketStringMarket used for localization
localeStringLocale used for airport names and labels
currencyStringRequested three-letter fare currency
scrapedAtStringUTC timestamp for when the itinerary was saved

Null values, empty strings, empty arrays, and empty objects are removed, so dataset items stay compact across JSON, CSV, Excel, and XML exports.

How to use Skyscanner Flight Scraper

  1. Open the Actor in Apify Console.
  2. Paste a public Skyscanner flight-search URL, or enter the origin, destination, and outbound date.
  3. Add an inbound date for a round trip, then choose passengers, cabin class, currency, and optional stop filters.
  4. Set results_wanted to the maximum number of unique itineraries to save.
  5. Run the Actor and review the default dataset.
  6. Download the data or connect the run to your preferred integration.

Input Parameters

ParameterTypeRequiredDefaultDescription
urlStringConditionalExample New York to Dubai URLPublic Skyscanner flight URL containing the route and dates
originStringConditional-Origin city, airport, IATA code, or Skyscanner route code; required when url is empty
destinationStringConditional-Destination city, airport, IATA code, or Skyscanner route code; required when url is empty
outboundDateStringConditional-Departure date in YYYY-MM-DD format; required when the URL does not contain it
inboundDateStringNo-Return date in YYYY-MM-DD format; omit it for a one-way search
adultsIntegerNo1Adult passengers from 1 to 8
cabinClassStringNoeconomyeconomy, premium_economy, business, or first
localeStringNoen-USLocale for names and labels
currencyStringNoUSDThree-letter fare currency
preferDirectsBooleanNofalseKeep only itineraries with no stops
maxStopsIntegerNo-Keep itineraries at or below this total stop count
results_wantedIntegerNo20Maximum unique itineraries to save, up to 5,000
max_pagesIntegerNo20Maximum search-update responses to process, up to 100
proxyConfigurationObjectNoResidential Apify ProxyProxy settings for reliable repeated and production runs

Provide either url or the combination of origin, destination, and outboundDate. Explicit route and date fields take priority when they are supplied alongside a URL.

Usage Examples

Collect 100 flights from a Skyscanner URL

Use a complete search URL to reproduce its route, dates, passengers, and cabin class:

{
"url": "https://www.skyscanner.com/transport/flights/nyca/dxba/260825/260901/?adultsv2=1&cabinclass=economy&rtn=1",
"results_wanted": 100,
"max_pages": 20,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Search by airport codes and dates

Create a round-trip search without copying a URL:

{
"origin": "JFK",
"destination": "DXB",
"outboundDate": "2026-08-25",
"inboundDate": "2026-09-01",
"adults": 1,
"cabinClass": "economy",
"currency": "USD",
"results_wanted": 50
}

Collect direct one-way flights

Omit inboundDate and enable the direct-flight filter:

{
"origin": "LON",
"destination": "PAR",
"outboundDate": "2026-09-15",
"preferDirects": true,
"maxStops": 0,
"results_wanted": 25
}

Sample Output

{
"itineraryId": "12712-2608251120--32348-0-11182-2608260845|11182-2609010955--32348-1-11442-2609012307",
"price": {
"raw": 1152.92,
"formatted": "$1,153"
},
"score": 0.699217,
"stopCount": 1,
"totalDurationInMinutes": 2077,
"airlines": [
{ "id": -32348, "name": "Emirates" },
{ "id": -31722, "name": "United" }
],
"flightNumbers": ["204", "235", "6247"],
"outbound": {
"origin": { "displayCode": "JFK", "name": "New York John F. Kennedy" },
"destination": { "displayCode": "DXB", "name": "Dubai" },
"departure": "2026-08-25T11:20:00",
"arrival": "2026-08-26T08:45:00",
"durationInMinutes": 805,
"stopCount": 0
},
"inbound": {
"origin": { "displayCode": "DXB", "name": "Dubai" },
"destination": { "displayCode": "EWR", "name": "New York Newark" },
"departure": "2026-09-01T09:55:00",
"arrival": "2026-09-01T23:07:00",
"durationInMinutes": 1272,
"stopCount": 1
},
"sourcePage": 1,
"origin": "nyca",
"destination": "dxba",
"outboundDate": "2026-08-25",
"inboundDate": "2026-09-01",
"adults": 1,
"cabinClass": "economy",
"market": "US",
"locale": "en-US",
"currency": "USD",
"scrapedAt": "2026-08-20T14:02:29.225Z"
}

Tips for Best Results

  • Use a complete Skyscanner URL when you need to reproduce a specific public search.
  • Use an airport code for one airport, or a city code or city name to include nearby airports.
  • Set results_wanted to the number you actually need. The Actor stops as soon as that count is saved.
  • Increase max_pages when requesting an unusually large dataset or using restrictive stop filters.
  • Keep Residential Proxy enabled for scheduled runs and repeated route searches.
  • Flight fares and availability change frequently. Use scrapedAt to compare snapshots over time.

Integrations

  • Google Sheets - Send flight results to a spreadsheet for comparison and reporting.
  • Webhooks - Notify another service when a route search finishes.
  • Make and Zapier - Build fare alerts and no-code travel workflows.
  • Apify API - Start runs and retrieve datasets from your own application.
  • CSV, Excel, JSON, and XML - Download results in the format used by your analysis tools.
  • Schedules - Refresh the same route daily, weekly, or at another interval.

Frequently Asked Questions

Does results_wanted control how many flights are saved?

Yes. The Actor keeps collecting unique matching itineraries until it saves that number or the search is exhausted. It never intentionally saves more than the requested limit.

Why might a run return fewer flights than requested?

The route may publish fewer unique itineraries, a direct-flight or stop filter may remove results, or max_pages may stop an unusually large search. The final log reports the saved count and stop reason.

Can I collect one-way flights?

Yes. Omit inboundDate, or use a Skyscanner URL containing only the outbound travel date.

Can I export Skyscanner flight data to CSV or Excel?

Yes. Apify datasets support CSV, Excel, JSON, XML, and other export formats.

Can I schedule airfare monitoring?

Yes. Save the input as an Apify task and schedule repeat runs to build price-history snapshots or trigger fare alerts.

What happens if a request is temporarily blocked?

The Actor retries with bounded backoff and rotates the configured proxy session. Any flight batches saved before a later failure remain in the dataset.

Collecting public data can be lawful, but requirements vary by jurisdiction and use case. You are responsible for complying with applicable laws, Skyscanner terms, privacy obligations, and contractual restrictions.

Support

For bug reports, route-specific issues, feature requests, or custom flight-data work, use the Issues tab on the Actor page or contact the developer through Apify.

This Actor is intended for legitimate collection of publicly available flight information. Users are responsible for using the data responsibly and complying with applicable laws, website terms, privacy rules, rate limits, and contractual obligations.