skyscanner.com APIskyscanner.com ↗
Search Skyscanner flights, airports, and price calendars via API. Get itineraries, booking agent prices, daily/monthly fare grids, and place IDs.
curl -X GET 'https://api.parse.bot/scraper/f1fc6c1e-f28b-4354-8ec8-eed3deed11d3/search_places?query=New+York' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for airports and cities by name. Returns place IDs (sky IDs and geo IDs) needed for other endpoints. Use this to resolve city/airport names to IDs before searching flights or prices.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search query (city name, airport name, or IATA code) |
| locale | string | Locale for results |
| market | string | Market/country code |
{
"type": "object",
"fields": {
"query": "string — the search query used",
"total": "integer — number of places returned",
"locale": "string — locale used",
"market": "string — market used",
"places": "array of place objects with place_id, name, iata_code, city_id, city_name, country_id, country_name, geo_id, geo_container_id, location, display_name"
},
"sample": {
"data": {
"query": "New York",
"total": 10,
"locale": "en-US",
"market": "US",
"places": [
{
"name": "New York",
"geo_id": "27537542",
"city_id": "NYCA",
"location": "40.6940959901,-73.9282670243",
"place_id": "NYCA",
"city_name": "New York",
"iata_code": "NYC",
"country_id": "US",
"country_name": "United States",
"display_name": "New York|New York|United States",
"geo_container_id": "27537542"
}
]
},
"status": "success"
}
}About the skyscanner.com API
The Skyscanner API provides 4 endpoints covering flight search, airport/city lookup, and fare calendars. The search_flights endpoint returns full itineraries with per-leg segment data, carrier details, pricing options from multiple booking agents, and direct booking URLs. Companion endpoints deliver daily cheapest prices across ~12 months and monthly fare summaries — giving developers the core building blocks for flight discovery and price-tracking applications.
Place Resolution and Airport Search
Before querying flights or price calendars, use search_places to resolve city names, airport names, or IATA codes into Skyscanner-specific identifiers. The endpoint returns place_id (sky ID), geo_id, geo_container_id, iata_code, and full city_name / country_name fields. Two different ID formats matter downstream: sky IDs (e.g., NYCA, LOND) feed into the daily price calendar, while geo IDs feed into the monthly price calendar.
Flight Search
search_flights accepts a date, origin, destination, adults, cabin_class (ECONOMY, PREMIUM_ECONOMY, BUSINESS, or FIRST), and currency. Results include an array of flights objects, each carrying a price, formatted_price, score, tags, is_self_transfer flag, and a legs array with full segment data. The pricing_options field on each flight lists individual booking agents with their prices and booking URLs. The filter_stats response object summarizes total_results, min_duration, max_duration, available airports, carriers, and stop_prices — useful for building filter UIs. Round-trip searches are supported via the return_date field.
Price Calendars
get_price_calendar_daily returns a prices array of {day, group, price} objects covering roughly the next 12 months for a given route. Each entry references a price_groups tier (e.g., cheap, medium, expensive) defined in the same response. This endpoint uses sky IDs for origin and destination.
get_price_calendar_monthly returns monthly_prices as {year, month, currency, price, price_category} objects. It accepts origin_id and destination_id as geo IDs from search_places, and supports trip_type (one_way or return) and a direct_only boolean filter.
- Build a fare alert system using daily price calendar data to notify users when prices on a route drop below a threshold
- Populate a flight search UI with itineraries, carrier names, and per-agent booking URLs from search_flights
- Render a month-by-month fare grid for flexible travelers using get_price_calendar_monthly price_category labels
- Autocomplete airport and city inputs by querying search_places with partial name or IATA code strings
- Compare cheapest one-way vs. round-trip fares on a route using the trip_type parameter in get_price_calendar_monthly
- Track price trends across cabin classes by running search_flights repeatedly with different cabin_class values
- Resolve geo IDs for a list of cities in bulk via search_places before feeding them into price calendar queries
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Skyscanner have an official developer API?+
What does search_flights return beyond a price?+
price and formatted_price, a score, a tags array, an is_self_transfer boolean, and a legs array with per-segment carrier and routing details. The pricing_options field lists individual booking agents with their own prices and booking URLs. The top-level filter_stats object also provides aggregate data like min_duration, max_duration, carriers, and stop-count pricing.Why do the daily and monthly calendar endpoints use different ID formats?+
get_price_calendar_daily uses Skyscanner sky IDs (e.g., NYCA, LOND) which are returned as place_id by search_places. get_price_calendar_monthly uses geo IDs, returned as geo_id by the same endpoint. Running search_places first gives you both values in a single response, so you can feed the correct ID to each calendar endpoint.Does the API return hotel, car rental, or multi-city flight data?+
How fresh are the price calendar results?+
get_price_calendar_daily covers approximately the next 12 months and reflects prices available at query time. Prices on Skyscanner are dynamic and can change frequently, so a cached or stored result may not reflect the current fare. Querying the endpoint fresh for time-sensitive use cases is advisable.