What can you build with the API?
The Flights Indicative Prices API allows for more flexibility than the Flights Live Prices API. You can access the quotes based on the aggregation categories we support.
We support two aggregation categories: date aggregations and route aggregations. Each of them have some sub-categories.
Date aggregations
Date aggregations are used to allow the comparison of prices when the traveller doesn't know or is flexible on which dates they want to travel in.
Per date (at the day level)
We use this aggregation for allowing our travellers to compare the prices of a route over a whole month. We surface the data on a calendar.
👉 Here is a sample in Skyscanner.
Query Requirements
📦 The dateTimeGroupingType
must be set to DATE_TIME_GROUPING_TYPE_BY_DATE
.
📆 Each query leg must have a dateRange
with the same date used in both startDate
and endDate
. You can only request this data one full month at a time.
📌 The origin
-> destination
combinations supported are:
Origin \ Destination | Airport | City | Country | Anywhere (by country) |
---|---|---|---|---|
Airport | ✅ | ✅ | ❌ | ❌ |
City | ✅ | ✅ | ❌ | ❌ |
Country | ❌ | ❌ | ❌ | ❌ |
Using the response
You will generally get 2 quotes for each day of the month specified in the date range - one for direct flights and one for indirect flights.
You can use the content.groupingOptions.byDate
groupings to represent the quotes on a calendar.
You will have one group per date.
Example queries
London to Paris - One way flights
💡 Make sure your dates are in the future when doing your own requests
{
"query": {
"currency": "GBP",
"locale": "en-GB",
"market": "UK",
"dateTimeGroupingType": "DATE_TIME_GROUPING_TYPE_BY_DATE",
"queryLegs": [
{
"originPlace": {
"queryPlace": {
// Entity ID for London
"entityId": "27544008"
}
},
"destinationPlace": {
"queryPlace": {
// Entity ID for Paris
"entityId": "27539733"
}
},
// The end date and start date should always be the same. This would give you quotes for
// November 2024.
"date_range": {
"startDate": {
"year": 2024,
"month": 11
},
"endDate": {
"year": 2024,
"month": 11
}
}
}
]
}
}
London to Paris - Return flights
💡 Make sure your dates are in the future when doing your own requests
{
"query": {
"currency": "GBP",
"locale": "en-GB",
"market": "UK",
"dateTimeGroupingType": "DATE_TIME_GROUPING_TYPE_BY_DATE",
"queryLegs": [
{
"originPlace": {
"queryPlace": {
// Entity ID for London
"entityId": "27544008"
}
},
"destinationPlace": {
"queryPlace": {
// Entity ID for Paris
"entityId": "27539733"
}
},
// The end date and start date should always be the same in a leg. However, you can have a
// different month for the return leg. This would give you flights with the outbound date in
// November 2024 and inbound date in December 2024.
"date_range": {
"startDate": {
"year": 2024,
"month": 11
},
"endDate": {
"year": 2024,
"month": 11
}
}
},
{
"originPlace": {
"queryPlace": {
// Entity ID for Paris
"entityId": "27539733"
}
},
"destinationPlace": {
"queryPlace": {
// Entity ID for London
"entityId": "27544008"
}
},
"date_range": {
"startDate": {
"year": 2024,
"month": 12
},
"endDate": {
"year": 2024,
"month": 12
}
}
}
]
}
}
Per month
We use this aggregation for allowing our travellers find the cheapest months to fly on a specific route. We surface the data as a bar chart.
👉 Here is a sample in Skyscanner.
Query Requirements
📦 The dateTimeGroupingType
must be set to DATE_TIME_GROUPING_TYPE_BY_MONTH
.
📌 The origin
-> destination
combinations supported are:
Origin \ Destination | Airport | City | Country | Anywhere (by country) |
---|---|---|---|---|
Airport | ✅ | ✅ | ✅ | ❌ |
City | ✅ | ✅ | ✅ | ❌ |
Country | ✅ | ✅ | ✅ | ❌ |
Using the response
You can use the content.groupingOptions.byDate
groupings to represent the quotes on a chart.
You will have one group for each month.
Example queries
London to Paris - Return flights
💡 Make sure your dates are in the future when doing your own requests
{
"query": {
"currency": "GBP",
"locale": "en-GB",
"market": "UK",
"dateTimeGroupingType": "DATE_TIME_GROUPING_TYPE_BY_MONTH",
"queryLegs": [
{
"originPlace": {
"queryPlace": {
// Entity ID for London
"entityId": "27544008"
}
},
"destinationPlace": {
"queryPlace": {
// Entity ID for Paris
"entityId": "27539733"
}
},
"date_range": {
"startDate": {
"year": 2024,
"month": 3
},
"endDate": {
"year": 2024,
"month": 7
}
}
},
{
"originPlace": {
"queryPlace": {
// Entity ID for London
"entityId": "27539733"
}
},
"destinationPlace": {
"queryPlace": {
// Entity ID for Paris
"entityId": "27544008"
}
},
"date_range": {
"startDate": {
"year": 2024,
"month": 3
},
"endDate": {
"year": 2024,
"month": 7
}
}
}
]
}
}
Route aggregations
Route aggregations are used to allow the comparison of prices when the traveller doesn't know or is flexible on the destination they want to travel to, or even the origin they want to travel from.
Quickly find the route sub-category you need
Origin \ Destination | Airport | City | Country | Anywhere (by country) |
---|---|---|---|---|
Airport | Dates only | Dates only | Destination city | Destination country |
City | Dates only | Dates only | Destination city | Destination country |
Country | Origin city | Origin city | Destination city | Destination country |
Anywhere by city route aggregations are not currently supported, routes to anywhere will always be aggregated by country.
Per destination city
We use this aggregation for allowing our travellers that know the origin place they're flying from to compare the prices to different cities in a country. The travel dates can be either fixed or flexible.
An example search would be London
-> France
.
👉 Here is a sample in Skyscanner.
Query Requirements
📦 The dateTimeGroupingType
must not be set.
📆 Each query leg can have either of:
- A
fixedDate
- An
anytime
flag set totrue
- A
dateRange
with the same date used in bothstartDate
andendDate
. You can only request this data one full month at a time.
📌 The origin
-> destination
combinations supported are:
Origin \ Destination | Airport | City | Country | Anywhere (by country) |
---|---|---|---|---|
Airport | ❌ | ❌ | ✅ | ❌ |
City | ❌ | ❌ | ✅ | ❌ |
Country | ❌ | ❌ | ✅ | ❌ |
Using the response
You will generally get 2 quotes for each city in the destination country - one for direct flights and one for indirect flights.
You can use the content.groupingOptions.byRoute
groupings to represent the quotes on a grid.
You will have one group per city.
Example queries
London to France - Return flights in November 2024
💡 Make sure your dates are in the future when doing your own requests
{
"query": {
"currency": "GBP",
"locale": "en-GB",
"market": "UK",
"queryLegs": [
{
"originPlace": {
"queryPlace": {
// Entity ID for London
"entityId": "27544008"
}
},
"destinationPlace": {
"queryPlace": {
// Entity ID for France
"entityId": "29475385"
}
},
"dateRange": {
"startDate": {
"year": 2024,
"month": 11
},
"endDate": {
"year": 2024,
"month": 11
}
}
},
{
"originPlace": {
"queryPlace": {
// Entity ID for France
"entityId": "29475385"
}
},
"destinationPlace": {
"queryPlace": {
// Entity ID for London
"entityId": "27544008"
}
},
"dateRange": {
"startDate": {
"year": 2024,
"month": 11
},
"endDate": {
"year": 2024,
"month": 11
}
}
}
]
}
}
Per destination country
We use this aggregation for allowing our travellers that know the origin place they're flying from to compare the prices to different countries in the world. The travel dates can be either fixed or flexible.
An example search would be London
-> Anywhere (by country)
.
👉 Here is a sample in Skyscanner.
Query Requirements
📦 The dateTimeGroupingType
must not be set.
📆 Each query leg can have either of:
- A
fixedDate
- An
anytime
flag set totrue
- A
dateRange
with the same date used in bothstartDate
andendDate
. You can only request this data one full month at a time.
📌 The origin
-> destination
combinations supported are:
Origin \ Destination | Airport | City | Country | Anywhere (by country) |
---|---|---|---|---|
Airport | ❌ | ❌ | ❌ | ✅ |
City | ❌ | ❌ | ❌ | ✅ |
Country | ❌ | ❌ | ❌ | ✅ |
Using the response
You will generally get 2 quotes for the country we have quotes for - one for direct flights and one for indirect flights.
You can use the content.groupingOptions.byRoute
groupings to represent the quotes on a grid.
You will have one group per country.
Example queries
London to anywhere - Return flights in November 2024
💡 Make sure your dates are in the future when doing your requests
{
"query": {
"currency": "GBP",
"locale": "en-GB",
"market": "UK",
"queryLegs": [
{
"originPlace": {
"queryPlace": {
// Entity ID for London
"entityId": "27544008"
}
},
"destinationPlace": {
"anywhere": true
},
"dateRange": {
"startDate": {
"year": 2024,
"month": 11
},
"endDate": {
"year": 2024,
"month": 11
}
}
},
{
"originPlace": {
"anywhere": true
},
"destinationPlace": {
"queryPlace": {
// Entity ID for London
"entityId": "27544008"
}
},
"dateRange": {
"startDate": {
"year": 2024,
"month": 11
},
"endDate": {
"year": 2024,
"month": 11
}
}
}
]
}
}
Per origin city
We use this aggregation for allowing our travellers that know the destination place they're flying to, but don't know the exact origin, to compare the prices from the cities in a country. The travel dates can be either fixed or flexible.
An example search would be United Kingdom
-> Paris
.
👉 Here is a sample in Skyscanner.
Query Requirements
📦 The dateTimeGroupingType
must not be set.
📆 Each query leg can have either of:
- A
fixedDate
- An
anytime
flag set totrue
- A
dateRange
with the same date used in bothstartDate
andendDate
. You can only request this data one full month at a time.
📌 The origin
-> destination
combinations supported are:
Origin \ Destination | Airport | City | Country | Anywhere (by country) |
---|---|---|---|---|
Airport | ❌ | ❌ | ❌ | ❌ |
City | ❌ | ❌ | ❌ | ❌ |
Country | ✅ | ✅ | ❌ | ❌ |
Using the response
You will generally get 2 quotes for each city in the origin country - one for direct flights and one for indirect flights.
You can use the content.groupingOptions.byRoute
groupings to represent the quotes on a grid.
You will have one group per city.
Example queries
United Kingdom to Paris - Return flights in November 2024
💡 Make sure your dates are in the future when doing your requests
{
"query": {
"currency": "GBP",
"locale": "en-GB",
"market": "UK",
"queryLegs": [
{
"originPlace": {
"queryPlace": {
// Entity ID for United Kingdom
"entityId": "29475375"
}
},
"destinationPlace": {
"queryPlace": {
// Entity ID for Paris
"entityId": "27539733"
}
},
"dateRange": {
"startDate": {
"year": 2024,
"month": 11
},
"endDate": {
"year": 2024,
"month": 11
}
}
},
{
"originPlace": {
"queryPlace": {
// Entity ID for Paris
"entityId": "27539733"
}
},
"destinationPlace": {
"queryPlace": {
// Entity ID for United Kingdom
"entityId": "29475375"
}
},
"dateRange": {
"startDate": {
"year": 2024,
"month": 11
},
"endDate": {
"year": 2024,
"month": 11
}
}
}
]
}
}