API Documentation
API endpoint
https://partners.api.skyscanner.net/apiservices/
Skyscanner Travel APIs connect you to all the data you need to build an innovative website or app.
Build tools that solve problems for millions of travellers and travel retail businesses around the world.
Authentication
Skyscanner uses API keys to allow access to the APIs. To request an API key please contact us.
You must include the API key in all API requests to the server, either as a parameter in the query or the request header. Please refer to each endpoint for details.
Token generation
Get authentication token. The expiration time is 30 minutes.
GET "https://partners.api.skyscanner.net/apiservices/
token/v2/gettoken?
apiKey={apiKey}"
API endpoint
GET /token/v2/gettoken
REQUEST PARAMETERS
Parameter | Description |
---|---|
apiKey REQUIRED |
Your API Key. |
Response
Example of token result
_dR-ShOTX6w2SeENoXhHTsT9Z5N4UNqwReQqU_F8WkbgMDIuZx7ud7boHnngf4fT9bpPDFJh7nxB3hWsAT8x76w==
A successful response contains a string with token value.
Getting Started
Flights
Flights - Browse Prices
API endpoint | Description |
---|---|
Browse Quotes | Returns the cheapest quotes that meet your query. The prices come from our cached prices resulting from our users' searches. |
Browse Routes | Similar to Browse Quotes but with the quotes grouped by routes. This provides the cheapest destinations (countries, cities or airports) from our cached data. |
Browse Dates | Similar to Browse Quotes but with the quotes grouped by outbound and inbound date. Useful to find the lowest price for a given route, over either a month or a 12 month period. |
Browse Grid | Similar to Browse Dates but with some pre-processing on our side to output a two-dimensional array to easily display the response in calendar format. |
Flights - Live Prices
API endpoint | Description |
---|---|
Live prices | Returns live prices from all our suppliers for the requested flight itinerary (in the selected market). |
Hotels
Hotels Live Prices
API endpoint | Description |
---|---|
Live prices NEW |
Returns live prices from all our suppliers for hotel deals (in the selected market). |
Flights Browse Prices
Browse Quotes
Retrieve the cheapest quotes from our cached prices.
curl "https://partners.api.skyscanner.net/apiservices/browsequotes/v1.0/{country}/{currency}/{locale}/
{originPlace}/
{destinationPlace}/
{outboundPartialDate}/
{inboundPartialDate}?
apiKey={apiKey}"
-X GET
-H "Accept: application/json"
API endpoint
GET /browsequotes/v1.0/{country}/{currency}/{locale}/{originPlace}/{destinationPlace}/{outboundPartialDate}/{inboundPartialDate}
TRY IT OUT
HEADER VALUES
Header | Value |
---|---|
Accept OPTIONAL |
application/json or application/xml The default response format is XML |
REQUEST PATH PARAMETERS
Parameter | Description |
---|---|
country REQUIRED |
The market country your user is in |
currency REQUIRED |
The currency you want the prices in |
locale REQUIRED |
The locale you want the results in (ISO locale) |
originPlace REQUIRED |
The origin place (see places) |
destinationPlace REQUIRED |
The destination place (see places) |
outboundPartialDate REQUIRED |
The outbound date (see dates) |
inboundPartialDate OPTIONAL |
The return date (see dates). Use empty string for oneway trip. |
REQUEST QUERY PARAMETERS
Parameter | Description |
---|---|
apiKey REQUIRED |
The API Key to identify the customer |
The table below shows the level of precision supported for the origin and destination places. For more information on these, see places.
The table below shows the combinations of date specificity allowed for the outbound and inbound dates of a return search. For more information on these, see dates.
Example response from US to anywhere:
{
"Quotes": [
{
"QuoteId": 1,
"MinPrice": 381,
"Direct": true,
"OutboundLeg": {
"CarrierIds": [
470
],
"OriginId": 68033,
"DestinationId": 42833,
"DepartureDate": "2017-02-03T00:00:00"
},
"InboundLeg": {
"CarrierIds": [
470
],
"OriginId": 42833,
"DestinationId": 68033,
"DepartureDate": "2017-02-06T00:00:00"
},
"QuoteDateTime": "2016-11-09T21:20:00"
},
...
],
"Places": [
{
"PlaceId": 837,
"Name": "United Arab Emirates",
"Type": "Country",
"SkyscannerCode": "AE"
},
...
],
"Carriers": [
{
"CarrierId": 29,
"Name": "Mombasa Air Safari"
},
{
"CarrierId": 173,
"Name": "Silver Airways"
},
...
],
"Currencies": [
{
"Code": "EUR",
"Symbol": "€",
"ThousandsSeparator": " ",
"DecimalSeparator": ",",
"SymbolOnLeft": false,
"SpaceBetweenAmountAndSymbol": true,
"RoundingCoefficient": 0,
"DecimalDigits": 2
}
]
}
RESPONSE PARAMETERS
Parameter | Description |
---|---|
Quotes |
Contains the list of cheapest quotes available for the search. |
Places |
The list of places matching the search results. |
Carriers |
The list of carriers specified in the list of quotes. |
Currencies |
The currency of the quote prices. |
Browse Routes
Retrieve the cheapest routes from our cache prices. Similar to the Browse Quotes API but with the routes built for you from the individual quotes.
curl "https://partners.api.skyscanner.net/apiservices/browseroutes/v1.0/{country}/{currency}/{locale}/
{originPlace}/
{destinationPlace}/
{outboundPartialDate}/
{inboundPartialDate}?
apiKey={apiKey}"
-X GET
-H "Accept: application/json"
API endpoint
GET /browseroutes/v1.0/{country}/{currency}/{locale}/{originPlace}/{destinationPlace}/{outboundPartialDate}/{inboundPartialDate}
TRY IT OUT
HEADER VALUES
Header | Value |
---|---|
Accept OPTIONAL |
application/json or application/xml The default response format is XML |
REQUEST PATH PARAMETERS
Parameter | Description |
---|---|
country REQUIRED |
The market country your user is in |
currency REQUIRED |
The currency you want the prices in |
locale REQUIRED |
The locale you want the results in (ISO locale) |
originPlace REQUIRED |
The origin place (see places) |
destinationPlace REQUIRED |
The destination place (see places) |
outboundPartialDate REQUIRED |
The outbound date (see dates) |
inboundPartialDate OPTIONAL |
The return date (see dates). Use empty string for oneway trip. |
REQUEST QUERY PARAMETERS
Parameter | Description |
---|---|
apiKey REQUIRED |
The API Key to identify the customer |
The table below shows the level of precision supported for the origin and destination places. For more information on these, see places.
The table below shows the combinations of date specificity allowed for the outbound and inbound dates of a return search. For more information on these, see dates.
Example response from US to anywhere:
{
"Routes": [
{
"OriginId": 1811,
"DestinationId": 1845,
"QuoteIds": [
1,
2
],
"Price": 326,
"QuoteDateTime": "2016-11-13T01:30:00"
},
{
"OriginId": 1811,
"DestinationId": 929,
"QuoteIds": [
3
],
"Price": 150,
"QuoteDateTime": "2016-11-09T17:44:00"
},
...
],
"Quotes": [
{
"QuoteId": 1,
"MinPrice": 381,
"Direct": true,
"OutboundLeg": {
"CarrierIds": [
470
],
"OriginId": 68033,
"DestinationId": 42833,
"DepartureDate": "2017-02-03T00:00:00"
},
"InboundLeg": {
"CarrierIds": [
470
],
"OriginId": 42833,
"DestinationId": 68033,
"DepartureDate": "2017-02-06T00:00:00"
},
"QuoteDateTime": "2016-11-09T21:20:00"
},
...
],
"Places": [
{
"PlaceId": 837,
"Name": "United Arab Emirates",
"Type": "Country",
"SkyscannerCode": "AE"
},
...
],
"Carriers": [
{
"CarrierId": 29,
"Name": "Mombasa Air Safari"
},
{
"CarrierId": 173,
"Name": "Silver Airways"
},
...
],
"Currencies": [
{
"Code": "EUR",
"Symbol": "€",
"ThousandsSeparator": " ",
"DecimalSeparator": ",",
"SymbolOnLeft": false,
"SpaceBetweenAmountAndSymbol": true,
"RoundingCoefficient": 0,
"DecimalDigits": 2
}
]
}
RESPONSE PARAMETERS
Parameter | Description |
---|---|
Routes |
Contains the list of routes available for the search. |
Quotes |
The list of quotes specified in the list of routes. |
Places |
The list of places specified in the list of routes. |
Carriers |
The list of carriers specified in the list of quotes. |
Currencies |
The currency of the quote prices. |
Browse Dates
Retrieve the cheapest dates for a given route from our cache.
curl "https://partners.api.skyscanner.net/apiservices/browsedates/v1.0/{country}/{currency}/{locale}/
{originPlace}/
{destinationPlace}/
{outboundPartialDate}/
{inboundPartialDate}?
apiKey={apiKey}"
-X GET
-H "Accept: application/json"
API endpoint
GET /browsedates/v1.0/{country}/{currency}/{locale}/{originPlace}/{destinationPlace}/{outboundPartialDate}/{inboundPartialDate}
TRY IT OUT
HEADER VALUES
Header | Value |
---|---|
Accept OPTIONAL |
application/json or application/xml The default response format is XML |
REQUEST PATH PARAMETERS
Parameter | Description |
---|---|
country REQUIRED |
The market country your user is in |
currency REQUIRED |
The currency you want the prices in |
locale REQUIRED |
The locale you want the results in (ISO locale) |
originPlace REQUIRED |
The origin place (see places) |
destinationPlace REQUIRED |
The destination place (see places) |
outboundPartialDate REQUIRED |
The outbound date (see dates) |
inboundPartialDate OPTIONAL |
The return date (see dates). Use empty string for oneway trip. |
REQUEST QUERY PARAMETERS
Parameter | Description |
---|---|
apiKey REQUIRED |
The API Key to identify the customer |
The table below shows the level of precision supported for the origin and destination places. For more information on these, see places.
The table below shows the combinations of date specificity allowed for the outbound and inbound dates of a return search. For more information on these, see dates.
Example response from London to Paris:
{
"Dates": {
"OutboundDates": [
{
"PartialDate": "2016-11",
"QuoteIds": [
1,
2,
3,
4,
5
],
"Price": 66,
"QuoteDateTime": "2016-11-08T17:28:00"
},
...
],
"InboundDates": [
{
"PartialDate": "2016-11",
"QuoteIds": [
1
],
"Price": 93,
"QuoteDateTime": "2016-11-21T17:19:00"
},
...
]
},
"Quotes": [
{
"QuoteId": 1,
"MinPrice": 381,
"Direct": true,
"OutboundLeg": {
"CarrierIds": [
470
],
"OriginId": 68033,
"DestinationId": 42833,
"DepartureDate": "2017-02-03T00:00:00"
},
"InboundLeg": {
"CarrierIds": [
470
],
"OriginId": 42833,
"DestinationId": 68033,
"DepartureDate": "2017-02-06T00:00:00"
},
"QuoteDateTime": "2016-11-09T21:20:00"
},
...
],
"Places": [
{
"PlaceId": 837,
"Name": "United Arab Emirates",
"Type": "Country",
"SkyscannerCode": "AE"
},
...
],
"Carriers": [
{
"CarrierId": 29,
"Name": "Mombasa Air Safari"
},
{
"CarrierId": 173,
"Name": "Silver Airways"
},
...
],
"Currencies": [
{
"Code": "EUR",
"Symbol": "€",
"ThousandsSeparator": " ",
"DecimalSeparator": ",",
"SymbolOnLeft": false,
"SpaceBetweenAmountAndSymbol": true,
"RoundingCoefficient": 0,
"DecimalDigits": 2
}
]
}
RESPONSE PARAMETERS
Parameter | Description |
---|---|
Dates |
The list of outbound and inbound dates for which quotes are available. |
Quotes |
The list of quotes specified in the list of Dates. |
Places |
The list of places matching the search results. |
Carriers |
The list of carriers specified in the list of quotes. |
Currencies |
The currency of the quote prices. |
Browse Dates (grid)
Retrieve the cheapest dates for a given route from our cache, with the results formatted as a two-dimensional array to be easily displayed as a calendar.
curl "https://partners.api.skyscanner.net/apiservices/browsegrid/v1.0/{country}/{currency}/{locale}/
{originPlace}/
{destinationPlace}/
{outboundPartialDate}/
{inboundPartialDate}?
apiKey={apiKey}"
-X GET
-H "Accept: application/json"
API endpoint
GET /browsegrid/v1.0/{country}/{currency}/{locale}/{originPlace}/{destinationPlace}/{outboundPartialDate}/{inboundPartialDate}
TRY IT OUT
HEADER VALUES
Header | Value |
---|---|
Accept OPTIONAL |
application/json or application/xml The default response format is XML |
REQUEST PATH PARAMETERS
Parameter | Description |
---|---|
country REQUIRED |
The market country your user is in |
currency REQUIRED |
The currency you want the prices in |
locale REQUIRED |
The locale you want the results in (ISO locale) |
originPlace REQUIRED |
The origin place (see places) |
destinationPlace REQUIRED |
The destination place (see places) |
outboundPartialDate REQUIRED |
The outbound date (see dates) |
inboundPartialDate OPTIONAL |
The return date (see dates). Use empty string for oneway trip. |
REQUEST QUERY PARAMETERS
Parameter | Description |
---|---|
apiKey REQUIRED |
The API Key to identify the customer |
The table below shows the level of precision supported for the origin and destination places. For more information on these, see places.
The table below shows the combinations of date specificity allowed for the outbound and inbound dates of a return search. For more information on these, see dates.
Example response from US to anywhere:
{
"Dates": [
[
null,
{
"DateString": "2017-01"
},
{
"DateString": "2017-02"
},
{
"DateString": "2017-03"
},
...
],
...
],
"Places": [
{
"PlaceId": 837,
"Name": "United Arab Emirates",
"Type": "Country",
"SkyscannerCode": "AE"
},
...
],
"Carriers": [
{
"CarrierId": 29,
"Name": "Mombasa Air Safari"
},
{
"CarrierId": 173,
"Name": "Silver Airways"
},
...
],
"Currencies": [
{
"Code": "EUR",
"Symbol": "€",
"ThousandsSeparator": " ",
"DecimalSeparator": ",",
"SymbolOnLeft": false,
"SpaceBetweenAmountAndSymbol": true,
"RoundingCoefficient": 0,
"DecimalDigits": 2
}
]
}
RESPONSE PARAMETERS
Parameter | Description |
---|---|
Dates |
Matrix of all the dates available with associated prices. |
Places |
The list of places matching the search results. |
Carriers |
The list of carriers matching the search results. |
Currencies |
The currency of the flight prices. |
Flights Browse Notes
Origin/Destination Place in Browse Requests
The Place ID used in Browse Requests should be a combination of Place and Type, as shown below. If no type is specified, then it is assumed that the Place Id is a Skyscanner Code. See places for more information on Place Ids.
Type | Description |
---|---|
Skyscanner Code (Default) | e.g. LHR-sky for London Heathrow |
IATA Code | e.g. LHR-iata for London Heathrow |
Skyscanner Route Node ID | e.g. 65698-rnid for London Heathrow |
Origins and Destinations can also be more general than airports in Browse Requests:
Origin/Destination | Example |
---|---|
Airport | e.g. LHR-sky |
City | e.g. LOND-sky |
Country | e.g. UK-sky |
Anywhere | anywhere or everywhere |
Outbound/Inbound Date Specificity in Browse Requests
The format of the Outbound/Inbound Dates used in Browse Requests should be one of the following:
Date Specificity | Description |
---|---|
Day | Format is YYYY-MM-DD , e.g. 2021-03-14 |
Month | Format is YYYY-MM , e.g. 2021-03 |
Year | Format is YYYY , e.g. 2021 |
Anytime | Value is anytime |
Flights Live Prices
The Live Pricing Service Session must be created before any pricing data can be obtained. The request contains details of the locations, dates, passengers, cabin class, and user details. These parameters define the session, and cannot be changed within the session (except for passenger numbers).
Creating the session
Request
curl "https://partners.api.skyscanner.net/apiservices/pricing/v1.0"
-X POST
-H "Content-Type: application/x-www-form-urlencoded"
-d 'cabinclass=Economy
&country=UK
¤cy=GBP
&locale=en-GB
&locationSchema=iata
&originplace=EDI
&destinationplace=LHR
&outbounddate=2017-05-30
&inbounddate=2017-06-02
&adults=1
&children=0
&infants=0
&apikey=prtl6749387986743898559646983194'
API endpoint
POST /pricing/v1.0
TRY IT OUT
HEADER VALUES
Header | Value |
---|---|
Content-Type REQUIRED |
application/x-www-form-urlencoded |
X-Forwarded-For REQUIRED |
user's IP address |
Accept OPTIONAL |
application/json or application/xml The default response format is XML |
REQUEST PARAMETERS (FORM)
Parameter | Description |
---|---|
country REQUIRED |
The market/country your user is in |
currency REQUIRED |
The currency you want the prices in |
locale REQUIRED |
The locale you want the results in (ISO locale) |
originPlace REQUIRED |
The origin place (see places) |
destinationPlace REQUIRED |
The destination place (see places) |
outboundDate REQUIRED |
The outbound date. Format "yyyy-mm-dd". |
inboundDate OPTIONAL |
The return date. Format "yyyy-mm-dd". Use empty string for oneway trip. |
cabinClass OPTIONAL |
The cabin class. Can be "Economy", "PremiumEconomy", "Business", "First" |
adults REQUIRED |
Number of adults (16+ years). Must be between 1 and 8. |
children OPTIONAL |
Number of children (1-16 years). Can be between 0 and 8. |
infants OPTIONAL |
Number of infants (under 12 months). Can be between 0 and 8. |
includeCarriers OPTIONAL |
Only return results from those carriers. Comma-separated list of carrier ids. |
excludeCarriers OPTIONAL |
Filter out results from those carriers. Comma-separated list of carrier ids. |
groupPricing OPTIONAL |
If set to true , prices will be obtained for the whole passenger group and if set to false it will be obtained for one adult only - the other adults/children/infants will be ignored. By default it is set to false . |
apiKey REQUIRED |
Your API Key. |
Response
Example response with polling url:
Location "https://partners.api.skyscanner.net/apiservices/pricing/v1.0/
{SessionKey}"
A successful response contains no content. The URL to poll the results is provided in the Location header of the response.
RESPONSE PARAMETERS
Element | Detail |
---|---|
Location Header |
Contains the URL for polling the results in the newly created session |
Polling the results
Request
Example request with polling url:
curl "{URL returned in Creating the session Location header}?apiKey={apiKey}" -X GET
Use the polling endpoint provided in the successful response of the create request.
API endpoint
GET /pricing/v1.0/{SessionKey}
TRY IT OUT
HEADER VALUES
Header | Value |
---|---|
Accept OPTIONAL |
application/json or application/xml The default response format is XML |
REQUEST PARAMETERS (FORM)
Parameter | Description |
---|---|
sortType OPTIONAL |
The parameter to sort results on. Can be carrier, duration, outboundarrivetime, outbounddeparttime, inboundarrivetime, inbounddeparttime, price |
sortOrder OPTIONAL |
The sort order. 'asc' or 'desc' |
duration OPTIONAL |
An integer value representing the total duration in minutes of the outbound leg and inbound leg (in case of return flights). Bear in mind that if the value is set too low it might filter out all flights from the response or if it’s too high it might simply return all flights with no filtering applied |
includeCarriers OPTIONAL |
Filter flights by the specified carriers. Must be semicolon-separated IATA codes. |
excludeCarriers OPTIONAL |
Filter flights by any but the specified carriers. Must be semicolon-separated IATA codes. |
originAirports OPTIONAL |
Origin airports to filter on. List of airport codes delimited by ‘;’ |
destinationAirports OPTIONAL |
Destination airports to filter on. List of airport codes delimited by ‘;’ |
stops OPTIONAL |
Filter for maximum number of stops. 0 for direct flights only 1 for flights with maximum one stop omit for all flights (direct and indirect) |
outboundDepartTime OPTIONAL |
Filter for outbound departure time by time period of the day (i.e. morning, afternoon, evening). List of day time period delimited by ‘;’ (acceptable values are M, A, E) |
outboundDepartStartTime OPTIONAL |
Filter for start of range for outbound departure time. Format ‘hh:mm’. Time is inclusive. |
outboundDepartEndTime OPTIONAL |
Filter for end of range for outbound departure time. Format ‘hh:mm’. Time is inclusive. |
inboundDepartTime OPTIONAL |
Filter for inbound departure time by time period of the day (i.e. morning, afternoon, evening). List of day time period delimited by ‘;’ (acceptable values are M, A, E) |
inboundDepartStartTime OPTIONAL |
Filter for start of range for inbound departure time. Format ‘hh:mm’. Time is inclusive. |
inboundDepartEndTime OPTIONAL |
Filter for end of range for inbound departure time. Format ‘hh:mm’. Time is inclusive. |
apiKey REQUIRED |
Your API Key. |
Pagination and payload
Example polling request with pagination:
Location "https://partners.api.skyscanner.net/apiservices/pricing/v1.0/
{SessionKey}?apiKey={apiKey}
&pageIndex=0
&pageSize=10"
If you want to supply results in pages, rather than show all the results available, you can use the parameters below.
REQUEST PARAMETERS (PAGINATION)
Parameter | Description |
---|---|
pageIndex |
The desired page number. |
pageSize |
The number of itineraries per page. Defaults to 10 if not specified. |
Keep requesting page 0 until you get UpdatesComplete
with pageIndex=0
at half a second to one second interval. Once you get UpdatesComplete
you may request any page and page size.
For more information about polling the results please see our FAQ
We have no facility to tell you how many pages exist. Beyond the end of results, you will receive successful, empty, responses.
Response
Example polling request response:
{
"SessionKey": "ab5b948d616e41fb954a4a2f6b8dde1a_ecilpojl_7CAAD17D0CFC34BFDE68DEBFDFD548C7",
"Query": {
"Country": "GB",
"Currency": "GBP",
"Locale": "en-gb",
"Adults": 1,
"Children": 0,
"Infants": 0,
"OriginPlace": "2343",
"DestinationPlace": "13554",
"OutboundDate": "2017-05-30",
"InboundDate": "2017-06-02",
"LocationSchema": "Default",
"CabinClass": "Economy",
"GroupPricing": false
},
"Status": "UpdatesComplete",
"Itineraries": [
{
"OutboundLegId": "11235-1705301925--32480-0-13554-1705302055",
"InboundLegId": "13554-1706020700--32480-0-11235-1706020820",
"PricingOptions": [
{
"Agents": [
4499211
],
"QuoteAgeInMinutes": 0,
"Price": 83.41,
"DeeplinkUrl": "http://partners.api.skyscanner.net/apiservices/deeplink/v2?_cje=jzj5DawL5zJyT%2bnfe1..."
},
...
],
"BookingDetailsLink": {
"Uri": "/apiservices/pricing/v1.0/ab5b948d616e41fb954a4a2f6b8dde1a_ecilpojl_7CAAD17D0CFC34BFDE68DEBFDFD548C7/booking",
"Body": "OutboundLegId=11235-1705301925--32480-0-13554-1705302055&InboundLegId=13554-1706020700--32480-0-11235-1706020820",
"Method": "PUT"
}
},
...
],
"Legs": [
{
"Id": "11235-1705300650--32302,-32480-1-13554-1705301100",
"SegmentIds": [
0,
1
],
"OriginStation": 11235,
"DestinationStation": 13554,
"Departure": "2017-05-30T06:50:00",
"Arrival": "2017-05-30T11:00:00",
"Duration": 250,
"JourneyMode": "Flight",
"Stops": [
13880
],
"Carriers": [
885,
881
],
"OperatingCarriers": [
885,
881
],
"Directionality": "Outbound",
"FlightNumbers": [
{
"FlightNumber": "290",
"CarrierId": 885
},
{
"FlightNumber": "1389",
"CarrierId": 881
}
]
},
...
],
"Segments": [
{
"Id": 0,
"OriginStation": 11235,
"DestinationStation": 13880,
"DepartureDateTime": "2017-05-30T06:50:00",
"ArrivalDateTime": "2017-05-30T07:55:00",
"Carrier": 885,
"OperatingCarrier": 885,
"Duration": 65,
"FlightNumber": "290",
"JourneyMode": "Flight",
"Directionality": "Outbound"
},
...
],
"Carriers": [
{
"Id": 885,
"Code": "BE",
"Name": "Flybe",
"ImageUrl": "http://s1.apideeplink.com/images/airlines/BE.png",
"DisplayCode": "BE"
},
...
],
"Agents": [
{
"Id": 1963108,
"Name": "Mytrip",
"ImageUrl": "http://s1.apideeplink.com/images/websites/at24.png",
"Status": "UpdatesComplete",
"OptimisedForMobile": true,
"BookingNumber": "+448447747881",
"Type": "TravelAgent"
},
...
],
"Places": [
{
"Id": 11235,
"ParentId": 2343,
"Code": "EDI",
"Type": "Airport",
"Name": "Edinburgh"
},
...
],
"Currencies": [
{
"Code": "GBP",
"Symbol": "£",
"ThousandsSeparator": ",",
"DecimalSeparator": ".",
"SymbolOnLeft": true,
"SpaceBetweenAmountAndSymbol": false,
"RoundingCoefficient": 0,
"DecimalDigits": 2
},
...
]
}
The response contains a list of itineraries with, for each one, a list of pricing options containing:
- the price
- the quote age
- the agent selling the itinerary
- the deeplink to the agent
RESPONSE PARAMETERS
Parameter | Description |
---|---|
SessionKey |
The Session key to identify the session. |
Query |
A copy of the query which was submitted. |
Status |
The status of the session – ‘UpdatesPending’ or ‘UpdatesComplete’. |
Itineraries |
A list of itineraries - see below for the itinerary object. |
Legs |
Details of the legs that make up the itineraries: airports, times, overall duration, stops and carrier ids. |
Segements |
Details of the segments of each leg. Including the carrier (or marketing carrier) and the operating carrier. |
Carriers |
Details of the carriers. |
Agents |
Details of the agents who sell the tickets. Can be an airline or a travel agent. |
Places |
A list of all the places that appear in the itineraries. |
Currencies |
A list of the currencies shown in the response. |
ITINERARY PARAMETERS
Element | Description |
---|---|
OutboundLegId |
Id of the Outbound Leg |
InboundLegId |
Id of the Inbound Leg |
PricingOptions |
pricing options with agent(s) the quote age price (total for all passengers) deeplink to the agent (the absolute URL needed to make the booking). In the case where deeplinks are not supplied, you can obtain them with a further step. Refer to the Create/Poll Booking Details documentation. |
BookingDetailsLink |
In some cases such as for group prices you will need to make a second call to retrieve the deeplinks. See the next section Get booking details for details |
Please note that you must not force users to your deeplink. Once they have made a search you should provide them with a list of results, and an option to filter that list, to pick the flight that best suits their needs.
Get booking details
Request
curl "https://partners.api.skyscanner.net/apiservices/pricing/v1.0/
{SessionKey}/booking&apikey={apiKey}"
-d 'OutboundLegId={OutboundLegId}&InboundLegId={InboundLegId}'
-X PUT
-H "Content-Type: application/x-www-form-urlencoded"
A request for booking details will return the most up-to-date prices for the selected itinerary. Some of the prices returned in the previous requests might be cached and slightly older. By creating a booking details session you'll receive the most up-to-date price which we can get from our partners.
The URL is provided in the response of the live prices:
{
"BookingDetailsLink": {
"Uri": "/apiservices/pricing/v1.0/abb2a69708624a7ca82762ed73493598_ecilpojl_DCE634A426CBDA30CE7EA3E9068CD053/booking",
"Body": "OutboundLegId=11235-1705301925--32480-0-13554-1705302055&InboundLegId=13554-1706020700--32480-0-11235-1706020820",
"Method": "PUT"
}
}
The full URL and body content are provided in the response from the live pricing results.
API endpoint
PUT /pricing/v1.0/{SessionKey}/booking
TRY IT OUT
REQUEST PARAMETERS
Parameter | Description |
---|---|
apiKey REQUIRED |
Your API Key. |
REQUEST BODY (from live pricing response)
Parameter | Description |
---|---|
OutboundLegId REQUIRED |
The outbound leg Id of the itinerary |
InboundLegId OPTIONAL |
The inbound leg Id of the itinerary for return flights |
adults OPTIONAL |
Number of adults (16+ years). Must be between 1 and 8. |
children OPTIONAL |
Number of children (1-16 years). Can be between 0 and 8. |
infants OPTIONAL |
Number of infants (under 12 months). Can be between 0 and 8. |
Response
Example response:
Location "https://partners.api.skyscanner.net/apiservices/pricing/v1.0/
{SessionKey}/booking/
{OutboundLegId};{InboundLegId}"
A successful response contains no content. The URL to poll the booking details is specified in the Location header of the response.
RESPONSE PARAMETERS
Element | Detail |
---|---|
Location Header |
Contains the URL for polling the booking details results |
Polling the booking details
Request
curl "{URL returned in Get booking details Location header}?apiKey={apiKey}" -X GET
Use the polling endpoint provided in the successful response of the get booking details request.
API endpoint
GET /pricing/v1.0/{SessionKey}/booking/{OutboundLegId}|{InboundLegId}
TRY IT OUT
REQUEST PARAMETERS
Parameter | Description |
---|---|
apiKey REQUIRED |
Your API Key. |
Response
{
"Segments": [
{
"Id": 1,
"OriginStation": 11235,
"DestinationStation": 13554,
"DepartureDateTime": "2017-05-30T19:25:00",
"ArrivalDateTime": "2017-05-30T20:55:00",
"Carrier": 881,
"OperatingCarrier": 881,
"Duration": 90,
"FlightNumber": "1463",
"JourneyMode": "Flight",
"Directionality": "Outbound"
},
...
],
"BookingOptions": [
{
"BookingItems": [
{
"AgentID": 4499211,
"Status": "Current",
"Price": 83.41,
"Deeplink": "http://partners.api.skyscanner.net/apiservices/deeplink/v2?_cje=jzj5DawL5[...]",
"SegmentIds": [
1,
2
]
}
]
},
],
"Places": [
{
"Id": 13554,
"ParentId": 4698,
"Code": "LHR",
"Type": "Airport",
"Name": "London Heathrow"
},
...
],
"Carriers": [
{
"Id": 881,
"Code": "BA",
"Name": "British Airways",
"ImageUrl": "http://s1.apideeplink.com/images/airlines/BA.png"
}
],
"Query": {
"Country": "GB",
"Currency": "GBP",
"Locale": "en-gb",
"Adults": 1,
"Children": 0,
"Infants": 0,
"OriginPlace": "2343",
"DestinationPlace": "13554",
"OutboundDate": "2017-05-30",
"InboundDate": "2017-06-02",
"LocationSchema": "Default",
"CabinClass": "Economy",
"GroupPricing": false
}
}
The response contains a list of itineraries with, for each one, a list of pricing options containing:
- the price
- the quote age
- the agent selling the itinerary
- the deeplink to the agent
RESPONSE PARAMETERS
Parameter | Description |
---|---|
SessionKey |
The Session key to identify the session. |
Query |
A copy of the query which was submitted. |
Status |
The status of the session – ‘UpdatesPending’ or ‘UpdatesComplete’. |
Itineraries |
A list of itineraries - see below for the itinerary object. |
Legs |
Details of the legs that make up the itineraries: airports, times, overall duration, stops and carrier ids. |
Segements |
Details of the segments of each leg. Including the carrier (or marketing carrier) and the operating carrier. |
Carriers |
Details of the carriers. |
Agents |
Details of the agents who sell the tickets. Can be an airline or a travel agent. |
Places |
A list of all the places that appear in the itineraries. |
Currencies |
A list of the currencies shown in the response. |
Hotels Live Prices
This service responsible for finding the best hotels with rates around a given entity. It provides endpoints to search prices, a map version of it and a hotel prices one.
Endpoint
The Hotels API provides a global endpoint: https://www.skyscanner.net/g/hotels/{version}/ where version points to a specific release.
Headers
The API expects the header:
- x-user-agent: Required. Indicates which is the device related to the client. The format for that header is device;B2B, where device can be:
- T for tablet
- D for desktop
- M for mobile
- N if you are not able to detect the device type
For example:
x-user-agent: M;B2B
Use flow
All the /prices endpoints are intended to be queried using a polling mechanism using the same parameters as the one that started the polling. The flow of the service is described below:
- On the first request that a user does, the service will reply with empty results and the status attribute inside the meta object set to PENDING.
Metadata PENDING state
. - The client needs to keep polling the service with the same query while the status attribute inside the meta object in the response is PENDING. On each query, the number of results will grow.
Metadata PENDING state, partial results
. - The status attribute will eventually change to COMPLETED. Meaning that the search cycle has finished.
Metadata COMPLETED state
. - Clients should implement a self-healing mechanism that should include:
- Finish the polling after X seconds in the scenarios of having the status PENDING for so long.
- Retry mechanism in the scenario of a service failure (Ex: retry after 1 seconds)
Search Prices
Entity Request
Given an entity_id, this endpoint will give back hotels with prices around the provided entity. The supported entities are any, from cities, islands, nations, places to Hotels.
The Hotels API, first of all, tries to search for the hotels related to an entity using an explicit relation - cities, administration zones, and nations, and if the results are less than a minimum number of hotels the query turns out in a geographical query. This geographical query seeks for hotels using different distances, from 500 meters to 50km, till finding this minimum amount or get the maximum distance.
When a Hotel is used as the entity queried for, the service will treat this as an ad-hoc case. The hotel used as an entity will be serialized into the hotel_pivot object with its offers. Meanwhile, it will be removed from the results object.
The following URL shows how the search prices endpoint can be used to retrieve prices for those hotels that are placed in Barcelona
API endpoint
B2B partner, please use v1 endpoint
GET /v1/prices/search/entity/{entity_id}
V3 is a new endpoint that supports direct booking and cug overriding.
GET /v3/prices/search/entity/{entity_id}
GET "https://www.skyscanner.net/g/hbe-bellboy/v1/prices/search/entity/{entity_id}
?market={market}&locale={locale}&checkin_date={checkin_date}&checkout_date={checkout_date}
¤cy={currency}&adults={adults}&rooms={rooms}&images={images}&image_resolution={resolution}
&image_type={type}&boost_official_partners={boost}&sort={sort_method}&limit={limit}&offset={offset}
&partners_per_hotel={num_partners}&enhanced={enhanced}"
TRY IT OUT
HEADER VALUES
Header | Value |
---|---|
x-user-agent REQUIRED |
Indicates which is the device and the platform related to the client. The format for that header is device;B2B , where:Device is: T for tabletD for desktopM for mobileN if you are not able to detect the device type |
URI PARAMETERS
Parameter | Description |
---|---|
entity_id REQUIRED |
Entity to search for hotels prices in it |
version REQUIRED |
API version |
QUERY PARAMETERS
Parameter | Description |
---|---|
market REQUIRED |
Matching [A-Z]{2} |
locale REQUIRED |
Matching [a-z]{2}-[A-Z]{2} |
currency REQUIRED |
Currency code |
checkin_date REQUIRED |
YYYY-MM-DD |
checkout_date REQUIRED |
YYYY-MM-DD |
rooms REQUIRED |
Number of rooms default: 1 |
adults REQUIRED |
Number of adults default: 2 |
apikey REQUIRED |
This parameter is required to be on every single request any client does |
images OPTIONAL |
Maximum number of images to retrieve for each hotel between 1-30, default: 1 |
image_resolution OPTIONAL |
Resolution options high or low, default: high |
image_type OPTIONAL |
The format of the images thumbnail or gallery or dynamic |
boost_official_partners OPTIONAL |
Indicates whether prices from official partners must be shown in the first place [1] or not [0] default: 0 |
sort OPTIONAL |
Sort by a given attribute. By default the relevance sorting is applied One of: relevance, -relevance, price, -price, distance, -distance, rating, -rating, stars, -stars |
price_min OPTIONAL |
Filter. Return only hotels where the cheaper price is at least price_min (included). Cannot be used together with price_buckets |
price_max OPTIONAL |
Filter. Return only hotels where the cheaper price is at most price_max (included). Cannot be used together with price_buckets |
price_buckets OPTIONAL |
OR filter. Return only hotels with offers inside the specified buckets. Cannot be used together with price_min/price_max |
price_bucket_step OPTIONAL |
Fix step for the buckets. Need to be used together with price_buckets, default step will be dynamic |
price_bucket_number OPTIONAL |
This parameter allows you to set the price buckets number, default: 5 |
price_buckets_strategy OPTIONAL |
price_buckets_strategy is 2 means use the new price buckets thread (split most 30 buckets), others use old price bucket thread (split into price_bucket_number buckets at most) |
price_buckets_min OPTIONAL |
Filter. Return only hotels where the cheaper price is at least price_buckets_min (included). Would not be applied if price_buckets_strategy is not 2 |
price_buckets_max OPTIONAL |
Filter. Return only hotels where the cheaper price is at most price_buckets_max (included). Would not be applied if price_buckets_strategy is not 2 |
district OPTIONAL |
OR filter. Return only results where a district matches |
stars OPTIONAL |
OR filter. Return only results where a star category matches. The values must be TravelAPI ids |
city OPTIONAL |
OR filter. When the search is done for an entity that contains different cities, this filter is available. Returns only results where the cities match. The values must be TravelAPI entity ids |
chain OPTIONAL |
OR filter. Return only results where a hotel chains matches. The values must be TravelAPI ids |
amenities OPTIONAL |
AND filter. Return only results where all amenities match. The values must be TravelAPI ids |
cancellation OPTIONAL |
OR filter. Return only results where a cancellation policies matches. Options are: free_cancellation, non_refundable, refundable, special_conditions |
meal_plan OPTIONAL |
OR filter. Return only results where a meal plan matches. Options are: room_only, breakfast_included, half_board, full_board, all_inclusive |
property_type OPTIONAL |
OR filter. Return only results where an accommodation type matches. The values must be TravelAPI ids |
guest_rating OPTIONAL |
OR filter. Return only results where a guest rating matches. The values must be TravelAPI ids |
guest_type OPTIONAL |
OR filter. Return only results where a guest type matches. The values must be TravelAPI ids |
hotel_name OPTIONAL |
Filter. Return only results where hotel name matches |
limit OPTIONAL |
Number of results to retrieve between 1-30, default: 15 |
offset OPTIONAL |
How many results to skip from the first position. Useful for paginating default: 0 |
partners_per_hotel OPTIONAL |
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners default: 3 |
enhanced OPTIONAL |
This parameter allows you to add additional content to the default response. Available options are: filters: Returns extra object in the response including the filters like stars, district, city, etc. price_slider: Return the price_slider. partners: Returns information about the active partners in the system. is_official, the logo, the name and the website_id. images: Returns images for the hotels. With the partner website_id and the urls. amenities: Returns the hotels amenities. query_location: Returns the location (higher level entities according to the searched entity) and map boundary (the coordinates of the search area). extras: Returns the hotel chain of the hotels. translations: Returns a dictionary with all literals and their corresponding translations using the request locale. detailed_reviews: Returns information from the hotel reviews provided by Trustyou (http://www.trustyou.com/) |
index OPTIONAL |
Mark the times of the same requests sent to bellboy, start from 1, default: 0 |
sorting_version OPTIONAL |
(B2B partner needn't set the value) Hotel sorting score calculation options mr4: RelevanceContainerScoring, mr5: IronRankScoring, mr6: IronCatRankScoring, mr4a: RelevanceContainerHotelModelScoring, mr7: HotelBookingModelScoring, mr8: IronTrainModelScoring, default: mr4 |
t_version OPTIONAL |
(B2B partner needn't set the value) Used for ABTesting, default is '' |
app_name OPTIONAL |
(B2B partner needn't set the value) This parameter allows you to set the app name, default is '' |
appVersion OPTIONAL |
(B2B partner needn't set the value) This parameter allows you to set the app version, default is '' |
search_id OPTIONAL |
(B2B partner needn't set the value) Elasticsearch ID, for the same request, first time needn't set the value, second time can get the value from prior response, default is '' |
cug_segments OPTIONAL |
(B2B partner needn't set the value) Only v3 supports, it allows you to add special cug segments for user. Options are: mobile, logged_in, business, apps, flight_booked |
cug OPTIONAL |
(B2B partner needn't set the value) This parameter allows you to reorder hotels by cug price. Options are: 1: cug hotels would be ranked ahead, 2: high cug hotels would be ranked ahead. default is 0, order by parameter sort |
Note: The OR and AND filters allow multiple values coma separated. For example: &amenities=Lift,Bar
Response
Example response:
{
"correlation_id": "3889f7d3-65d2-40e8-8034-4accb18bade9",
"meta": {
"status": "COMPLETED",
"search_id": "915c591f9fd48c64c9c0ad748d6e6851f09f5dbc4d608495479f1a07e1e7a968",
"total": 311,
"completion_percentage": 100,
"total_available": 73,
"hotels_filtered": 73,
"offers": 459,
"total_available_filtered": 73,
"request_id": "e3f5c49b-3139-4311-99e1-5ca746541f58"
},
"results": {
"location": [
{
"entity_type": "Island",
"entity_id": "81972530",
"name": "Malta Island"
},
{
"entity_type": "Nation",
"entity_id": "29475371",
"name": "Malte"
}
],
"hotels": [
{
"coordinates": [
14.50658,
35.91218
],
"stars": "3",
"offer_types": [
"META"
],
"district": "[]",
"reviews_count": 868,
"city": "33349710",
"cheapest_offer_type": "META",
"amenities": [
"Lift",
"ConciergeService",
"Laundry",
...
],
"property_type": "Hotel",
"distance": 6142.49539734,
"rating": {
"desc": "rating_satisfactory",
"value": 6.9
},
"name": "Roma Hotel",
"hotel_id": "47053033",
"images": [
{
"gallery": "https://d2xf5gjipzd8cd.cloudfront.net/available/353235256/mca.jpg",
"provider": "h_ct",
"category": "Beach",
"dynamic": "https://d2xf5gjipzd8cd.cloudfront.net/available/353235256/353235256_WxH.jpg",
"thumbnail": "https://d2xf5gjipzd8cd.cloudfront.net/available/353235256/mt.jpg"
},
...
],
"offers": [
{
"partner_id": "h_hc",
"price": 78,
"price_gbp": 69,
"available": null,
"strike_through": null,
"meal_plan": "breakfast_included",
"is_official": true,
"closed_user_groups": null,
"dbook_link": null,
"room_type": [
"triple_room"
],
"deeplink": "www.skyscanner.fr/hotel_deeplink/4.0/FR/fr-FR/EUR/h_hc/47053033/2019-06-18/2019-06-19/hotel/hotel/hotels?guests=1&rooms=1&legacy_provider_id=17&request_id=e3f5c49b-3139-4311-99e1-5ca746541f58&q_datetime_utc=2019-06-13T02%3A44%3A29&appName=mobileweb&appVersion=2.0&ticket_price=78&deeplink_data=eyJ1cmwiOiAiaHR0cHM6Ly9mci5ob3RlbHMuY29tL1BQQ0hvdGVsRGV0YWlscz9hZHVsdHNQZXJSb29tPTEmdmlldz1wcmljZXMmbXBoPTAmcG9zPUhDT01fRlImbnVtYmVyT2ZSb29tcz0xJnJhdGVwbGFuaWQ9MjA2Nzc3OTk1JmhvdGVsaWQ9Mjk5NTg4JmRlcGFydHVyZURhdGU9MTkvMDYvMjAxOSZsb2NhbGU9ZnJfRlImYXJyaXZhbERhdGU9MTgvMDYvMjAxOSIsICJmaWVsZHMiOiB7InNpZ25hdHVyZSI6ICJmNTkyYjZiNjU0OWUxMDBiYTNkNzM1NDNhOGZmNGNmOSJ9fQ%3D%3D&max_price=78.0&channel=website&max_price=78.0&channel=website",
"cancellation_text": null,
"cancellation": "non_refundable"
},
...
],
"relevance": 2000000.3686611408
},
...
],
"price_includes": [
"vat",
"other_taxes"
],
"average_min_price": 139.73,
"filters": {
"stars": [
{
"id": "5",
"max_price": null,
"count": 7,
"min_price": 182
},
...
],
"chain": [
{
"id": "Corinthia",
"max_price": null,
"count": 1,
"min_price": 182
}
],
"price_buckets": [
{
"id": "PR_BK_0",
"max_price": 50,
"count": 7,
"min_price": null
},
...
],
"district": [],
"city": [
{
"id": "33350111",
"max_price": null,
"count": 27,
"min_price": 36
},
...
],
"meal_plan": [
{
"id": "breakfast_included",
"max_price": null,
"count": 43,
"min_price": 28
},
...
],
"guest_rating": [
{
"id": "6",
"text": "rating_satisfactory",
"count": 3,
"min_price": null,
"max_price": null
},
...
],
"amenities": [
{
"id": "WifiService",
"max_price": null,
"count": 70,
"min_price": 20
},
...
],
"property_type": [
{
"id": "Hotel",
"max_price": null,
"count": 42,
"min_price": 50
},
...
],
"guest_type": [
{
"id": "solo",
"max_price": null,
"count": 1,
"min_price": null
},
...
],
"cancellation": [
{
"id": "free_cancellation",
"max_price": null,
"count": 26,
"min_price": 28
},
...
]
},
"partners": [
{
"website_id": "h_ay",
"is_dbook": false,
"logo": "www.skyscanner.fr/images/websites/220x80/h_ay.png",
"name": "ibis Styles",
"is_official": true,
"partner_type": "Group"
},
...
],
"hotel_pivot": null,
"map_boundary": {
"s_w_lng": 14.448729,
"s_w_lat": 35.893651,
"n_e_lat": 35.913651,
"n_e_lng": 14.51241
},
"closed_user_group_deals": [],
"entity": {
"name": "Luqa",
"entity_type": "City",
"centroid": {
"type": "Point",
"coordinates": [
14.4886111132,
35.858888893
]
},
"entity_id": "46395655",
"official_center": {
"type": "Point",
"coordinates": [
14.4892913,
35.859653
]
}
}
},
"count": 15,
"translations": {
"CUG_create_account_to_unlock_deals_msg": "Créez un compte pour avoir accès à des offres exclusives",
"CUG_deal": "OFFRE",
...
}
}
RESPONSE PARAMETERS
Element | Detail |
---|---|
correlation_id |
An identifier of the request |
meta |
Contains metadata regarding the search cycle such as it's status |
count |
Number of hotels |
results |
An object containing the hotels and the enhancers if requested |
translations |
Only with the translations enhanced. Dictionary with all literals that can be translated |
Location Request
This endpoint gives back hotels with prices too but instead from an entity, around specific coordinates. It takes the coordinades as an input to provide the hotels. Provides the search by current location functionality.
API endpoint
GET /v1/prices/search/location/{lon,lat}
GET "https://www.skyscanner.net/g/hotels/v1/prices/search/location/{lon,lat}
?market={market}&locale={locale}&checkin_date={checkin_date}&checkout_date={checkout_date}
¤cy={currency}&adults={adults}&rooms={rooms}&images={images}&image_resolution={resolution}
&image_type={type}&boost_official_partners={boost}&sort={sort_method}&limit={limit}&offset={offset}
&partners_per_hotel={num_partners}&enhanced={enhanced}"
TRY IT OUT
HEADER VALUES
Header | Value |
---|---|
apikey REQUIRED |
This header is required to be on every single request any client does (it could also be accepted via query parameter) |
x-user-agent REQUIRED |
Indicates which is the device and the platform related to the client. The format for that header is device;B2B , where:Device is: T for tabletD for desktopM for mobileN if you are not able to detect the device type |
URI PARAMETERS
Parameter | Description |
---|---|
location REQUIRED |
Location to search hotels near it. Following the format: lon,lat |
version REQUIRED |
API version |
QUERY PARAMETERS
Parameter | Description |
---|---|
market REQUIRED |
Matching [A-Z]{2} |
locale REQUIRED |
Matching [a-z]{2}-[A-Z]{2} |
currency REQUIRED |
Currency code |
checkin_date REQUIRED |
YYYY-MM-DD |
checkout_date REQUIRED |
YYYY-MM-DD |
rooms REQUIRED |
Number of rooms default: 1 |
adults REQUIRED |
Number of adults default: 2 |
apikey REQUIRED |
This parameter is required to be on every single request any client does |
images OPTIONAL |
Maximum number of images to retrieve per each hotel between 1-30, default: 3 |
image_resolution OPTIONAL |
Resolution options high or low, default: high |
image_type OPTIONAL |
The format of the images thumbnail or gallery |
boost_official_partners OPTIONAL |
Indicates whether prices from official partners must be shown in the first place [1] or not [0] default: 0 |
sort OPTIONAL |
Sort by a given attribute. By default the relevance sorting is applied One of: relevance, -relevance, price, -price, distance, -distance, rating, -rating, stars, -stars |
price_min OPTIONAL |
Filter. Return only hotels where the cheaper price is at least price_min (included). Cannot be used together with price_buckets |
price_max OPTIONAL |
Filter. Return only hotels where the cheaper price is at most price_max (included). Cannot be used together with price_buckets |
price_buckets OPTIONAL |
OR filter. Return only hotels with offers inside the specified buckets. Cannot be used together with price_min/price_max |
district OPTIONAL |
OR filter. Return only results where a district matches |
stars OPTIONAL |
OR filter. Return only results where a star category matches. The values must be TravelAPI ids |
city OPTIONAL |
OR filter. When the search is done for an entity that contains different cities, this filter is available. Returns only results where the cities match. The values must be TravelAPI entity ids |
chain OPTIONAL |
OR filter. Return only results where a hotel chains matches. The values must be TravelAPI ids |
amenities OPTIONAL |
AND filter. Return only results where all amenities match. The values must be TravelAPI ids |
cancellation OPTIONAL |
OR filter. Return only results where a cancellation policies matches. Options are: free_cancellation, non_refundable, refundable, special_conditions |
meal_plan OPTIONAL |
OR filter. Return only results where a meal plan matches. Options are: room_only, breakfast_included, half_board, full_board, all_inclusive |
property_type OPTIONAL |
OR filter. Return only results where an accommodation type matches. The values must be TravelAPI ids |
hotel_name OPTIONAL |
Filter. Return only results where hotel name matches |
limit OPTIONAL |
Number of results to retrieve between 1-30, default: 30 |
offset OPTIONAL |
How many results to skip from the first position. Useful for paginating default: 0 |
partners_per_hotel OPTIONAL |
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners default: 3 |
enhanced OPTIONAL |
This parameter allows you to add additional content to the default response. The available options are: filters: Returns extra object in the response including the filters like stars, district, city, etc. price_slider: Return the price_slider. partners: Returns information about the active partners in the system. is_official, the logo, the name and the website_id. images: Returns images for the hotels. With the partner website_id and the urls. amenities: Returns the hotels amenities. query_location: Returns the location (higher level entities according to the searched entity) and map boundary (the coordinates of the search area). extras: Returns the hotel chain of the hotels. translations: Returns a dictionary with all literals and their corresponding translations using the request locale. |
Note: The OR and AND filters allow multiple values coma separated. For example: &amenities=Lift,Bar
Response
The response is the same as the search entity one but without the hotel_pivot
RESPONSE PARAMETERS
Element | Detail |
---|---|
correlation_id |
An identifier of the request |
meta |
Contains metadata regarding the search cycle such as it's status |
count |
Number of hotels |
results |
An object containing the hotels and the enhancers if requested |
translations |
Only with the translations enhanced. Dictionary with all literals that can be translated |
Search Prices, map version
Entity Request
Given an entity, this endpoint will give you back the hotels with prices around the provided entity, having the same intentions than the regular search prices but modifying the response to suit it in environments where the information has to be rendered in a map. These differences can be summarized into the following points:
- Every hotel will have one price (the cheapest).
- The default total amount of hotels returned per page will be 100.
- Support for bounding box queries to filter hotels that are inside of an area, the coordinates passed are serialized as left, bottom, right, top
API endpoint
GET /v1/prices/map/entity/{entity_id}
GET "https://www.skyscanner.net/g/hotels/v1/prices/map/entity/{entity_id}
?market={market}&locale={locale}&checkin_date={checkin_date}&checkout_date={checkout_date}
¤cy={currency}&adults={adults}&rooms={rooms}&images={images}&image_resolution={resolution}
&image_type={type}&boost_official_partners={boost}&sort={sort_method}&limit={limit}&offset={offset}
&partners_per_hotel={num_partners}&enhanced={enhanced}&bbox={left,bottom,right,top}"
TRY IT OUT
HEADER VALUES
Header | Value |
---|---|
apikey REQUIRED |
This header is required to be on every single request any client does (it could also be accepted via query parameter) |
x-user-agent REQUIRED |
Indicates which is the device and the platform related to the client. The format for that header is device;B2B , where:Device is: T for tabletD for desktopM for mobileN if you are not able to detect the device type |
URI PARAMETERS
Parameter | Description |
---|---|
entity_id REQUIRED |
Entity to search for hotels prices in it |
version REQUIRED |
API version |
QUERY PARAMETERS
Parameter | Description |
---|---|
market REQUIRED |
Matching [A-Z]{2} |
locale REQUIRED |
Matching [a-z]{2}-[A-Z]{2} |
currency REQUIRED |
Currency code |
checkin_date REQUIRED |
YYYY-MM-DD |
checkout_date REQUIRED |
YYYY-MM-DD |
rooms REQUIRED |
Number of rooms default: 1 |
adults REQUIRED |
Number of adults default: 2 |
apikey REQUIRED |
This parameter is required to be on every single request any client does |
images OPTIONAL |
Maximum number of images to retrieve per each hotel between 1-30, default: 3 |
image_resolution OPTIONAL |
Resolution options high or low, default: high |
image_type OPTIONAL |
The format of the images thumbnail or gallery |
boost_official_partners OPTIONAL |
Indicates whether prices from official partners must be shown in the first place [1] or not [0] default: 0 |
sort OPTIONAL |
Sort by a given attribute. By default the relevance sorting is applied One of: relevance, -relevance, price, -price, distance, -distance, rating, -rating, stars, -stars |
price_min OPTIONAL |
Filter. Return only hotels where the cheaper price is at least price_min (included). Cannot be used together with price_buckets |
price_max OPTIONAL |
Filter. Return only hotels where the cheaper price is at most price_max (included). Cannot be used together with price_buckets |
price_buckets OPTIONAL |
OR filter. Return only hotels with offers inside the specified buckets. Cannot be used together with price_min/price_max |
district OPTIONAL |
OR filter. Return only results where a district matches |
stars OPTIONAL |
OR filter. Return only results where a star category matches. The values must be TravelAPI ids |
city OPTIONAL |
OR filter. When the search is done for an entity that contains different cities, this filter is available. Returns only results where the cities match. The values must be TravelAPI entity ids |
chain OPTIONAL |
OR filter. Return only results where a hotel chains matches. The values must be TravelAPI ids |
amenities OPTIONAL |
AND filter. Return only results where all amenities match. The values must be TravelAPI ids |
cancellation OPTIONAL |
OR filter. Return only results where a cancellation policies matches. Options are: free_cancellation, non_refundable, refundable, special_conditions |
meal_plan OPTIONAL |
OR filter. Return only results where a meal plan matches. Options are: room_only, breakfast_included, half_board, full_board, all_inclusive |
property_type OPTIONAL |
OR filter. Return only results where an accommodation type matches. The values must be TravelAPI ids |
hotel_name OPTIONAL |
Filter. Return only results where hotel name matches |
limit OPTIONAL |
Number of results to retrieve between 1-100, default: 100 |
offset OPTIONAL |
How many results to skip from the first position. Useful for paginating default: 0 |
partners_per_hotel OPTIONAL |
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners. Map only supports 1 partner per hotel default: 1 |
enhanced OPTIONAL |
This parameter allows you to add additional content to the default response. The available options are: filters: Returns extra object in the response including the filters like stars, district, city, etc. price_slider: Return the price_slider. query_location: Returns the location (higher level entities according to the searched entity) and map boundary (the coordinates of the search area). translations: Returns a dictionary with all literals and their corresponding translations using the request locale. |
bbox OPTIONAL |
Bounding Box coordinates in which to look for hotels as bbox=left,bottom,right,top Example: -4.051,50.478,1.853,52.909 |
Note: The OR and AND filters allow multiple values coma separated. For example: &amenities=Lift,Bar
Response
Example response:
{
"correlation_id": "d93ddb4d-c97c-4979-9627-e188e02c8409",
"meta": {
"status": "COMPLETED",
"total": 5500,
"total_available": 4092,
"completion_percentage": 100,
"offers": 67275,
"hotels_filtered": 0
},
"count": 15,
"results": {
"filters": {
"district": [
{
"id": "27562177",
"min_price": 45,
"max_price": null,
"count": 94
},
...
],
"chain": [
{
"id": "Holiday Inn",
"min_price": 74,
"max_price": null,
"count": 74
},
...
],
"cancellation": [
{
"id": "free_cancellation",
"min_price": 36,
"max_price": null,
"count": 2207
},
...
],
"city": [
{
"id": "27544008",
"min_price": 32,
"max_price": null,
"count": 856
},
...
],
"amenities": [
{
"id": "WifiService",
"min_price": 32,
"max_price": null,
"count": 3327
},
...
],
"price_buckets": [
{
"id": "PR_BK_0",
"min_price": null,
"max_price": 80,
"count": 130
},
...
],
"stars": [
{
"id": "4",
"min_price": 58,
"max_price": null,
"count": 1220
},
...
],
"meal_plan": [
{
"id": "room_only",
"min_price": 32,
"max_price": null,
"count": 2060
},
...
],
"property_type": [
{
"id": "Hotel",
"min_price": 32,
"max_price": null,
"count": 3486
},
...
]
},
"map_boundary": {
"n_e_lng": 1.72864,
"s_w_lng": -2.04675,
"s_w_lat": 50.63341,
"n_e_lat": 52.7619
},
"hotel_pivot": null,
"hotels": [
{
"reviews_count": 284,
"coordinates": [
1.2961,
51.12328
],
"hotel_id": "46997257",
"images": [
{
"provider": "h_dp",
"gallery": "http://d3ba47lalua02r.cloudfront.net/available/50049482/mca.jpg",
"thumbnail": "http://d3ba47lalua02r.cloudfront.net/available/50049482/mt.jpg"
}
],
"name": "The West Bank Guest House",
"offers": [
{
"price_gbp": 58,
"price": 58,
"deeplink": "www.skyscanner.net/hotel_deeplink/4.0/UK/en-GB/GBP/h_xp/46997257/2017-04-30/2017-05-02/hotel/hotel/hotels?guests=1&ticket_price=58&rooms_left=1&appVersion=2.0&q_datetime_utc=2017-04-25T13%3A37%3A37&rooms=1&deeplink_ids=eu-west-1.prod_ae42baa45b08402e0a109287d1780528&request_id=b745fa26-f166-478f-b52c-2fcee3f413fe&appName=web&legacy_provider_id=1&max_price=132.0",
"closed_user_groups": null
}
],
"stars": "4",
"rating": {
"value": 7.7,
"desc": "rating_good"
}
},
...
],
"location": [
{
"name": "United Kingdom",
"entity_id": "29475375",
"entity_type": "Nation"
}
]
},
"translations": {
"CUG_create_account_to_unlock_deals_msg": "Create an account to unlock exclusive deals",
"CUG_deal": "DEAL",
...
}
}
RESPONSE PARAMETERS
Element | Detail |
---|---|
correlation_id |
An identifier of the request |
meta |
Contains metadata regarding the search cycle such as it's status |
count |
Number of hotels |
results |
An object containing the hotels and the enhancers if requested |
translations |
Only with the translations enhanced. Dictionary with all literals that can be translated |
Location Request
This endpoint gives back hotels with prices too with map specific features but instead from an entity, around specific coordinates.
Provides the search by current location functionality.
API endpoint
GET /v1/prices/map/location/{lon,lat}
GET "https://www.skyscanner.net/g/hotels/v1/prices/map/location/{lon,lat}
?market={market}&locale={locale}&checkin_date={checkin_date}&checkout_date={checkout_date}
¤cy={currency}&adults={adults}&rooms={rooms}&images={images}&image_resolution={resolution}
&image_type={type}&boost_official_partners={boost}&sort={sort_method}&limit={limit}&offset={offset}
&partners_per_hotel={num_partners}&enhanced={enhanced}&bbox={left,bottom,right,top}"
TRY IT OUT
HEADER VALUES
Header | Value |
---|---|
apikey REQUIRED |
This header is required to be on every single request any client does (it could also be accepted via query parameter) |
x-user-agent REQUIRED |
Indicates which is the device and the platform related to the client. The format for that header is device;B2B , where:Device is: T for tabletD for desktopM for mobileN if you are not able to detect the device type |
URI PARAMETERS
Parameter | Description |
---|---|
location REQUIRED |
Location to search hotels near it. Following the format: lon,lat |
version REQUIRED |
API version |
QUERY PARAMETERS
Parameter | Description |
---|---|
market REQUIRED |
Matching [A-Z]{2} |
locale REQUIRED |
Matching [a-z]{2}-[A-Z]{2} |
currency REQUIRED |
Currency code |
checkin_date REQUIRED |
YYYY-MM-DD |
checkout_date REQUIRED |
YYYY-MM-DD |
rooms REQUIRED |
Number of rooms default: 1 |
adults REQUIRED |
Number of adults default: 2 |
apikey REQUIRED |
This parameter is required to be on every single request any client does |
images OPTIONAL |
Maximum number of images to retrieve per each hotel between 1-30, default: 3 |
image_resolution OPTIONAL |
Resolution options high or low, default: high |
image_type OPTIONAL |
The format of the images thumbnail or gallery |
boost_official_partners OPTIONAL |
Indicates whether prices from official partners must be shown in the first place [1] or not [0] default: 0 |
sort OPTIONAL |
Sort by a given attribute. By default the relevance sorting is applied One of: relevance, -relevance, price, -price, distance, -distance, rating, -rating, stars, -stars |
price_min OPTIONAL |
Filter. Return only hotels where the cheaper price is at least price_min (included). Cannot be used together with price_buckets |
price_max OPTIONAL |
Filter. Return only hotels where the cheaper price is at most price_max (included). Cannot be used together with price_buckets |
price_buckets OPTIONAL |
OR filter. Return only hotels with offers inside the specified buckets. Cannot be used together with price_min/price_max |
district OPTIONAL |
OR filter. Return only results where a district matches |
stars OPTIONAL |
OR filter. Return only results where a star category matches. The values must be TravelAPI ids |
city OPTIONAL |
OR filter. When the search is done for an entity that contains different cities, this filter is available. Returns only results where the cities match. The values must be TravelAPI entity ids |
chain OPTIONAL |
OR filter. Return only results where a hotel chains matches. The values must be TravelAPI ids |
amenities OPTIONAL |
AND filter. Return only results where all amenities match. The values must be TravelAPI ids |
cancellation OPTIONAL |
OR filter. Return only results where a cancellation policies matches. Options are: free_cancellation, non_refundable, refundable, special_conditions |
meal_plan OPTIONAL |
OR filter. Return only results where a meal plan matches. Options are: room_only, breakfast_included, half_board, full_board, all_inclusive |
property_type OPTIONAL |
OR filter. Return only results where an accommodation type matches. The values must be TravelAPI ids |
hotel_name OPTIONAL |
Filter. Return only results where hotel name matches |
limit OPTIONAL |
Number of results to retrieve between 1-100, default: 100 |
offset OPTIONAL |
How many results to skip from the first position. Useful for paginating default: 0 |
partners_per_hotel OPTIONAL |
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners. Map only supports 1 partner per hotel default: 1 |
enhanced OPTIONAL |
This parameter allows you to add additional content to the default response. The available options are: filters: Returns extra object in the response including the filters like stars, district, city, etc. price_slider: Return the price_slider. query_location: Returns the location (higher level entities according to the searched entity) and map boundary (the coordinates of the search area). translations: Returns a dictionary with all literals and their corresponding translations using the request locale. |
bbox OPTIONAL |
Bounding Box coordinates in which to look for hotels as bbox=left,bottom,right,top Example: -4.051,50.478,1.853,52.909 |
Note: The OR and AND filters allow multiple values coma separated. For example: &amenities=Lift,Bar
Response
The response is the same as the search map entity one
RESPONSE PARAMETERS
Element | Detail |
---|---|
correlation_id |
An identifier of the request |
meta |
Contains metadata regarding the search cycle such as it's status |
count |
Number of hotels |
results |
An object containing the hotels and the enhancers if requested |
translations |
Only with the translations enhanced. Dictionary with all literals that can be translated |
Hotel Prices
Request
Given a hotel, this endpoint will give back the hotel with all the information and live prices. To reuse the prices already fetched by previous calls to the search endpoint the parameter entity_id must be filled with the same entity id. Otherwise, the system will start fetching prices from the beginning for this specific hotel. Is a regular practice following the user flow first of all search for prices using the search prices endpoint and then retrieve more specific information - perhaps the detailed reviews - about one of the hotels using the hotel prices endpoint.
API endpoint
B2B partner please use v1 endpoint
GET /v1/prices/hotel/{hotel_id}
V3 is a new endpoint which supports dbook booking and cug overriding.
GET /v3/prices/hotel/{hotel_id}
GET "https://www.skyscanner.net/g/hotels/v1/prices/hotel/{hotel_id}
?entity_id=27539733&market={market}&locale={locale}&checkin_date={checkin_date}&checkout_date={checkout_date}
¤cy={currency}&adults={adults}&rooms={rooms}&images={images}&image_resolution={resolution}
&image_type={type}&boost_official_partners={boost}&partners_per_hotel={num_partners}"
TRY IT OUT
HEADER VALUES
Header | Value |
---|---|
apikey REQUIRED |
This header is required to be on every single request any client does (it could also be accepted via query parameter) |
x-user-agent REQUIRED |
Indicates which is the device and the platform related to the client. The format for that header is device;B2B , where:Device is: T for tabletD for desktopM for mobileN if you are not able to detect the device type |
URI PARAMETERS
Parameter | Description |
---|---|
hotel_id REQUIRED |
Hotel to search prices for |
version REQUIRED |
API version |
QUERY PARAMETERS
Parameter | Description |
---|---|
market REQUIRED |
Matching [A-Z]{2} |
locale REQUIRED |
Matching [a-z]{2}-[A-Z]{2} |
currency REQUIRED |
Currency code |
checkin_date REQUIRED |
YYYY-MM-DD |
checkout_date REQUIRED |
YYYY-MM-DD |
rooms REQUIRED |
Number of rooms default: 1 |
adults REQUIRED |
Number of adults default: 2 |
apikey REQUIRED |
This parameter is required to be on every single request any client does |
images OPTIONAL |
Maximum number of images to retrieve for each hotel between 1-30, default: 1 |
image_resolution OPTIONAL |
Resolution options high or low, default: high |
image_type OPTIONAL |
The format of the images thumbnail or gallery or dynamic |
boost_official_partners OPTIONAL |
Indicates whether prices from official partners must be shown in the first place [1] or not [0] default: 0 |
partners_per_hotel OPTIONAL |
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners default: 3 |
enhanced OPTIONAL |
This parameter allows you to add additional content to the default response. The available options are: location: Returns the higher level entities according to the search entity. translations: Returns a dictionary with all literals and their corresponding translations using the request locale. |
entity_id OPTIONAL |
This field should be present when this endpoint has been called when the user has already looked for prices in an upper entity containing the hotel in order to reuse the cached prices. For example: A user searches for prices in Paris (the service stores Paris prices). And then, the user opens a hotel details page. In this case, the request to the service must have the entity_id param fulfilled with the Paris entity_id in order to reuse the prices. |
index OPTIONAL |
Mark the times of the same requests sent to bellboy, start from 1, default: 0 |
t_version OPTIONAL |
(B2B partner needn't set the value) Used for ABTesting, default is '' |
app_name OPTIONAL |
(B2B partner needn't set the value) This parameter allows you to set the app name, default is '' |
appVersion OPTIONAL |
(B2B partner needn't set the value) This parameter allows you to set the app version, default is '' |
search_id OPTIONAL |
(B2B partner needn't set the value) Elasticsearch ID, the value can be got from search response or first request response, default is '' |
cug_segments OPTIONAL |
(B2B partner needn't set the value) Only v3 supports, it allows you to add special cug segments for user. Options are: mobile, logged_in, business, apps, flight_booked |
ignore_cache OPTIONAL |
(B2B partner needn't set the value) This parameter allows you to bypass Elasticsearch and Redis cache. Options are: 0: use cache, 1: bypass cache, default: 0 |
Response
Example response:
{
"meta": {
"completion_percentage": 100,
"search_id": "ca7a935824954024c5228394530677d66ecb7d5b24973a4d8afda9b911c4fb0f",
"status": "COMPLETED",
"offers": 14,
"request_id": "39bb7709-2707-4ad5-8b74-7193810224fe"
},
"translations": {
"CUG_create_account_to_unlock_deals_msg": "Créez un compte pour avoir accès à des offres exclusives",
"CUG_deal": "OFFRE",
...
},
"results": {
"partners": [
{
"is_dbook": false,
"website_id": "h_98",
"is_official": true,
"name": "Travelanium",
"logo": "www.skyscanner.fr/images/websites/220x80/h_98.png",
"partner_type": "CRS"
},
...
],
"location": [
{
"entity_type": "District",
"name": "Estación de Gran Vía",
"entity_id": "27562647"
},
...
],
"hotel": {
"chain_id": "90718893",
"checkin_time": "14:00",
"district": "27562647",
"name_en": "Hotel Madrid Gran Via 25 Managed By Melia",
"description": "https://dmf5e20brgddt.cloudfront.net/547b_2533_fr-FR_b2b",
"reviews_count": 3011,
"group_name": [
"Meliá"
],
"dbook_partners": [],
"images": [
{
"thumbnail": "https://d2xf5gjipzd8cd.cloudfront.net/available/353312696/mt.jpg",
"provider": "h_ct",
"category": "Bedroom",
"dynamic": "https://d2xf5gjipzd8cd.cloudfront.net/available/353312696/353312696_WxH.jpg",
"gallery": "https://d2xf5gjipzd8cd.cloudfront.net/available/353312696/mca.jpg"
},
...
],
"property_type": "Hotel",
"offers": [
{
"closed_user_groups": null,
"available": null,
"room_type": [
"double_room"
],
"deeplink": "www.skyscanner.fr/hotel_deeplink/4.0/FR/fr-FR/EUR/h_me/46942019/2019-06-18/2019-06-19/hotel/hotel/hotels?guests=1&rooms=1&legacy_provider_id=1751086970&request_id=39bb7709-2707-4ad5-8b74-7193810224fe&q_datetime_utc=2019-06-12T12%3A02%3A15&appName=mobileweb&appVersion=2.0&ticket_price=166&deeplink_data=eyJ1cmwiOiAiaHR0cHM6Ly9tbS5tZWxpYS5jb20vZHluY2xpY2svbWVsaWEtY29tLz9ldGYtcHVibGlzaGVyPXNreXNjYW5uZXImZXRmLW5hbWU9bWV0YXNlYXJjaF9za3lzY2FubmVyX0ZSLXNreXNjYW5uZXImZXRmLXByZHJlZj0yODE5JmVzZWctbmFtZT1OTyZlc2VnLWl0ZW09Tk8mZXRmLW1lZGlhcGxhbj1GUi1JbmZsdWVuY2VyJmV1cmw9aHR0cDovL3d3dy5tZWxpYS5jb20vblJlc2VydmF0aW9ucy9qc3AvQ19SYXRlcy5qc3A%2FaWRQYXJ0bmVyPVNLWVNDQU5ORVJfRlImY29kaWdvSG90ZWw9MjgxOSZub2NoZXM9MSZpZExhbmc9ZnImZGlhPTE4Jm1lcz0wNiZhbmlvPTIwMTkmaGFiaXRhY2lvbmVzPTEmYWR1bHRzUm9vbTE9MSZjaGlsZHJlblJvb20xPTAmSWRQcm09U0tZU0NBTk5FUiZkaXZpc2FQcmVzZW50YWNpb249JnV0bV9zb3VyY2U9c2t5c2Nhbm5lciZ1dG1fbWVkaXVtPW1ldGFzZWFyY2gmdXRtX2NhbXBhaWduPXNreXNjYW5uZXJfRlImdXRtX2NvbnRlbnQ9MjgxOSZtYXJrZXQ9RlIiLCAiZmllbGRzIjogeyJzaWduYXR1cmUiOiAiYjBkZTZkNTFjMzk3YWRiZGEwMjlhOThhMGMxYWU4ZTcifX0%3D&max_price=205.0&channel=website",
"dbook_link": null,
"partner_id": "h_me",
"price": 166,
"is_official": true,
"price_gbp": 148,
"meal_plan": "breakfast_not_included",
"strike_through": null,
"cancellation": "non_refundable",
"cancellation_text": "Si vous annulez ou modifiez Annuler ou Modifier ou vous ne vous présentez pas 100 PCT vous sera débité en frais d'annulation"
},
...
],
"total_rooms": 175,
"name": "Hotel Madrid Gran Vía 25, Managed by Meliá",
"stars": "3",
"amenities": [
"Bar",
"FrontDesk24hService",
"Restaurant",
...
],
"chain": "Meliã",
"address": {
"street_address": "Gran Via 25",
"adm1": "Communauté de Madrid",
"postcode": "28013",
"district": "Estación de Gran Vía",
"city": "Madrid",
"nation": "Espagne"
},
"city": "27544850",
"group_id": [
"90719217"
],
"checkout_time": "12:00",
"hotel_id": "46942019",
"official_website": "h_me",
"rich_media": null,
"rating": {
"value": 8.1,
"desc": "rating_very_good"
},
"reviews": {
"badges": [
{
"badge_type": "hotel_type",
"text": "Très bon hôtel en ville",
"subtext": "Top 11% en ville"
},
...
],
"categories": [
{
"score": 95,
"entries": [
"Très bien situé",
"Emplacement parfait",
"Situation géographique excellente",
"Bonne situation"
],
"id": "14",
"name": "Site"
},
...
],
"guest_types": [
{
"perc": 62,
"value": "couple",
"score": 86
},
...
],
"count": 3011,
"summary": "Très bon hôtel pour une escapade citadine. Parfait pour le tourisme et proche des boutiques."
},
"coordinates": [
-3.70228,
40.42003
],
"policies": "https://dmf5e20brgddt.cloudfront.net/a27b_2533_fr-FR_policies_b2b"
},
"price_includes": [
"vat",
"other_taxes"
]
}
}
RESPONSE PARAMETERS
Element | Detail |
---|---|
meta |
Contains metadata regarding the search cycle such as it's status |
results |
An object containing the hotel and the enhancers if requested |
translations |
Only with the translations enhanced. Dictionary with all literals that can be translated |
Hotels Prices
Request
Given multiple hotels (maximum 50), this endpoint will give back the hotels with all the information and live prices.
API endpoint
GET /v2/prices/hotel/{hotel_ids}
GET "https://www.skyscanner.net/g/hbe-bellboy/v2/prices/hotel/{hotel_ids}
?market={market}&locale={locale}&checkin_date={checkin_date}&checkout_date={checkout_date}
¤cy={currency}&adults={adults}&rooms={rooms}&images={images}&image_resolution={resolution}
&image_type={type}&boost_official_partners={boost}&partners_per_hotel={num_partners}"
TRY IT OUT
HEADER VALUES
Header | Value |
---|---|
apikey REQUIRED |
This header is required to be on every single request any client does (it could also be accepted via query parameter) |
x-user-agent REQUIRED |
Indicates which is the device and the platform related to the client. The format for that header is device;B2B , where:Device is: T for tabletD for desktopM for mobileN if you are not able to detect the device type |
URI PARAMETERS
Parameter | Description |
---|---|
hotel_ids REQUIRED |
Hotels to search prices for, using ',' to join the hotels |
version REQUIRED |
API version |
QUERY PARAMETERS
Parameter | Description |
---|---|
market REQUIRED |
Matching [A-Z]{2} |
locale REQUIRED |
Matching [a-z]{2}-[A-Z]{2} |
currency REQUIRED |
Currency code |
checkin_date REQUIRED |
YYYY-MM-DD |
checkout_date REQUIRED |
YYYY-MM-DD |
rooms REQUIRED |
Number of rooms default: 1 |
adults REQUIRED |
Number of adults default: 2 |
apikey REQUIRED |
This parameter is required to be on every single request any client does |
images OPTIONAL |
Maximum number of images to retrieve per each hotel between 1-30, default: 1 |
image_resolution OPTIONAL |
Resolution options high or low, default: high |
image_type OPTIONAL |
The format of the images thumbnail or gallery or dynamic |
boost_official_partners OPTIONAL |
Indicates whether prices from official partners must be shown in the first place [1] or not [0] default: 0 |
partners_per_hotel OPTIONAL |
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners default: 3 |
enhanced OPTIONAL |
This parameter allows you to add additional content to the default response. The available options are: location: Returns the higher level entities according to the search entity. translations: Returns a dictionary with all literals and their corresponding translations using the request locale. |
app_name OPTIONAL |
(B2B partner needn't set the value) This parameter allows you to set the app name, default is '' |
appVersion OPTIONAL |
(B2B partner needn't set the value) This parameter allows you to set the app version, default is '' |
Response
Example response:
{
"results": {
"partners": [
{
"logo": "www.skyscanner.net/images/websites/220x80/d_ct.png",
"name": "Trip.com",
"is_official": false,
"partner_type": "OTA",
"website_id": "d_ct",
"is_dbook": true
},
...
],
"hotels": [
{
"group_name": [
"Meliá"
],
"amenities": [
"Laundry",
"Parking",
...
],
"name": "Hotel Madrid Gran Via 25 Managed By Melia",
"images": [
{
"provider": "h_ct",
"dynamic": "https://d2xf5gjipzd8cd.cloudfront.net/available/353312696/353312696_WxH.jpg",
"thumbnail": "https://d2xf5gjipzd8cd.cloudfront.net/available/353312696/mt.jpg",
"category": "Bedroom",
"gallery": "https://d2xf5gjipzd8cd.cloudfront.net/available/353312696/mca.jpg"
},
...
],
"rich_media": null,
"location": [
{
"entity_id": "27562647",
"name": "Gran Vía",
"entity_type": "District"
},
...
],
"rating": {
"desc": "rating_very_good",
"value": 8.1
},
"offers": [
{
"cancellation_text": null,
"meal_plan": null,
"partner_id": "d_ct",
"deeplink": "www.skyscanner.net/None&max_price=199.0&channel=website",
"available": null,
"is_official": false,
"room_type": [
"generic_room"
],
"price": 128,
"price_gbp": 128,
"strike_through": null,
"closed_user_groups": null,
"cancellation": null,
"dbook_link": "www.skyscanner.net/hotels/book/46942019/d_ct?adults=1&rooms=1&checkin=2019-06-18&checkout=2019-06-19&requestId=6431b3f0-09b8-4d8b-9808-0bc551f9725c&priceCurrency=GBP&appId=hate-squad&priceAmount=128"
},
...
],
"city": "27544850",
"reviews_count": 3022,
"reviews": {
"categories": [
{
"entries": [
"Great location",
"Fantastic position",
"Wonderfully located",
"Perfect for shopping"
],
"name": "Location",
"score": 95,
"id": "14"
},
...
],
"guest_types": [
{
"perc": 65,
"value": "couple",
"score": 79
},
...
],
"count": 3022,
"badges": [
{
"badge_type": "hotel_type",
"subtext": "Top 11% in city",
"text": "Great city hotel"
},
...
],
"summary": "Very good city hotel. Good for sightseeing and located near shopping areas."
},
"policies": "https://dmf5e20brgddt.cloudfront.net/7657_2533_en-GB_policies_b2b",
"hotel_id": "46942019",
"chain_id": "90718893",
"chain": "Meliã",
"total_rooms": 175,
"name_en": "Hotel Madrid Gran Via 25 Managed By Melia",
"checkin_time": "14:00",
"group_id": [
"90719217"
],
"property_type": "Hotel",
"checkout_time": "12:00",
"description": "https://dmf5e20brgddt.cloudfront.net/e289_2533_en-GB_b2b",
"district": "27562647",
"stars": "3",
"coordinates": [
-3.70228,
40.42003
],
"address": {
"nation": "Spain",
"adm1": "Community of Madrid",
"city": "Madrid",
"district": "Gran Vía",
"street_address": "Gran Via 25",
"postcode": "28013"
}
},
...
],
"price_includes": [
"vat",
"other_taxes"
]
},
"translations": {
"CUG_create_account_to_unlock_deals_msg": "Create an account to unlock exclusive deals",
"CUG_deal": "DEAL",
...
},
"meta": {
"status": "COMPLETED",
"completion_percentage": 100,
"search_id": "dd30d77810d91ae4ca062378c31d09c9658e7fec85330fcd6b515b55b6c73d4b",
"offers": 62,
"request_id": "6431b3f0-09b8-4d8b-9808-0bc551f9725c"
}
}
RESPONSE PARAMETERS
Element | Detail |
---|---|
meta |
Contains metadata regarding the search cycle such as it's status |
results |
An object containing the hotel and the enhancers if requested |
translations |
Only with the translations enhanced. Dictionary with all literals that can be translated |
Localisation
All Skyscanner services are localized by market, language, and currency, so these three parameters must be added to every request.
Locales
Retrieve the locales that we support to translate your content.
GET "https://partners.api.skyscanner.net/apiservices/
reference/v1.0/locales?
apiKey={apiKey}"
API endpoint
GET /reference/v1.0/locales
Try it out
REQUEST PARAMETERS
Parameter | Description |
---|---|
apiKey REQUIRED |
Your API Key. |
Example response
{
"Locales": [
{
"Code": "ar-AE",
"Name": "العربية (الإمارات العربية المتحدة)"
},
{
"Code": "az-AZ",
"Name": "Azərbaycanılı (Azərbaycan)"
},
{
"Code": "bg-BG",
"Name": "български (България)"
},
{
"Code": "ca-ES",
"Name": "català (català)"
},
...
]
}
RESPONSE PARAMETERS
Parameter | Description |
---|---|
Locales |
Contains the list of locales that we support with name and code. |
Currencies
Retrieve the currencies that we support.
GET "https://partners.api.skyscanner.net/apiservices/
reference/v1.0/currencies?
apiKey={apiKey}"
API endpoint
GET /reference/v1.0/currencies
Try it out
REQUEST PARAMETERS
Parameter | Description |
---|---|
apiKey REQUIRED |
Your API Key. |
Example response
{
"Currencies": [
{
"Code": "USD",
"Symbol": "$",
"ThousandsSeparator": ",",
"DecimalSeparator": ".",
"SymbolOnLeft": true,
"SpaceBetweenAmountAndSymbol": false,
"RoundingCoefficient": 0,
"DecimalDigits": 2
},
...
]
}
RESPONSE PARAMETERS
Parameter | Description |
---|---|
Currencies |
The list of currencies that we support, with corresponding symbol and formatting information for internationalisation. |
Markets
Retrieve the market countries that we support.
Most suppliers (airlines, travel agents, and car hire dealers) set their fares based on the market (or country of purchase). It is therefore necessary to specify the market country in every query.
GET "https://partners.api.skyscanner.net/apiservices/
reference/v1.0/countries/
{locale}?
apiKey={apiKey}"
API endpoint
GET /reference/v1.0/countries/{locale}
Try it out
REQUEST PARAMETERS
Parameter | Description |
---|---|
locale REQUIRED |
The language you want the results in (ISO locale). See locales for locales that we support. |
apiKey REQUIRED |
Your API Key. |
Example response
{
"Countries": [
{
"Code": "AD",
"Name": "Andorra"
},
{
"Code": "AE",
"Name": "United Arab Emirates"
},
{
"Code": "AF",
"Name": "Afghanistan"
},
...
]
}
RESPONSE PARAMETERS
Parameter | Description |
---|---|
Countries |
Contains the list of markets (array of countries as name-value pairs). |
Places
Places can be of 4 different types:
- Country
- City
- Airport
- Anywhere (flights browse API)
You can use any of the following endpoints to get information about places:
our Autosuggest endpoint to obtain a list of places and corresponding IDs that match a query string
our Autosuggest endpoint to get information about a specific place given its ID (for example, city name and country name for an airport)
our Geo catalog to get the full list of places that we support (please contact us to request access)
List of places
Get a list of places that match a query string.
GET "https://partners.api.skyscanner.net/apiservices/
autosuggest/v1.0/{country}/{currency}/{locale}?
query={query}&
apiKey={apiKey}"
API endpoint
GET /autosuggest/v1.0/{country}/{currency}/{locale}
Try it out
REQUEST PATH PARAMETERS
Parameter | Description |
---|---|
country REQUIRED |
The market/country code your user is in |
currency REQUIRED |
The currency code you want the prices in |
locale REQUIRED |
The locale code you want the results in (ISO locale) |
REQUEST QUERY PARAMETERS
Parameter | Description |
---|---|
query REQUIRED |
The query string. |
apiKey REQUIRED |
Your API Key or token. |
includeAirports OPTIONAL |
If set to true , airports will be included in the result. If set to false , airports will be excluded. By default, it is set to true . |
includeCities OPTIONAL |
If set to true , cities will be included in the result. If set to false , cities will be excluded. By default, it is set to true . |
includeCountries OPTIONAL |
If set to true , countries will be included in the result. If set to false , countries will be excluded. By default, it is set to true . |
Example response for query=pari
{
"Places": [
{
"PlaceId": "PARI-sky",
"EntityId": "27539733",
"Iata": "PAR",
"PlaceName": "Paris",
"CountryId": "FR-sky",
"RegionId": "",
"CityId": "PARI-sky",
"CountryName": "France"
},
{
"PlaceId": "CDG-sky",
"EntityId": "95565041",
"Iata": "",
"PlaceName": "Paris Charles de Gaulle",
"CountryId": "FR-sky",
"RegionId": "",
"CityId": "PARI-sky",
"CountryName": "France"
},
{
"PlaceId": "ORY-sky",
"EntityId": "95565040",
"Iata": "",
"PlaceName": "Paris Orly",
"CountryId": "FR-sky",
"RegionId": "",
"CityId": "PARI-sky",
"CountryName": "France"
},
...
]
}
RESPONSE PARAMETERS
Parameter | Description |
---|---|
Places |
Contains the list of places that match the query string. The places can be countries, cities or airports. |
Place Information
Get information about a specific country, city or airport using a Skyscanner Place ID. Alternatively, get information about the closest city using an IP address or lat-long coordinates.
API endpoint
GET /autosuggest/v1.0/{country}/{currency}/{locale}
Try it out
GET "https://partners.api.skyscanner.net/apiservices/
autosuggest/v1.0/{country}/{currency}/{locale}?
id={place_id}&
apiKey={apiKey}"
REQUEST PATH PARAMETERS
Parameter | Description |
---|---|
country REQUIRED |
The market/country code your user is in |
currency REQUIRED |
The currency code you want the prices in |
locale REQUIRED |
The locale code you want the results in (ISO locale) |
REQUEST QUERY PARAMETERS
Parameter | Description |
---|---|
id REQUIRED |
Should be one of the following: - The Skyscanner place id (e.g. "CDG-sky"). Will return information about the place specified. - An IP address (e.g. "188.39.95.140-ip"). Will return information about the city of the nearest airport to the IP specified. - Lat-long coordinates (e.g. "35.2794,139.0436-latlong"). Will return information about the city of the nearest airport to the coordinates specified. |
apiKey REQUIRED |
Your API Key or token. |
includeAirports OPTIONAL |
If set to true , airports will be included in the result. If set to false , airports will be excluded. By default, it is set to true . |
includeCities OPTIONAL |
If set to true , cities will be included in the result. If set to false , cities will be excluded. By default, it is set to true . |
includeCountries OPTIONAL |
If set to true , countries will be included in the result. If set to false , countries will be excluded. By default, it is set to true . |
Example response for United Kingdom: id=uk
{
"Places": [
{
"PlaceId": "UK-sky",
"EntityId": "29475375",
"Iata": "",
"PlaceName": "United Kingdom",
"CountryId": "UK-sky",
"CityId": "-sky",
"CountryName": "United Kingdom"
}
]
}
Example response for Charles de Gaulle airport: id=cdg
{
"Places": [
{
"PlaceId": "CDG-sky",
"EntityId": "95565041",
"Iata": "CDG",
"PlaceName": "Paris Charles de Gaulle",
"CountryId": "FR-sky",
"CityId": "PARI-sky",
"CountryName": "France"
}
]
}
Example response for user IP address 188.39.95.140: id=188.39.95.140-ip
{
"Places": [
{
"PlaceId": "LOND-sky",
"EntityId": "27544008",
"Iata": "",
"PlaceName": "London",
"CountryId": "UK-sky",
"CityId": "LOND-sky",
"CountryName": "United Kingdom"
}
]
}
RESPONSE PARAMETERS
Parameter | Description |
---|---|
Places |
Contains the information about the place such as name (in chosen locale), city, country. |
Geo Catalog
Get the full list of all the places that we support.
GET "https://partners.api.skyscanner.net/apiservices/
geo/v1.0?
apiKey={apiKey}"
API endpoint
GET /geo/v1.0
Try it out
REQUEST PARAMETERS
Parameter | Description |
---|---|
apiKey REQUIRED |
Your API Key. |
languageid |
A locale in ISO format, for example fr-FR |
Response extract:
{
"Continents": [
{
"Countries": [
{
"CurrencyId": "AFN",
"Regions": [],
"Cities": [
{
"SingleAirportCity": true,
"Airports": [
{
"CityId": "BINA",
"CountryId": "AF",
"Location": "67.823611, 34.804167",
"Id": "BIN",
"Name": "Bamiyan"
}
],
"CountryId": "AF",
"Location": "67.823611, 34.804167",
"IataCode": "BIN",
"Id": "BINA",
"Name": "Bamiyan"
},
...
]
},
...
]
},
...
]
}
RESPONSE PARAMETERS
Parameter | Description |
---|---|
Continents |
Contains the list of all the continents. |
Countries |
Contains the list of all the countries. |
Regions |
Contains the list of all the regions. |
Cities |
Contains the list of all the cities. |
Airports |
Contains the list of all the airports. |
Hotels And Carhire Autosuggest
Retrieve a list of geographical locations which can be used with the hotels and car hire APIs.
GET "https://www.skyscanner.net/g/autosuggest/v3/hotels?
q=lond&
market=US&
locale=en-US
REQUEST PARAMETERS
Parameter | Description |
---|---|
q |
User query. If empty, will return most popular places for the market based on market distance and number of hotels |
locale |
The locale you want the results in (ISO locale) |
market |
The market your user is in |
limit_geopolitical |
Only show results that are contained within any of the provided geopolitical entities (specified by its IDs, comma separated). |
exclude_geopolitical |
Only show results that are NOT contained in any of the provided geopolitical entities (specified by its IDs, comma separated). |
Example response for '?q=lond&locale=en-GB'
{
"results": [
{
"id": "27544008",
"localised_name": "London",
"localised_type": "City",
"type": "City",
"geo_containers": [
{
"id": "44293288",
"localised_name": "England",
"localised_type": "Region",
"type": "FirstLevelNationAdministrativeDivision"
},
{
"id": "29475375",
"localised_name": "United Kingdom",
"localised_type": "Country",
"type": "Nation"
}
]
},
...
]
}
RESPONSE PARAMETERS
Parameter | Description |
---|---|
results |
Contains a list of results for the query in order of relevance |
id |
Can be used as an input to the Hotels or CarHire Pricing Services or to query geo |
localised_name |
Entity name in the provided locale |
localised_type |
Contains the type in the locale used in the query |
type |
Identify the type of the entity (City, District, Hotel, ...) |
geo_containers |
The list of parent locations that contain one another in order (e.g. England, United Kingdom for London) |
Schemas
Example place codes:
EDIN-sky
CDG-iata
Each place can be referred to via different schemas, described below.
SCHEMAS
Parameter | Description |
---|---|
sky | Skyscanner code. The response from Autosuggest provides these ids. |
iata / iso | Airports and cities often use the internationally recognized IATA and ISO schemas. For Flights we recommend that you use the Skyscanner code which is very similar but solves ambiguous cases where a city and one of its airports share the same code. For Car Hire please use the IATA code. |
GeoNameCodes | GeoNameCodes from the GeoNames schema (see geonames.org) |
GeoNameIDs | GeoNameIDs from the GeoNames schema (see geonames.org) |
If the default Skyscanner schema is not used, the schema name must be appended to the place id as follows:
placeCode-locationSchema
Booking Redirects
In addition to price information, your users will need a URL that redirects them to where they can book their tickets.
You can redirect your users directly to the supplier's website (airline or travel agent)
Example deeplink
"PricingOptions": [
{
"Agents": [
4499211
],
"QuoteAgeInMinutes": 0,
"Price": 83.41,
"DeeplinkUrl": "https://partners.api.skyscanner.net/apiservices/deeplink/v2?_cje=jzj5DawL5zJyT%2bnfe1..."
},
When using flights live prices urls (or deeplinks) are provided in the response to redirect users to the third-party supplier's website with the details of the itinerary that was selected.
You can customize the redirect page by replacing the default logo with your logo. Please see How can I put my logo on the redirect page? for more information.
See how it looks with your logo
Referrals
The referral service is used to provide partner redirects to Skyscanner pages based on provided request parameters.
It can redirect to different pages within Skyscanner based on the provided {pagetype} parameter. For the full list of page types and examples see the sections below.
API endpoint
The API is accessible at https://skyscanner.net/g/referrals/v1
There is one main endpoint with the following URL structure:
https://skyscanner.net/g/referrals/v1/{vertical}/{pagetype}?mediaPartnerId={yourmediapartnerID}
The endpoint serves only GET requests and responds with HTTP status 301 redirecting to the desired Skyscanner page.
For the different possible values of the parameters and additional query parameters check the tables below.
We use Impact to track the redirects and associate them with the referral source.
You will need to include Impact tracking parameters as query parameters in your requests. Please
check the TRACKING QUERY PARAMETERS
section below for more details on the parameters. Although the
parameters are optional, the redirects will not be correctly tracked without them.
If you already have your tracking integration using the legacy associateid
parameter, we will still
support this and map the legacy parameter to the new Impact parameters automatically. However, we discourage
using it for new referral links, as it will become fully deprecated eventually.
TRY IT OUT
REQUEST PARAMETERS
Parameter | Description |
---|---|
vertical REQUIRED |
The vertical you want to redirect to. Allowed values: flights, cars |
pagetype REQUIRED |
Page type supported by each vertical. E.g. for flights -> day-view, browse-view... take a look at the next table |
PAGE TYPES
Vertical | Pagetypes |
---|---|
flights | home, day-view, calendar-month-view, browse-view, multicity, cheap-flights-to, flights-airline |
cars | home, day-view |
hotels | home-view, day-view, hotel-details |
TRACKING QUERY PARAMETERS
Parameter | Description |
---|---|
mediaPartnerId REQUIRED |
Your Impact partner ID as found at Impact.com. |
adId OPTIONAL |
This is an Impact ID used to identify your ad type. If none is provided, 1477112 will be used. This will be reported on Impact as Other Referral . |
utm_term OPTIONAL |
Additional alphanumeric tracking parameter you can add to your text links for additional tracking. This will be reported on Impact as Sub Id 2. |
Examples
An example including some of the parameters looks like:
Please try to avoid using locale
, market
and currency
, as these values will be governed by Skyscanner market detection logic on the Skyscanner site. If you believe you need to use these, please discuss with your account manager.
GET https://skyscanner.net/g/referrals/v1/flights/day-view/?origin=cdg&destination=edi&outboundDate=2023-02-07&utm_term=summer&mediaPartnerId=2850210
GET https://skyscanner.net/g/referrals/v1/flights/calendar-month-view/?origin=cdg&destination=edi&iym=1910&utm_term=summer&mediaPartnerId=2850210
GET https://skyscanner.net/g/referrals/v1/cars/day-view/?pickupPlace=BCN&dropoffPlace=BCN&pickupTime=2023-02-01T10:00&dropoffTime=2023-02-07T10:00&driverAge=42&mediaPartnerId=2850210
Preferred airlines: You can find IATA airline codes here
GET https://skyscanner.net/g/referrals/v1/flights/day-view?airlines=AA,!FB&market=UK¤cy=GBP&locale=en-GB&origin=cdg&destination=edi&outboundDate=2023-02-01&inboundDate=2023-02-07
Preferred alliances:
GET https://skyscanner.net/g/referrals/v1/flights/day-view?alliances=oneworld,Star%20Alliance&market=UK¤cy=GBP&locale=en-GB&origin=cdg&destination=edi&outboundDate=2023-02-01&inboundDate=2023-02-07
Departure times - in this example, the query parameter configures the filters to have the first leg's departure time as default (-), and the second leg between 0 (00:00) and 990 minutes (16:30).
GET https://skyscanner.net/g/referrals/v1/flights/day-view?departure-times=-%7C0-990&market=UK¤cy=GBP&locale=en-GB&origin=cdg&destination=edi&outboundDate=2023-02-01&inboundDate=2023-02-07
Duration:
GET https://skyscanner.net/g/referrals/v1/flights/day-view?duration=1320&market=UK¤cy=GBP&locale=en-GB&origin=cdg&destination=edi&outboundDate=2023-02-01&inboundDate=2023-02-07
Specific request query parameters are provided in the tables below.
RESPONSE PARAMETERS
A successful response contains no content and returns HTTP 301. The URL to redirect to is provided in the Location header of the response.
Flights Parameters
Flights - Referral
Page type | Description |
---|---|
home | Skyscanner's Home Example Link |
day-view | Flights Day View Example Link |
calendar-month-view | Flights MonthView Example Link |
browse-view | Flights BrowseView Example Link |
multicity | Flights Multicity Example Link |
cheap-flights-to | Cheap Flights To Example Link |
flights-airline | Flights Airline Example Link |
For more details, please see our Examples
Cars Parameters
Cars - Referral
API endpoint | Description |
---|---|
home | CarHire Home Example Link |
day-view | CarHire DayView Example Link |
Hotels Parameters
Hotels - Referral
API endpoint | Description |
---|---|
home-view | Hotels Home Example Link |
day-view | Hotels DayView Example Link |
hotel-details | Hotel Details Example Link |
Flights Home Page Schema
/flights/home
A schema definition for the flights home page microsite supported parameters
Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions |
---|---|---|---|---|---|---|
Can be instantiated | No | Unknown status | No | Forbidden | Allowed | none |
Flights Home Page Type
object
Flights Home Page
Flights Home Page Properties
Property | Type | Required | Nullable |
---|---|---|---|
market | string |
Optional | cannot be null |
locale | string |
Optional | cannot be null |
currency | string |
Optional | cannot be null |
market
The market of the user. Examples: UK, US, ES
market
is optional
Type:
string
Marketcannot be null
market Type
string
Market
market Constraints
unknown format: the value of this string must follow the format: market
locale
The desired locale for the page. Examples: es-ES, en-GB, ru-RU
locale
is optional
Type:
string
Localecannot be null
locale Type
string
Locale
locale Constraints
unknown format: the value of this string must follow the format: locale
currency
The desired currency for the page. Examples: GBP, EUR, USD
currency
is optional
Type:
string
Currencycannot be null
currency Type
string
Currency
currency Constraints
unknown format: the value of this string must follow the format: currency
Flights Day View Schema
/flights/day-view
A schema definition for the flights day-view microsite supported parameters
Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions |
---|---|---|---|---|---|---|
Can be instantiated | No | Unknown status | No | Forbidden | Allowed | none |
Flights Day View Type
object
Flights Day View
Flights Day View Properties
Property | Type | Required | Nullable |
---|---|---|---|
origin | string |
Required | cannot be null |
destination | string |
Required | cannot be null |
outboundDate | string |
Required | cannot be null |
inboundDate | string |
Optional | cannot be null |
adultsv2 | integer |
Required | cannot be null |
childrenv2 | string |
Optional | cannot be null |
infants | integer |
Optional | cannot be null |
cabinclass | string |
Required | cannot be null |
rtn | string |
Optional | cannot be null |
preferDirects | boolean |
Optional | cannot be null |
showDirectDays | boolean |
Optional | cannot be null |
outboundaltsenabled | boolean |
Optional | cannot be null |
inboundaltsenabled | boolean |
Optional | cannot be null |
alternativeorigins | array |
Optional | cannot be null |
alternativedestinations | array |
Optional | cannot be null |
market | string |
Optional | cannot be null |
locale | string |
Optional | cannot be null |
currency | string |
Optional | cannot be null |
sortby | string |
Optional | cannot be null |
airlines | string |
Optional | cannot be null |
alliances | string |
Optional | cannot be null |
departure-times | string |
Optional | cannot be null |
duration | integer |
Optional | cannot be null |
origin
Location code for the origin
origin
is required
Type:
string
Origincannot be null
origin Type
string
Origin
origin Constraints
unknown format: the value of this string must follow the format: place
destination
Location code for the destination
destination
is required
Type:
string
Destinationcannot be null
destination Type
string
Destination
destination Constraints
unknown format: the value of this string must follow the format: place
outboundDate
Outbound date in the format YYYY-MM-DD
outboundDate
is required
Type:
string
Outbound Datecannot be null
outboundDate Type
string
Outbound Date
outboundDate Constraints
unknown format: the value of this string must follow the format: date-yymmdd
inboundDate
Inbound date in the format YYYY-MM-DD
inboundDate
is optional
Type:
string
Inbound Datecannot be null
inboundDate Type
string
Inbound Date
inboundDate Constraints
unknown format: the value of this string must follow the format: date-yymmdd
adultsv2
Number of adult passengers. Adults have to be 16 years old or older.
adultsv2
is required
Type:
integer
Adult passengers. Adults have to be 16 years old or older.cannot be null
adultsv2 Type
integer
Adult passengers. Adults have to be 16 years old or older.
adultsv2 Constraints
minimum: the value of this number must greater than or equal to: 1
adultsv2 Default Value
The default value is:
1
childrenv2
Number of child passengers. The value must be in the format integer|integer.. where each number is the age of the child passenger
childrenv2
is optional
Type:
string
Child passengers. Add a child and specify the age (must be from 2 to 15).cannot be null
childrenv2 Type
string
Child passengers. Add a child and specify the age (must be from 2 to 15).
childrenv2 Constraints
unknown format: the value of this string must follow the format: delimited-ages
infants
Number of infant passengers. An infant is 1 year old or younger.
infants
is optional
Type:
integer
Infant passengers. An infant is 1 year old or younger.cannot be null
infants Type
integer
Infant passengers. An infant is 1 year old or younger.
cabinclass
Cabin class for the flight, possible values are: economy, premiumeconomy, business and first
cabinclass
is required
Type:
string
Cabin Classcannot be null
cabinclass Type
string
Cabin Class
cabinclass Constraints
enum: the value of this property must be equal to one of the following values:
Value | Explanation |
---|---|
"economy" |
|
"premiumeconomy" |
|
"business" |
|
"first" |
cabinclass Default Value
The default value is:
"economy"
rtn
Trip type: 0 if oneway or 1 if return or multicity trip
rtn
is optional
Type:
string
Trip Typecannot be null
rtn Type
string
Trip Type
rtn Constraints
enum: the value of this property must be equal to one of the following values:
Value | Explanation |
---|---|
"0" |
|
"1" |
preferDirects
Will search only for direct flights if the value is true
preferDirects
is optional
Type:
boolean
Direct Flights Preferredcannot be null
preferDirects Type
boolean
Direct Flights Preferred
showDirectDays
Show days with direct flights
showDirectDays
is optional
Type:
boolean
Show days with direct flightscannot be null
showDirectDays Type
boolean
Show days with direct flights
showDirectDays Default Value
The default value is:
true
outboundaltsenabled
Including nearby airports as an outbound place
outboundaltsenabled
is optional
Type:
boolean
Including nearby airports as an outbound placecannot be null
outboundaltsenabled Type
boolean
Including nearby airports as an outbound place
inboundaltsenabled
Including nearby airports as an inbound place
inboundaltsenabled
is optional
Type:
boolean
Including nearby airports as an inbound placecannot be null
inboundaltsenabled Type
boolean
Including nearby airports as an inbound place
alternativeorigins
An array of location codes which will be used as alternative origins
alternativeorigins
is optional
Type:
string[]
cannot be null
alternativeorigins Type
string[]
alternativedestinations
An array of location codes which will be used as alternative destinations
alternativedestinations
is optional
Type:
string[]
cannot be null
alternativedestinations Type
string[]
market
The market of the user. Examples: UK, US, ES
market
is optional
Type:
string
Marketcannot be null
market Type
string
Market
market Constraints
unknown format: the value of this string must follow the format: market
locale
The desired locale for the page. Examples: es-ES, en-GB, ru-RU
locale
is optional
Type:
string
Localecannot be null
locale Type
string
Locale
locale Constraints
unknown format: the value of this string must follow the format: locale
currency
The desired currency for the page. Examples: GBP, EUR, USD
currency
is optional
Type:
string
Currencycannot be null
currency Type
string
Currency
currency Constraints
unknown format: the value of this string must follow the format: currency
sortby
Sets the sorting order for the results. Possible values are: best, cheapest and fastest.
sortby
is optional
Type:
string
Sortingcannot be null
sortby Type
string
Sorting
sortby Constraints
enum: the value of this property must be equal to one of the following values:
Value | Explanation |
---|---|
"best" |
|
"cheapest" |
|
"fastest" |
airlines
List of comma separated IATA carrier codes to be passed to the dayview filters. For example: &airlines=AA,KL,LH. To unselect airline from the filters, the code must be specified with exclamation mark. For example: &airlines=AA,!KL,!LH
airlines
is optional
Type:
string
Sets the dayview airlines filters.cannot be null
airlines Type
string
Sets the dayview airlines filters.
airlines Constraints
unknown format: the value of this string must follow the format: airlines
alliances
Comma separated list of alliance names passed to the dayview filters. For example: &alliances=OneWorld,Star%20Alliance. Valid values are 'OneWorld', 'Star Alliance', 'SkyTeam' and 'Value Alliance'
alliances
is optional
Type:
string
Sets the dayview alliances filters.cannot be null
alliances Type
string
Sets the dayview alliances filters.
alliances Constraints
unknown format: the value of this string must follow the format: alliances
departure-times
Sets the dayview departure time filters in minutes. For example: &departure-times=00-90,30-990 (first leg departs between 00 and 1:30 and second leg departs between 00:30 and 16:30).
departure-times
is optional
Type:
string
Sets the dayview departure time filters.cannot be null
departure-times Type
string
Sets the dayview departure time filters.
departure-times Constraints
unknown format: the value of this string must follow the format: departure-times
duration
Sets the dayview duration filters in minutes. For example: &duration=1320 (22 hours)
duration
is optional
Type:
integer
Sets the dayview duration filters.cannot be null
duration Type
integer
Sets the dayview duration filters.
Flights Browse View Schema
/flights/browse-view
A schema definition for the flights browse view microsite supported parameters
Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions |
---|---|---|---|---|---|---|
Can be instantiated | No | Unknown status | No | Forbidden | Allowed | none |
Flights Browse View Type
object
Flights Browse View
Flights Browse View Properties
Property | Type | Required | Nullable |
---|---|---|---|
origin | string |
Required | cannot be null |
destination | string |
Optional | cannot be null |
outboundDate | string |
Optional | cannot be null |
inboundDate | string |
Optional | cannot be null |
adultsv2 | integer |
Optional | cannot be null |
childrenv2 | string |
Optional | cannot be null |
infants | integer |
Optional | cannot be null |
oym | string |
Optional | cannot be null |
iym | string |
Optional | cannot be null |
rtn | string |
Optional | cannot be null |
preferDirects | boolean |
Optional | cannot be null |
market | string |
Optional | cannot be null |
locale | string |
Optional | cannot be null |
currency | string |
Optional | cannot be null |
origin
Location code for the origin
origin
is required
Type:
string
Origincannot be null
origin Type
string
Origin
origin Constraints
unknown format: the value of this string must follow the format: place
destination
Location code for the destination
destination
is optional
Type:
string
Destinationcannot be null
destination Type
string
Destination
destination Constraints
unknown format: the value of this string must follow the format: place
outboundDate
Outbound date in the format YYYY-MM-DD
outboundDate
is optional
Type:
string
Outbound datecannot be null
outboundDate Type
string
Outbound date
outboundDate Constraints
unknown format: the value of this string must follow the format: date-as-provided
inboundDate
Inbound date in the format YYYY-MM-DD
inboundDate
is optional
Type:
string
Inbound datecannot be null
inboundDate Type
string
Inbound date
inboundDate Constraints
unknown format: the value of this string must follow the format: date-as-provided
adultsv2
Number of adult passengers. Adults have to be 16 years old or older.
adultsv2
is optional
Type:
integer
Adult passengers. Adults have to be 16 years old or older.cannot be null
adultsv2 Type
integer
Adult passengers. Adults have to be 16 years old or older.
adultsv2 Constraints
minimum: the value of this number must greater than or equal to: 1
childrenv2
Number of child passengers. The value must be in the format integer|integer.. where each number is the age of the child passenger
childrenv2
is optional
Type:
string
Child passengers. Add a child and specify the age (must be from 2 to 15).cannot be null
childrenv2 Type
string
Child passengers. Add a child and specify the age (must be from 2 to 15).
childrenv2 Constraints
unknown format: the value of this string must follow the format: delimited-ages
infants
Number of infant passengers. An infant is 1 year old or younger.
infants
is optional
Type:
integer
Infant passengers. An infant is 1 year old or younger.cannot be null
infants Type
integer
Infant passengers. An infant is 1 year old or younger.
oym
Departure date in the format: YYYY-MM
oym
is optional
Type:
string
Departure datecannot be null
oym Type
string
Departure date
oym Constraints
unknown format: the value of this string must follow the format: date-yymm
iym
Arrival date in the format: YYYY-MM
iym
is optional
Type:
string
Arrival datecannot be null
iym Type
string
Arrival date
iym Constraints
unknown format: the value of this string must follow the format: date-yymm
rtn
Trip type: 0 if oneway or 1 if return or multicity trip
rtn
is optional
Type:
string
Trip typecannot be null
rtn Type
string
Trip type
rtn Constraints
enum: the value of this property must be equal to one of the following values:
Value | Explanation |
---|---|
"0" |
|
"1" |
preferDirects
Will search only for direct flights if the value is true
preferDirects
is optional
Type:
boolean
Direct flights preferredcannot be null
preferDirects Type
boolean
Direct flights preferred
market
The market of the user. Examples: UK, US, ES
market
is optional
Type:
string
Marketcannot be null
market Type
string
Market
market Constraints
unknown format: the value of this string must follow the format: market
locale
The desired locale for the page. Examples: es-ES, en-GB, ru-RU
locale
is optional
Type:
string
Localecannot be null
locale Type
string
Locale
locale Constraints
unknown format: the value of this string must follow the format: locale
currency
The desired currency for the page. Examples: GBP, EUR, USD
currency
is optional
Type:
string
Currencycannot be null
currency Type
string
Currency
currency Constraints
unknown format: the value of this string must follow the format: currency
Flights Calendar Month View Schema
/flights/calendar-month-view
A schema definition for the flights calendar month view microsite supported parameters
Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions |
---|---|---|---|---|---|---|
Can be instantiated | No | Unknown status | No | Forbidden | Allowed | none |
Flights Calendar Month View Type
object
Flights Calendar Month View
Flights Calendar Month View Properties
Property | Type | Required | Nullable |
---|---|---|---|
origin | string |
Required | cannot be null |
destination | string |
Required | cannot be null |
oym | string |
Optional | cannot be null |
iym | string |
Optional | cannot be null |
adultsv2 | integer |
Optional | cannot be null |
childrenv2 | string |
Optional | cannot be null |
infants | integer |
Optional | cannot be null |
rtn | string |
Optional | cannot be null |
preferDirects | boolean |
Optional | cannot be null |
selectedoday | string |
Optional | cannot be null |
selectediday | string |
Optional | cannot be null |
market | string |
Optional | cannot be null |
locale | string |
Optional | cannot be null |
currency | string |
Optional | cannot be null |
origin
Location code for the origin
origin
is required
Type:
string
Origincannot be null
origin Type
string
Origin
origin Constraints
unknown format: the value of this string must follow the format: place
destination
Location code for the destination
destination
is required
Type:
string
Destinationcannot be null
destination Type
string
Destination
destination Constraints
unknown format: the value of this string must follow the format: place
oym
Departure date in the format: YYYY-MM
oym
is optional
Type:
string
Departure datecannot be null
oym Type
string
Departure date
oym Constraints
unknown format: the value of this string must follow the format: date-yymm
iym
Arrival date in the format: YYYY-MM
iym
is optional
Type:
string
Arrival datecannot be null
iym Type
string
Arrival date
iym Constraints
unknown format: the value of this string must follow the format: date-yymm
adultsv2
Number of adult passengers. Adults have to be 16 years old or older.
adultsv2
is optional
Type:
integer
Adult passengers. Adults have to be 16 years old or older.cannot be null
adultsv2 Type
integer
Adult passengers. Adults have to be 16 years old or older.
adultsv2 Constraints
minimum: the value of this number must greater than or equal to: 1
childrenv2
Number of child passengers. The value must be in the format integer|integer.. where each number is the age of the child passenger
childrenv2
is optional
Type:
string
Child passengers. Add a child and specify the age (must be from 2 to 15).cannot be null
childrenv2 Type
string
Child passengers. Add a child and specify the age (must be from 2 to 15).
childrenv2 Constraints
unknown format: the value of this string must follow the format: delimited-ages
infants
Number of infant passengers. An infant is 1 year old or younger.
infants
is optional
Type:
integer
Infant passengers. An infant is 1 year old or younger.cannot be null
infants Type
integer
Infant passengers. An infant is 1 year old or younger.
rtn
Trip type: 0 if oneway or 1 if return or multicity trip
rtn
is optional
Type:
string
Trip typecannot be null
rtn Type
string
Trip type
rtn Constraints
enum: the value of this property must be equal to one of the following values:
Value | Explanation |
---|---|
"0" |
|
"1" |
preferDirects
Will search only for direct flights if the value is true
preferDirects
is optional
Type:
boolean
Direct flights preferredcannot be null
preferDirects Type
boolean
Direct flights preferred
selectedoday
Preselected outbound day of the month.
selectedoday
is optional
Type:
string
Preselected outbound day of the month.cannot be null
selectedoday Type
string
Preselected outbound day of the month.
selectedoday Constraints
unknown format: the value of this string must follow the format: selected-date
selectediday
Preselected inbound day of the month.
selectediday
is optional
Type:
string
Preselected inbound day of the month.cannot be null
selectediday Type
string
Preselected inbound day of the month.
selectediday Constraints
unknown format: the value of this string must follow the format: selected-date
market
The market of the user. Examples: UK, US, ES
market
is optional
Type:
string
Marketcannot be null
market Type
string
Market
market Constraints
unknown format: the value of this string must follow the format: market
locale
The desired locale for the page. Examples: es-ES, en-GB, ru-RU
locale
is optional
Type:
string
Localecannot be null
locale Type
string
Locale
locale Constraints
unknown format: the value of this string must follow the format: locale
currency
The desired currency for the page. Examples: GBP, EUR, USD
currency
is optional
Type:
string
Currencycannot be null
currency Type
string
Currency
currency Constraints
unknown format: the value of this string must follow the format: currency
Flights Day View for multicity search Schema
/flights/multicity
A schema definition for the flights day-view microsite supported query parameters
Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions |
---|---|---|---|---|---|---|
Can be instantiated | No | Unknown status | No | Forbidden | Allowed | none |
Flights Day View for multicity search Type
object
Flights Day View for multicity search
Flights Day View for multicity search Properties
Property | Type | Required | Nullable |
---|---|---|---|
origin0 | string |
Required | cannot be null |
date0 | string |
Required | cannot be null |
destination0 | string |
Required | cannot be null |
origin1 | string |
Optional | cannot be null |
date1 | string |
Optional | cannot be null |
destination1 | string |
Optional | cannot be null |
origin2 | string |
Optional | cannot be null |
date2 | string |
Optional | cannot be null |
destination2 | string |
Optional | cannot be null |
origin3 | string |
Optional | cannot be null |
date3 | string |
Optional | cannot be null |
destination3 | string |
Optional | cannot be null |
origin4 | string |
Optional | cannot be null |
date4 | string |
Optional | cannot be null |
destination4 | string |
Optional | cannot be null |
origin5 | string |
Optional | cannot be null |
date5 | string |
Optional | cannot be null |
destination5 | string |
Optional | cannot be null |
adultsv2 | integer |
Required | cannot be null |
childrenv2 | string |
Optional | cannot be null |
infants | integer |
Optional | cannot be null |
cabinclass | string |
Required | cannot be null |
market | string |
Optional | cannot be null |
locale | string |
Optional | cannot be null |
currency | string |
Optional | cannot be null |
origin0
Location code for the origin of the first flight
origin0
is required
Type:
string
First flight origincannot be null
origin0 Type
string
First flight origin
origin0 Constraints
unknown format: the value of this string must follow the format: place
date0
Outbound date of the first flight in the format YYYY-MM-DD
date0
is required
Type:
string
Outbound Date of the first flightcannot be null
date0 Type
string
Outbound Date of the first flight
date0 Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-dd
destination0
Location code for the destination of the first flight
destination0
is required
Type:
string
First flight destinationcannot be null
destination0 Type
string
First flight destination
destination0 Constraints
unknown format: the value of this string must follow the format: place
origin1
Location code for the origin of the second flight
origin1
is optional
Type:
string
Second flight origincannot be null
origin1 Type
string
Second flight origin
origin1 Constraints
unknown format: the value of this string must follow the format: place
date1
Outbound date of the second flight in the format YYYY-MM-DD
date1
is optional
Type:
string
Outbound Date of the second flightcannot be null
date1 Type
string
Outbound Date of the second flight
date1 Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-dd
destination1
Location code for the destination of the second flight
destination1
is optional
Type:
string
Second flight destinationcannot be null
destination1 Type
string
Second flight destination
destination1 Constraints
unknown format: the value of this string must follow the format: place
origin2
Location code for the origin of the third flight
origin2
is optional
Type:
string
Third flight origincannot be null
origin2 Type
string
Third flight origin
origin2 Constraints
unknown format: the value of this string must follow the format: place
date2
Outbound date of the third flight in the format YYYY-MM-DD
date2
is optional
Type:
string
Outbound Date of the third flightcannot be null
date2 Type
string
Outbound Date of the third flight
date2 Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-dd
destination2
Location code for the destination of the third flight
destination2
is optional
Type:
string
Third flight destinationcannot be null
destination2 Type
string
Third flight destination
destination2 Constraints
unknown format: the value of this string must follow the format: place
origin3
Location code for the origin of the fourth flight
origin3
is optional
Type:
string
Fourth flight origincannot be null
origin3 Type
string
Fourth flight origin
origin3 Constraints
unknown format: the value of this string must follow the format: place
date3
Outbound date of the fourth flight in the format YYYY-MM-DD
date3
is optional
Type:
string
Outbound Date of the fourth flightcannot be null
date3 Type
string
Outbound Date of the fourth flight
date3 Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-dd
destination3
Location code for the destination of the fourth flight
destination3
is optional
Type:
string
Fourth flight destinationcannot be null
destination3 Type
string
Fourth flight destination
destination3 Constraints
unknown format: the value of this string must follow the format: place
origin4
Location code for the origin of the fifth flight
origin4
is optional
Type:
string
Fifth flight origincannot be null
origin4 Type
string
Fifth flight origin
origin4 Constraints
unknown format: the value of this string must follow the format: place
date4
Outbound date of the fifth flight in the format YYYY-MM-DD
date4
is optional
Type:
string
Outbound Date of the fifth flight.cannot be null
date4 Type
string
Outbound Date of the fifth flight.
date4 Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-dd
destination4
Location code for the destination of the fifth flight
destination4
is optional
Type:
string
Fifth flight destinationcannot be null
destination4 Type
string
Fifth flight destination
destination4 Constraints
unknown format: the value of this string must follow the format: place
origin5
Location code for the origin of the sixth flight
origin5
is optional
Type:
string
Sixth flight origincannot be null
origin5 Type
string
Sixth flight origin
origin5 Constraints
unknown format: the value of this string must follow the format: place
date5
Outbound date of the sixth flight in the format YYYY-MM-DD
date5
is optional
Type:
string
Outbound Date of the sixth flightcannot be null
date5 Type
string
Outbound Date of the sixth flight
date5 Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-dd
destination5
Location code for the destination of the sixth flight
destination5
is optional
Type:
string
Sixth flight destinationcannot be null
destination5 Type
string
Sixth flight destination
destination5 Constraints
unknown format: the value of this string must follow the format: place
adultsv2
Number of adult passengers. Adults have to be 16 years old or older.
adultsv2
is required
Type:
integer
Adult passengers. Adults have to be 16 years old or older.cannot be null
adultsv2 Type
integer
Adult passengers. Adults have to be 16 years old or older.
adultsv2 Constraints
minimum: the value of this number must greater than or equal to: 1
adultsv2 Default Value
The default value is:
1
childrenv2
Number of child passengers. The value must be in the format integer|integer.. where each number is the age of the child passenger
childrenv2
is optional
Type:
string
Child passengers. Add a child and specify the age (must be from 2 to 15).cannot be null
childrenv2 Type
string
Child passengers. Add a child and specify the age (must be from 2 to 15).
childrenv2 Constraints
unknown format: the value of this string must follow the format: delimited-ages
infants
Number of infant passengers. An infant is 1 year old or younger.
infants
is optional
Type:
integer
Infant passengers. An infant is 1 year old or younger.cannot be null
infants Type
integer
Infant passengers. An infant is 1 year old or younger.
cabinclass
Cabin class for the flight, possible values are: economy, premiumeconomy, business and first
cabinclass
is required
Type:
string
Cabin Classcannot be null
cabinclass Type
string
Cabin Class
cabinclass Constraints
enum: the value of this property must be equal to one of the following values:
Value | Explanation |
---|---|
"economy" |
|
"premiumeconomy" |
|
"business" |
|
"first" |
cabinclass Default Value
The default value is:
"economy"
market
The market of the user. Examples: UK, US, ES
market
is optional
Type:
string
Marketcannot be null
market Type
string
Market
market Constraints
unknown format: the value of this string must follow the format: market
locale
The desired locale for the page. Examples: es-ES, en-GB, ru-RU
locale
is optional
Type:
string
Localecannot be null
locale Type
string
Locale
locale Constraints
unknown format: the value of this string must follow the format: locale
currency
The desired currency for the page. Examples: GBP, EUR, USD
currency
is optional
Type:
string
Currencycannot be null
currency Type
string
Currency
currency Constraints
unknown format: the value of this string must follow the format: currency
Cheap Flights To View Schema
/flights/cheap-flights-to
A schema definition for the cheap flights to microsite supported parameters
Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions |
---|---|---|---|---|---|---|
Can be instantiated | No | Unknown status | No | Forbidden | Allowed | none |
Cheap Flights To View Type
object
Cheap Flights To View
Cheap Flights To View Properties
Property | Type | Required | Nullable |
---|---|---|---|
destination | string |
Required | cannot be null |
market | string |
Optional | cannot be null |
locale | string |
Optional | cannot be null |
currency | string |
Optional | cannot be null |
destination
Location code for the destination
destination
is required
Type:
string
Destinationcannot be null
destination Type
string
Destination
destination Constraints
unknown format: the value of this string must follow the format: place
market
The market of the user. Examples: UK, US, ES
market
is optional
Type:
string
Marketcannot be null
market Type
string
Market
market Constraints
unknown format: the value of this string must follow the format: market
locale
The desired locale for the page. Examples: es-ES, en-GB, ru-RU
locale
is optional
Type:
string
Localecannot be null
locale Type
string
Locale
locale Constraints
unknown format: the value of this string must follow the format: locale
currency
The desired currency for the page. Examples: GBP, EUR, USD
currency
is optional
Type:
string
Currencycannot be null
currency Type
string
Currency
currency Constraints
unknown format: the value of this string must follow the format: currency
Flights Airline Schema
/flights/flights-airline
A schema definition for the flights airline microsite supported parameters
Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions |
---|---|---|---|---|---|---|
Can be instantiated | No | Unknown status | No | Forbidden | Allowed | none |
Flights Airline Type
object
Flights Airline
Flights Airline Properties
Property | Type | Required | Nullable |
---|---|---|---|
airlineCode | string |
Required | cannot be null |
airlineName | string |
Optional | cannot be null |
market | string |
Optional | cannot be null |
locale | string |
Optional | cannot be null |
currency | string |
Optional | cannot be null |
airlineCode
The airline code.
airlineCode
is required
Type:
string
The airline code.cannot be null
airlineCode Type
string
The airline code.
airlineCode Constraints
unknown format: the value of this string must follow the format: airline-code
airlineName
The airline name.
airlineName
is optional
Type:
string
The airline name.cannot be null
airlineName Type
string
The airline name.
airlineName Constraints
unknown format: the value of this string must follow the format: airline-name
market
The market of the user. Examples: UK, US, ES
market
is optional
Type:
string
Marketcannot be null
market Type
string
Market
market Constraints
unknown format: the value of this string must follow the format: market
locale
The desired locale for the page. Examples: es-ES, en-GB, ru-RU
locale
is optional
Type:
string
Localecannot be null
locale Type
string
Locale
locale Constraints
unknown format: the value of this string must follow the format: locale
currency
The desired currency for the page. Examples: GBP, EUR, USD
currency
is optional
Type:
string
Currencycannot be null
currency Type
string
Currency
currency Constraints
unknown format: the value of this string must follow the format: currency
Carhire Home View Schema
/cars/home
A schema definition for the carhire home page microsite supported parameters
Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions |
---|---|---|---|---|---|---|
Can be instantiated | No | Unknown status | No | Forbidden | Allowed | none |
Carhire Home View Type
object
Carhire Home View
Carhire Home View Properties
Property | Type | Required | Nullable |
---|---|---|---|
market | string |
Optional | cannot be null |
locale | string |
Optional | cannot be null |
currency | string |
Optional | cannot be null |
market
The market of the user. Examples: UK, US, ES
market
is optional
Type:
string
Marketcannot be null
market Type
string
Market
market Constraints
unknown format: the value of this string must follow the format: market
locale
The desired locale for the page. Examples: es-ES, en-GB, ru-RU
locale
is optional
Type:
string
Localecannot be null
locale Type
string
Locale
locale Constraints
unknown format: the value of this string must follow the format: locale
currency
The desired currency for the page. Examples: GBP, EUR, USD
currency
is optional
Type:
string
Currencycannot be null
currency Type
string
Currency
currency Constraints
unknown format: the value of this string must follow the format: currency
Carhire Day View Schema
/cars/day-view
A schema definition for the carhire day-view microsite supported parameters
Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions |
---|---|---|---|---|---|---|
Can be instantiated | No | Unknown status | No | Forbidden | Allowed | none |
Carhire Day View Type
object
Carhire Day View
Carhire Day View Properties
Property | Type | Required | Nullable |
---|---|---|---|
pickupPlace | string |
Required | cannot be null |
dropoffPlace | string |
Optional | cannot be null |
pickupTime | string |
Required | cannot be null |
dropoffTime | string |
Required | cannot be null |
driverAge | integer |
Required | cannot be null |
market | string |
Optional | cannot be null |
locale | string |
Optional | cannot be null |
currency | string |
Optional | cannot be null |
pickupPlace
Pick up IATA code / hotel or city entity id
pickupPlace
is required
Type:
string
Pickupcannot be null
pickupPlace Type
string
Pickup
pickupPlace Constraints
unknown format: the value of this string must follow the format: carhire-place
dropoffPlace
Pick up IATA code / hotel or city entity id
dropoffPlace
is optional
Type:
string
Drop offcannot be null
dropoffPlace Type
string
Drop off
dropoffPlace Constraints
unknown format: the value of this string must follow the format: carhire-place
pickupTime
Pick Up Datetime in ISO 8601 standard. I.e YYYY-MM-DDTHH:MM
pickupTime
is required
Type:
string
Pickup timecannot be null
pickupTime Type
string
Pickup time
pickupTime Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-ddThh:mm
dropoffTime
Drop Off Datetime in ISO 8601 standard. I.e YYYY-MM-DDTHH:MM
dropoffTime
is required
Type:
string
Drop off timecannot be null
dropoffTime Type
string
Drop off time
dropoffTime Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-ddThh:mm
driverAge
Driver age between 21 and 99
driverAge
is required
Type:
integer
Driver's agecannot be null
driverAge Type
integer
Driver's age
driverAge Constraints
unknown format: the value of this string must follow the format: driver-age
market
The market of the user. Examples: UK, US, ES
market
is optional
Type:
string
Marketcannot be null
market Type
string
Market
market Constraints
unknown format: the value of this string must follow the format: market
locale
The desired locale for the page. Examples: es-ES, en-GB, ru-RU
locale
is optional
Type:
string
Localecannot be null
locale Type
string
Locale
locale Constraints
unknown format: the value of this string must follow the format: locale
currency
The desired currency for the page. Examples: GBP, EUR, USD
currency
is optional
Type:
string
Currencycannot be null
currency Type
string
Currency
currency Constraints
unknown format: the value of this string must follow the format: currency
Hotels Home View Schema
/hotels/home-view
A schema definition for the hotels home-view microsite supported parameters.
Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions |
---|---|---|---|---|---|---|
Can be instantiated | No | Unknown status | No | Forbidden | Allowed | none |
Hotels Home View Type
object
Hotels Home View
Hotels Home View Properties
Property | Type | Required | Nullable |
---|---|---|---|
checkin | string |
Optional | cannot be null |
checkout | string |
Optional | cannot be null |
adults | integer |
Optional | cannot be null |
rooms | integer |
Optional | cannot be null |
skyscanner_node_code | string |
Optional | cannot be null |
market | string |
Optional | cannot be null |
locale | string |
Optional | cannot be null |
currency | string |
Optional | cannot be null |
checkin
Checkin date in the format YYYY-MM-DD
checkin
is optional
Type:
string
Check-in Datecannot be null
checkin Type
string
Check-in Date
checkin Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-dd
checkout
Checkout date in the format YYYY-MM-DD
checkout
is optional
Type:
string
Checkout Datecannot be null
checkout Type
string
Checkout Date
checkout Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-dd
adults
Number of adults. Adults number should be greater than or equal to the rooms number.
adults
is optional
Type:
integer
Number of adult guestscannot be null
adults Type
integer
Number of adult guests
rooms
Number of rooms. Rooms number should be less than or equal to the adults number.
rooms
is optional
Type:
integer
Number of roomscannot be null
rooms Type
integer
Number of rooms
skyscanner_node_code
The IATA code of the destination.
skyscanner_node_code
is optional
Type:
string
Destinationcannot be null
skyscanner_node_code Type
string
Destination
market
The market of the user. Examples: UK, US, ES
market
is optional
Type:
string
Marketcannot be null
market Type
string
Market
market Constraints
unknown format: the value of this string must follow the format: market
locale
The desired locale for the page. Examples: es-ES, en-GB, ru-RU
locale
is optional
Type:
string
Localecannot be null
locale Type
string
Locale
locale Constraints
unknown format: the value of this string must follow the format: locale
currency
The desired currency for the page. Examples: GBP, EUR, USD
currency
is optional
Type:
string
Currencycannot be null
currency Type
string
Currency
currency Constraints
unknown format: the value of this string must follow the format: currency
Hotels Day View Schema
/hotels/day-view
A schema definition for the hotels day-view microsite supported parameters
Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions |
---|---|---|---|---|---|---|
Can be instantiated | No | Unknown status | No | Forbidden | Allowed | none |
Hotels Day View Type
object
Hotels Day View
Hotels Day View Properties
Property | Type | Required | Nullable |
---|---|---|---|
entity_id | string |
Required | cannot be null |
checkin | string |
Optional | cannot be null |
checkout | string |
Optional | cannot be null |
adults | integer |
Optional | cannot be null |
rooms | integer |
Optional | cannot be null |
sort | string |
Optional | cannot be null |
market | string |
Optional | cannot be null |
locale | string |
Optional | cannot be null |
currency | string |
Optional | cannot be null |
entity_id
The ID of the geo location for which the search will be performed.
entity_id
is required
Type:
string
Destination IDcannot be null
entity_id Type
string
Destination ID
entity_id Constraints
unknown format: the value of this string must follow the format: entity-id
checkin
Checkin date in the format YYYY-MM-DD
checkin
is optional
Type:
string
Check-in Datecannot be null
checkin Type
string
Check-in Date
checkin Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-dd
checkout
Checkout date in the format YYYY-MM-DD
checkout
is optional
Type:
string
Checkout Datecannot be null
checkout Type
string
Checkout Date
checkout Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-dd
adults
Number of adults. Adults number should be greater than or equal to the rooms number.
adults
is optional
Type:
integer
Number of adults in the room. Adult's number should be greater than or equal to the rooms number.cannot be null
adults Type
integer
Number of adults in the room. Adult's number should be greater than or equal to the rooms number.
adults Constraints
minimum: the value of this number must greater than or equal to: 1
adults Default Value
The default value is:
2
rooms
Number of rooms. Rooms number should be less than or equal to the adults number.
rooms
is optional
Type:
integer
Number of rooms. Room's number should be less than or equal to the adults number.cannot be null
rooms Type
integer
Number of rooms. Room's number should be less than or equal to the adults number.
rooms Constraints
minimum: the value of this number must greater than or equal to: 1
rooms Default Value
The default value is:
1
sort
Defines the order in which search results will appear. Options are: price, -price, distance, -rating, stars, -stars.
sort
is optional
Type:
string
Sortingcannot be null
sort Type
string
Sorting
sort Constraints
enum: the value of this property must be equal to one of the following values:
Value | Explanation |
---|---|
"price" |
|
"-price" |
|
"distance" |
|
"-hotel_rating" |
|
"stars" |
|
"-stars" |
market
The market of the user. Examples: UK, US, ES
market
is optional
Type:
string
Marketcannot be null
market Type
string
Market
market Constraints
unknown format: the value of this string must follow the format: market
locale
The desired locale for the page. Examples: es-ES, en-GB, ru-RU
locale
is optional
Type:
string
Localecannot be null
locale Type
string
Locale
locale Constraints
unknown format: the value of this string must follow the format: locale
currency
The desired currency for the page. Examples: GBP, EUR, USD
currency
is optional
Type:
string
Currencycannot be null
currency Type
string
Currency
currency Constraints
unknown format: the value of this string must follow the format: currency
Hotel Details Schema
/hotels/hotel-details
A schema definition for the hotel details microsite supported parameters
Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions |
---|---|---|---|---|---|---|
Can be instantiated | No | Unknown status | No | Forbidden | Allowed | none |
Hotel Details Type
object
Hotel Details
Hotel Details Properties
Property | Type | Required | Nullable |
---|---|---|---|
hotelId | string |
Required | cannot be null |
checkin | string |
Optional | cannot be null |
checkout | string |
Optional | cannot be null |
adults | integer |
Optional | cannot be null |
rooms | integer |
Optional | cannot be null |
market | string |
Optional | cannot be null |
locale | string |
Optional | cannot be null |
currency | string |
Optional | cannot be null |
hotelId
The entity ID of the hotel.
hotelId
is required
Type:
string
Hotel IDcannot be null
hotelId Type
string
Hotel ID
hotelId Constraints
unknown format: the value of this string must follow the format: hotel-id
checkin
Date in the format YYYY-MM-DD
checkin
is optional
Type:
string
Check-in Datecannot be null
checkin Type
string
Check-in Date
checkin Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-dd
checkout
Date in the format YYYY-MM-DD
checkout
is optional
Type:
string
Checkout Datecannot be null
checkout Type
string
Checkout Date
checkout Constraints
unknown format: the value of this string must follow the format: date-yyyy-mm-dd
adults
Number of adults
adults
is optional
Type:
integer
Number of adult guestscannot be null
adults Type
integer
Number of adult guests
rooms
Number of rooms
rooms
is optional
Type:
integer
Number of roomscannot be null
rooms Type
integer
Number of rooms
market
The market of the user. Examples: UK, US, ES
market
is optional
Type:
string
Marketcannot be null
market Type
string
Market
market Constraints
unknown format: the value of this string must follow the format: market
locale
The desired locale for the page. Examples: es-ES, en-GB, ru-RU
locale
is optional
Type:
string
Localecannot be null
locale Type
string
Locale
locale Constraints
unknown format: the value of this string must follow the format: locale
currency
The desired currency for the page. Examples: GBP, EUR, USD
currency
is optional
Type:
string
Currencycannot be null
currency Type
string
Currency
currency Constraints
unknown format: the value of this string must follow the format: currency
Response Codes
Our APIs use the following response codes:
RESPONSE CODES
Error Code | Meaning |
---|---|
200 | Success |
204 | No content - the session is still being created (wait and try again). |
301 | Moved Permanently – the result shows redirect location. |
304 | Not Modified – the results have not been modified since the last poll. |
400 | Bad Request -- Input validation failed. |
403 | Forbidden -- The API Key was not supplied, or it was invalid, or it is not authorized to access the service. |
410 | Gone – the session has expired. A new session must be created. |
429 | Too Many Requests – There have been too many requests in the last minute. |
500 | Server Error – An internal server error has occurred which has been logged. |
HTTPS migration guide
As of April 2020 in order to improve the security of our Skyscanner Travel APIs, we're requiring all partners to only use
the https
protocol for making requests to our APIs.
What is changing?
Requests and response bodies will remain the same. The only change is that partners must always use the TLS https
protocol for making requests to the APIs.
What do you need to do?
Partners should replace all references to the http
protocol with https
in all usages of our API URLs in your codebases.
What is the deadline for migration?
The deadline is 30th April 2020, but you should migrate as soon as possible to get the benefits of increased security with TLS.
Need help?
You can raise support tickets here