Skyscanner Flight Scraper API ✈️
Pricing
from $0.99 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Categories
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_wantedor 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?
| Field | Type | Description |
|---|---|---|
itineraryId | String | Unique identifier for the flight itinerary |
bucket | String | Result group such as Best, Cheapest, Fastest, or Direct when supplied |
price | Object | Raw amount, formatted fare, and currency when available |
bookingUrl | String | Booking or fare-selection link when published for the itinerary |
score | Number | Search ranking score when available |
tags | Array | Labels assigned to the itinerary when available |
stopCount | Integer | Total number of stops across all legs |
totalDurationInMinutes | Integer | Combined duration of the complete itinerary |
airlines | Array | Marketing and operating airline details |
flightNumbers | Array | Flight numbers found across all segments |
outbound | Object | Outbound airports, schedule, duration, stops, carriers, and segments |
inbound | Object | Return-leg details for round-trip searches |
legs | Array | All itinerary legs in travel order |
sourcePage | Integer | Search update in which the itinerary was first saved |
sourceUrl | String | Skyscanner search URL associated with the request |
origin | String | Requested origin value |
destination | String | Requested destination value |
outboundDate | String | Departure date in YYYY-MM-DD format |
inboundDate | String | Return date when supplied |
adults | Integer | Number of adult passengers |
childrenAges | Array | Child ages included in the search when supplied |
cabinClass | String | Requested cabin class |
market | String | Market used for localization |
locale | String | Locale used for airport names and labels |
currency | String | Requested three-letter fare currency |
scrapedAt | String | UTC 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
- Open the Actor in Apify Console.
- Paste a public Skyscanner flight-search URL, or enter the origin, destination, and outbound date.
- Add an inbound date for a round trip, then choose passengers, cabin class, currency, and optional stop filters.
- Set
results_wantedto the maximum number of unique itineraries to save. - Run the Actor and review the default dataset.
- Download the data or connect the run to your preferred integration.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
url | String | Conditional | Example New York to Dubai URL | Public Skyscanner flight URL containing the route and dates |
origin | String | Conditional | - | Origin city, airport, IATA code, or Skyscanner route code; required when url is empty |
destination | String | Conditional | - | Destination city, airport, IATA code, or Skyscanner route code; required when url is empty |
outboundDate | String | Conditional | - | Departure date in YYYY-MM-DD format; required when the URL does not contain it |
inboundDate | String | No | - | Return date in YYYY-MM-DD format; omit it for a one-way search |
adults | Integer | No | 1 | Adult passengers from 1 to 8 |
cabinClass | String | No | economy | economy, premium_economy, business, or first |
locale | String | No | en-US | Locale for names and labels |
currency | String | No | USD | Three-letter fare currency |
preferDirects | Boolean | No | false | Keep only itineraries with no stops |
maxStops | Integer | No | - | Keep itineraries at or below this total stop count |
results_wanted | Integer | No | 20 | Maximum unique itineraries to save, up to 5,000 |
max_pages | Integer | No | 20 | Maximum search-update responses to process, up to 100 |
proxyConfiguration | Object | No | Residential Apify Proxy | Proxy 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_wantedto the number you actually need. The Actor stops as soon as that count is saved. - Increase
max_pageswhen 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
scrapedAtto 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.
Is it legal to collect Skyscanner flight data?
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.
Related Actors
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.
Legal Notice
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.