API Reference Tutorial Airline

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 83

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.


In order to use our APIs you need to contact us to request an API key via the following form.

If you need more help you can find more information and answers to questions in our FAQ which we continuously update.

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.

 Make sure that you are accessing the APIs through HTTPS


Be careful when sharing API keys. Do not publish them in public code repositories or add them to client-side API calls. When you need to make a client-side call (e.g. redirect) please ensure that you
use your short API key (the first 16 characters of your key). Please note that *not* all API endpoints support short API keys.

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

Your API Key.


REQUIRED

RESPONSE

Example of token result

_dR-ShOTX6w2SeENoXhHTsT9Z5N4UNqwReQqU_F8WkbgMDIuZx7ud7boHnngf4fT9bpPDFJh7nxB3hWsAT8x76w==

A successful response contains a string with token value.


Please don't forget to encode the token with a URL encoder to escape special characters before sending it as a value for apiKey URL parameter.
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).


Given the large number of suppliers that we query for quotes, the Live Pricing may take up to a minute to return all the results.
Unless you require exact prices, we recommend you start with the cache
prices API.

Hotels
Hotels Live Prices

API endpoint Description

Live prices

Returns live prices from all our suppliers for hotel deals (in the selected market).
NEW

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
application/json or application/xml

OPTIONAL The default response format is XML

REQUEST PATH PARAMETERS

Parameter Description

country

The market country your user is in


REQUIRED
Parameter Description

currency

The currency you want the prices in


REQUIRED

locale

The locale you want the results in (ISO locale)


REQUIRED

originPlace

The origin place (see places)


REQUIRED

destinationPlace

The destination place (see places)


REQUIRED

outboundPartialDate

The outbound date (see dates)


REQUIRED

inboundPartialDate

The return date (see dates). Use empty string for oneway trip.
OPTIONAL

REQUEST QUERY PARAMETERS

Parameter Description

apiKey

The API Key to identify the customer


REQUIRED

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
application/json or application/xml

OPTIONAL The default response format is XML

REQUEST PATH PARAMETERS

Parameter Description

country

The market country your user is in


REQUIRED

currency

The currency you want the prices in


REQUIRED

locale

The locale you want the results in (ISO locale)


REQUIRED

originPlace

The origin place (see places)


REQUIRED

destinationPlace

The destination place (see places)


REQUIRED

outboundPartialDate

The outbound date (see dates)


REQUIRED

inboundPartialDate

The return date (see dates). Use empty string for oneway trip.
OPTIONAL

REQUEST QUERY PARAMETERS

Parameter Description

apiKey

The API Key to identify the customer


REQUIRED

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,

],

"Price": 326,

"QuoteDateTime": "2016-11-13T01:30:00"

},

"OriginId": 1811,

"DestinationId": 929,

"QuoteIds": [

],

"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
application/json or application/xml

OPTIONAL The default response format is XML

REQUEST PATH PARAMETERS

Parameter Description

country

The market country your user is in


REQUIRED

currency

The currency you want the prices in


REQUIRED

locale

The locale you want the results in (ISO locale)


REQUIRED

originPlace

The origin place (see places)


REQUIRED

destinationPlace

The destination place (see places)


REQUIRED

outboundPartialDate

The outbound date (see dates)


REQUIRED

inboundPartialDate

The return date (see dates). Use empty string for oneway trip.
OPTIONAL

REQUEST QUERY PARAMETERS

Parameter Description

apiKey

The API Key to identify the customer


REQUIRED

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,

],

"Price": 66,

"QuoteDateTime": "2016-11-08T17:28:00"

},

...

],

"InboundDates": [

"PartialDate": "2016-11",

"QuoteIds": [

],

"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
application/json or application/xml

OPTIONAL The default response format is XML

REQUEST PATH PARAMETERS

Parameter Description

country
The market country your user is in
REQUIRED

currency

The currency you want the prices in


REQUIRED
Parameter Description

locale

The locale you want the results in (ISO locale)


REQUIRED

originPlace

The origin place (see places)


REQUIRED

destinationPlace

The destination place (see places)


REQUIRED

outboundPartialDate

The outbound date (see dates)


REQUIRED

inboundPartialDate

The return date (see dates). Use empty string for oneway trip.
OPTIONAL

REQUEST QUERY PARAMETERS

Parameter Description

apiKey

The API Key to identify the customer


REQUIRED

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).

We do not support client-side implementation of our Live Prices API using CORS requests due to the potential security
risk of exposing account API keys.

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

&currency=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

application/x-www-form-urlencoded
REQUIRED

X-Forwarded-For

user's IP address
REQUIRED

Accept
application/json or application/xml

OPTIONAL The default response format is XML

REQUEST PARAMETERS (FORM)

Parameter Description

country

The market/country your user is in


REQUIRED

currency

The currency you want the prices in


REQUIRED

locale

The locale you want the results in (ISO locale)


REQUIRED

originPlace

The origin place (see places)


REQUIRED

destinationPla
ce
The destination place (see places)
REQUIRED

outboundDate

The outbound date. Format "yyyy-mm-dd".


REQUIRED

inboundDate

The return date. Format "yyyy-mm-dd". Use empty string for oneway trip.
OPTIONAL

cabinClass

The cabin class. Can be "Economy", "PremiumEconomy", "Business", "First"


OPTIONAL

adults

Number of adults (16+ years). Must be between 1 and 8.


REQUIRED

children

Number of children (1-16 years). Can be between 0 and 8.


OPTIONAL

infants

Number of infants (under 12 months). Can be between 0 and 8.


OPTIONAL

includeCarrier
s
Only return results from those carriers. Comma-separated list of carrier ids.
OPTIONAL

excludeCarrier
s
Filter out results from those carriers. Comma-separated list of carrier ids.
OPTIONAL

groupPricing
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
OPTIONAL it is set to false .

apiKey

Your API Key.


REQUIRED

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.


Please refer to our response codes in case of unsuccessful 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}


Please note that the actual polling endpoint will be provided in the successful response of the Creating the session request.

TRY IT OUT

HEADER VALUES

Header Value

Accept
application/json or application/xml

OPTIONAL The default response format is XML

REQUEST PARAMETERS (FORM)

Parameter Description

sortType

The parameter to sort results on. Can be carrier, duration, outboundarrivetime, outbounddeparttime, inboundarrivetime, inbounddeparttime, price
OPTIONAL

sortOrder

The sort order. 'asc' or 'desc'


OPTIONAL

duration
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
OPTIONAL flights from the response or if it’s too high it might simply return all flights with no filtering applied

includeCarrier
s
Filter flights by the specified carriers. Must be semicolon-separated IATA codes.
OPTIONAL

excludeCarrier
s
Filter flights by any but the specified carriers. Must be semicolon-separated IATA codes.
OPTIONAL

originAirports
Origin airports to filter on. List of airport codes delimited by ‘;’
OPTIONAL

destinationAir
ports
Destination airports to filter on. List of airport codes delimited by ‘;’
OPTIONAL

Filter for maximum number of stops.

stops
0 for direct flights only

OPTIONAL 1 for flights with maximum one stop

omit for all flights (direct and indirect)

outboundDepart
Time
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)
OPTIONAL

outboundDepart

StartTime Filter for start of range for outbound departure time. Format ‘hh:mm’. Time is inclusive.
OPTIONAL

outboundDepart

EndTime Filter for end of range for outbound departure time. Format ‘hh:mm’. Time is inclusive.
OPTIONAL

inboundDepartT
ime
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)
OPTIONAL
Parameter Description

inboundDepartS

tartTime Filter for start of range for inbound departure time. Format ‘hh:mm’. Time is inclusive.
OPTIONAL

inboundDepartE
ndTime
Filter for end of range for inbound departure time. Format ‘hh:mm’. Time is inclusive.
OPTIONAL

apiKey

Your API Key.


REQUIRED

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.


While the status is UpdatesPending, you should request only page 0 because the contents of each page are liable to change until updates are complete.

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,

],

"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.


You must keep polling the results until you get 'UpdatesComplete'. The results may take up to a minute to update.

ITINERARY PARAMETERS

Element Description

OutboundLegId Id of the Outbound Leg

InboundLegId Id of the Inbound Leg

pricing options with agent(s)

the quote age

PricingOptions 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.


Please add the no-follow attribute when you link to the deeplink. See How do I add the nofollow attribute? in the FAQ section.

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

Your API Key.


REQUIRED

REQUEST BODY (from live pricing response)

Parameter Description

OutboundLegId

The outbound leg Id of the itinerary


REQUIRED

InboundLegId

The inbound leg Id of the itinerary for return flights


OPTIONAL

adults

Number of adults (16+ years). Must be between 1 and 8.


OPTIONAL

children

Number of children (1-16 years). Can be between 0 and 8.


OPTIONAL

infants

Number of infants (under 12 months). Can be between 0 and 8.


OPTIONAL

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.


Please refer to our response codes in case of unsuccessful 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}


Please note that the actual polling endpoint will be provided in the successful response of the Get booking details request.

TRY IT OUT

REQUEST PARAMETERS

Parameter Description

apiKey

Your API Key.


REQUIRED

REQUEST BODY (from live pricing response)

Parameter Description

OutboundLegId

The outbound leg Id of the itinerary


REQUIRED
Parameter Description

InboundLegId

The inbound leg Id of the itinerary for return flights


OPTIONAL

adults

Number of adults (16+ years). Must be between 1 and 8.


OPTIONAL

children

Number of children (1-16 years). Can be between 0 and 8.


OPTIONAL

infants

Number of infants (under 12 months). Can be between 0 and 8.


OPTIONAL

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,

},

],

"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.


Parameter Description

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:

1. 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 .
2. 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 PE
NDING state, partial results .
3. The status attribute will eventually change to COMPLETED. Meaning that the search cycle has finished. Metadata COMPLETED state .
4. 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}

&currency={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

Indicates which is the device and the platform related to the client. The format for that header is device;B2B , where:

Device is:

x-user-agent
T for tablet

REQUIRED D for desktop

M for mobile

N if you are not able to detect the device type

URI PARAMETERS

Parameter Description

entity_id

Entity to search for hotels prices in it


REQUIRED

version

API version
REQUIRED

QUERY PARAMETERS

Parameter Description

market

Matching [A-Z]{2}
REQUIRED

locale

Matching [a-z]{2}-[A-Z]{2}
REQUIRED

currency

Currency code
REQUIRED

checkin_date

YYYY-MM-DD
REQUIRED

checkout_date

YYYY-MM-DD
REQUIRED

rooms
Number of rooms

REQUIRED default: 1

adults
Number of adults

REQUIRED default: 2

apikey

This parameter is required to be on every single request any client does


REQUIRED

images
Maximum number of images to retrieve for each hotel

OPTIONAL between 1-30, default: 1

image_resolution
Resolution options

OPTIONAL high or low, default: high

image_type
The format of the images

OPTIONAL thumbnail or gallery or dynamic

boost_official_partner
Indicates whether prices from official partners must be shown in the first place [1] or not [0]

s
default: 0
OPTIONAL

sort
Sort by a given attribute. By default the relevance sorting is applied

OPTIONAL One of: relevance, -relevance, price, -price, distance, -distance, rating, -rating, stars, -stars

price_min

Filter. Return only hotels where the cheaper price is at least price_min (included). Cannot be used together with price_buckets
OPTIONAL

price_max

Filter. Return only hotels where the cheaper price is at most price_max (included). Cannot be used together with price_buckets
OPTIONAL

price_buckets

OR filter. Return only hotels with offers inside the specified buckets. Cannot be used together with price_min/price_max
OPTIONAL
Parameter Description

price_bucket_step

Fix step for the buckets. Need to be used together with price_buckets, default step will be dynamic
OPTIONAL

price_bucket_number

This parameter allows you to set the price buckets number, default: 5
OPTIONAL

price_buckets_strategy

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)
OPTIONAL

price_buckets_min

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
OPTIONAL

price_buckets_max

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
OPTIONAL

district

OR filter. Return only results where a district matches


OPTIONAL

stars

OR filter. Return only results where a star category matches. The values must be TravelAPI ids
OPTIONAL

city
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
OPTIONAL entity ids

chain

OR filter. Return only results where a hotel chains matches. The values must be TravelAPI ids
OPTIONAL

amenities

AND filter. Return only results where all amenities match. The values must be TravelAPI ids
OPTIONAL

cancellation
OR filter. Return only results where a cancellation policies matches. Options are:

OPTIONAL free_cancellation, non_refundable, refundable, special_conditions

meal_plan
OR filter. Return only results where a meal plan matches. Options are:

OPTIONAL room_only, breakfast_included, half_board, full_board, all_inclusive

property_type

OR filter. Return only results where an accommodation type matches. The values must be TravelAPI ids
OPTIONAL

guest_rating

OR filter. Return only results where a guest rating matches. The values must be TravelAPI ids
OPTIONAL

guest_type

OR filter. Return only results where a guest type matches. The values must be TravelAPI ids
OPTIONAL

hotel_name

Filter. Return only results where hotel name matches


OPTIONAL

limit
Number of results to retrieve

OPTIONAL between 1-30, default: 15

offset
How many results to skip from the first position. Useful for paginating

OPTIONAL default: 0

partners_per_hotel
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners

OPTIONAL default: 3

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.

enhanced
images: Returns images for the hotels. With the partner website_id and the urls.

OPTIONAL 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

Mark the times of the same requests sent to bellboy, start from 1, default: 0
OPTIONAL

(B2B partner needn't set the value) Hotel sorting score calculation options

mr4: RelevanceContainerScoring,

mr5: IronRankScoring,

sorting_version
mr6: IronCatRankScoring,

OPTIONAL mr4a: RelevanceContainerHotelModelScoring,

mr7: HotelBookingModelScoring,

mr8: IronTrainModelScoring,

default: mr4

t_version

(B2B partner needn't set the value) Used for ABTesting, default is ''
OPTIONAL

app_name

(B2B partner needn't set the value) This parameter allows you to set the app name, default is ''
OPTIONAL

appVersion

(B2B partner needn't set the value) This parameter allows you to set the app version, default is ''
OPTIONAL

search_id

(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 ''
OPTIONAL
Parameter Description

cug_segments
(B2B partner needn't set the value) Only v3 supports, it allows you to add special cug segments for user. Options are:

OPTIONAL mobile, logged_in, business, apps, flight_booked

cug

(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.

OPTIONAL 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_datetim
"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}

&currency={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

This header is required to be on every single request any client does (it could also be accepted via query parameter)
REQUIRED
Header Value

Indicates which is the device and the platform related to the client. The format for that header is device;B2B , where:

Device is:

x-user-agent
T for tablet

REQUIRED D for desktop

M for mobile

N if you are not able to detect the device type

URI PARAMETERS

Parameter Description

location

Location to search hotels near it. Following the format: lon,lat


REQUIRED

version

API version
REQUIRED

QUERY PARAMETERS

Parameter Description

market

Matching [A-Z]{2}
REQUIRED

locale

Matching [a-z]{2}-[A-Z]{2}
REQUIRED

currency

Currency code
REQUIRED

checkin_date

YYYY-MM-DD
REQUIRED

checkout_date

YYYY-MM-DD
REQUIRED

rooms
Number of rooms

REQUIRED default: 1

adults
Number of adults

REQUIRED default: 2

apikey

This parameter is required to be on every single request any client does


REQUIRED

images
Maximum number of images to retrieve per each hotel

OPTIONAL between 1-30, default: 3

image_resolution
Resolution options

OPTIONAL high or low, default: high

image_type
The format of the images

OPTIONAL thumbnail or gallery

boost_official_partner
Indicates whether prices from official partners must be shown in the first place [1] or not [0]

s
default: 0
OPTIONAL

sort
Sort by a given attribute. By default the relevance sorting is applied

OPTIONAL One of: relevance, -relevance, price, -price, distance, -distance, rating, -rating, stars, -stars

price_min

Filter. Return only hotels where the cheaper price is at least price_min (included). Cannot be used together with price_buckets
OPTIONAL

price_max

Filter. Return only hotels where the cheaper price is at most price_max (included). Cannot be used together with price_buckets
OPTIONAL

price_buckets

OR filter. Return only hotels with offers inside the specified buckets. Cannot be used together with price_min/price_max
OPTIONAL

district

OR filter. Return only results where a district matches


OPTIONAL

stars

OR filter. Return only results where a star category matches. The values must be TravelAPI ids
OPTIONAL

city
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
OPTIONAL entity ids

chain

OR filter. Return only results where a hotel chains matches. The values must be TravelAPI ids
OPTIONAL

amenities

AND filter. Return only results where all amenities match. The values must be TravelAPI ids
OPTIONAL

cancellation
OR filter. Return only results where a cancellation policies matches. Options are:

OPTIONAL free_cancellation, non_refundable, refundable, special_conditions


Parameter Description

meal_plan
OR filter. Return only results where a meal plan matches. Options are:

OPTIONAL room_only, breakfast_included, half_board, full_board, all_inclusive

property_type

OR filter. Return only results where an accommodation type matches. The values must be TravelAPI ids
OPTIONAL

hotel_name

Filter. Return only results where hotel name matches


OPTIONAL

limit
Number of results to retrieve

OPTIONAL between 1-30, default: 30

offset
How many results to skip from the first position. Useful for paginating

OPTIONAL default: 0

partners_per_hotel
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners

OPTIONAL default: 3

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.

enhanced

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.

OPTIONAL 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}

&currency={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

This header is required to be on every single request any client does (it could also be accepted via query parameter)
REQUIRED
Header Value

Indicates which is the device and the platform related to the client. The format for that header is device;B2B , where:

Device is:

x-user-agent
T for tablet

REQUIRED D for desktop

M for mobile

N if you are not able to detect the device type

URI PARAMETERS

Parameter Description

entity_id

Entity to search for hotels prices in it


REQUIRED

version

API version
REQUIRED

QUERY PARAMETERS

Parameter Description

market

Matching [A-Z]{2}
REQUIRED

locale

Matching [a-z]{2}-[A-Z]{2}
REQUIRED

currency

Currency code
REQUIRED

checkin_date

YYYY-MM-DD
REQUIRED

checkout_date

YYYY-MM-DD
REQUIRED

rooms
Number of rooms

REQUIRED default: 1

adults
Number of adults

REQUIRED default: 2

apikey

This parameter is required to be on every single request any client does


REQUIRED

images
Maximum number of images to retrieve per each hotel

OPTIONAL between 1-30, default: 3

image_resolution
Resolution options

OPTIONAL high or low, default: high

image_type
The format of the images

OPTIONAL thumbnail or gallery

boost_official_partner
Indicates whether prices from official partners must be shown in the first place [1] or not [0]

s
default: 0
OPTIONAL

sort
Sort by a given attribute. By default the relevance sorting is applied

OPTIONAL One of: relevance, -relevance, price, -price, distance, -distance, rating, -rating, stars, -stars

price_min

Filter. Return only hotels where the cheaper price is at least price_min (included). Cannot be used together with price_buckets
OPTIONAL

price_max

Filter. Return only hotels where the cheaper price is at most price_max (included). Cannot be used together with price_buckets
OPTIONAL

price_buckets

OR filter. Return only hotels with offers inside the specified buckets. Cannot be used together with price_min/price_max
OPTIONAL

district

OR filter. Return only results where a district matches


OPTIONAL

stars

OR filter. Return only results where a star category matches. The values must be TravelAPI ids
OPTIONAL

city
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
OPTIONAL entity ids

chain

OR filter. Return only results where a hotel chains matches. The values must be TravelAPI ids
OPTIONAL

amenities

AND filter. Return only results where all amenities match. The values must be TravelAPI ids
OPTIONAL

cancellation
OR filter. Return only results where a cancellation policies matches. Options are:

OPTIONAL free_cancellation, non_refundable, refundable, special_conditions


Parameter Description

meal_plan
OR filter. Return only results where a meal plan matches. Options are:

OPTIONAL room_only, breakfast_included, half_board, full_board, all_inclusive

property_type

OR filter. Return only results where an accommodation type matches. The values must be TravelAPI ids
OPTIONAL

hotel_name

Filter. Return only results where hotel name matches


OPTIONAL

limit
Number of results to retrieve

OPTIONAL between 1-100, default: 100

offset
How many results to skip from the first position. Useful for paginating

OPTIONAL default: 0

partners_per_hotel
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners. Map only supports 1 partner per hotel

OPTIONAL default: 1

This parameter allows you to add additional content to the default response. The available options are:

enhanced
filters: Returns extra object in the response including the filters like stars, district, city, etc.

price_slider: Return the price_slider.

OPTIONAL 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
Bounding Box coordinates in which to look for hotels as bbox=left,bottom,right,top

OPTIONAL 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&deeplin
"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


Element Detail

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}

&currency={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

This header is required to be on every single request any client does (it could also be accepted via query parameter)
REQUIRED

Indicates which is the device and the platform related to the client. The format for that header is device;B2B , where:

Device is:

x-user-agent
T for tablet

REQUIRED D for desktop

M for mobile

N if you are not able to detect the device type

URI PARAMETERS

Parameter Description

location

Location to search hotels near it. Following the format: lon,lat


REQUIRED

version

API version
REQUIRED

QUERY PARAMETERS

Parameter Description

market

Matching [A-Z]{2}
REQUIRED

locale

Matching [a-z]{2}-[A-Z]{2}
REQUIRED

currency

Currency code
REQUIRED

checkin_date

YYYY-MM-DD
REQUIRED

checkout_date

YYYY-MM-DD
REQUIRED

rooms
Number of rooms

REQUIRED default: 1

adults
Number of adults

REQUIRED default: 2

apikey

This parameter is required to be on every single request any client does


REQUIRED

images
Maximum number of images to retrieve per each hotel

OPTIONAL between 1-30, default: 3

image_resolution
Resolution options

OPTIONAL high or low, default: high

image_type
The format of the images

OPTIONAL thumbnail or gallery

boost_official_partner
Indicates whether prices from official partners must be shown in the first place [1] or not [0]

default: 0
OPTIONAL
Parameter Description

sort
Sort by a given attribute. By default the relevance sorting is applied

OPTIONAL One of: relevance, -relevance, price, -price, distance, -distance, rating, -rating, stars, -stars

price_min

Filter. Return only hotels where the cheaper price is at least price_min (included). Cannot be used together with price_buckets
OPTIONAL

price_max

Filter. Return only hotels where the cheaper price is at most price_max (included). Cannot be used together with price_buckets
OPTIONAL

price_buckets

OR filter. Return only hotels with offers inside the specified buckets. Cannot be used together with price_min/price_max
OPTIONAL

district

OR filter. Return only results where a district matches


OPTIONAL

stars

OR filter. Return only results where a star category matches. The values must be TravelAPI ids
OPTIONAL

city
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
OPTIONAL entity ids

chain

OR filter. Return only results where a hotel chains matches. The values must be TravelAPI ids
OPTIONAL

amenities

AND filter. Return only results where all amenities match. The values must be TravelAPI ids
OPTIONAL

cancellation
OR filter. Return only results where a cancellation policies matches. Options are:

OPTIONAL free_cancellation, non_refundable, refundable, special_conditions

meal_plan
OR filter. Return only results where a meal plan matches. Options are:

OPTIONAL room_only, breakfast_included, half_board, full_board, all_inclusive

property_type

OR filter. Return only results where an accommodation type matches. The values must be TravelAPI ids
OPTIONAL

hotel_name

Filter. Return only results where hotel name matches


OPTIONAL

limit
Number of results to retrieve

OPTIONAL between 1-100, default: 100

offset
How many results to skip from the first position. Useful for paginating

OPTIONAL default: 0

partners_per_hotel
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners. Map only supports 1 partner per hotel

OPTIONAL default: 1

This parameter allows you to add additional content to the default response. The available options are:

enhanced
filters: Returns extra object in the response including the filters like stars, district, city, etc.

price_slider: Return the price_slider.

OPTIONAL 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
Bounding Box coordinates in which to look for hotels as bbox=left,bottom,right,top

OPTIONAL 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}

&currency={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

This header is required to be on every single request any client does (it could also be accepted via query parameter)
REQUIRED

Indicates which is the device and the platform related to the client. The format for that header is device;B2B , where:

Device is:

x-user-agent
T for tablet

REQUIRED D for desktop

M for mobile

N if you are not able to detect the device type

URI PARAMETERS

Parameter Description

hotel_id

Hotel to search prices for


REQUIRED

version

API version
REQUIRED

QUERY PARAMETERS

Parameter Description

market

Matching [A-Z]{2}
REQUIRED

locale

Matching [a-z]{2}-[A-Z]{2}
REQUIRED

currency

Currency code
REQUIRED

checkin_date

YYYY-MM-DD
REQUIRED

checkout_date

YYYY-MM-DD
REQUIRED

rooms
Number of rooms

REQUIRED default: 1

adults
Number of adults

REQUIRED default: 2

apikey

This parameter is required to be on every single request any client does


REQUIRED

images
Maximum number of images to retrieve for each hotel

OPTIONAL between 1-30, default: 1

image_resolutio
Resolution options

n
high or low, default: high
OPTIONAL

image_type
The format of the images

OPTIONAL thumbnail or gallery or dynamic

boost_official_p
Indicates whether prices from official partners must be shown in the first place [1] or not [0]

artners
default: 0
OPTIONAL

partners_per_ho
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners

tel
default: 3
OPTIONAL
Parameter Description

enhanced

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.

OPTIONAL translations: Returns a dictionary with all literals and their corresponding translations using the request locale.

entity_id
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
OPTIONAL entity_id param fulfilled with the Paris entity_id in order to reuse the prices.

index

Mark the times of the same requests sent to bellboy, start from 1, default: 0
OPTIONAL

t_version

(B2B partner needn't set the value) Used for ABTesting, default is ''
OPTIONAL

app_name

(B2B partner needn't set the value) This parameter allows you to set the app name, default is ''
OPTIONAL

appVersion

(B2B partner needn't set the value) This parameter allows you to set the app version, default is ''
OPTIONAL

search_id

(B2B partner needn't set the value) Elasticsearch ID, the value can be got from search response or first request response, default is ''
OPTIONAL

cug_segments
(B2B partner needn't set the value) Only v3 supports, it allows you to add special cug segments for user. Options are:

OPTIONAL mobile, logged_in, business, apps, flight_booked

ignore_cache
(B2B partner needn't set the value) This parameter allows you to bypass Elasticsearch and Redis cache. Options are:

OPTIONAL 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_dat
"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}

&currency={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

This header is required to be on every single request any client does (it could also be accepted via query parameter)
REQUIRED

Indicates which is the device and the platform related to the client. The format for that header is device;B2B , where:

Device is:

x-user-agent
T for tablet

REQUIRED D for desktop

M for mobile

N if you are not able to detect the device type

URI PARAMETERS

Parameter Description

hotel_ids

Hotels to search prices for, using ',' to join the hotels


REQUIRED

version

API version
REQUIRED

QUERY PARAMETERS

Parameter Description

market

Matching [A-Z]{2}
REQUIRED

locale

Matching [a-z]{2}-[A-Z]{2}
REQUIRED

currency

Currency code
REQUIRED

checkin_date

YYYY-MM-DD
REQUIRED

checkout_date

YYYY-MM-DD
REQUIRED

rooms
Number of rooms

REQUIRED default: 1

adults
Number of adults

REQUIRED default: 2

apikey

This parameter is required to be on every single request any client does


REQUIRED

images
Maximum number of images to retrieve per each hotel

OPTIONAL between 1-30, default: 1

image_resolution
Resolution options

OPTIONAL high or low, default: high

image_type
The format of the images

OPTIONAL thumbnail or gallery or dynamic

boost_official_partners
Indicates whether prices from official partners must be shown in the first place [1] or not [0]

OPTIONAL default: 0

partners_per_hotel
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners

OPTIONAL default: 3
Parameter Description

enhanced

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.

OPTIONAL translations: Returns a dictionary with all literals and their corresponding translations using the request locale.

app_name

(B2B partner needn't set the value) This parameter allows you to set the app name, default is ''
OPTIONAL

appVersion

(B2B partner needn't set the value) This parameter allows you to set the app version, default is ''
OPTIONAL

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

Your API Key.


REQUIRED

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

Your API Key.


REQUIRED

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

The language you want the results in (ISO locale). See locales for locales that we support.
REQUIRED

apiKey

Your API Key.


REQUIRED

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:

1. Country
2. City
3. Airport
4. 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)


The country and language must be included in the Autosuggest query so that the most relevant results can be returned in the correct language.

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

The market/country code your user is in


REQUIRED

currency

The currency code you want the prices in


REQUIRED

locale

The locale code you want the results in (ISO locale)


REQUIRED

REQUEST QUERY PARAMETERS

Parameter Description

query

The query string.


REQUIRED

apiKey

Your API Key or token.


REQUIRED

includeAirports

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 .
OPTIONAL

includeCities

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 .
OPTIONAL

includeCountries

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 .
OPTIONAL

Example response for query=pari

"Places": [

"PlaceId": "PARI-sky",

"PlaceName": "Paris",

"CountryId": "FR-sky",

"RegionId": "",

"CityId": "PARI-sky",

"CountryName": "France"

},

"PlaceId": "CDG-sky",

"PlaceName": "Paris Charles de Gaulle",

"CountryId": "FR-sky",

"RegionId": "",

"CityId": "PARI-sky",

"CountryName": "France"

},

"PlaceId": "ORY-sky",

"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.


If you are using this endpoint from client-side code, we recommend using a token as value for apiKey request parameter. This way you will overcome the potential security risk of exposing account API
keys.
See token generation section for more details.

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

The market/country code your user is in


REQUIRED

currency

The currency code you want the prices in


REQUIRED

locale

The locale code you want the results in (ISO locale)


REQUIRED

REQUEST QUERY PARAMETERS

Parameter Description

Should be one of the following:

id
- The Skyscanner place id (e.g. "CDG-sky"). Will return information about the place specified.

REQUIRED - 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

Your API Key or token.


REQUIRED

includeAirports

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 .
OPTIONAL

includeCities

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 .
OPTIONAL

includeCountries

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 .
OPTIONAL

Example response for United Kingdom: id=uk

"Places": [

"PlaceId": "UK-sky",

"PlaceName": "United Kingdom",

"CountryId": "UK-sky",

"CityId": "-sky",

"CountryName": "United Kingdom"

Example response for Charles de Gaulle airport: id=cdg

"Places": [

"PlaceId": "CDG-sky",

"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",

"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.


You can use this endpoint to retrieve the user's location from their IP address:
https://partners.api.skyscanner.net/apiservices/autosuggest/v1.0/UK/GBP/en-GB?id=188.39.95.140-ip&apikey=<apiKe
y>

Geo Catalog


Please contact us to request access.

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

Your API Key.


REQUIRED

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
Parameter Description

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.

Airports and cities often use the internationally recognized IATA and ISO schemas.

iata / iso 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

logo url
test


Skyscanner has no control over the third-party website. In some cases, the selected itinerary will be ready to book. In other cases, the search criteria will be pre-populated but the end-user will have to
search through the results to find their itinerary.

Please do not cache the deeplinks as they are only valid while your session is active. Once the session has timed out you will need to create a new session and refresh all the results and deeplink urls.

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}?adId=1100662&campaignId=13416&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 the 3 Impact tracking parameters as query parameters in your requests. Please
check the TRACKING QUE
RY 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

The vertical you want to redirect to. Allowed values: flights, cars
REQUIRED

pagetype

Page type supported by each vertical. E.g. for flights -> day-view, browse-view... take a look at the next table
REQUIRED

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

The Impact partner ID as found at Impact.com.


REQUIRED

adId

This is an Impact ID used to identify your ad type. This should always be set to 1100662 .
REQUIRED

campaignId

This is an Impact ID used to identify our Skyscanner Programme. This should always be set to 13416 .
REQUIRED

utm_term

Additional alphanumeric tracking parameter you can add to your text links for additional tracking. This will be reported on Impact as Sub Id 2.
OPTIONAL

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=2022-02-07&utm_term=summer&mediaPartnerId=2796596&campaignId=13416&adId=1100662

GET https://skyscanner.net/g/referrals/v1/flights/calendar-month-view/?origin=cdg&destination=edi&iym=1910&utm_term=summer&mediaPartnerId=2796596&campaignId=13416&adId=1100662

GET https://skyscanner.net/g/referrals/v1/cars/day-view/?pickupPlace=BCN&dropoffPlace=BCN&pickupTime=2022-02-01T10:00&dropoffTime=2022-02-07T10:00&driverAge=42&mediaPartnerId=2796596&campaignI
d=13416&adId=1100662
Preferred airlines:
You can find IATA airline codes here

GET https://skyscanner.net/g/referrals/v1/flights/day-view?airlines=AA,!FB&market=UK&currency=GBP&locale=en-GB&origin=cdg&destination=edi&outboundDate=2022-02-01&inboundDate=2022-02-07

Preferred alliances:

GET https://skyscanner.net/g/referrals/v1/flights/day-view?alliances=oneworld,Star%20Alliance&market=UK&currency=GBP&locale=en-GB&origin=cdg&destination=edi&outboundDate=2022-02-01&inboundDate
=2022-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&currency=GBP&locale=en-GB&origin=cdg&destination=edi&outboundDate=2022-02-01&inboundDate=2022-02-
07

Duration:

GET https://skyscanner.net/g/referrals/v1/flights/day-view?duration=1320&market=UK&currency=GBP&locale=en-GB&origin=cdg&destination=edi&outboundDate=2022-02-01&inboundDate=2022-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.


Please refer to our response codes in case of unsuccessful 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 Market

cannot 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 Locale

cannot 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 Currency

cannot 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 Origin

cannot 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 Destination


cannot 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 Date

cannot 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 Date

cannot 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:

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 Class

cannot 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 Type

cannot 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 Preferred

cannot be null

PREFERDIRECTS TYPE

boolean Direct Flights Preferred

SHOWDIRECTDAYS

Show days with direct flights

showDirectDays
is optional

Type: boolean Show days with direct flights

cannot 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 place

cannot 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 place

cannot 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 Market

cannot 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 Locale

cannot 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 Currency

cannot 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 Sorting

cannot 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


Property Type Required Nullable

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 Origin

cannot 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 Destination

cannot 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 date

cannot 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 date

cannot 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 date

cannot 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 date

cannot 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 type

cannot 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 preferred

cannot be null

PREFERDIRECTS TYPE

boolean Direct flights preferred

MARKET

The market of the user. Examples: UK, US, ES

market

is optional

Type: string Market

cannot 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 Locale

cannot 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 Currency

cannot 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
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 Origin

cannot 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 Destination

cannot 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 date


cannot 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 date

cannot 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 type

cannot 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 preferred

cannot 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 Market

cannot 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 Locale

cannot 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 Currency

cannot 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


Property Type Required Nullable

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 origin

cannot 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 flight

cannot 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 destination

cannot 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 origin

cannot 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 flight

cannot 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 destination

cannot 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 origin

cannot 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 flight

cannot 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 destination

cannot 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 origin


cannot 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 flight

cannot 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 destination

cannot 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 origin

cannot 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 destination

cannot 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 origin

cannot 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 flight

cannot 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 destination

cannot 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:

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 Class

cannot 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 Market

cannot 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 Locale

cannot 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 Currency

cannot 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 Destination

cannot 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 Market

cannot 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 Locale

cannot 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 Currency

cannot 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 Market

cannot 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 Locale

cannot 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 Currency

cannot 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
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 Market

cannot 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 Locale

cannot 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 Currency

cannot 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 Pickup

cannot 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 off

cannot 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 time

cannot 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 time


cannot 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 age

cannot 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 Market

cannot 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 Locale

cannot 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 Currency

cannot 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 Date

cannot 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 Date

cannot 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 guests

cannot 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 rooms

cannot be null

ROOMS TYPE

integer Number of rooms

SKYSCANNER_NODE_CODE

The IATA code of the destination.

skyscanner_node_code

is optional

Type: string Destination

cannot be null

SKYSCANNER_NODE_CODE TYPE

string Destination

MARKET

The market of the user. Examples: UK, US, ES

market

is optional

Type: string Market

cannot 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 Locale

cannot 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 Currency

cannot 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 ID

cannot 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 Date

cannot 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 Date

cannot 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:

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:

SORT

Defines the order in which search results will appear. Options are: price, -price, distance, -rating, stars, -stars.

sort

is optional

Type: string Sorting

cannot 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 Market

cannot 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 Locale

cannot 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 Currency

cannot 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 ID


cannot 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 Date

cannot 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 Date

cannot 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 guests

cannot be null

ADULTS TYPE

integer Number of adult guests

ROOMS

Number of rooms

rooms

is optional

Type: integer Number of rooms

cannot be null

ROOMS TYPE

integer Number of rooms

MARKET

The market of the user. Examples: UK, US, ES

market

is optional

Type: string Market

cannot 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 Locale

cannot 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 Currency

cannot 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.


304

You may occasionally get a 304 status response. Please note that this is not an error and simply indicates that your cache has not expired and that there were no changes to the response. For more
information please read our FAQ

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

You might also like