Skyscanner Flight Price Scraper API
Pricing
from $2.50 / 1,000 flight scrapeds
Skyscanner Flight Price Scraper API
Scrape Skyscanner-style flight prices by route and date. Get bestPrice, cheapestSource, provider quotes, airline, stops, segments, ratings, and booking links. Supports one-way and round-trip fares with optional Ryanair and Travelpayouts sources.
Pricing
from $2.50 / 1,000 flight scrapeds
Rating
0.0
(0)
Developer
Elliot Padfield
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Flight Price Scraper - Live Fares & Cheap Dates
Scrape Skyscanner-style flight fare prices by route and date and return clean, price-comparison rows with prices, bestPrice, cheapestSource, provider details, schedule fields, segment details, baggage notes, and booking links.
This Actor is built for fare-alert products, travel newsletters, route-price monitoring, OTA research, and internal travel-price audits. It uses Skyscanner's public web result API through Chrome TLS impersonation, not browser automation.
What it does
- Searches one-way or round-trip fares for a route and date.
- Returns one row per fare or merged itinerary.
- Supports Skyscanner web flight results with no API key.
- Returns provider/OTA quotes inside
pricesandproviderDetails. - Supports Ryanair live fare-calendar prices as an optional secondary source.
- Supports optional Travelpayouts cached fare rows when you provide
travelpayoutsToken. - Can return exact-date fares or cheap-date rows across the departure month.
- Outputs a competitor-friendly schema:
prices,bestPrice,cheapestSource,sourcesFound,segments,baggage, andlinks. - Saves results to the default Apify dataset for JSON, CSV, Excel, XML, API, Zapier, and Make.com exports.
Sources
| Source | Status | Notes |
|---|---|---|
| Skyscanner | Live, no token | Uses Skyscanner's public web result API through curl_cffi Chrome impersonation. Best default source. |
| Ryanair | Live, no token | Uses Ryanair's public fare-finder JSON endpoint. Useful secondary source for Ryanair-served routes. |
| Travelpayouts | Optional token | Uses cached fare-search prices from Travelpayouts/Aviasales. Requires your API token. |
Important: Skyscanner is protected by PerimeterX. Plain curl is blocked. This Actor uses curl_cffi to send Chrome-shaped TLS/HTTP requests. If Skyscanner changes its bot controls, the adapter may need updating.
Input
| Field | Type | Default | Description |
|---|---|---|---|
origin | string | STN | Origin airport IATA code. |
destination | string | DUB | Destination airport IATA code. |
departDate | string | 2026-07-15 | Departure date in YYYY-MM-DD format. |
returnDate | string | - | Optional return date. Omit for one-way. |
adults | integer | 1 | Adult passenger count. |
teens | integer | 0 | Teen passenger count. |
children | integer | 0 | Child passenger count. |
infants | integer | 0 | Infant passenger count. |
cabinClass | string | ECONOMY | ECONOMY, PREMIUM_ECONOMY, BUSINESS, or FIRST. Ryanair only supports economy. |
currency | string | GBP | Three-letter ISO currency code. |
sources | string[] | ["skyscanner"] | Sources to query: skyscanner, ryanair, travelpayouts. |
searchMode | string | exactDate | exactDate or departureMonth. |
maxFlights | integer | 50 | Maximum rows saved after merge and sorting. |
travelpayoutsToken | string | - | Required only when using travelpayouts. |
skyscannerMarket | string | UK | Skyscanner market header, such as UK or US. |
skyscannerLocale | string | en-GB | Skyscanner locale header, such as en-GB or en-US. |
skyscannerOriginEntityId | string | - | Optional override if Skyscanner route entity resolution fails. |
skyscannerDestinationEntityId | string | - | Optional override if Skyscanner route entity resolution fails. |
includeRawData | boolean | false | Attach raw source fragments for debugging. |
proxy | object | disabled | Optional Apify Proxy settings. |
Examples
One-way Skyscanner search
{"origin": "LAX","destination": "JFK","departDate": "2026-07-15","currency": "USD","skyscannerMarket": "US","skyscannerLocale": "en-US","sources": ["skyscanner"],"maxFlights": 20}
Skyscanner plus Ryanair
{"origin": "STN","destination": "DUB","departDate": "2026-07-15","currency": "GBP","sources": ["skyscanner", "ryanair"],"maxFlights": 50}
Add Travelpayouts cached fares
{"origin": "LAX","destination": "JFK","departDate": "2026-07-15","currency": "USD","sources": ["skyscanner", "travelpayouts"],"travelpayoutsToken": "YOUR_TOKEN","maxFlights": 50}
Output
Each dataset item is a flat JSON record:
{"prices": {"skyscanner:Kiwi.com": 19.26,"skyscanner:Expedia": 31.99,"skyscanner": 19.26},"bestPrice": 19.26,"cheapestSource": "skyscanner:Kiwi.com","sourcesFound": ["skyscanner"],"currency": "GBP","airline": "Ryanair","departTime": "2026-07-15T06:30:00","arriveTime": "2026-07-15T07:50:00","duration": "1h 20m","stops": 0,"from": {"airport": "STN"},"to": {"airport": "DUB"},"departDate": "2026-07-15","segments": [{"airline": "Ryanair","from": "STN","to": "DUB","departure": "2026-07-15T06:30:00","arrival": "2026-07-15T07:50:00","duration": "1h 20m","cabinClass": "ECONOMY"}],"baggage": {"includedPersonalItem": 1,"note": "Ryanair basic fare normally includes one small personal bag only. Ancillary baggage prices are not included."},"isSelfTransfer": false,"links": {"skyscanner": "https://www.skyscanner.net/transport_deeplink/..."},"providerDetails": [{"id": "skyp","name": "Kiwi.com","price": 19.26,"rating": 4,"feedbackCount": 11462}],"passengerCount": 1,"cabinClass": "ECONOMY","routeType": "oneWay","scrapedAt": "2026-06-01T00:00:00.000Z"}
Use cases
- Build Skyscanner-style fare comparison datasets.
- Build fare alerts for specific routes.
- Monitor provider/OTA price differences.
- Monitor Ryanair price changes by day as a secondary source.
- Feed a cheap-flight newsletter or deal bot.
- Compare direct airline prices against cached metasearch prices.
- Export fare history to a warehouse for route analytics.
- Audit whether a route is cheaper on exact dates or nearby dates.
Performance
The Skyscanner source usually performs one route-page request plus one web-unified-search request. Browser automation is not used, but Chrome TLS impersonation is required.
Recommended launch pricing:
- Actor start:
$0.00005 - Result event:
$0.0025per saved dataset row ($2.50 / 1,000 results)
Only successful writes to the default dataset should be charged. Failed source requests, warnings, and skipped unavailable fares should not be charged.
Limitations
- Skyscanner entity resolution works from the public route page for normal airport codes. If it fails, provide
skyscannerOriginEntityIdandskyscannerDestinationEntityId. - Ryanair fare-calendar rows are cheapest-per-day fares, not a complete list of every flight.
- Travelpayouts requires a token and returns cached fare-search data.
- Wizz Air and similar low-cost carriers use stronger anti-bot controls; add them as separate adapters once a stable replayable request is captured.
- This Actor does not book flights or guarantee final checkout price. Airlines can add bags, seats, payment fees, and regional surcharges at checkout.
API example
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~flight-prices-fares-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"origin": "LAX","destination": "JFK","departDate": "2026-07-15","currency": "USD","skyscannerMarket": "US","skyscannerLocale": "en-US","sources": ["skyscanner"],"maxFlights": 20}'