Skyscanner Flight Scraper API 💰$1/1k — Fares & Multi-City
Pricing
from $1.00 / 1,000 results
Skyscanner Flight Scraper API 💰$1/1k — Fares & Multi-City
💰$1 per 1000 results, unlimited extraction. Skyscanner Flight Scraper API — itineraries, fares, schedules & routes by flights URL or search filters. One-way, round-trip & multi-city. 180+ fields per itinerary: legs, segments, carriers, stops, layovers, Best/Cheapest/Fastest tags. Pure HTTP.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(1)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
81
Total users
23
Monthly active users
5 days ago
Last modified
Categories
Share
Skyscanner Flight Scraper API — Itineraries, Fares & Multi-City
Scrape flight itineraries, fares, schedules and routes from Skyscanner — by URL or search filters — at $1 per 1,000 results. Paste any /transport/flights/… link, or just give an origin, destination and dates. One-way, round-trip and multi-city all supported. Pure HTTP — no browser, no CAPTCHA solver, no third-party bypass service. Output is CSV-ready flat rows or nested itinerary JSON, straight into your Apify dataset.
Why Use This Scraper?
- $1 / 1,000 results — the cheapest dedicated Skyscanner flight feed on the Apify Store, with no monthly rental.
- Two ways to search — paste a Skyscanner flights URL or fill route filters. No need to construct API payloads yourself.
- Full trip coverage — one-way, round-trip, and true multi-city / open-jaw (legs 2 and 3).
- Deep itinerary data — 180+ columns per itinerary: per-leg origin/destination, segments, carriers + logos, stops, layovers, duration, departure/arrival timestamps, and price (raw + formatted).
- Best / Cheapest / Fastest — itineraries carry Skyscanner's own tags and score so you can rank instantly.
- Global — 200+ markets, 150+ currencies, and BCP-47 locales. Scrape
skyscanner.net,skyscanner.com.tw, or any regional host. - Spreadsheet or JSON — flatten to dashed columns (
price-raw,legs-0-origin-city…) for Excel/Sheets, or keep nested objects for pipelines.
Overview
This Actor calls Skyscanner's unified-search (mobile) API to harvest structured flight itineraries for a route, date range and passenger mix. It resolves place identifiers via autosuggest, builds and posts the unified-search payload, polls the session until results are complete, merges the poll snapshots, and deduplicates itineraries by identity.
Output is one row per itinerary (not per flight or per segment). Each itinerary nests its legs, and each leg nests its segments and carriers. With flattenOutput on (default), all of that is dashed into spreadsheet columns; with it off you get nested JSON objects. There's also an aggregated mode that returns a single search object with Best / Cheapest / Fastest / Direct buckets plus carrier/airport lookup maps and summary stats.
Supported Inputs
| Input | What it does |
|---|---|
| Skyscanner flights URL | Paste a full …/transport/flights/{origin}/{destination}/{YYMMDD}/{YYMMDD?}/ link. Route and dates are read from the URL. |
| Search filters | Give departureAirport, arrivalAirport, departureDate (+ optional returnDate). City names or IATA codes both work. |
| Multi-city | Set multiCityLeg2Destination + multiCityLeg2Date (and optionally leg 3) for open-jaw itineraries. |
Example URL: https://www.skyscanner.net/transport/flights/fra/icn/260816/261006/
Not supported: hotel or car-hire search (this Actor is flights-only), seat maps, live booking/checkout, and fare-rule PDFs.
Use Cases
| Audience | What they do with it |
|---|---|
| Travel aggregators / OTAs | Power a price-comparison page or fare table with multi-date, multi-route Skyscanner data. |
| Fare-alert products | Track a route + date daily and notify users when the cheapest itinerary drops below a threshold. |
| Revenue / pricing teams | Snapshot competitor fares and price bands across many city pairs over time. |
| Data & ML pipelines | Ingest structured fare data daily to model and predict price movement. |
| Travel agencies & consultants | Export structured itinerary sets for clients on demand or on a schedule. |
| Researchers | Build open itinerary datasets for connectivity, pricing or route analysis. |
How It Works

- Your input — a Skyscanner flights URL, or route filters (origin, destination, dates, passengers, cabin, multi-city legs, market/currency/locale).
- Unified search — the Actor resolves places via autosuggest, POSTs the unified-search payload, polls the session to completion, merges snapshots, dedupes by itinerary ID, then applies your sort and stop/result filters.
- Your dataset — flat rows or nested JSON with price, legs, segments, carriers, times, durations, layovers and Best/Cheapest/Fastest tags — CSV-ready or JSON.
Input Configuration
| Field | Type | Required | Notes |
|---|---|---|---|
startUrls | array | ✅ | Skyscanner flights URLs (URL mode) or the homepage (filter mode). |
departureAirport | string | — | City or IATA code. Ignored when a full flights URL is given. |
arrivalAirport | string | — | City or IATA code. Ignored when a full flights URL is given. |
departureDate | string | — | YYYY-MM-DD or YYMMDD. Required for filter mode. |
returnDate | string | — | Omit for one-way. |
cabinClass | enum | — | economy · premium_economy · business · first. |
adults | integer | — | 12+ years. Minimum 1. |
children | integer | — | Default 0. |
infants | integer | — | On-lap infants. Default 0. |
skyscannerMarket | enum | — | Region code (e.g. US, GB, DE). 200+ supported. |
skyscannerCurrency | enum | — | ISO 4217 (e.g. USD, EUR, GBP). 150+ supported. |
skyscannerLocale | string | — | BCP-47 tag (e.g. en-US, de-DE). |
resultSort | enum | — | default · score · cheapest · fastest · departure. |
resultLimit | integer | — | Keep at most N itineraries after filters/sort. |
filterNonStop / filterOneStop / filterTwoPlusStops | boolean | — | Stop filters combine with OR. |
multiCityLeg2Destination / multiCityLeg2Date | string | — | Open-jaw leg 2. |
multiCityLeg3Destination / multiCityLeg3Date | string | — | Open-jaw leg 3. |
flattenOutput | boolean | — | true = dashed spreadsheet columns; false = nested JSON. Default true. |
maxItems | integer | — | Crawler item cap. Default 10000. |
proxy | object | — | Defaults to Apify Residential. |
Example input
{"startUrls": [{ "url": "https://www.skyscanner.net/transport/flights/fra/icn/260816/261006/" }],"cabinClass": "economy","adults": 1,"skyscannerMarket": "US","skyscannerCurrency": "EUR","resultSort": "cheapest","flattenOutput": true,"maxItems": 100,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Filter mode (no URL):
{"startUrls": [ { "url": "https://www.skyscanner.net/" } ],"departureAirport": "Atlanta","arrivalAirport": "Istanbul","departureDate": "2026-06-15","returnDate": "2026-06-22","adults": 2,"cabinClass": "economy"}
Output Overview
One row per itinerary. Each itinerary contains one or more legs (outbound, return, plus extra legs for multi-city); each leg contains segments and carriers. In flattened mode these nest into dashed column names like legs-0-origin-city and legs-0-carriers-marketing-0-name. A full round-trip itinerary is ~180 columns.
Output Samples
Flattened row (abbreviated — real rows carry ~182 columns):
{"id": "11616-2608161850--31731-0-12409-2608171400|17075-2610062250-...","price-raw": 1326.04,"price-formatted": "1.327 €","price-pricingOptionId": "_F6klu03slCM","legs-0-origin-displayCode": "FRA","legs-0-origin-city": "Frankfurt am Main","legs-0-destination-displayCode": "ICN","legs-0-destination-city": "Seoul","legs-0-durationInMinutes": 730,"legs-0-stopCount": 0,"legs-0-departure": "2026-08-16T18:50:00","legs-0-arrival": "2026-08-17T14:00:00","legs-0-carriers-marketing-0-name": "T'way Air","legs-0-carriers-marketing-0-logoUrl": "https://logos.skyscnr.com/images/airlines/favicon/9R.png","tags-0": "second_shortest","score": 0.998// …legs-1-* for the return leg, segment-level detail, etc.}
Nested mode (flattenOutput: false) returns the same data as objects: price: { raw, formatted, pricingOptionId }, legs: [ { origin, destination, carriers, segments, … } ].
Key Output Fields
Price
price-raw— numeric fare in the requested currencyprice-formatted— localized display stringprice-pricingOptionId— Skyscanner pricing-option token
Itinerary
id— stable itinerary identifier (used for dedup)score— Skyscanner's ranking score (higher = better)tags-0,tags-1—cheapest,fastest,shortest, etc.
Legs (legs-{n}-…)
origin-displayCode/origin-city/destination-displayCode/destination-citydeparture/arrival— ISO timestampsdurationInMinutes,stopCount,timeDeltaInDays
Carriers (legs-{n}-carriers-marketing-{m}-…)
name,alternateId,logoUrl
Segments (legs-{n}-segments-{m}-…)
- per-segment origin/destination, flight number, operating carrier
FAQ
Is this an official Skyscanner API? No. It's an independent scraper that reads publicly available Skyscanner flight search results. It is not affiliated with or endorsed by Skyscanner.
URL mode or filter mode — which should I use?
Use a /transport/flights/… URL when you already have one (route + dates come from it). Use filters when you're generating searches programmatically across many routes/dates.
Does it do multi-city?
Yes — set leg-2 (and optionally leg-3) destination + date. When set, returnDate is ignored.
Can I get prices in a specific currency / market?
Yes — skyscannerCurrency (ISO 4217), skyscannerMarket (region), and skyscannerLocale (BCP-47). If unset they're derived from the URL host/params, falling back to USD / US / en-US.
Flat rows or JSON?
flattenOutput: true (default) gives dashed spreadsheet columns ideal for CSV/Excel. Set it false for nested JSON in data pipelines.
Why do some itineraries have multiple legs and segments? A round-trip has 2 legs; multi-city has 3+. A leg with a connection has multiple segments. The scraper preserves the full structure.
Do I need my own proxy? No — it defaults to Apify Residential. You can supply your own proxy config if you prefer.
How many results can I get?
Skyscanner returns a finite result set per search; maxItems and resultLimit cap how many you keep. Run many searches (route × date) to build a larger dataset.
Support
Found a bug or need a field that isn't exposed? Open an issue on the Actor's Issues tab on Apify, or contact the developer through the Apify Store profile. Include your input JSON and the run ID so it can be reproduced quickly.
Additional Services
Need a custom flight or travel data pipeline — a different source, a specific schema, scheduled delivery to S3/BigQuery, or fare monitoring with alerts? Custom scraping and data-engineering work is available; reach out via the Apify Store profile.
Explore More Scrapers
- Google Flights Scraper —
memo23/google-flights-scraper— fares, itineraries, booking options, multi-city. - Expedia.com & Hotels.com Scraper —
memo23/expedia-scraper - Booking, Trustpilot, and 140+ other scrapers — see the developer's Apify Store profile.
⚠️ Disclaimer
This Actor accesses publicly available flight search data on Skyscanner for legitimate research, market-intelligence and business-analysis purposes. It is not affiliated with, endorsed by, or sponsored by Skyscanner Ltd. "Skyscanner" is a trademark of its respective owner; it is used here only to describe the data source. Use of this Actor must comply with Skyscanner's Terms of Service and all applicable laws, including data-protection regulations (GDPR, CCPA, etc.). The Actor's authors are not responsible for any misuse. Users must:
- Respect rate limits and avoid overloading Skyscanner's infrastructure
- Not use scraped data to violate user privacy or terms
- Use the data in compliance with applicable jurisdictions
- Not republish scraped content in violation of copyright
We do not store any scraped data; the Actor returns it directly to your Apify dataset for your authorized use.
SEO Keywords
skyscanner scraper, skyscanner flight scraper, skyscanner api, skyscanner api alternative, flight price scraper, airfare scraper, flight data extraction, flight itinerary scraper, multi-city flight scraper, round-trip flight scraper, cheapest flight finder, flight price monitoring, fare alert data, travel data api, airline schedule scraper, flight comparison data, skyscanner json export, skyscanner csv export, flight deals scraper, apify flight scraper, travel aggregator data, flight price tracker, airfare monitoring api, flight route scraper