Skyscanner Flight Price Calendar
Pricing
from $2.00 / 1,000 results
Go to Apify Store
Sample output —
Sample output —
Sample output —
Skyscanner Flight Price Calendar
Get the cheapest daily flight prices between any two airports for the next 12 months in one structured dataset. Built for fare tracking, route discovery, price-alert apps, and travel content sites.
Skyscanner Scraper
Skyscanner pricing in three flavours — pick the granularity that fits your use case:
- Daily price calendar — one record per day for ~360 days on a chosen route.
- Cheapest-month calendar — one record per month for the next 12+ months on a chosen route.
- Anywhere inspiration — one record per destination reachable from your origin, with the cheapest fare to each.
Designed for fare-tracking dashboards, price-alert apps, route-pricing studies, travel content publishers, and anyone who wants Skyscanner pricing data at scale without managing scrapers or browsers.
What you can do with it
- Find the cheapest day to fly (
pricecalendar) — sort the dataset by price and you have your answer. - Spot the cheapest month at a glance (
cheapest_month) — quick seasonality view per route. - Discover where to go on a budget (
anywhere_inspiration) — "where can I fly from LHR for under £200?" answered in one run. - Build a fare alert — schedule the actor daily, diff against yesterday, notify on drops.
- Power a travel content site — embed price charts, "trending destinations" tiles, "cheapest month" badges.
- Train pricing models — historical daily snapshots are gold for forecasting.
Why use this actor
- One actor, three modes — switch with a single input field; same auth, same proxy, same dataset shape per mode.
- Stable structured JSON — fixed schema per mode, ready for spreadsheets, BI tools, or LLM pipelines.
- No Skyscanner account required — public data only.
- Automatic IP rotation — up to 5 fresh residential exits on rate-limit responses.
- City context included — every record optionally carries the origin / destination's full place metadata.
How it works
Pick a mode and the actor calls the matching Skyscanner endpoint:
| Mode | Endpoint type | Records per run |
|---|---|---|
pricecalendar | Daily price endpoint | ~360 (one per day) |
cheapest_month | Monthly price endpoint | 12–24 (one per month) |
anywhere_inspiration | Explore endpoint | Hundreds (one per destination) |
For each record the actor flattens the response into a row in the run's dataset, ready for download as JSON / CSV / Excel / XML.
Input
{"mode": "pricecalendar","origin": "LHR","destination": "JFK","market": "UK","locale": "en-GB","currency": "GBP","trip_type": "round_trip","include_place_info": true,"max_results": 365,"proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | yes | pricecalendar (default), cheapest_month, or anywhere_inspiration |
origin | string | yes | 3-letter IATA code for the departure airport |
destination | string | for daily / monthly | 3-letter IATA code. Required for pricecalendar and cheapest_month; ignored for anywhere_inspiration |
market | string | no | Two-letter Skyscanner market code (default UK) |
locale | string | no | Language tag for the response (default en-GB) |
currency | string | no | ISO 4217 currency for prices (default GBP) |
trip_type | string | no | round_trip (default) or one_way — used by cheapest_month only |
include_place_info | boolean | no | When true, attaches origin / destination city/country metadata to every record |
max_results | integer | no | Hard cap on records pushed to the dataset |
proxy | object | no | Apify proxy configuration; residential recommended |
Sample output — pricecalendar (daily)
{"mode": "pricecalendar","route_origin": "LHR","route_destination": "JFK","market": "UK","currency": "GBP","date": "2026-05-14","price": 341.89,"price_tier": "medium","price_tier_label": "££","deeplink": "https://www.skyscanner.net/transport/flights/lhr/jfk/260514/?adults=1&cabinclass=economy¤cy=GBP&market=UK","origin_place": {"iata": "LOND","name": "London","city": "London","country": "United Kingdom","location": "51.5041174139,-0.0943465343"},"destination_place": {"iata": "NYCA","name": "New York","city": "New York","country": "United States","location": "40.6940959901,-73.9282670243"}}
Sample output — cheapest_month
{"mode": "cheapest_month","route_origin": "LHR","route_destination": "JFK","market": "UK","currency": "GBP","year": 2026,"month": 7,"month_iso": "2026-07","lowest_price": 312.0,"average_price": 487.5,"price_tier": "low","price_tier_label": "£","deeplink": "https://www.skyscanner.net/transport/flights/lhr/jfk/2607/?adults=1&cabinclass=economy¤cy=GBP&market=UK"}
Sample output — anywhere_inspiration
{"mode": "anywhere_inspiration","origin": "LHR","destination": "BCNA","destination_name": "Barcelona","destination_city": "Barcelona","destination_country": "Spain","market": "UK","currency": "GBP","lowest_price": 41.99,"depart_date": "2026-06-12","return_date": "2026-06-19","deeplink": "https://www.skyscanner.net/transport/flights/lhr/bcna/260612/?adults=1&cabinclass=economy¤cy=GBP&market=UK","origin_place": {"iata": "LOND","name": "London","city": "London","country": "United Kingdom"}}
Output schemas
pricecalendar
| Field | Type | Description |
|---|---|---|
mode | string | pricecalendar |
route_origin / route_destination | string | IATA codes from your input |
date | string | Travel date YYYY-MM-DD |
price | number | Cheapest known one-way price for that date |
price_tier | string | low / medium / high |
price_tier_label | string | Skyscanner's visual label (£ / ££ / £££) |
deeplink | string | Direct Skyscanner search URL |
origin_place / destination_place | object | City / country / coordinates when include_place_info |
cheapest_month
| Field | Type | Description |
|---|---|---|
mode | string | cheapest_month |
year / month | integers | Calendar period |
month_iso | string | YYYY-MM |
lowest_price | number | Cheapest fare seen in that month |
average_price | number | Average for the month when supplied |
price_tier | string | low / medium / high |
deeplink | string | Direct Skyscanner search URL for that month |
anywhere_inspiration
| Field | Type | Description |
|---|---|---|
mode | string | anywhere_inspiration |
origin | string | Origin IATA from your input |
destination | string | Destination sky-id |
destination_name / destination_city / destination_country | strings | Destination identity |
lowest_price | number | Cheapest fare to that destination |
depart_date / return_date | strings | Suggested travel dates |
deeplink | string | Direct Skyscanner search URL |
Tips
- Cheapest week in a year:
pricecalendarmode, sort byprice, take the top 7. - Cheapest month of the year:
cheapest_monthmode, sort bylowest_price, take the top 1. - Budget travel discovery:
anywhere_inspirationmode with your home airport — filter the dataset bylowest_price <= 200. - Compare markets: the same route can be substantially cheaper in one market than another (try
market: "ID"for Indonesia,market: "DE"for Germany). - Schedule daily runs: capture snapshots over time and you have a custom historical price database.