This documentation is deprecated. New V3 documentation is available at Skyscanner Documentation
NAV

API Documentation

API endpoint

https://partners.api.skyscanner.net/apiservices/

Skyscanner Travel APIs connect you to all the data you need to build an innovative website or app.

Build tools that solve problems for millions of travellers and travel retail businesses around the world.

Authentication

Skyscanner uses API keys to allow access to the APIs. To request an API key please contact us.

You must include the API key in all API requests to the server, either as a parameter in the query or the request header. Please refer to each endpoint for details.

Token generation

Get authentication token. The expiration time is 30 minutes.

GET "https://partners.api.skyscanner.net/apiservices/
    token/v2/gettoken?
    apiKey={apiKey}"

API endpoint

GET /token/v2/gettoken

REQUEST PARAMETERS

Parameter Description
apiKey
REQUIRED
Your API Key.

Response

Example of token result

    _dR-ShOTX6w2SeENoXhHTsT9Z5N4UNqwReQqU_F8WkbgMDIuZx7ud7boHnngf4fT9bpPDFJh7nxB3hWsAT8x76w==

A successful response contains a string with token value.

Getting Started

Flights

Flights - Browse Prices

API endpoint Description
Browse Quotes Returns the cheapest quotes that meet your query. The prices come from our cached prices resulting from our users' searches.
Browse Routes Similar to Browse Quotes but with the quotes grouped by routes. This provides the cheapest destinations (countries, cities or airports) from our cached data.
Browse Dates Similar to Browse Quotes but with the quotes grouped by outbound and inbound date. Useful to find the lowest price for a given route, over either a month or a 12 month period.
Browse Grid Similar to Browse Dates but with some pre-processing on our side to output a two-dimensional array to easily display the response in calendar format.

Flights - Live Prices

API endpoint Description
Live prices Returns live prices from all our suppliers for the requested flight itinerary (in the selected market).

Hotels

Hotels Live Prices

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

Flights Browse Prices

Browse Quotes

Retrieve the cheapest quotes from our cached prices.

curl "https://partners.api.skyscanner.net/apiservices/browsequotes/v1.0/{country}/{currency}/{locale}/
  {originPlace}/
  {destinationPlace}/
  {outboundPartialDate}/
  {inboundPartialDate}?
  apiKey={apiKey}"
  -X GET
  -H "Accept: application/json"

API endpoint

GET /browsequotes/v1.0/{country}/{currency}/{locale}/{originPlace}/{destinationPlace}/{outboundPartialDate}/{inboundPartialDate}

TRY IT OUT

Run in Postman

HEADER VALUES

Header Value
Accept
OPTIONAL
application/json or application/xml
The default response format is XML

REQUEST PATH PARAMETERS

Parameter Description
country
REQUIRED
The market country your user is in
currency
REQUIRED
The currency you want the prices in
locale
REQUIRED
The locale you want the results in (ISO locale)
originPlace
REQUIRED
The origin place (see places)
destinationPlace
REQUIRED
The destination place (see places)
outboundPartialDate
REQUIRED
The outbound date (see dates)
inboundPartialDate
OPTIONAL
The return date (see dates). Use empty string for oneway trip.

REQUEST QUERY PARAMETERS

Parameter Description
apiKey
REQUIRED
The API Key to identify the customer

The table below shows the level of precision supported for the origin and destination places. For more information on these, see places.

diagram

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.

diagram

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

Run in Postman

HEADER VALUES

Header Value
Accept
OPTIONAL
application/json or application/xml
The default response format is XML

REQUEST PATH PARAMETERS

Parameter Description
country
REQUIRED
The market country your user is in
currency
REQUIRED
The currency you want the prices in
locale
REQUIRED
The locale you want the results in (ISO locale)
originPlace
REQUIRED
The origin place (see places)
destinationPlace
REQUIRED
The destination place (see places)
outboundPartialDate
REQUIRED
The outbound date (see dates)
inboundPartialDate
OPTIONAL
The return date (see dates). Use empty string for oneway trip.

REQUEST QUERY PARAMETERS

Parameter Description
apiKey
REQUIRED
The API Key to identify the customer

The table below shows the level of precision supported for the origin and destination places. For more information on these, see places.

diagram

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.

diagram

Example response from US to anywhere:

{
  "Routes": [
    {
      "OriginId": 1811,
      "DestinationId": 1845,
      "QuoteIds": [
        1,
        2
      ],
      "Price": 326,
      "QuoteDateTime": "2016-11-13T01:30:00"
    },
    {
      "OriginId": 1811,
      "DestinationId": 929,
      "QuoteIds": [
        3
      ],
      "Price": 150,
      "QuoteDateTime": "2016-11-09T17:44:00"
    },
  ...
  ],
  "Quotes": [
    {
      "QuoteId": 1,
      "MinPrice": 381,
      "Direct": true,
      "OutboundLeg": {
        "CarrierIds": [
          470
        ],
        "OriginId": 68033,
        "DestinationId": 42833,
        "DepartureDate": "2017-02-03T00:00:00"
      },
      "InboundLeg": {
        "CarrierIds": [
          470
        ],
        "OriginId": 42833,
        "DestinationId": 68033,
        "DepartureDate": "2017-02-06T00:00:00"
      },
      "QuoteDateTime": "2016-11-09T21:20:00"
    },
  ...
  ],
  "Places": [
    {
      "PlaceId": 837,
      "Name": "United Arab Emirates",
      "Type": "Country",
      "SkyscannerCode": "AE"
    },
  ...
  ],
  "Carriers": [
    {
      "CarrierId": 29,
      "Name": "Mombasa Air Safari"
    },
    {
      "CarrierId": 173,
      "Name": "Silver Airways"
    },
  ...
  ],
  "Currencies": [
    {
      "Code": "EUR",
      "Symbol": "€",
      "ThousandsSeparator": " ",
      "DecimalSeparator": ",",
      "SymbolOnLeft": false,
      "SpaceBetweenAmountAndSymbol": true,
      "RoundingCoefficient": 0,
      "DecimalDigits": 2
    }
  ]
}

RESPONSE PARAMETERS

Parameter Description
Routes Contains the list of routes available for the search.
Quotes The list of quotes specified in the list of routes.
Places The list of places specified in the list of routes.
Carriers The list of carriers specified in the list of quotes.
Currencies The currency of the quote prices.

Browse Dates

Retrieve the cheapest dates for a given route from our cache.

curl "https://partners.api.skyscanner.net/apiservices/browsedates/v1.0/{country}/{currency}/{locale}/
  {originPlace}/
  {destinationPlace}/
  {outboundPartialDate}/
  {inboundPartialDate}?
  apiKey={apiKey}"
  -X GET
  -H "Accept: application/json"

API endpoint

GET /browsedates/v1.0/{country}/{currency}/{locale}/{originPlace}/{destinationPlace}/{outboundPartialDate}/{inboundPartialDate}

TRY IT OUT

Run in Postman

HEADER VALUES

Header Value
Accept
OPTIONAL
application/json or application/xml
The default response format is XML

REQUEST PATH PARAMETERS

Parameter Description
country
REQUIRED
The market country your user is in
currency
REQUIRED
The currency you want the prices in
locale
REQUIRED
The locale you want the results in (ISO locale)
originPlace
REQUIRED
The origin place (see places)
destinationPlace
REQUIRED
The destination place (see places)
outboundPartialDate
REQUIRED
The outbound date (see dates)
inboundPartialDate
OPTIONAL
The return date (see dates). Use empty string for oneway trip.

REQUEST QUERY PARAMETERS

Parameter Description
apiKey
REQUIRED
The API Key to identify the customer

The table below shows the level of precision supported for the origin and destination places. For more information on these, see places.

diagram

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.

diagram

Example response from London to Paris:

{
  "Dates": {
    "OutboundDates": [
      {
        "PartialDate": "2016-11",
        "QuoteIds": [
          1,
          2,
          3,
          4,
          5
        ],
        "Price": 66,
        "QuoteDateTime": "2016-11-08T17:28:00"
      },
    ...
    ],
    "InboundDates": [
      {
        "PartialDate": "2016-11",
        "QuoteIds": [
          1
        ],
        "Price": 93,
        "QuoteDateTime": "2016-11-21T17:19:00"
      },
      ...
    ]
  },
  "Quotes": [
    {
      "QuoteId": 1,
      "MinPrice": 381,
      "Direct": true,
      "OutboundLeg": {
        "CarrierIds": [
          470
        ],
        "OriginId": 68033,
        "DestinationId": 42833,
        "DepartureDate": "2017-02-03T00:00:00"
      },
      "InboundLeg": {
        "CarrierIds": [
          470
        ],
        "OriginId": 42833,
        "DestinationId": 68033,
        "DepartureDate": "2017-02-06T00:00:00"
      },
      "QuoteDateTime": "2016-11-09T21:20:00"
    },
  ...
  ],
  "Places": [
    {
      "PlaceId": 837,
      "Name": "United Arab Emirates",
      "Type": "Country",
      "SkyscannerCode": "AE"
    },
  ...
  ],
  "Carriers": [
    {
      "CarrierId": 29,
      "Name": "Mombasa Air Safari"
    },
    {
      "CarrierId": 173,
      "Name": "Silver Airways"
    },
  ...
  ],
  "Currencies": [
    {
      "Code": "EUR",
      "Symbol": "€",
      "ThousandsSeparator": " ",
      "DecimalSeparator": ",",
      "SymbolOnLeft": false,
      "SpaceBetweenAmountAndSymbol": true,
      "RoundingCoefficient": 0,
      "DecimalDigits": 2
    }
  ]
}

RESPONSE PARAMETERS

Parameter Description
Dates The list of outbound and inbound dates for which quotes are available.
Quotes The list of quotes specified in the list of Dates.
Places The list of places matching the search results.
Carriers The list of carriers specified in the list of quotes.
Currencies The currency of the quote prices.

Browse Dates (grid)

Retrieve the cheapest dates for a given route from our cache, with the results formatted as a two-dimensional array to be easily displayed as a calendar.

curl "https://partners.api.skyscanner.net/apiservices/browsegrid/v1.0/{country}/{currency}/{locale}/
  {originPlace}/
  {destinationPlace}/
  {outboundPartialDate}/
  {inboundPartialDate}?
  apiKey={apiKey}"
  -X GET
  -H "Accept: application/json"

API endpoint

GET /browsegrid/v1.0/{country}/{currency}/{locale}/{originPlace}/{destinationPlace}/{outboundPartialDate}/{inboundPartialDate}

TRY IT OUT

Run in Postman

HEADER VALUES

Header Value
Accept
OPTIONAL
application/json or application/xml
The default response format is XML

REQUEST PATH PARAMETERS

Parameter Description
country
REQUIRED
The market country your user is in
currency
REQUIRED
The currency you want the prices in
locale
REQUIRED
The locale you want the results in (ISO locale)
originPlace
REQUIRED
The origin place (see places)
destinationPlace
REQUIRED
The destination place (see places)
outboundPartialDate
REQUIRED
The outbound date (see dates)
inboundPartialDate
OPTIONAL
The return date (see dates). Use empty string for oneway trip.

REQUEST QUERY PARAMETERS

Parameter Description
apiKey
REQUIRED
The API Key to identify the customer

The table below shows the level of precision supported for the origin and destination places. For more information on these, see places.

diagram

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.

diagram

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

diagram

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

Run in Postman

HEADER VALUES

Header Value
Content-Type
REQUIRED
application/x-www-form-urlencoded
X-Forwarded-For
REQUIRED
user's IP address
Accept
OPTIONAL
application/json or application/xml
The default response format is XML

REQUEST PARAMETERS (FORM)

Parameter Description
country
REQUIRED
The market/country your user is in
currency
REQUIRED
The currency you want the prices in
locale
REQUIRED
The locale you want the results in (ISO locale)
originPlace
REQUIRED
The origin place (see places)
destinationPlace
REQUIRED
The destination place (see places)
outboundDate
REQUIRED
The outbound date. Format "yyyy-mm-dd".
inboundDate
OPTIONAL
The return date. Format "yyyy-mm-dd". Use empty string for oneway trip.
cabinClass
OPTIONAL
The cabin class. Can be "Economy", "PremiumEconomy", "Business", "First"
adults
REQUIRED
Number of adults (16+ years). Must be between 1 and 8.
children
OPTIONAL
Number of children (1-16 years). Can be between 0 and 8.
infants
OPTIONAL
Number of infants (under 12 months). Can be between 0 and 8.
includeCarriers
OPTIONAL
Only return results from those carriers. Comma-separated list of carrier ids.
excludeCarriers
OPTIONAL
Filter out results from those carriers. Comma-separated list of carrier ids.
groupPricing
OPTIONAL
If set to true, prices will be obtained for the whole passenger group and if set to false it will be obtained for one adult only - the other adults/children/infants will be ignored. By default it is set to false.
apiKey
REQUIRED
Your API Key.

Response

Example response with polling url:

Location "https://partners.api.skyscanner.net/apiservices/pricing/v1.0/
    {SessionKey}"

A successful response contains no content. The URL to poll the results is provided in the Location header of the response.

RESPONSE PARAMETERS

Element Detail
Location Header Contains the URL for polling the results in the newly created session

Polling the results

Request

Example request with polling url:

curl "{URL returned in Creating the session Location header}?apiKey={apiKey}" -X GET

Use the polling endpoint provided in the successful response of the create request.

API endpoint

GET /pricing/v1.0/{SessionKey}

TRY IT OUT

Run in Postman

HEADER VALUES

Header Value
Accept
OPTIONAL
application/json or application/xml
The default response format is XML

REQUEST PARAMETERS (FORM)

Parameter Description
sortType
OPTIONAL
The parameter to sort results on. Can be carrier, duration, outboundarrivetime, outbounddeparttime, inboundarrivetime, inbounddeparttime, price
sortOrder
OPTIONAL
The sort order. 'asc' or 'desc'
duration
OPTIONAL
An integer value representing the total duration in minutes of the outbound leg and inbound leg (in case of return flights). Bear in mind that if the value is set too low it might filter out all flights from the response or if it’s too high it might simply return all flights with no filtering applied
includeCarriers
OPTIONAL
Filter flights by the specified carriers. Must be semicolon-separated IATA codes.
excludeCarriers
OPTIONAL
Filter flights by any but the specified carriers. Must be semicolon-separated IATA codes.
originAirports
OPTIONAL
Origin airports to filter on. List of airport codes delimited by ‘;’
destinationAirports
OPTIONAL
Destination airports to filter on. List of airport codes delimited by ‘;’
stops
OPTIONAL
Filter for maximum number of stops.
0 for direct flights only
1 for flights with maximum one stop
omit for all flights (direct and indirect)
outboundDepartTime
OPTIONAL
Filter for outbound departure time by time period of the day (i.e. morning, afternoon, evening). List of day time period delimited by ‘;’ (acceptable values are M, A, E)
outboundDepartStartTime
OPTIONAL
Filter for start of range for outbound departure time. Format ‘hh:mm’. Time is inclusive.
outboundDepartEndTime
OPTIONAL
Filter for end of range for outbound departure time. Format ‘hh:mm’. Time is inclusive.
inboundDepartTime
OPTIONAL
Filter for inbound departure time by time period of the day (i.e. morning, afternoon, evening). List of day time period delimited by ‘;’ (acceptable values are M, A, E)
inboundDepartStartTime
OPTIONAL
Filter for start of range for inbound departure time. Format ‘hh:mm’. Time is inclusive.
inboundDepartEndTime
OPTIONAL
Filter for end of range for inbound departure time. Format ‘hh:mm’. Time is inclusive.
apiKey
REQUIRED
Your API Key.

Pagination and payload

Example polling request with pagination:

Location "https://partners.api.skyscanner.net/apiservices/pricing/v1.0/
    {SessionKey}?apiKey={apiKey}
    &pageIndex=0
    &pageSize=10"

If you want to supply results in pages, rather than show all the results available, you can use the parameters below.

REQUEST PARAMETERS (PAGINATION)

Parameter Description
pageIndex The desired page number.
pageSize The number of itineraries per page. Defaults to 10 if not specified.

Keep requesting page 0 until you get UpdatesComplete with pageIndex=0 at half a second to one second interval. Once you get UpdatesComplete you may request any page and page size.

For more information about polling the results please see our FAQ

We have no facility to tell you how many pages exist. Beyond the end of results, you will receive successful, empty, responses.


Response

Example polling request response:

{
  "SessionKey": "ab5b948d616e41fb954a4a2f6b8dde1a_ecilpojl_7CAAD17D0CFC34BFDE68DEBFDFD548C7",
  "Query": {
    "Country": "GB",
    "Currency": "GBP",
    "Locale": "en-gb",
    "Adults": 1,
    "Children": 0,
    "Infants": 0,
    "OriginPlace": "2343",
    "DestinationPlace": "13554",
    "OutboundDate": "2017-05-30",
    "InboundDate": "2017-06-02",
    "LocationSchema": "Default",
    "CabinClass": "Economy",
    "GroupPricing": false
  },
  "Status": "UpdatesComplete",
  "Itineraries": [
    {
      "OutboundLegId": "11235-1705301925--32480-0-13554-1705302055",
      "InboundLegId": "13554-1706020700--32480-0-11235-1706020820",
      "PricingOptions": [
        {
          "Agents": [
            4499211
          ],
          "QuoteAgeInMinutes": 0,
          "Price": 83.41,
          "DeeplinkUrl": "http://partners.api.skyscanner.net/apiservices/deeplink/v2?_cje=jzj5DawL5zJyT%2bnfe1..."
        },
        ...
        ],
      "BookingDetailsLink": {
        "Uri": "/apiservices/pricing/v1.0/ab5b948d616e41fb954a4a2f6b8dde1a_ecilpojl_7CAAD17D0CFC34BFDE68DEBFDFD548C7/booking",
        "Body": "OutboundLegId=11235-1705301925--32480-0-13554-1705302055&InboundLegId=13554-1706020700--32480-0-11235-1706020820",
        "Method": "PUT"
      }
    },
    ...
   ],
  "Legs": [
    {
      "Id": "11235-1705300650--32302,-32480-1-13554-1705301100",
      "SegmentIds": [
        0,
        1
      ],
      "OriginStation": 11235,
      "DestinationStation": 13554,
      "Departure": "2017-05-30T06:50:00",
      "Arrival": "2017-05-30T11:00:00",
      "Duration": 250,
      "JourneyMode": "Flight",
      "Stops": [
        13880
      ],
      "Carriers": [
        885,
        881
      ],
      "OperatingCarriers": [
        885,
        881
      ],
      "Directionality": "Outbound",
      "FlightNumbers": [
        {
          "FlightNumber": "290",
          "CarrierId": 885
        },
        {
          "FlightNumber": "1389",
          "CarrierId": 881
        }
      ]
    },
    ...
   ],
   "Segments": [
    {
      "Id": 0,
      "OriginStation": 11235,
      "DestinationStation": 13880,
      "DepartureDateTime": "2017-05-30T06:50:00",
      "ArrivalDateTime": "2017-05-30T07:55:00",
      "Carrier": 885,
      "OperatingCarrier": 885,
      "Duration": 65,
      "FlightNumber": "290",
      "JourneyMode": "Flight",
      "Directionality": "Outbound"
    },
    ...
  ],
    "Carriers": [
    {
      "Id": 885,
      "Code": "BE",
      "Name": "Flybe",
      "ImageUrl": "http://s1.apideeplink.com/images/airlines/BE.png",
      "DisplayCode": "BE"
    },
    ...
  ],
  "Agents": [
    {
      "Id": 1963108,
      "Name": "Mytrip",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/at24.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": true,
      "BookingNumber": "+448447747881",
      "Type": "TravelAgent"
    },
    ...
  ],
  "Places": [
    {
      "Id": 11235,
      "ParentId": 2343,
      "Code": "EDI",
      "Type": "Airport",
      "Name": "Edinburgh"
    },
    ...
  ],
  "Currencies": [
    {
      "Code": "GBP",
      "Symbol": "£",
      "ThousandsSeparator": ",",
      "DecimalSeparator": ".",
      "SymbolOnLeft": true,
      "SpaceBetweenAmountAndSymbol": false,
      "RoundingCoefficient": 0,
      "DecimalDigits": 2
    },
    ...
  ]
}

The response contains a list of itineraries with, for each one, a list of pricing options containing:

RESPONSE PARAMETERS

Parameter Description
SessionKey The Session key to identify the session.
Query A copy of the query which was submitted.
Status The status of the session – ‘UpdatesPending’ or ‘UpdatesComplete’.
Itineraries A list of itineraries - see below for the itinerary object.
Legs Details of the legs that make up the itineraries: airports, times, overall duration, stops and carrier ids.
Segements Details of the segments of each leg. Including the carrier (or marketing carrier) and the operating carrier.
Carriers Details of the carriers.
Agents Details of the agents who sell the tickets. Can be an airline or a travel agent.
Places A list of all the places that appear in the itineraries.
Currencies A list of the currencies shown in the response.

ITINERARY PARAMETERS

Element Description
OutboundLegId Id of the Outbound Leg
InboundLegId Id of the Inbound Leg
PricingOptions pricing options with agent(s)
the quote age
price (total for all passengers)
deeplink to the agent (the absolute URL needed to make the booking).
In the case where deeplinks are not supplied, you can obtain them with a further step. Refer to the Create/Poll Booking Details documentation.
BookingDetailsLink In some cases such as for group prices you will need to make a second call to retrieve the deeplinks. See the next section Get booking details for details

Please note that you must not force users to your deeplink. Once they have made a search you should provide them with a list of results, and an option to filter that list, to pick the flight that best suits their needs.

Get booking details

Request

curl "https://partners.api.skyscanner.net/apiservices/pricing/v1.0/
    {SessionKey}/booking&apikey={apiKey}"
    -d 'OutboundLegId={OutboundLegId}&InboundLegId={InboundLegId}'
    -X PUT
    -H "Content-Type: application/x-www-form-urlencoded"

A request for booking details will return the most up-to-date prices for the selected itinerary. Some of the prices returned in the previous requests might be cached and slightly older. By creating a booking details session you'll receive the most up-to-date price which we can get from our partners.

The URL is provided in the response of the live prices:

{
  "BookingDetailsLink": {
      "Uri": "/apiservices/pricing/v1.0/abb2a69708624a7ca82762ed73493598_ecilpojl_DCE634A426CBDA30CE7EA3E9068CD053/booking",
      "Body": "OutboundLegId=11235-1705301925--32480-0-13554-1705302055&InboundLegId=13554-1706020700--32480-0-11235-1706020820",
      "Method": "PUT"
  }
}

The full URL and body content are provided in the response from the live pricing results.

API endpoint

PUT /pricing/v1.0/{SessionKey}/booking

TRY IT OUT

Run in Postman

REQUEST PARAMETERS

Parameter Description
apiKey
REQUIRED
Your API Key.

REQUEST BODY (from live pricing response)

Parameter Description
OutboundLegId
REQUIRED
The outbound leg Id of the itinerary
InboundLegId
OPTIONAL
The inbound leg Id of the itinerary for return flights
adults
OPTIONAL
Number of adults (16+ years). Must be between 1 and 8.
children
OPTIONAL
Number of children (1-16 years). Can be between 0 and 8.
infants
OPTIONAL
Number of infants (under 12 months). Can be between 0 and 8.

Response

Example response:

Location "https://partners.api.skyscanner.net/apiservices/pricing/v1.0/
    {SessionKey}/booking/
    {OutboundLegId};{InboundLegId}"

A successful response contains no content. The URL to poll the booking details is specified in the Location header of the response.

RESPONSE PARAMETERS

Element Detail
Location Header Contains the URL for polling the booking details results

Polling the booking details

Request

curl "{URL returned in Get booking details Location header}?apiKey={apiKey}" -X GET

Use the polling endpoint provided in the successful response of the get booking details request.

API endpoint

GET /pricing/v1.0/{SessionKey}/booking/{OutboundLegId}|{InboundLegId}

TRY IT OUT

Run in Postman

REQUEST PARAMETERS

Parameter Description
apiKey
REQUIRED
Your API Key.

Response

{
  "Segments": [
    {
      "Id": 1,
      "OriginStation": 11235,
      "DestinationStation": 13554,
      "DepartureDateTime": "2017-05-30T19:25:00",
      "ArrivalDateTime": "2017-05-30T20:55:00",
      "Carrier": 881,
      "OperatingCarrier": 881,
      "Duration": 90,
      "FlightNumber": "1463",
      "JourneyMode": "Flight",
      "Directionality": "Outbound"
    },
    ...
  ],
  "BookingOptions": [
    {
      "BookingItems": [
        {
          "AgentID": 4499211,
          "Status": "Current",
          "Price": 83.41,
          "Deeplink": "http://partners.api.skyscanner.net/apiservices/deeplink/v2?_cje=jzj5DawL5[...]",
          "SegmentIds": [
            1,
            2
          ]
        }
      ]
    },
  ],
    "Places": [
    {
      "Id": 13554,
      "ParentId": 4698,
      "Code": "LHR",
      "Type": "Airport",
      "Name": "London Heathrow"
    },
    ...
  ],
  "Carriers": [
    {
      "Id": 881,
      "Code": "BA",
      "Name": "British Airways",
      "ImageUrl": "http://s1.apideeplink.com/images/airlines/BA.png"
    }
  ],
  "Query": {
    "Country": "GB",
    "Currency": "GBP",
    "Locale": "en-gb",
    "Adults": 1,
    "Children": 0,
    "Infants": 0,
    "OriginPlace": "2343",
    "DestinationPlace": "13554",
    "OutboundDate": "2017-05-30",
    "InboundDate": "2017-06-02",
    "LocationSchema": "Default",
    "CabinClass": "Economy",
    "GroupPricing": false
  }
 }

The response contains a list of itineraries with, for each one, a list of pricing options containing:

RESPONSE PARAMETERS

Parameter Description
SessionKey The Session key to identify the session.
Query A copy of the query which was submitted.
Status The status of the session – ‘UpdatesPending’ or ‘UpdatesComplete’.
Itineraries A list of itineraries - see below for the itinerary object.
Legs Details of the legs that make up the itineraries: airports, times, overall duration, stops and carrier ids.
Segements Details of the segments of each leg. Including the carrier (or marketing carrier) and the operating carrier.
Carriers Details of the carriers.
Agents Details of the agents who sell the tickets. Can be an airline or a travel agent.
Places A list of all the places that appear in the itineraries.
Currencies A list of the currencies shown in the response.

Hotels Live Prices

This service responsible for finding the best hotels with rates around a given entity. It provides endpoints to search prices, a map version of it and a hotel prices one.

Endpoint

The Hotels API provides a global endpoint: https://www.skyscanner.net/g/hotels/{version}/ where version points to a specific release.

Headers

The API expects the header:

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

Run in Postman

HEADER VALUES

Header Value
x-user-agent
REQUIRED
Indicates which is the device and the platform related to the client. The format for that header is device;B2B, where:
Device is:
T for tablet
D for desktop
M for mobile
N if you are not able to detect the device type

URI PARAMETERS

Parameter Description
entity_id
REQUIRED
Entity to search for hotels prices in it
version
REQUIRED
API version

QUERY PARAMETERS

Parameter Description
market
REQUIRED
Matching [A-Z]{2}
locale
REQUIRED
Matching [a-z]{2}-[A-Z]{2}
currency
REQUIRED
Currency code
checkin_date
REQUIRED
YYYY-MM-DD
checkout_date
REQUIRED
YYYY-MM-DD
rooms
REQUIRED
Number of rooms
default: 1
adults
REQUIRED
Number of adults
default: 2
apikey
REQUIRED
This parameter is required to be on every single request any client does
images
OPTIONAL
Maximum number of images to retrieve for each hotel
between 1-30, default: 1
image_resolution
OPTIONAL
Resolution options
high or low, default: high
image_type
OPTIONAL
The format of the images
thumbnail or gallery or dynamic
boost_official_partners
OPTIONAL
Indicates whether prices from official partners must be shown in the first place [1] or not [0]
default: 0
sort
OPTIONAL
Sort by a given attribute. By default the relevance sorting is applied
One of: relevance, -relevance, price, -price, distance, -distance, rating, -rating, stars, -stars
price_min
OPTIONAL
Filter. Return only hotels where the cheaper price is at least price_min (included). Cannot be used together with price_buckets
price_max
OPTIONAL
Filter. Return only hotels where the cheaper price is at most price_max (included). Cannot be used together with price_buckets
price_buckets
OPTIONAL
OR filter. Return only hotels with offers inside the specified buckets. Cannot be used together with price_min/price_max
price_bucket_step
OPTIONAL
Fix step for the buckets. Need to be used together with price_buckets, default step will be dynamic
price_bucket_number
OPTIONAL
This parameter allows you to set the price buckets number, default: 5
price_buckets_strategy
OPTIONAL
price_buckets_strategy is 2 means use the new price buckets thread (split most 30 buckets), others use old price bucket thread (split into price_bucket_number buckets at most)
price_buckets_min
OPTIONAL
Filter. Return only hotels where the cheaper price is at least price_buckets_min (included). Would not be applied if price_buckets_strategy is not 2
price_buckets_max
OPTIONAL
Filter. Return only hotels where the cheaper price is at most price_buckets_max (included). Would not be applied if price_buckets_strategy is not 2
district
OPTIONAL
OR filter. Return only results where a district matches
stars
OPTIONAL
OR filter. Return only results where a star category matches. The values must be TravelAPI ids
city
OPTIONAL
OR filter. When the search is done for an entity that contains different cities, this filter is available. Returns only results where the cities match. The values must be TravelAPI entity ids
chain
OPTIONAL
OR filter. Return only results where a hotel chains matches. The values must be TravelAPI ids
amenities
OPTIONAL
AND filter. Return only results where all amenities match. The values must be TravelAPI ids
cancellation
OPTIONAL
OR filter. Return only results where a cancellation policies matches. Options are:
free_cancellation, non_refundable, refundable, special_conditions
meal_plan
OPTIONAL
OR filter. Return only results where a meal plan matches. Options are:
room_only, breakfast_included, half_board, full_board, all_inclusive
property_type
OPTIONAL
OR filter. Return only results where an accommodation type matches. The values must be TravelAPI ids
guest_rating
OPTIONAL
OR filter. Return only results where a guest rating matches. The values must be TravelAPI ids
guest_type
OPTIONAL
OR filter. Return only results where a guest type matches. The values must be TravelAPI ids
hotel_name
OPTIONAL
Filter. Return only results where hotel name matches
limit
OPTIONAL
Number of results to retrieve
between 1-30, default: 15
offset
OPTIONAL
How many results to skip from the first position. Useful for paginating
default: 0
partners_per_hotel
OPTIONAL
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners
default: 3
enhanced
OPTIONAL
This parameter allows you to add additional content to the default response. Available options are:
filters: Returns extra object in the response including the filters like stars, district, city, etc.
price_slider: Return the price_slider.
partners: Returns information about the active partners in the system. is_official, the logo, the name and the website_id.
images: Returns images for the hotels. With the partner website_id and the urls.
amenities: Returns the hotels amenities.
query_location: Returns the location (higher level entities according to the searched entity) and map boundary (the coordinates of the search area).
extras: Returns the hotel chain of the hotels.
translations: Returns a dictionary with all literals and their corresponding translations using the request locale.
detailed_reviews: Returns information from the hotel reviews provided by Trustyou (http://www.trustyou.com/)
index
OPTIONAL
Mark the times of the same requests sent to bellboy, start from 1, default: 0
sorting_version
OPTIONAL
(B2B partner needn't set the value) Hotel sorting score calculation options
mr4: RelevanceContainerScoring,
mr5: IronRankScoring,
mr6: IronCatRankScoring,
mr4a: RelevanceContainerHotelModelScoring,
mr7: HotelBookingModelScoring,
mr8: IronTrainModelScoring,
default: mr4
t_version
OPTIONAL
(B2B partner needn't set the value) Used for ABTesting, default is ''
app_name
OPTIONAL
(B2B partner needn't set the value) This parameter allows you to set the app name, default is ''
appVersion
OPTIONAL
(B2B partner needn't set the value) This parameter allows you to set the app version, default is ''
search_id
OPTIONAL
(B2B partner needn't set the value) Elasticsearch ID, for the same request, first time needn't set the value, second time can get the value from prior response, default is ''
cug_segments
OPTIONAL
(B2B partner needn't set the value) Only v3 supports, it allows you to add special cug segments for user. Options are:
mobile, logged_in, business, apps, flight_booked
cug
OPTIONAL
(B2B partner needn't set the value) This parameter allows you to reorder hotels by cug price. Options are:
1: cug hotels would be ranked ahead, 2: high cug hotels would be ranked ahead.
default is 0, order by parameter sort

Note: The OR and AND filters allow multiple values coma separated. For example: &amenities=Lift,Bar

Response

Example response:

{
    "correlation_id": "3889f7d3-65d2-40e8-8034-4accb18bade9",
    "meta": {
        "status": "COMPLETED",
        "search_id": "915c591f9fd48c64c9c0ad748d6e6851f09f5dbc4d608495479f1a07e1e7a968",
        "total": 311,
        "completion_percentage": 100,
        "total_available": 73,
        "hotels_filtered": 73,
        "offers": 459,
        "total_available_filtered": 73,
        "request_id": "e3f5c49b-3139-4311-99e1-5ca746541f58"
    },
    "results": {
        "location": [
            {
                "entity_type": "Island",
                "entity_id": "81972530",
                "name": "Malta Island"
            },
            {
                "entity_type": "Nation",
                "entity_id": "29475371",
                "name": "Malte"
            }
        ],
        "hotels": [
            {
                "coordinates": [
                    14.50658,
                    35.91218
                ],
                "stars": "3",
                "offer_types": [
                    "META"
                ],
                "district": "[]",
                "reviews_count": 868,
                "city": "33349710",
                "cheapest_offer_type": "META",
                "amenities": [
                    "Lift",
                    "ConciergeService",
                    "Laundry",
                    ...
                ],
                "property_type": "Hotel",
                "distance": 6142.49539734,
                "rating": {
                    "desc": "rating_satisfactory",
                    "value": 6.9
                },
                "name": "Roma Hotel",
                "hotel_id": "47053033",
                "images": [
                    {
                        "gallery": "https://d2xf5gjipzd8cd.cloudfront.net/available/353235256/mca.jpg",
                        "provider": "h_ct",
                        "category": "Beach",
                        "dynamic": "https://d2xf5gjipzd8cd.cloudfront.net/available/353235256/353235256_WxH.jpg",
                        "thumbnail": "https://d2xf5gjipzd8cd.cloudfront.net/available/353235256/mt.jpg"
                    },
                    ...
                ],
                "offers": [
                    {
                        "partner_id": "h_hc",
                        "price": 78,
                        "price_gbp": 69,
                        "available": null,
                        "strike_through": null,
                        "meal_plan": "breakfast_included",
                        "is_official": true,
                        "closed_user_groups": null,
                        "dbook_link": null,
                        "room_type": [
                            "triple_room"
                        ],
                        "deeplink": "www.skyscanner.fr/hotel_deeplink/4.0/FR/fr-FR/EUR/h_hc/47053033/2019-06-18/2019-06-19/hotel/hotel/hotels?guests=1&rooms=1&legacy_provider_id=17&request_id=e3f5c49b-3139-4311-99e1-5ca746541f58&q_datetime_utc=2019-06-13T02%3A44%3A29&appName=mobileweb&appVersion=2.0&ticket_price=78&deeplink_data=eyJ1cmwiOiAiaHR0cHM6Ly9mci5ob3RlbHMuY29tL1BQQ0hvdGVsRGV0YWlscz9hZHVsdHNQZXJSb29tPTEmdmlldz1wcmljZXMmbXBoPTAmcG9zPUhDT01fRlImbnVtYmVyT2ZSb29tcz0xJnJhdGVwbGFuaWQ9MjA2Nzc3OTk1JmhvdGVsaWQ9Mjk5NTg4JmRlcGFydHVyZURhdGU9MTkvMDYvMjAxOSZsb2NhbGU9ZnJfRlImYXJyaXZhbERhdGU9MTgvMDYvMjAxOSIsICJmaWVsZHMiOiB7InNpZ25hdHVyZSI6ICJmNTkyYjZiNjU0OWUxMDBiYTNkNzM1NDNhOGZmNGNmOSJ9fQ%3D%3D&max_price=78.0&channel=website&max_price=78.0&channel=website",
                        "cancellation_text": null,
                        "cancellation": "non_refundable"
                    },
                    ...
                ],
                "relevance": 2000000.3686611408
            },
            ...
        ],
        "price_includes": [
            "vat",
            "other_taxes"
        ],
        "average_min_price": 139.73,
        "filters": {
            "stars": [
                {
                    "id": "5",
                    "max_price": null,
                    "count": 7,
                    "min_price": 182
                },
                ...
            ],
            "chain": [
                {
                    "id": "Corinthia",
                    "max_price": null,
                    "count": 1,
                    "min_price": 182
                }
            ],
            "price_buckets": [
                {
                    "id": "PR_BK_0",
                    "max_price": 50,
                    "count": 7,
                    "min_price": null
                },
                ...
            ],
            "district": [],
            "city": [
                {
                    "id": "33350111",
                    "max_price": null,
                    "count": 27,
                    "min_price": 36
                },
                ...
            ],
            "meal_plan": [
                {
                    "id": "breakfast_included",
                    "max_price": null,
                    "count": 43,
                    "min_price": 28
                },
                ...
            ],
            "guest_rating": [
                {
                    "id": "6",
                    "text": "rating_satisfactory",
                    "count": 3,
                    "min_price": null,
                    "max_price": null
                },
                ...
            ],
            "amenities": [
                {
                    "id": "WifiService",
                    "max_price": null,
                    "count": 70,
                    "min_price": 20
                },
                ...
            ],
            "property_type": [
                {
                    "id": "Hotel",
                    "max_price": null,
                    "count": 42,
                    "min_price": 50
                },
                ...
            ],
            "guest_type": [
                {
                    "id": "solo",
                    "max_price": null,
                    "count": 1,
                    "min_price": null
                },
                ...
            ],
            "cancellation": [
                {
                    "id": "free_cancellation",
                    "max_price": null,
                    "count": 26,
                    "min_price": 28
                },
                ...
            ]
        },
        "partners": [
            {
                "website_id": "h_ay",
                "is_dbook": false,
                "logo": "www.skyscanner.fr/images/websites/220x80/h_ay.png",
                "name": "ibis Styles",
                "is_official": true,
                "partner_type": "Group"
            },
            ...
        ],
        "hotel_pivot": null,
        "map_boundary": {
            "s_w_lng": 14.448729,
            "s_w_lat": 35.893651,
            "n_e_lat": 35.913651,
            "n_e_lng": 14.51241
        },
        "closed_user_group_deals": [],
        "entity": {
            "name": "Luqa",
            "entity_type": "City",
            "centroid": {
                "type": "Point",
                "coordinates": [
                    14.4886111132,
                    35.858888893
                ]
            },
            "entity_id": "46395655",
            "official_center": {
                "type": "Point",
                "coordinates": [
                    14.4892913,
                    35.859653
                ]
            }
        }
    },
    "count": 15,
    "translations": {
        "CUG_create_account_to_unlock_deals_msg": "Créez un compte pour avoir accès à des offres exclusives",
        "CUG_deal": "OFFRE",
        ...
    }
}

RESPONSE PARAMETERS

Element Detail
correlation_id An identifier of the request
meta Contains metadata regarding the search cycle such as it's status
count Number of hotels
results An object containing the hotels and the enhancers if requested
translations Only with the translations enhanced. Dictionary with all literals that can be translated

Location Request

This endpoint gives back hotels with prices too but instead from an entity, around specific coordinates. It takes the coordinades as an input to provide the hotels. Provides the search by current location functionality.

API endpoint

GET /v1/prices/search/location/{lon,lat}

GET "https://www.skyscanner.net/g/hotels/v1/prices/search/location/{lon,lat}
  ?market={market}&locale={locale}&checkin_date={checkin_date}&checkout_date={checkout_date}
  &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

Run in Postman

HEADER VALUES

Header Value
apikey
REQUIRED
This header is required to be on every single request any client does (it could also be accepted via query parameter)
x-user-agent
REQUIRED
Indicates which is the device and the platform related to the client. The format for that header is device;B2B, where:
Device is:
T for tablet
D for desktop
M for mobile
N if you are not able to detect the device type

URI PARAMETERS

Parameter Description
location
REQUIRED
Location to search hotels near it. Following the format: lon,lat
version
REQUIRED
API version

QUERY PARAMETERS

Parameter Description
market
REQUIRED
Matching [A-Z]{2}
locale
REQUIRED
Matching [a-z]{2}-[A-Z]{2}
currency
REQUIRED
Currency code
checkin_date
REQUIRED
YYYY-MM-DD
checkout_date
REQUIRED
YYYY-MM-DD
rooms
REQUIRED
Number of rooms
default: 1
adults
REQUIRED
Number of adults
default: 2
apikey
REQUIRED
This parameter is required to be on every single request any client does
images
OPTIONAL
Maximum number of images to retrieve per each hotel
between 1-30, default: 3
image_resolution
OPTIONAL
Resolution options
high or low, default: high
image_type
OPTIONAL
The format of the images
thumbnail or gallery
boost_official_partners
OPTIONAL
Indicates whether prices from official partners must be shown in the first place [1] or not [0]
default: 0
sort
OPTIONAL
Sort by a given attribute. By default the relevance sorting is applied
One of: relevance, -relevance, price, -price, distance, -distance, rating, -rating, stars, -stars
price_min
OPTIONAL
Filter. Return only hotels where the cheaper price is at least price_min (included). Cannot be used together with price_buckets
price_max
OPTIONAL
Filter. Return only hotels where the cheaper price is at most price_max (included). Cannot be used together with price_buckets
price_buckets
OPTIONAL
OR filter. Return only hotels with offers inside the specified buckets. Cannot be used together with price_min/price_max
district
OPTIONAL
OR filter. Return only results where a district matches
stars
OPTIONAL
OR filter. Return only results where a star category matches. The values must be TravelAPI ids
city
OPTIONAL
OR filter. When the search is done for an entity that contains different cities, this filter is available. Returns only results where the cities match. The values must be TravelAPI entity ids
chain
OPTIONAL
OR filter. Return only results where a hotel chains matches. The values must be TravelAPI ids
amenities
OPTIONAL
AND filter. Return only results where all amenities match. The values must be TravelAPI ids
cancellation
OPTIONAL
OR filter. Return only results where a cancellation policies matches. Options are:
free_cancellation, non_refundable, refundable, special_conditions
meal_plan
OPTIONAL
OR filter. Return only results where a meal plan matches. Options are:
room_only, breakfast_included, half_board, full_board, all_inclusive
property_type
OPTIONAL
OR filter. Return only results where an accommodation type matches. The values must be TravelAPI ids
hotel_name
OPTIONAL
Filter. Return only results where hotel name matches
limit
OPTIONAL
Number of results to retrieve
between 1-30, default: 30
offset
OPTIONAL
How many results to skip from the first position. Useful for paginating
default: 0
partners_per_hotel
OPTIONAL
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners
default: 3
enhanced
OPTIONAL
This parameter allows you to add additional content to the default response. The available options are:
filters: Returns extra object in the response including the filters like stars, district, city, etc.
price_slider: Return the price_slider.
partners: Returns information about the active partners in the system. is_official, the logo, the name and the website_id.
images: Returns images for the hotels. With the partner website_id and the urls.
amenities: Returns the hotels amenities.
query_location: Returns the location (higher level entities according to the searched entity) and map boundary (the coordinates of the search area).
extras: Returns the hotel chain of the hotels.
translations: Returns a dictionary with all literals and their corresponding translations using the request locale.

Note: The OR and AND filters allow multiple values coma separated. For example: &amenities=Lift,Bar

Response

The response is the same as the search entity one but without the hotel_pivot

RESPONSE PARAMETERS

Element Detail
correlation_id An identifier of the request
meta Contains metadata regarding the search cycle such as it's status
count Number of hotels
results An object containing the hotels and the enhancers if requested
translations Only with the translations enhanced. Dictionary with all literals that can be translated

Search Prices, map version

Entity Request

Given an entity, this endpoint will give you back the hotels with prices around the provided entity, having the same intentions than the regular search prices but modifying the response to suit it in environments where the information has to be rendered in a map. These differences can be summarized into the following points:

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

Run in Postman

HEADER VALUES

Header Value
apikey
REQUIRED
This header is required to be on every single request any client does (it could also be accepted via query parameter)
x-user-agent
REQUIRED
Indicates which is the device and the platform related to the client. The format for that header is device;B2B, where:
Device is:
T for tablet
D for desktop
M for mobile
N if you are not able to detect the device type

URI PARAMETERS

Parameter Description
entity_id
REQUIRED
Entity to search for hotels prices in it
version
REQUIRED
API version

QUERY PARAMETERS

Parameter Description
market
REQUIRED
Matching [A-Z]{2}
locale
REQUIRED
Matching [a-z]{2}-[A-Z]{2}
currency
REQUIRED
Currency code
checkin_date
REQUIRED
YYYY-MM-DD
checkout_date
REQUIRED
YYYY-MM-DD
rooms
REQUIRED
Number of rooms
default: 1
adults
REQUIRED
Number of adults
default: 2
apikey
REQUIRED
This parameter is required to be on every single request any client does
images
OPTIONAL
Maximum number of images to retrieve per each hotel
between 1-30, default: 3
image_resolution
OPTIONAL
Resolution options
high or low, default: high
image_type
OPTIONAL
The format of the images
thumbnail or gallery
boost_official_partners
OPTIONAL
Indicates whether prices from official partners must be shown in the first place [1] or not [0]
default: 0
sort
OPTIONAL
Sort by a given attribute. By default the relevance sorting is applied
One of: relevance, -relevance, price, -price, distance, -distance, rating, -rating, stars, -stars
price_min
OPTIONAL
Filter. Return only hotels where the cheaper price is at least price_min (included). Cannot be used together with price_buckets
price_max
OPTIONAL
Filter. Return only hotels where the cheaper price is at most price_max (included). Cannot be used together with price_buckets
price_buckets
OPTIONAL
OR filter. Return only hotels with offers inside the specified buckets. Cannot be used together with price_min/price_max
district
OPTIONAL
OR filter. Return only results where a district matches
stars
OPTIONAL
OR filter. Return only results where a star category matches. The values must be TravelAPI ids
city
OPTIONAL
OR filter. When the search is done for an entity that contains different cities, this filter is available. Returns only results where the cities match. The values must be TravelAPI entity ids
chain
OPTIONAL
OR filter. Return only results where a hotel chains matches. The values must be TravelAPI ids
amenities
OPTIONAL
AND filter. Return only results where all amenities match. The values must be TravelAPI ids
cancellation
OPTIONAL
OR filter. Return only results where a cancellation policies matches. Options are:
free_cancellation, non_refundable, refundable, special_conditions
meal_plan
OPTIONAL
OR filter. Return only results where a meal plan matches. Options are:
room_only, breakfast_included, half_board, full_board, all_inclusive
property_type
OPTIONAL
OR filter. Return only results where an accommodation type matches. The values must be TravelAPI ids
hotel_name
OPTIONAL
Filter. Return only results where hotel name matches
limit
OPTIONAL
Number of results to retrieve
between 1-100, default: 100
offset
OPTIONAL
How many results to skip from the first position. Useful for paginating
default: 0
partners_per_hotel
OPTIONAL
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners. Map only supports 1 partner per hotel
default: 1
enhanced
OPTIONAL
This parameter allows you to add additional content to the default response. The available options are:
filters: Returns extra object in the response including the filters like stars, district, city, etc.
price_slider: Return the price_slider.
query_location: Returns the location (higher level entities according to the searched entity) and map boundary (the coordinates of the search area).
translations: Returns a dictionary with all literals and their corresponding translations using the request locale.
bbox
OPTIONAL
Bounding Box coordinates in which to look for hotels as bbox=left,bottom,right,top
Example: -4.051,50.478,1.853,52.909

Note: The OR and AND filters allow multiple values coma separated. For example: &amenities=Lift,Bar

Response

Example response:

{
  "correlation_id": "d93ddb4d-c97c-4979-9627-e188e02c8409",
  "meta": {
    "status": "COMPLETED",
    "total": 5500,
    "total_available": 4092,
    "completion_percentage": 100,
    "offers": 67275,
    "hotels_filtered": 0
  },
  "count": 15,
  "results": {
    "filters": {
      "district": [
        {
          "id": "27562177",
          "min_price": 45,
          "max_price": null,
          "count": 94
        },
        ...
      ],
      "chain": [
        {
          "id": "Holiday Inn",
          "min_price": 74,
          "max_price": null,
          "count": 74
        },
        ...
      ],
      "cancellation": [
        {
          "id": "free_cancellation",
          "min_price": 36,
          "max_price": null,
          "count": 2207
        },
        ...
      ],
      "city": [
        {
          "id": "27544008",
          "min_price": 32,
          "max_price": null,
          "count": 856
        },
        ...
      ],
      "amenities": [
        {
          "id": "WifiService",
          "min_price": 32,
          "max_price": null,
          "count": 3327
        },
        ...
      ],
      "price_buckets": [
        {
          "id": "PR_BK_0",
          "min_price": null,
          "max_price": 80,
          "count": 130
        },
        ...
      ],
      "stars": [
        {
          "id": "4",
          "min_price": 58,
          "max_price": null,
          "count": 1220
        },
        ...
      ],
      "meal_plan": [
        {
          "id": "room_only",
          "min_price": 32,
          "max_price": null,
          "count": 2060
        },
        ...
      ],
      "property_type": [
        {
          "id": "Hotel",
          "min_price": 32,
          "max_price": null,
          "count": 3486
        },
        ...
      ]
    },
    "map_boundary": {
      "n_e_lng": 1.72864,
      "s_w_lng": -2.04675,
      "s_w_lat": 50.63341,
      "n_e_lat": 52.7619
    },
    "hotel_pivot": null,
    "hotels": [
      {
        "reviews_count": 284,
        "coordinates": [
          1.2961,
          51.12328
        ],
        "hotel_id": "46997257",
        "images": [
          {
            "provider": "h_dp",
            "gallery": "http://d3ba47lalua02r.cloudfront.net/available/50049482/mca.jpg",
            "thumbnail": "http://d3ba47lalua02r.cloudfront.net/available/50049482/mt.jpg"
          }
        ],
        "name": "The West Bank Guest House",
        "offers": [
          {
            "price_gbp": 58,
            "price": 58,
            "deeplink": "www.skyscanner.net/hotel_deeplink/4.0/UK/en-GB/GBP/h_xp/46997257/2017-04-30/2017-05-02/hotel/hotel/hotels?guests=1&ticket_price=58&rooms_left=1&appVersion=2.0&q_datetime_utc=2017-04-25T13%3A37%3A37&rooms=1&deeplink_ids=eu-west-1.prod_ae42baa45b08402e0a109287d1780528&request_id=b745fa26-f166-478f-b52c-2fcee3f413fe&appName=web&legacy_provider_id=1&max_price=132.0",
            "closed_user_groups": null
          }
        ],
        "stars": "4",
        "rating": {
          "value": 7.7,
          "desc": "rating_good"
        }
      },
      ...
    ],
    "location": [
      {
        "name": "United Kingdom",
        "entity_id": "29475375",
        "entity_type": "Nation"
      }
    ]
  },
  "translations": {
    "CUG_create_account_to_unlock_deals_msg": "Create an account to unlock exclusive deals",
    "CUG_deal": "DEAL",
    ...
  }
}

RESPONSE PARAMETERS

Element Detail
correlation_id An identifier of the request
meta Contains metadata regarding the search cycle such as it's status
count Number of hotels
results An object containing the hotels and the enhancers if requested
translations Only with the translations enhanced. Dictionary with all literals that can be translated

Location Request

This endpoint gives back hotels with prices too with map specific features but instead from an entity, around specific coordinates.

Provides the search by current location functionality.

API endpoint

GET /v1/prices/map/location/{lon,lat}

GET "https://www.skyscanner.net/g/hotels/v1/prices/map/location/{lon,lat}
  ?market={market}&locale={locale}&checkin_date={checkin_date}&checkout_date={checkout_date}
  &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

Run in Postman

HEADER VALUES

Header Value
apikey
REQUIRED
This header is required to be on every single request any client does (it could also be accepted via query parameter)
x-user-agent
REQUIRED
Indicates which is the device and the platform related to the client. The format for that header is device;B2B, where:
Device is:
T for tablet
D for desktop
M for mobile
N if you are not able to detect the device type

URI PARAMETERS

Parameter Description
location
REQUIRED
Location to search hotels near it. Following the format: lon,lat
version
REQUIRED
API version

QUERY PARAMETERS

Parameter Description
market
REQUIRED
Matching [A-Z]{2}
locale
REQUIRED
Matching [a-z]{2}-[A-Z]{2}
currency
REQUIRED
Currency code
checkin_date
REQUIRED
YYYY-MM-DD
checkout_date
REQUIRED
YYYY-MM-DD
rooms
REQUIRED
Number of rooms
default: 1
adults
REQUIRED
Number of adults
default: 2
apikey
REQUIRED
This parameter is required to be on every single request any client does
images
OPTIONAL
Maximum number of images to retrieve per each hotel
between 1-30, default: 3
image_resolution
OPTIONAL
Resolution options
high or low, default: high
image_type
OPTIONAL
The format of the images
thumbnail or gallery
boost_official_partners
OPTIONAL
Indicates whether prices from official partners must be shown in the first place [1] or not [0]
default: 0
sort
OPTIONAL
Sort by a given attribute. By default the relevance sorting is applied
One of: relevance, -relevance, price, -price, distance, -distance, rating, -rating, stars, -stars
price_min
OPTIONAL
Filter. Return only hotels where the cheaper price is at least price_min (included). Cannot be used together with price_buckets
price_max
OPTIONAL
Filter. Return only hotels where the cheaper price is at most price_max (included). Cannot be used together with price_buckets
price_buckets
OPTIONAL
OR filter. Return only hotels with offers inside the specified buckets. Cannot be used together with price_min/price_max
district
OPTIONAL
OR filter. Return only results where a district matches
stars
OPTIONAL
OR filter. Return only results where a star category matches. The values must be TravelAPI ids
city
OPTIONAL
OR filter. When the search is done for an entity that contains different cities, this filter is available. Returns only results where the cities match. The values must be TravelAPI entity ids
chain
OPTIONAL
OR filter. Return only results where a hotel chains matches. The values must be TravelAPI ids
amenities
OPTIONAL
AND filter. Return only results where all amenities match. The values must be TravelAPI ids
cancellation
OPTIONAL
OR filter. Return only results where a cancellation policies matches. Options are:
free_cancellation, non_refundable, refundable, special_conditions
meal_plan
OPTIONAL
OR filter. Return only results where a meal plan matches. Options are:
room_only, breakfast_included, half_board, full_board, all_inclusive
property_type
OPTIONAL
OR filter. Return only results where an accommodation type matches. The values must be TravelAPI ids
hotel_name
OPTIONAL
Filter. Return only results where hotel name matches
limit
OPTIONAL
Number of results to retrieve
between 1-100, default: 100
offset
OPTIONAL
How many results to skip from the first position. Useful for paginating
default: 0
partners_per_hotel
OPTIONAL
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners. Map only supports 1 partner per hotel
default: 1
enhanced
OPTIONAL
This parameter allows you to add additional content to the default response. The available options are:
filters: Returns extra object in the response including the filters like stars, district, city, etc.
price_slider: Return the price_slider.
query_location: Returns the location (higher level entities according to the searched entity) and map boundary (the coordinates of the search area).
translations: Returns a dictionary with all literals and their corresponding translations using the request locale.
bbox
OPTIONAL
Bounding Box coordinates in which to look for hotels as bbox=left,bottom,right,top
Example: -4.051,50.478,1.853,52.909

Note: The OR and AND filters allow multiple values coma separated. For example: &amenities=Lift,Bar

Response

The response is the same as the search map entity one

RESPONSE PARAMETERS

Element Detail
correlation_id An identifier of the request
meta Contains metadata regarding the search cycle such as it's status
count Number of hotels
results An object containing the hotels and the enhancers if requested
translations Only with the translations enhanced. Dictionary with all literals that can be translated

Hotel Prices

Request

Given a hotel, this endpoint will give back the hotel with all the information and live prices. To reuse the prices already fetched by previous calls to the search endpoint the parameter entity_id must be filled with the same entity id. Otherwise, the system will start fetching prices from the beginning for this specific hotel. Is a regular practice following the user flow first of all search for prices using the search prices endpoint and then retrieve more specific information - perhaps the detailed reviews - about one of the hotels using the hotel prices endpoint.

API endpoint

B2B partner please use v1 endpoint

GET /v1/prices/hotel/{hotel_id}

V3 is a new endpoint which supports dbook booking and cug overriding.

GET /v3/prices/hotel/{hotel_id}

GET "https://www.skyscanner.net/g/hotels/v1/prices/hotel/{hotel_id}
  ?entity_id=27539733&market={market}&locale={locale}&checkin_date={checkin_date}&checkout_date={checkout_date}
  &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

Run in Postman

HEADER VALUES

Header Value
apikey
REQUIRED
This header is required to be on every single request any client does (it could also be accepted via query parameter)
x-user-agent
REQUIRED
Indicates which is the device and the platform related to the client. The format for that header is device;B2B, where:
Device is:
T for tablet
D for desktop
M for mobile
N if you are not able to detect the device type

URI PARAMETERS

Parameter Description
hotel_id
REQUIRED
Hotel to search prices for
version
REQUIRED
API version

QUERY PARAMETERS

Parameter Description
market
REQUIRED
Matching [A-Z]{2}
locale
REQUIRED
Matching [a-z]{2}-[A-Z]{2}
currency
REQUIRED
Currency code
checkin_date
REQUIRED
YYYY-MM-DD
checkout_date
REQUIRED
YYYY-MM-DD
rooms
REQUIRED
Number of rooms
default: 1
adults
REQUIRED
Number of adults
default: 2
apikey
REQUIRED
This parameter is required to be on every single request any client does
images
OPTIONAL
Maximum number of images to retrieve for each hotel
between 1-30, default: 1
image_resolution
OPTIONAL
Resolution options
high or low, default: high
image_type
OPTIONAL
The format of the images
thumbnail or gallery or dynamic
boost_official_partners
OPTIONAL
Indicates whether prices from official partners must be shown in the first place [1] or not [0]
default: 0
partners_per_hotel
OPTIONAL
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners
default: 3
enhanced
OPTIONAL
This parameter allows you to add additional content to the default response. The available options are:
location: Returns the higher level entities according to the search entity.
translations: Returns a dictionary with all literals and their corresponding translations using the request locale.
entity_id
OPTIONAL
This field should be present when this endpoint has been called when the user has already looked for prices in an upper entity containing the hotel in order to reuse the cached prices.
For example: A user searches for prices in Paris (the service stores Paris prices). And then, the user opens a hotel details page. In this case, the request to the service must have the entity_id param fulfilled with the Paris entity_id in order to reuse the prices.
index
OPTIONAL
Mark the times of the same requests sent to bellboy, start from 1, default: 0
t_version
OPTIONAL
(B2B partner needn't set the value) Used for ABTesting, default is ''
app_name
OPTIONAL
(B2B partner needn't set the value) This parameter allows you to set the app name, default is ''
appVersion
OPTIONAL
(B2B partner needn't set the value) This parameter allows you to set the app version, default is ''
search_id
OPTIONAL
(B2B partner needn't set the value) Elasticsearch ID, the value can be got from search response or first request response, default is ''
cug_segments
OPTIONAL
(B2B partner needn't set the value) Only v3 supports, it allows you to add special cug segments for user. Options are:
mobile, logged_in, business, apps, flight_booked
ignore_cache
OPTIONAL
(B2B partner needn't set the value) This parameter allows you to bypass Elasticsearch and Redis cache. Options are:
0: use cache, 1: bypass cache, default: 0

Response

Example response:

{
    "meta": {
        "completion_percentage": 100,
        "search_id": "ca7a935824954024c5228394530677d66ecb7d5b24973a4d8afda9b911c4fb0f",
        "status": "COMPLETED",
        "offers": 14,
        "request_id": "39bb7709-2707-4ad5-8b74-7193810224fe"
    },
    "translations": {
        "CUG_create_account_to_unlock_deals_msg": "Créez un compte pour avoir accès à des offres exclusives",
        "CUG_deal": "OFFRE",
        ...
    },
    "results": {
        "partners": [
            {
                "is_dbook": false,
                "website_id": "h_98",
                "is_official": true,
                "name": "Travelanium",
                "logo": "www.skyscanner.fr/images/websites/220x80/h_98.png",
                "partner_type": "CRS"
            },
            ...
        ],
        "location": [
            {
                "entity_type": "District",
                "name": "Estación de Gran Vía",
                "entity_id": "27562647"
            },
            ...
        ],
        "hotel": {
            "chain_id": "90718893",
            "checkin_time": "14:00",
            "district": "27562647",
            "name_en": "Hotel Madrid Gran Via 25 Managed By Melia",
            "description": "https://dmf5e20brgddt.cloudfront.net/547b_2533_fr-FR_b2b",
            "reviews_count": 3011,
            "group_name": [
                "Meliá"
            ],
            "dbook_partners": [],
            "images": [
                {
                    "thumbnail": "https://d2xf5gjipzd8cd.cloudfront.net/available/353312696/mt.jpg",
                    "provider": "h_ct",
                    "category": "Bedroom",
                    "dynamic": "https://d2xf5gjipzd8cd.cloudfront.net/available/353312696/353312696_WxH.jpg",
                    "gallery": "https://d2xf5gjipzd8cd.cloudfront.net/available/353312696/mca.jpg"
                },
                ...
            ],
            "property_type": "Hotel",
            "offers": [
                {
                    "closed_user_groups": null,
                    "available": null,
                    "room_type": [
                        "double_room"
                    ],
                    "deeplink": "www.skyscanner.fr/hotel_deeplink/4.0/FR/fr-FR/EUR/h_me/46942019/2019-06-18/2019-06-19/hotel/hotel/hotels?guests=1&rooms=1&legacy_provider_id=1751086970&request_id=39bb7709-2707-4ad5-8b74-7193810224fe&q_datetime_utc=2019-06-12T12%3A02%3A15&appName=mobileweb&appVersion=2.0&ticket_price=166&deeplink_data=eyJ1cmwiOiAiaHR0cHM6Ly9tbS5tZWxpYS5jb20vZHluY2xpY2svbWVsaWEtY29tLz9ldGYtcHVibGlzaGVyPXNreXNjYW5uZXImZXRmLW5hbWU9bWV0YXNlYXJjaF9za3lzY2FubmVyX0ZSLXNreXNjYW5uZXImZXRmLXByZHJlZj0yODE5JmVzZWctbmFtZT1OTyZlc2VnLWl0ZW09Tk8mZXRmLW1lZGlhcGxhbj1GUi1JbmZsdWVuY2VyJmV1cmw9aHR0cDovL3d3dy5tZWxpYS5jb20vblJlc2VydmF0aW9ucy9qc3AvQ19SYXRlcy5qc3A%2FaWRQYXJ0bmVyPVNLWVNDQU5ORVJfRlImY29kaWdvSG90ZWw9MjgxOSZub2NoZXM9MSZpZExhbmc9ZnImZGlhPTE4Jm1lcz0wNiZhbmlvPTIwMTkmaGFiaXRhY2lvbmVzPTEmYWR1bHRzUm9vbTE9MSZjaGlsZHJlblJvb20xPTAmSWRQcm09U0tZU0NBTk5FUiZkaXZpc2FQcmVzZW50YWNpb249JnV0bV9zb3VyY2U9c2t5c2Nhbm5lciZ1dG1fbWVkaXVtPW1ldGFzZWFyY2gmdXRtX2NhbXBhaWduPXNreXNjYW5uZXJfRlImdXRtX2NvbnRlbnQ9MjgxOSZtYXJrZXQ9RlIiLCAiZmllbGRzIjogeyJzaWduYXR1cmUiOiAiYjBkZTZkNTFjMzk3YWRiZGEwMjlhOThhMGMxYWU4ZTcifX0%3D&max_price=205.0&channel=website",
                    "dbook_link": null,
                    "partner_id": "h_me",
                    "price": 166,
                    "is_official": true,
                    "price_gbp": 148,
                    "meal_plan": "breakfast_not_included",
                    "strike_through": null,
                    "cancellation": "non_refundable",
                    "cancellation_text": "Si vous annulez ou modifiez Annuler ou Modifier ou vous ne vous présentez pas 100 PCT vous sera débité en frais d'annulation"
                },
                ...
            ],
            "total_rooms": 175,
            "name": "Hotel Madrid Gran Vía 25, Managed by Meliá",
            "stars": "3",
            "amenities": [
                "Bar",
                "FrontDesk24hService",
                "Restaurant",
                ...
            ],
            "chain": "Meliã",
            "address": {
                "street_address": "Gran Via 25",
                "adm1": "Communauté de Madrid",
                "postcode": "28013",
                "district": "Estación de Gran Vía",
                "city": "Madrid",
                "nation": "Espagne"
            },
            "city": "27544850",
            "group_id": [
                "90719217"
            ],
            "checkout_time": "12:00",
            "hotel_id": "46942019",
            "official_website": "h_me",
            "rich_media": null,
            "rating": {
                "value": 8.1,
                "desc": "rating_very_good"
            },
            "reviews": {
                "badges": [
                    {
                        "badge_type": "hotel_type",
                        "text": "Très bon hôtel en ville",
                        "subtext": "Top 11% en ville"
                    },
                    ...
                ],
                "categories": [
                    {
                        "score": 95,
                        "entries": [
                            "Très bien situé",
                            "Emplacement parfait",
                            "Situation géographique excellente",
                            "Bonne situation"
                        ],
                        "id": "14",
                        "name": "Site"
                    },
                    ...
                ],
                "guest_types": [
                    {
                        "perc": 62,
                        "value": "couple",
                        "score": 86
                    },
                    ...
                ],
                "count": 3011,
                "summary": "Très bon hôtel pour une escapade citadine. Parfait pour le tourisme et proche des boutiques."
            },
            "coordinates": [
                -3.70228,
                40.42003
            ],
            "policies": "https://dmf5e20brgddt.cloudfront.net/a27b_2533_fr-FR_policies_b2b"
        },
        "price_includes": [
            "vat",
            "other_taxes"
        ]
    }
}

RESPONSE PARAMETERS

Element Detail
meta Contains metadata regarding the search cycle such as it's status
results An object containing the hotel and the enhancers if requested
translations Only with the translations enhanced. Dictionary with all literals that can be translated

Hotels Prices

Request

Given multiple hotels (maximum 50), this endpoint will give back the hotels with all the information and live prices.

API endpoint

GET /v2/prices/hotel/{hotel_ids}

GET "https://www.skyscanner.net/g/hbe-bellboy/v2/prices/hotel/{hotel_ids}
  ?market={market}&locale={locale}&checkin_date={checkin_date}&checkout_date={checkout_date}
  &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

Run in Postman

HEADER VALUES

Header Value
apikey
REQUIRED
This header is required to be on every single request any client does (it could also be accepted via query parameter)
x-user-agent
REQUIRED
Indicates which is the device and the platform related to the client. The format for that header is device;B2B, where:
Device is:
T for tablet
D for desktop
M for mobile
N if you are not able to detect the device type

URI PARAMETERS

Parameter Description
hotel_ids
REQUIRED
Hotels to search prices for, using ',' to join the hotels
version
REQUIRED
API version

QUERY PARAMETERS

Parameter Description
market
REQUIRED
Matching [A-Z]{2}
locale
REQUIRED
Matching [a-z]{2}-[A-Z]{2}
currency
REQUIRED
Currency code
checkin_date
REQUIRED
YYYY-MM-DD
checkout_date
REQUIRED
YYYY-MM-DD
rooms
REQUIRED
Number of rooms
default: 1
adults
REQUIRED
Number of adults
default: 2
apikey
REQUIRED
This parameter is required to be on every single request any client does
images
OPTIONAL
Maximum number of images to retrieve per each hotel
between 1-30, default: 1
image_resolution
OPTIONAL
Resolution options
high or low, default: high
image_type
OPTIONAL
The format of the images
thumbnail or gallery or dynamic
boost_official_partners
OPTIONAL
Indicates whether prices from official partners must be shown in the first place [1] or not [0]
default: 0
partners_per_hotel
OPTIONAL
Maximum numbers of partners to retrieve per each hotel. Note that 0 means all the available partners
default: 3
enhanced
OPTIONAL
This parameter allows you to add additional content to the default response. The available options are:
location: Returns the higher level entities according to the search entity.
translations: Returns a dictionary with all literals and their corresponding translations using the request locale.
app_name
OPTIONAL
(B2B partner needn't set the value) This parameter allows you to set the app name, default is ''
appVersion
OPTIONAL
(B2B partner needn't set the value) This parameter allows you to set the app version, default is ''

Response

Example response:

{
    "results": {
        "partners": [
            {
                "logo": "www.skyscanner.net/images/websites/220x80/d_ct.png",
                "name": "Trip.com",
                "is_official": false,
                "partner_type": "OTA",
                "website_id": "d_ct",
                "is_dbook": true
            },
            ...
        ],
        "hotels": [
            {
                "group_name": [
                    "Meliá"
                ],
                "amenities": [
                    "Laundry",
                    "Parking",
                    ...
                ],
                "name": "Hotel Madrid Gran Via 25 Managed By Melia",
                "images": [
                    {
                        "provider": "h_ct",
                        "dynamic": "https://d2xf5gjipzd8cd.cloudfront.net/available/353312696/353312696_WxH.jpg",
                        "thumbnail": "https://d2xf5gjipzd8cd.cloudfront.net/available/353312696/mt.jpg",
                        "category": "Bedroom",
                        "gallery": "https://d2xf5gjipzd8cd.cloudfront.net/available/353312696/mca.jpg"
                    },
                    ...
                ],
                "rich_media": null,
                "location": [
                    {
                        "entity_id": "27562647",
                        "name": "Gran Vía",
                        "entity_type": "District"
                    },
                    ...
                ],
                "rating": {
                    "desc": "rating_very_good",
                    "value": 8.1
                },
                "offers": [
                    {
                        "cancellation_text": null,
                        "meal_plan": null,
                        "partner_id": "d_ct",
                        "deeplink": "www.skyscanner.net/None&max_price=199.0&channel=website",
                        "available": null,
                        "is_official": false,
                        "room_type": [
                            "generic_room"
                        ],
                        "price": 128,
                        "price_gbp": 128,
                        "strike_through": null,
                        "closed_user_groups": null,
                        "cancellation": null,
                        "dbook_link": "www.skyscanner.net/hotels/book/46942019/d_ct?adults=1&rooms=1&checkin=2019-06-18&checkout=2019-06-19&requestId=6431b3f0-09b8-4d8b-9808-0bc551f9725c&priceCurrency=GBP&appId=hate-squad&priceAmount=128"
                    },
                    ...
                ],
                "city": "27544850",
                "reviews_count": 3022,
                "reviews": {
                    "categories": [
                        {
                            "entries": [
                                "Great location",
                                "Fantastic position",
                                "Wonderfully located",
                                "Perfect for shopping"
                            ],
                            "name": "Location",
                            "score": 95,
                            "id": "14"
                        },
                        ...
                    ],
                    "guest_types": [
                        {
                            "perc": 65,
                            "value": "couple",
                            "score": 79
                        },
                        ...
                    ],
                    "count": 3022,
                    "badges": [
                        {
                            "badge_type": "hotel_type",
                            "subtext": "Top 11% in city",
                            "text": "Great city hotel"
                        },
                        ...
                    ],
                    "summary": "Very good city hotel. Good for sightseeing and located near shopping areas."
                },
                "policies": "https://dmf5e20brgddt.cloudfront.net/7657_2533_en-GB_policies_b2b",
                "hotel_id": "46942019",
                "chain_id": "90718893",
                "chain": "Meliã",
                "total_rooms": 175,
                "name_en": "Hotel Madrid Gran Via 25 Managed By Melia",
                "checkin_time": "14:00",
                "group_id": [
                    "90719217"
                ],
                "property_type": "Hotel",
                "checkout_time": "12:00",
                "description": "https://dmf5e20brgddt.cloudfront.net/e289_2533_en-GB_b2b",
                "district": "27562647",
                "stars": "3",
                "coordinates": [
                    -3.70228,
                    40.42003
                ],
                "address": {
                    "nation": "Spain",
                    "adm1": "Community of Madrid",
                    "city": "Madrid",
                    "district": "Gran Vía",
                    "street_address": "Gran Via 25",
                    "postcode": "28013"
                }
            },
            ...
        ],
        "price_includes": [
            "vat",
            "other_taxes"
        ]
    },
    "translations": {
        "CUG_create_account_to_unlock_deals_msg": "Create an account to unlock exclusive deals",
        "CUG_deal": "DEAL",
        ...
    },
    "meta": {
        "status": "COMPLETED",
        "completion_percentage": 100,
        "search_id": "dd30d77810d91ae4ca062378c31d09c9658e7fec85330fcd6b515b55b6c73d4b",
        "offers": 62,
        "request_id": "6431b3f0-09b8-4d8b-9808-0bc551f9725c"
    }
}

RESPONSE PARAMETERS

Element Detail
meta Contains metadata regarding the search cycle such as it's status
results An object containing the hotel and the enhancers if requested
translations Only with the translations enhanced. Dictionary with all literals that can be translated

Localisation

All Skyscanner services are localized by market, language, and currency, so these three parameters must be added to every request.

Locales

Retrieve the locales that we support to translate your content.

GET "https://partners.api.skyscanner.net/apiservices/
    reference/v1.0/locales?
    apiKey={apiKey}"

API endpoint

GET /reference/v1.0/locales

Try it out

Run in Postman

REQUEST PARAMETERS

Parameter Description
apiKey
REQUIRED
Your API Key.

Example response

{
  "Locales": [
    {
      "Code": "ar-AE",
      "Name": "العربية (الإمارات العربية المتحدة)"
    },
    {
      "Code": "az-AZ",
      "Name": "Azərbaycan­ılı (Azərbaycan)"
    },
    {
      "Code": "bg-BG",
      "Name": "български (България)"
    },
    {
      "Code": "ca-ES",
      "Name": "català (català)"
    },
  ...
  ]
}

RESPONSE PARAMETERS

Parameter Description
Locales Contains the list of locales that we support with name and code.

Currencies

Retrieve the currencies that we support.

GET "https://partners.api.skyscanner.net/apiservices/
    reference/v1.0/currencies?
    apiKey={apiKey}"

API endpoint

GET /reference/v1.0/currencies

Try it out

Run in Postman

REQUEST PARAMETERS

Parameter Description
apiKey
REQUIRED
Your API Key.

Example response

{
  "Currencies": [
      {
          "Code": "USD",
          "Symbol": "$",
          "ThousandsSeparator": ",",
          "DecimalSeparator": ".",
          "SymbolOnLeft": true,
          "SpaceBetweenAmountAndSymbol": false,
          "RoundingCoefficient": 0,
          "DecimalDigits": 2
      },
  ...
  ]
}

RESPONSE PARAMETERS

Parameter Description
Currencies The list of currencies that we support, with corresponding symbol and formatting information for internationalisation.

Markets

Retrieve the market countries that we support.

Most suppliers (airlines, travel agents, and car hire dealers) set their fares based on the market (or country of purchase). It is therefore necessary to specify the market country in every query.

GET "https://partners.api.skyscanner.net/apiservices/
    reference/v1.0/countries/
    {locale}?
    apiKey={apiKey}"

API endpoint

GET /reference/v1.0/countries/{locale}

Try it out

Run in Postman

REQUEST PARAMETERS

Parameter Description
locale
REQUIRED
The language you want the results in (ISO locale). See locales for locales that we support.
apiKey
REQUIRED
Your API Key.

Example response

{
  "Countries": [
    {
      "Code": "AD",
      "Name": "Andorra"
    },
    {
      "Code": "AE",
      "Name": "United Arab Emirates"
    },
    {
      "Code": "AF",
      "Name": "Afghanistan"
    },
  ...
  ]
}

RESPONSE PARAMETERS

Parameter Description
Countries Contains the list of markets (array of countries as name-value pairs).

Places

Places can be of 4 different types:

  1. Country
  2. City
  3. Airport
  4. Anywhere (flights browse API)

You can use any of the following endpoints to get information about places:

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

Run in Postman

REQUEST PATH PARAMETERS

Parameter Description
country
REQUIRED
The market/country code your user is in
currency
REQUIRED
The currency code you want the prices in
locale
REQUIRED
The locale code you want the results in (ISO locale)

REQUEST QUERY PARAMETERS

Parameter Description
query
REQUIRED
The query string.
apiKey
REQUIRED
Your API Key or token.
includeAirports
OPTIONAL
If set to true, airports will be included in the result. If set to false, airports will be excluded. By default, it is set to true.
includeCities
OPTIONAL
If set to true, cities will be included in the result. If set to false, cities will be excluded. By default, it is set to true.
includeCountries
OPTIONAL
If set to true, countries will be included in the result. If set to false, countries will be excluded. By default, it is set to true.

Example response for query=pari

{
  "Places": [
    {
      "PlaceId": "PARI-sky",
      "EntityId": "27539733",
      "Iata": "PAR",
      "PlaceName": "Paris",
      "CountryId": "FR-sky",
      "RegionId": "",
      "CityId": "PARI-sky",
      "CountryName": "France"
    },
    {
      "PlaceId": "CDG-sky",
      "EntityId": "95565041",
      "Iata": "",
      "PlaceName": "Paris Charles de Gaulle",
      "CountryId": "FR-sky",
      "RegionId": "",
      "CityId": "PARI-sky",
      "CountryName": "France"
    },
    {
      "PlaceId": "ORY-sky",
      "EntityId": "95565040",
      "Iata": "",
      "PlaceName": "Paris Orly",
      "CountryId": "FR-sky",
      "RegionId": "",
      "CityId": "PARI-sky",
      "CountryName": "France"
    },
  ...
  ]
}

RESPONSE PARAMETERS

Parameter Description
Places Contains the list of places that match the query string. The places can be countries, cities or airports.

Place Information

Get information about a specific country, city or airport using a Skyscanner Place ID. Alternatively, get information about the closest city using an IP address or lat-long coordinates.

API endpoint

GET /autosuggest/v1.0/{country}/{currency}/{locale}

Try it out

Run in Postman

GET "https://partners.api.skyscanner.net/apiservices/
    autosuggest/v1.0/{country}/{currency}/{locale}?
    id={place_id}&
    apiKey={apiKey}"

REQUEST PATH PARAMETERS

Parameter Description
country
REQUIRED
The market/country code your user is in
currency
REQUIRED
The currency code you want the prices in
locale
REQUIRED
The locale code you want the results in (ISO locale)

REQUEST QUERY PARAMETERS

Parameter Description
id
REQUIRED
Should be one of the following:
- The Skyscanner place id (e.g. "CDG-sky"). Will return information about the place specified.
- An IP address (e.g. "188.39.95.140-ip"). Will return information about the city of the nearest airport to the IP specified.
- Lat-long coordinates (e.g. "35.2794,139.0436-latlong"). Will return information about the city of the nearest airport to the coordinates specified.
apiKey
REQUIRED
Your API Key or token.
includeAirports
OPTIONAL
If set to true, airports will be included in the result. If set to false, airports will be excluded. By default, it is set to true.
includeCities
OPTIONAL
If set to true, cities will be included in the result. If set to false, cities will be excluded. By default, it is set to true.
includeCountries
OPTIONAL
If set to true, countries will be included in the result. If set to false, countries will be excluded. By default, it is set to true.

Example response for United Kingdom: id=uk

{
  "Places": [
    {
      "PlaceId": "UK-sky",
      "EntityId": "29475375",
      "Iata": "",
      "PlaceName": "United Kingdom",
      "CountryId": "UK-sky",
      "CityId": "-sky",
      "CountryName": "United Kingdom"
    }
  ]
}

Example response for Charles de Gaulle airport: id=cdg

{
  "Places": [
    {
      "PlaceId": "CDG-sky",
      "EntityId": "95565041",
      "Iata": "CDG",
      "PlaceName": "Paris Charles de Gaulle",
      "CountryId": "FR-sky",
      "CityId": "PARI-sky",
      "CountryName": "France"
    }
  ]
}

Example response for user IP address 188.39.95.140: id=188.39.95.140-ip

{
  "Places": [
    {
      "PlaceId": "LOND-sky",
      "EntityId": "27544008",
      "Iata": "",
      "PlaceName": "London",
      "CountryId": "UK-sky",
      "CityId": "LOND-sky",
      "CountryName": "United Kingdom"
    }
  ]
}

RESPONSE PARAMETERS

Parameter Description
Places Contains the information about the place such as name (in chosen locale), city, country.

Geo Catalog

Get the full list of all the places that we support.

GET "https://partners.api.skyscanner.net/apiservices/
    geo/v1.0?
    apiKey={apiKey}"

API endpoint

GET /geo/v1.0

Try it out

Run in Postman

REQUEST PARAMETERS

Parameter Description
apiKey
REQUIRED
Your API Key.
languageid A locale in ISO format, for example fr-FR

Response extract:

{
  "Continents": [
    {
      "Countries": [
        {
          "CurrencyId": "AFN",
          "Regions": [],
          "Cities": [
            {
              "SingleAirportCity": true,
              "Airports": [
                {
                  "CityId": "BINA",
                  "CountryId": "AF",
                  "Location": "67.823611, 34.804167",
                  "Id": "BIN",
                  "Name": "Bamiyan"
                }
              ],
              "CountryId": "AF",
              "Location": "67.823611, 34.804167",
              "IataCode": "BIN",
              "Id": "BINA",
              "Name": "Bamiyan"
            },
            ...
          ]
        },
        ...
      ]
    },
    ...
  ]
 }

RESPONSE PARAMETERS

Parameter Description
Continents Contains the list of all the continents.
Countries Contains the list of all the countries.
Regions Contains the list of all the regions.
Cities Contains the list of all the cities.
Airports Contains the list of all the airports.

Hotels And Carhire Autosuggest

Retrieve a list of geographical locations which can be used with the hotels and car hire APIs.

GET "https://www.skyscanner.net/g/autosuggest/v3/hotels?
    q=lond&
    market=US&
    locale=en-US

REQUEST PARAMETERS

Parameter Description
q User query. If empty, will return most popular places for the market based on market distance and number of hotels
locale The locale you want the results in (ISO locale)
market The market your user is in
limit_geopolitical Only show results that are contained within any of the provided geopolitical entities (specified by its IDs, comma separated).
exclude_geopolitical Only show results that are NOT contained in any of the provided geopolitical entities (specified by its IDs, comma separated).

Example response for '?q=lond&locale=en-GB'

{
  "results": [
    {
      "id": "27544008",
      "localised_name": "London",
      "localised_type": "City",
      "type": "City",
      "geo_containers": [
        {
          "id": "44293288",
          "localised_name": "England",
          "localised_type": "Region",
          "type": "FirstLevelNationAdministrativeDivision"
        },
        {
          "id": "29475375",
          "localised_name": "United Kingdom",
          "localised_type": "Country",
          "type": "Nation"
        }
      ]
    },
    ...
  ]
}

RESPONSE PARAMETERS

Parameter Description
results Contains a list of results for the query in order of relevance
id Can be used as an input to the Hotels or CarHire Pricing Services or to query geo
localised_name Entity name in the provided locale
localised_type Contains the type in the locale used in the query
type Identify the type of the entity (City, District, Hotel, ...)
geo_containers The list of parent locations that contain one another in order (e.g. England, United Kingdom for London)

Schemas

Example place codes:

EDIN-sky
CDG-iata

Each place can be referred to via different schemas, described below.

SCHEMAS

Parameter Description
sky Skyscanner code. The response from Autosuggest provides these ids.
iata / iso Airports and cities often use the internationally recognized IATA and ISO schemas.
For Flights we recommend that you use the Skyscanner code which is very similar but solves ambiguous cases where a city and one of its airports share the same code. For Car Hire please use the IATA code.
GeoNameCodes GeoNameCodes from the GeoNames schema (see geonames.org)
GeoNameIDs GeoNameIDs from the GeoNames schema (see geonames.org)

If the default Skyscanner schema is not used, the schema name must be appended to the place id as follows: placeCode-locationSchema

Booking Redirects

In addition to price information, your users will need a URL that redirects them to where they can book their tickets.

You can redirect your users directly to the supplier's website (airline or travel agent)

Example deeplink

"PricingOptions": [
        {
          "Agents": [
            4499211
          ],
          "QuoteAgeInMinutes": 0,
          "Price": 83.41,
          "DeeplinkUrl": "https://partners.api.skyscanner.net/apiservices/deeplink/v2?_cje=jzj5DawL5zJyT%2bnfe1..."
        },

When using flights live prices urls (or deeplinks) are provided in the response to redirect users to the third-party supplier's website with the details of the itinerary that was selected.

deeplink page

You can customize the redirect page by replacing the default logo with your logo. Please see How can I put my logo on the redirect page? for more information.

See how it looks with your logo

Referrals

The referral service is used to provide partner redirects to Skyscanner pages based on provided request parameters.

It can redirect to different pages within Skyscanner based on the provided {pagetype} parameter. For the full list of page types and examples see the sections below.

API endpoint

The API is accessible at https://skyscanner.net/g/referrals/v1

There is one main endpoint with the following URL structure:

https://skyscanner.net/g/referrals/v1/{vertical}/{pagetype}?mediaPartnerId={yourmediapartnerID}

The endpoint serves only GET requests and responds with HTTP status 301 redirecting to the desired Skyscanner page.

For the different possible values of the parameters and additional query parameters check the tables below.

We use Impact to track the redirects and associate them with the referral source. You will need to include Impact tracking parameters as query parameters in your requests. Please check the TRACKING QUERY PARAMETERS section below for more details on the parameters. Although the parameters are optional, the redirects will not be correctly tracked without them.

If you already have your tracking integration using the legacy associateid parameter, we will still support this and map the legacy parameter to the new Impact parameters automatically. However, we discourage using it for new referral links, as it will become fully deprecated eventually.

TRY IT OUT

Run in Postman

REQUEST PARAMETERS

Parameter Description
vertical
REQUIRED
The vertical you want to redirect to. Allowed values: flights, cars
pagetype
REQUIRED
Page type supported by each vertical. E.g. for flights -> day-view, browse-view... take a look at the next table

PAGE TYPES

Vertical Pagetypes
flights home, day-view, calendar-month-view, browse-view, multicity, cheap-flights-to, flights-airline
cars home, day-view
hotels home-view, day-view, hotel-details

TRACKING QUERY PARAMETERS

Parameter Description
mediaPartnerId
REQUIRED
Your Impact partner ID as found at Impact.com.
adId
OPTIONAL
This is an Impact ID used to identify your ad type. If none is provided, 1477112 will be used. This will be reported on Impact as Other Referral.
utm_term
OPTIONAL
Additional alphanumeric tracking parameter you can add to your text links for additional tracking. This will be reported on Impact as Sub Id 2.

Examples

An example including some of the parameters looks like:

Please try to avoid using locale, market and currency, as these values will be governed by Skyscanner market detection logic on the Skyscanner site. If you believe you need to use these, please discuss with your account manager.

GET https://skyscanner.net/g/referrals/v1/flights/day-view/?origin=cdg&destination=edi&outboundDate=2023-02-07&utm_term=summer&mediaPartnerId=2850210

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

GET https://skyscanner.net/g/referrals/v1/cars/day-view/?pickupPlace=BCN&dropoffPlace=BCN&pickupTime=2023-02-01T10:00&dropoffTime=2023-02-07T10:00&driverAge=42&mediaPartnerId=2850210

Preferred airlines: You can find IATA airline codes here

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

Preferred alliances:

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

Departure times - in this example, the query parameter configures the filters to have the first leg's departure time as default (-), and the second leg between 0 (00:00) and 990 minutes (16:30).

GET https://skyscanner.net/g/referrals/v1/flights/day-view?departure-times=-%7C0-990&market=UK&currency=GBP&locale=en-GB&origin=cdg&destination=edi&outboundDate=2023-02-01&inboundDate=2023-02-07

Duration:

GET https://skyscanner.net/g/referrals/v1/flights/day-view?duration=1320&market=UK&currency=GBP&locale=en-GB&origin=cdg&destination=edi&outboundDate=2023-02-01&inboundDate=2023-02-07

Specific request query parameters are provided in the tables below.

RESPONSE PARAMETERS

A successful response contains no content and returns HTTP 301. The URL to redirect to is provided in the Location header of the response.

Flights Parameters

Flights - Referral

Page type Description
home Skyscanner's Home Example Link
day-view Flights Day View Example Link
calendar-month-view Flights MonthView Example Link
browse-view Flights BrowseView Example Link
multicity Flights Multicity Example Link
cheap-flights-to Cheap Flights To Example Link
flights-airline Flights Airline Example Link

For more details, please see our Examples

Cars Parameters

Cars - Referral

API endpoint Description
home CarHire Home Example Link
day-view CarHire DayView Example Link

Hotels Parameters

Hotels - Referral

API endpoint Description
home-view Hotels Home Example Link
day-view Hotels DayView Example Link
hotel-details Hotel Details Example Link

Flights Home Page Schema

/flights/home

A schema definition for the flights home page microsite supported parameters

Abstract Extensible Status Identifiable Custom Properties Additional Properties Access Restrictions
Can be instantiated No Unknown status No Forbidden Allowed none

Flights Home Page Type

object Flights Home Page

Flights Home Page Properties

Property Type Required Nullable
market string Optional cannot be null
locale string Optional cannot be null
currency string Optional cannot be null

market

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

market

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

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

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

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

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

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

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

adultsv2 Type

integer Adult passengers. Adults have to be 16 years old or older.

adultsv2 Constraints

minimum: the value of this number must greater than or equal to: 1

adultsv2 Default Value

The default value is:

1

childrenv2

Number of child passengers. The value must be in the format integer|integer.. where each number is the age of the child passenger

childrenv2

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

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

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

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

preferDirects Type

boolean Direct Flights Preferred

showDirectDays

Show days with direct flights

showDirectDays

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

outboundaltsenabled Type

boolean Including nearby airports as an outbound place

inboundaltsenabled

Including nearby airports as an inbound place

inboundaltsenabled

inboundaltsenabled Type

boolean Including nearby airports as an inbound place

alternativeorigins

An array of location codes which will be used as alternative origins

alternativeorigins

alternativeorigins Type

string[]

alternativedestinations

An array of location codes which will be used as alternative destinations

alternativedestinations

alternativedestinations Type

string[]

market

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

market

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

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

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

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

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

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

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

duration Type

integer Sets the dayview duration filters.

Flights Browse View Schema

/flights/browse-view

A schema definition for the flights browse view microsite supported parameters

Abstract Extensible Status Identifiable Custom Properties Additional Properties Access Restrictions
Can be instantiated No Unknown status No Forbidden Allowed none

Flights Browse View Type

object Flights Browse View

Flights Browse View Properties

Property Type Required Nullable
origin string Required cannot be null
destination string Optional cannot be null
outboundDate string Optional cannot be null
inboundDate string Optional cannot be null
adultsv2 integer Optional cannot be null
childrenv2 string Optional cannot be null
infants integer Optional cannot be null
oym string Optional cannot be null
iym string Optional cannot be null
rtn string Optional cannot be null
preferDirects boolean Optional cannot be null
market string Optional cannot be null
locale string Optional cannot be null
currency string Optional cannot be null

origin

Location code for the origin

origin

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

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

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

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

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

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

infants Type

integer Infant passengers. An infant is 1 year old or younger.

oym

Departure date in the format: YYYY-MM

oym

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

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

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

preferDirects Type

boolean Direct flights preferred

market

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

market

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

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

currency Type

string Currency

currency Constraints

unknown format: the value of this string must follow the format: currency

Flights Calendar Month View Schema

/flights/calendar-month-view

A schema definition for the flights calendar month view microsite supported parameters

Abstract Extensible Status Identifiable Custom Properties Additional Properties Access Restrictions
Can be instantiated No Unknown status No Forbidden Allowed none

Flights Calendar Month View Type

object Flights Calendar Month View

Flights Calendar Month View Properties

Property Type Required Nullable
origin string Required cannot be null
destination string Required cannot be null
oym string Optional cannot be null
iym string Optional cannot be null
adultsv2 integer Optional cannot be null
childrenv2 string Optional cannot be null
infants integer Optional cannot be null
rtn string Optional cannot be null
preferDirects boolean Optional cannot be null
selectedoday string Optional cannot be null
selectediday string Optional cannot be null
market string Optional cannot be null
locale string Optional cannot be null
currency string Optional cannot be null

origin

Location code for the origin

origin

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

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

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

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

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

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

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

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

preferDirects Type

boolean Direct flights preferred

selectedoday

Preselected outbound day of the month.

selectedoday

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

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

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

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

currency Type

string Currency

currency Constraints

unknown format: the value of this string must follow the format: currency

Flights Day View for multicity search Schema

/flights/multicity

A schema definition for the flights day-view microsite supported query parameters

Abstract Extensible Status Identifiable Custom Properties Additional Properties Access Restrictions
Can be instantiated No Unknown status No Forbidden Allowed none

Flights Day View for multicity search Type

object Flights Day View for multicity search

Flights Day View for multicity search Properties

Property Type Required Nullable
origin0 string Required cannot be null
date0 string Required cannot be null
destination0 string Required cannot be null
origin1 string Optional cannot be null
date1 string Optional cannot be null
destination1 string Optional cannot be null
origin2 string Optional cannot be null
date2 string Optional cannot be null
destination2 string Optional cannot be null
origin3 string Optional cannot be null
date3 string Optional cannot be null
destination3 string Optional cannot be null
origin4 string Optional cannot be null
date4 string Optional cannot be null
destination4 string Optional cannot be null
origin5 string Optional cannot be null
date5 string Optional cannot be null
destination5 string Optional cannot be null
adultsv2 integer Required cannot be null
childrenv2 string Optional cannot be null
infants integer Optional cannot be null
cabinclass string Required cannot be null
market string Optional cannot be null
locale string Optional cannot be null
currency string Optional cannot be null

origin0

Location code for the origin of the first flight

origin0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

adultsv2 Type

integer Adult passengers. Adults have to be 16 years old or older.

adultsv2 Constraints

minimum: the value of this number must greater than or equal to: 1

adultsv2 Default Value

The default value is:

1

childrenv2

Number of child passengers. The value must be in the format integer|integer.. where each number is the age of the child passenger

childrenv2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

currency Type

string Currency

currency Constraints

unknown format: the value of this string must follow the format: currency

Carhire Home View Schema

/cars/home

A schema definition for the carhire home page microsite supported parameters

Abstract Extensible Status Identifiable Custom Properties Additional Properties Access Restrictions
Can be instantiated No Unknown status No Forbidden Allowed none

Carhire Home View Type

object Carhire Home View

Carhire Home View Properties

Property Type Required Nullable
market string Optional cannot be null
locale string Optional cannot be null
currency string Optional cannot be null

market

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

market

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

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

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

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

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

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

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

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

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

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

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

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

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

adults Type

integer Number of adult guests

rooms

Number of rooms. Rooms number should be less than or equal to the adults number.

rooms

rooms Type

integer Number of rooms

skyscanner_node_code

The IATA code of the destination.

skyscanner_node_code

skyscanner_node_code Type

string Destination

market

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

market

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

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

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

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

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

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

adults Type

integer Number of adults in the room. Adult's number should be greater than or equal to the rooms number.

adults Constraints

minimum: the value of this number must greater than or equal to: 1

adults Default Value

The default value is:

2

rooms

Number of rooms. Rooms number should be less than or equal to the adults number.

rooms

rooms Type

integer Number of rooms. Room's number should be less than or equal to the adults number.

rooms Constraints

minimum: the value of this number must greater than or equal to: 1

rooms Default Value

The default value is:

1

sort

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

sort

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

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

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

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

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

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

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

adults Type

integer Number of adult guests

rooms

Number of rooms

rooms

rooms Type

integer Number of rooms

market

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

market

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

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

currency Type

string Currency

currency Constraints

unknown format: the value of this string must follow the format: currency

Response Codes

Our APIs use the following response codes:

RESPONSE CODES

Error Code Meaning
200 Success
204 No content - the session is still being created (wait and try again).
301 Moved Permanently – the result shows redirect location.
304 Not Modified – the results have not been modified since the last poll.
400 Bad Request -- Input validation failed.
403 Forbidden -- The API Key was not supplied, or it was invalid, or it is not authorized to access the service.
410 Gone – the session has expired. A new session must be created.
429 Too Many Requests – There have been too many requests in the last minute.
500 Server Error – An internal server error has occurred which has been logged.

HTTPS migration guide

As of April 2020 in order to improve the security of our Skyscanner Travel APIs, we're requiring all partners to only use the https protocol for making requests to our APIs.

What is changing?

Requests and response bodies will remain the same. The only change is that partners must always use the TLS https protocol for making requests to the APIs.

What do you need to do?

Partners should replace all references to the http protocol with https in all usages of our API URLs in your codebases.

What is the deadline for migration?

The deadline is 30th April 2020, but you should migrate as soon as possible to get the benefits of increased security with TLS.

Need help?

You can raise support tickets here