Hotels Search API

Search for hotels

Download RAML

Overview

The hotels search API is used to search for hotels by various criteria to retrieve detailed information about the hotels, including rates and availability. The API supports both single and multiple hotel searches, providing comprehensive details for specific hotels or a list of hotels within a given destination.

Constants

Constant mappings, such as hotel features, tags, themes, chains and place/property types can be retrieved using the Static Data Feeds API

Query completion

The result of hotel searches depends on the onlyIfComplete query parameter.

When this parameter is set to true, the query will return results only after the server has completed gathering responses from all the different providers. In this case, the HTTP status response will be 202 Accepted, and the client will need to repeat the requests until an HTTP status response of 200 Ok is returned. If the onlyIfComplete parameter is not set or set to false, the server will return the results gathered so far. The client can determine whether the query has completed based on the value of the isCompleted property in the response object

Availability and rates inclusion

If neither check-in, nor check-out dates are provided, then all hotels in the destination will be searched, without including availability and rates

Resources:

Single hotel search

The single hotel search retrieves comprehensive details for a specific hotel, including all available rates based on the provided criteria.

Typically, this endpoint is used when a user selects a hotel from the results of a multiple hotel search. By default, the response contains minimal detail; the responseOptions parameter can be used to request results with more detail

GET
/api/3.0/hotel?apiKey=<string>&userTrackId=<string>&hotel=<HotelEntityKey>&onlyIfComplete=<boolean>&searchTimeout=<number>&checkin=<date-only>&checkout=<date-only>&rooms=<HotelRoomGuests>&languageCode=<LanguageCode>&currencyCode=<CurrencyCode>&includeTaxesInTotal=<boolean>&includeLocalTaxesInTotal=<boolean>&responseOptions=<SingleHotelSearchResponseOptions>
Query parameterDescription
apiKey
Required

API key assigned to the affiliate

userTrackId
Required

Client-specific unique identifier to identify this user.

There are no restrictions on this value, but it should be unique to the client and remain the same for the duration of the client’s session

hotel
Required

Key of the hotel to search

onlyIfComplete
Default: false

Specifies whether the server should respond with a 202 Accepted status code for incomplete queries.

Refer to Query completion section for more details

searchTimeout

Maximum time in milliseconds to wait for the search to complete.

If the search does not complete within the specified time, only the results gathered until that point will be returned

checkin

Check-in date

checkout

Check-out date

rooms

Number of rooms and guests.

Required when searching with check-in and check-out dates

languageCode
Default: EN

Language in which the results should be returned

currencyCode

Currency in which rates should be returned.

Defaults to the currency based on user's location

includeTaxesInTotal

Specifies whether rates should include taxes (VAT/sales tax, not local taxes payable at the hotel).

If not specified, the standard market-specific logic based on client IP address will be applied

includeLocalTaxesInTotal

Specifies whether rates should include local taxes (i.e. taxes and fees payable at the hotel).

If not specified, the standard-market-specific logic based on client IP address will be applied.

All taxes are included when this parameter is set to true

responseOptions

Optional details to include in the response

Responses
200 - application/json
{
    "id": 53213,
    "key": "khotel:53213",
    "name": "Novotel Paris les Halles",
    "address": "8 Place Marguerite de Navarre",
    "hotelCountryCode": "FR",
    "latitude": 48.86061,
    "longitude": 2.346624,
    "starRating": 4,
    "isSelfRated": false,
    "lowestRate": 123,
    "isComplete": false,
    "searchTime": 141,
    "totalResults": 0,
    "currencyCode": "USD",
    "languageCode": "EN",
    "countryCode": "US",
    "policies": [
        {
            "code": "checkin",
            "name": "Check-in",
            "description": "From 2:00 pm"
        },
        {
            "code": "checkout",
            "name": "Check-out",
            "description": "Prior to 12:00 pm"
        }
    ],
    "providers": [
        {
            "code": "BOOKINGDOTCOMAFFILIATE",
            "name": "Booking.com",
            "logo": "https://content.r9cdn.net/rimg/provider-logos/hotels/h/BOOKINGDOTCOM.png?crop=false&width=88&height=31&fallback=default2.png&_v=1233faf051a0a6b9d9807846b1316f74",
            "isDirect": false,
            "isLanguageSupported": true
        }
    ],
    "results": [
        {
            "roomName": "Superior Room, 1 Double Bed with Sofa bed",
            "totalRate": 496.57,
            "isCheapestRate": true,
            "hasFreeCancellation": true,
            "canPayLater": false,
            "isBundledRate": false,
            "inclusions": [
                0
            ],
            "availableRooms": 5,
            "providerIndex": 0,
            "isDeprioritisedForExcludedCharges": false,
            "bookUri": "https://sandbox-en-us.kayakaffiliates.com/in?cluster=5&a=test&p=&cc=us&mc=USD&lc=EN&url=%2Fbook%2Fhotel%3Fcode%3DePGkPeZiuU.WfxetRcZFwD1Q7IXP-_L1Py0tDCcY098_zlHXEqg5Jg.8011.34725.MTczNTAxNjQwMDAwMF4xNzM1MTg5MjAwMDAwXjFeMl4%3D%26h%3D15934f2d29fb%26sub%3D0%26_pt_%3D1&utid=Y2JlZWVkZTctOGQwMy00YjNmLTk0YjItNmEyOTgyNmIwZGFj&cookieOverrides=e0r-vV17CTyHTY65FOuSfpuiSi532wQJ5efdFnxzSuKhG6hIIkTjCcazxC1bHSnyNDLZSN6LSQ92RWM8UC2QrTiqSq74qWiWmqrB6bGpmBAMa6U3OZ4OyZLfeXwRDHnM1tHUoT5wROmaDjmSIwQkTfyq0BGn6FcFYK-0mxtf-FM"
        }
    ]
}

Multiple hotel search

The multiple hotel search returns rates and availability for all hotels within a given destination.

By default, the response contains minimal detail; the responseOptions parameter can be used to request results with more detail

GET
/api/3.0/hotels?apiKey=<string>&userTrackId=<string>&destination=<EntityKey>&onlyIfComplete=<boolean>&searchTimeout=<number>&checkin=<date-only>&checkout=<date-only>&rooms=<HotelRoomGuests>&languageCode=<LanguageCode>&currencyCode=<CurrencyCode>&minPrice=<number>&maxPrice=<number>&starRating=<PipeDelimitedIntegerList>&hotelRating=<PipeDelimitedIntegerList>&hotelRatingExcludeSelfRated=<boolean>&propertyTypes=<PipeDelimitedIntegerList>&features=<PipeDelimitedIntegerList>&featuresFilterMode=<string>&themes=<PipeDelimitedIntegerList>&chains=<PipeDelimitedIntegerList>&guestRatings=<PipeDelimitedIntegerList>&deals=<PipeDelimitedIntegerList>&hotelName=<string>&sortField=<SortField>&sortDirection=<SortDirection>&pageIndex=<number>&pageSize=<number>&includeTaxesInTotal=<boolean>&includeLocalTaxesInTotal=<boolean>&preferredHotels=<PipeDelimitedIntegerList>&summaryOnly=<boolean>&responseOptions=<MultipleHotelSearchResponseOptions>
Query parameterDescription
apiKey
Required

API key assigned to the affiliate

userTrackId
Required

Client-specific unique identifier to identify this user.

There are no restrictions on this value, but it should be unique to the client and remain the same for the duration of the client’s session

destination
Required

Key of the destination to search

onlyIfComplete
Default: false

Specifies whether the server should respond with a 202 Accepted status code for incomplete queries.

Refer to Query completion section for more details

searchTimeout

Maximum time in milliseconds to wait for the search to complete.

If the search does not complete within the specified time, only the results gathered until that point will be returned

checkin

Check-in date

checkout

Check-out date

rooms

Number of rooms and guests

languageCode
Default: EN

Language in which the results should be returned

currencyCode
Pattern: [A-Z]{3}

Currency in which rates should be returned.

Defaults to the currency based on user's location

minPrice

Minimum price of the hotel

maxPrice

Maximum price of the hotel

starRating

List of star ratings to filter the results by

hotelRating

List of hotel ratings to filter the results by.

To limit the results to officially-rated ratings, set hotelRatingExcludeSelfRated query parameter to true

hotelRatingExcludeSelfRated
Default: false

Indicates whether self-rated hotels should be excluded from the results when filtering by hotelRating parameter

propertyTypes

List of property types to filter the results by

features

List of facilities/amenities to filter the results by

featuresFilterMode
enum: AND | OR
Default: AND

Logical operation which should be used in features filtering

themes

List of hotel themes to filter the results by

chains

List of hotel chains to filter the results by

guestRatings

List of guest ratings to filter the results by.

To include unrated hotels, set the value to -1

deals

List of deal types to filter the results by

hotelName

Name of the hotel to search for.

Limits results to hotels that contain the specified word or phrase in their name

sortField
Default: popularity

Field to use for sorting the results

sortDirection
Default: ascending

Direction to use for sorting the results

pageIndex
Default: 0

Index of the result page to return

pageSize
Default: 25

Number of results to return per page

includeTaxesInTotal

Specifies whether rates should include taxes (VAT/sales tax, not local taxes payable at the hotel).

If not specified, the standard market-specific logic based on client IP address will be applied

includeLocalTaxesInTotal

Specifies whether rates should include local taxes (i.e. taxes and fees payable at the hotel).

If not specified, the standard-market-specific logic based on client IP address will be applied.

All taxes will be included when this option is set to true

preferredHotels

List of hotel identifiers in the preferred sort order, limited to 50 hotels

This parameter is only used for sorting, it does not have any impact on the search results

summaryOnly

Indicates whether only the summary of the search should be returned, excluding the hotel results. It's designed for retrieving a summary of the details of an already completed search (e.g. for returning hotel counts for filters)

responseOptions

Optional details to include in the response

Responses
200 - application/json
{
    "isComplete": true,
    "searchTime": 294,
    "totalResults": 1,
    "totalAvailableResults": 1,
    "totalFilteredResults": 1,
    "currencyCode": "CHF",
    "languageCode": "EN",
    "lowestTotalRate": 1213.11,
    "highestTotalRate": 1213.11,
    "postFilterLowestTotalRate": 1213.11,
    "postFilterHighestTotalRate": 1213.11,
    "destination": {
        "id": 58075,
        "key": "kplace:58075",
        "href": "https://sandbox-en-us.kayakaffiliates.com/api/3.0/hotels?apiKey=key&check",
        "type": 2,
        "name": "Boston",
        "fullName": "Boston, Massachusetts, United States",
        "isSearchable": true,
        "latitude": 42.360903491390246,
        "longitude": -71.05889023544313,
        "hasBoundary": true,
        "radius": 0,
        "maximumRadius": 0
    },
    "providers": [
        {
            "code": "BOOKINGDOTCOMAFFILIATE",
            "name": "Booking.com",
            "logo": "https://content.r9cdn.net/rimg/provider-logos/hotels/h/BOOKINGDOTCOM.png?crop=false&width=88&height=31&fallback=default2.png&_v=1233faf051a0a6b9d9807846b1316f74",
            "isDirect": false,
            "isLanguageSupported": true
        }
    ],
    "results": [
        {
            "id": 2589314,
            "key": "khotel:2589314",
            "name": "citizenM Tower of London",
            "address": "40 Trinity Square",
            "hotelCountryCode": "GB",
            "latitude": 51.51018,
            "longitude": -0.07687,
            "starRating": 4,
            "isSelfRated": false,
            "images": [
                {
                    "large": "https://www.kayak.ch/h/run/api/image?url=/himg/c7/00/32/expedia_group-2589314-56e9e3-056459.jpg&maxheight=460",
                    "small": "https://www.kayak.ch/h/run/api/image?url=/himg/c7/00/32/expedia_group-2589314-56e9e3-056459.jpg&maxheight=230"
                }
            ],
            "lowestRate": 1213.11,
            "href": "https://sandbox-en-us.kayakaffiliates.com/api/3.0/hotel?apiKey=key&checkin=2025-01-01&checkout=2025-01-10&rooms=2&pageSize=2&responseOptions=toprates%2Cimages&userTrackId=trackId&pageSize=1&hotel=khotel%3A2589314",
            "distance": 0,
            "isWithinBoundary": false,
            "isGreatValue": false,
            "propertyType": 0,
            "numberOfProviders": 4,
            "numberOfRates": 7,
            "guestRating": 8.6,
            "numberOfReviews": 3118,
            "highestRate": 1429.74,
            "rates": [
                {
                    "roomName": "King-Zimmer",
                    "totalRate": 1215.27,
                    "isCheapestRate": false,
                    "hasFreeCancellation": false,
                    "canPayLater": false,
                    "isBundledRate": false,
                    "inclusions": [],
                    "availableRooms": 10,
                    "providerIndex": 1,
                    "isDeprioritisedForExcludedCharges": false,
                    "bookUri": "https://sandbox-en-us.kayakaffiliates.com/in?cluster=5&a=kan_316089_592117&p=&cc=ch&mc=CHF&lc=EN&url=%2Fbook%2Fhotel%3Fcode%3DeXGkEkc2O2.xpBwLNU05piWyuc3AtCaFCQNXgtXYvS8.18445.2589314.MTczNTcwNzYwMDAwMF4xNzM2NDg1MjAwMDAwXjFeMl4%3D%26h%3D33a771566190%26sub%3D0%26_pt_%3D1&utid=YXF3ZGFhd2Rhd2RhYWRhYWF3ZGRhZHc%3D&cookieOverrides=e0r-vV17CTyHTY65FOuSfpGlZ8VuTtLg-vwvRhe5-avqm932KtEVJZiOo4bVrFuActUOcDgSrhkWgKBlk9DiUyyEqfs91OQwgBw-4svw-cD8_AUUTgde4st6JYeA6J64Coj0sGlwD5WqQy_UFPcgjCumX55wHwwOVU87k42BgPs"
                }
            ]
        }
    ]
}
400 - application/json

Validation error in request

401 - application/json

Missing or incorrect API key

403 - application/json

Request is not allowed

404 - application/json

Resource was not found

Basic multiple hotel search

The basic multiple hotel search returns a list of hotels within a given destination, with minimal details.

This endpoint is designed for use cases where only basic information is required, such as when displaying results on a map

GET
/api/3.0/hotels/basic?apiKey=<string>&userTrackId=<string>&destination=<EntityKey>&onlyIfComplete=<boolean>&searchTimeout=<number>&checkin=<date-only>&checkout=<date-only>&rooms=<HotelRoomGuests>&languageCode=<LanguageCode>&currencyCode=<CurrencyCode>&minPrice=<number>&maxPrice=<number>&starRating=<PipeDelimitedIntegerList>&hotelRating=<PipeDelimitedIntegerList>&hotelRatingExcludeSelfRated=<boolean>&propertyTypes=<PipeDelimitedIntegerList>&features=<PipeDelimitedIntegerList>&themes=<PipeDelimitedIntegerList>&chains=<PipeDelimitedIntegerList>&guestRatings=<PipeDelimitedIntegerList>&deals=<PipeDelimitedIntegerList>&hotelName=<string>&sortField=<SortField>&sortDirection=<SortDirection>&pageIndex=<number>&pageSize=<number>&includeTaxesInTotal=<boolean>&includeLocalTaxesInTotal=<boolean>&preferredHotels=<PipeDelimitedIntegerList>
Query parameterDescription
apiKey
Required

API key assigned to the affiliate

userTrackId
Required

Client-specific unique identifier to identify this user.

There are no restrictions on this value, but it should be unique to the client and remain the same for the duration of the client’s session

destination
Required

Key of the destination to search

onlyIfComplete
Default: false

Specifies whether the server should respond with a 202 Accepted status code for incomplete queries.

Refer to Query completion section for more details

searchTimeout

Maximum time in milliseconds to wait for the search to complete.

If the search does not complete within the specified time, only the results gathered until that point will be returned

checkin

Check-in date

checkout

Check-out date

rooms

Number of rooms and guests

languageCode
Default: EN

Language in which the results should be returned

currencyCode

Currency in which rates should be returned.

Defaults to the currency based on user's location

minPrice

Minimum price of the hotel

maxPrice

Maximum price of the hotel

starRating

List of star ratings to filter the results by

hotelRating

List of hotel ratings to filter the results by.

To limit the results to officially-rated ratings, set hotelRatingExcludeSelfRated query parameter to true

hotelRatingExcludeSelfRated
Default: false

Indicates whether self-rated hotels should be excluded from the results when filtering by hotelRating parameter

propertyTypes

List of property types to filter the results by

features

List of facilities/amenities to filter the results by

themes

List of hotel themes to filter the results by

chains

List of hotel chains to filter the results by

guestRatings

List of guest ratings to filter the results by.

To include unrated hotels, set the value to -1

deals

List of deal types to filter the results by

hotelName

Name of the hotel to search for.

Limits results to hotels that contain the specified word or phrase in their name

sortField
Default: popularity

Field to use for sorting the results

sortDirection
Default: ascending

Direction to use for sorting the results

pageIndex
Default: 0

Index of the result page to return

pageSize
Default: 25

Number of results to return per page

includeTaxesInTotal

Specifies whether rates should include taxes (VAT/sales tax, not local taxes payable at the hotel).

If not specified, the standard market-specific logic based on client IP address will be applied

includeLocalTaxesInTotal

Specifies whether rates should include local taxes (i.e. taxes and fees payable at the hotel).

If not specified, the standard-market-specific logic based on client IP address will be applied.

All taxes will be included when this option is set to true

preferredHotels

List of hotel identifiers in the preferred sort order, limited to 50 hotels

This parameter is only used for sorting, it does not have any impact on the search results

Responses
200 - application/json
{
    "isComplete": true,
    "searchTime": 508,
    "totalResults": 1,
    "totalAvailableResults": 1,
    "totalFilteredResults": 1,
    "currencyCode": "CHF",
    "languageCode": "EN",
    "results": [
        {
            "id": 2589314,
            "key": "khotel:2589314",
            "name": "citizenM Tower of London",
            "latitude": 51.51018,
            "longitude": -0.07687,
            "starRating": 4,
            "isSelfRated": false,
            "lowestRate": 1213.11,
            "highestRate": 4999.99,
            "href": "https://sandbox-en-us.kayakaffiliates.com/api/3.0/hotel?apiKey=3C3AF44A-5951-4F5E-9896-94DE5550CC26&checkin=2025-01-01&checkout=2025-01-10&rooms=2&sessionID=123&hotel=khotel%3A2589314",
            "guestRating": 8.6,
            "numberOfReviews": 3118,
            "image": {
                "large": "https://sandbox-en-us.kayakaffiliates.com/himg/c7/00/32/expedia_group-2589314-56e9e3-056459.jpg"
            }
        }
    ]
}
400 - application/json

Validation error in request

401 - application/json

Missing or incorrect API key

403 - application/json

Request is not allowed

404 - application/json

Resource was not found

Types:

EntityKey

Entity keys are used to reference an entity for searching and are typically made up of a type identifier and an entity identifier separated by a colon. In most cases, entity keys are defined by the system. There are two special cases where this does not apply: custom locations and polygons.

To search a custom latitude/longitude, use the format klatlon:[latitude],[longitude].

To search a polygon, use the format kpolygon:[latitude],[longitude];[latitude],[longitude]; [latitude],[longitude];[latitude],[longitude][:maximumHotels]. There are certain limitations when searching by polygon:

  • The maximum length of the entity key is 20,000 characters;
  • There must be at least 3 points;
  • The first three points must be unique;
  • The maximum length of any side of the envelope (rectangle) that contains the polygon is 200km;
  • By default, a maximum of 200 hotels will be returned (if there are more than 200 hotels within the polygon, the most popular 200 will be returned). The optional maximumHotels suffix (e.g. :389) can be used to specify that up to 999 hotels should be returned.
Example:
klatlon:34.5445,-18.3434
kpolygon:34.1,-18.3;34.1,-18.4;34.2,-18.4;34.2,-18.3;34.1,-18.3
kplace:58075
khotel:1000

HotelEntityKey

Key used to reference a hotel entity for searching that is made up of a type identifier and an entity identifier separated by a colon (khotel:[hotelId])

Example:
khotel:1000

HotelRoomGuests

Formatted string used to specify the number of rooms and guests.

Format: {adult_number}:{children_ages...}|{adult_number}:{children_ages...}|...

Example:
"3" - 1 room, 3 adults and no children
"2:4" - 1 room, 2 adults and one child aged 4
"1:0,13,16" - 1 room, 1 adult and 3 children (aged 0, 13 and 16)
"1:4,6|3" - 2 rooms, one with 1 adult and 2 children ages 4 and 6 and the other with 3 adults and no children
"1|2|3" - 3 rooms, one with 1 adult, second with 2 adults and third with 3 adults

HotelPolicy

Hotel policy details

Properties
code
Required

Policy code

name
Required

Policy name

description
Required

Policy description

Example:
{
    "code": "checkin",
    "name": "Check-in",
    "description": "From 2:00 pm"
}
{
    "code": "checkout",
    "name": "Check-out",
    "description": "Prior to 12:00 pm"
}

HotelFeatures

Hotel feature identifiers

Example:
[
    230,
    7,
    26,
    11,
    77
]

HotelFeatureSummary

Hotel feature summary

Properties
name
Required

Feature name

description
Required

Feature description

Example:
{
    "name": "Policy",
    "description": "Pets allowed on request. Charges may apply."
}

HotelFeatureTag

Hotel features by tag

Properties
tag
Required

Feature tag name

features
Required

List of feature identifiers that are associated with the tag

Example:
{
    "tag": "parking_transport",
    "features": [
        230,
        77,
        895
    ]
}

HotelImage

Hotel image details

Properties
large
Required

URL of the large hotel image

small

URL of the small hotel image

Example:
{
    "large": "https://www.kayak.ch/h/run/api/image?url=/himg/c7/00/32/expedia_group-2589314-56e9e3-056459.jpg&maxheight=460"
}

SearchableHotelPlace

Hotel place details

Properties
id
Required

Place unique identifier

key
Required

Place key

href
Required

Absolute URL to multiple hotel search for this place

name
Required

Place name

fullName
Required

Place full name

latitude
Required

Place latitude

longitude
Required

Place longitude

placeCountryCode
Required
isSearchable
Required

Indicates whether the place is searchable

Example:
{
    "id": 2674868,
    "key": "kplace:2674868",
    "href": "https://sandbox-en-us.kayakaffiliates.com/api/3.0/hotels?checkin=2025-01-01&checkout=2025-01-10&rooms=2&onlyIfComplete=false&userTrackId=trackId&apiKey=key&languageCode=EN&currencyCode=KRW&searchtimeout=5000&responseOptions=place&destination=kplace%3A2674868",
    "name": "Les Halles",
    "fullName": "Les Halle",
    "latitude": 48.8619338920718,
    "longitude": 2.34699726104736,
    "placeCountryCode": "FR",
    "isSearchable": true
}

HotelReviewAspect

Hotel review aspect details

Properties
text
Required

Text about a particular aspect of the review

polarity
Required

Specifies whether the aspect is positive (1), neutral (0), or negative (-1)

Example:
{
    "text": "friendly staff",
    "polarity": 1
}

HotelReviewGuestRating

Hotel guest rating details

Properties
//
Required
Example:
{
    "LOCATION": 9.6,
    "OVERALL": 8.5,
    "COMFORT": 8.7
}

BasicHotelRating

Basic hotel rating details

Properties
key
Required

Rating

value
Required

Number of ratings

Example:
{
    "key": 5,
    "value": 50
}

DetailedHotelRating

Detailed hotel rating details

Properties
key
Required

Rating

value
Required
Example:
{
    "key": 5,
    "value": {
        "officiallyRated": 0,
        "selfRated": 0
    }
}

HotelPriceRange

Hotel price range details

Properties
key
Required

Price range key

value
Required

Number of hotels in this price range

Example:
{
    "key": 100,
    "value": 0
}

HotelReviews

Hotel review details

Properties
numberOfReviews
Required

Number of reviews

sentiment
Required

Review sentiment

quotes
Required

Review quotes

aspects
Required

Review aspects

reviewerTypes
Required

Aspects and number of reviews by reviewer type

guestRatings
Required

Guest ratings.

A rating of -1 is used to indicate hotels without a rating

Example:
{
    "numberOfReviews": 1,
    "sentiment": "Fabulous, 8.5",
    "quotes": [],
    "aspects": [],
    "reviewerTypes": [],
    "guestRatings": {
        "LOCATION": 9.6,
        "OVERALL": 8.5,
        "COMFORT": 8.7
    }
}

HotelPlace

Hotel place details

Properties
key
Required

Key of place

name
Required

Name of the place

Example:
{
    "key": "khotel:2589314",
    "name": "citizenM Tower of London"
}

HotelRate

Hotel rate details

Properties
roomName
Required

Name of the room

totalRate
Required

Total rate for the room

isCheapestRate
Required

Indicates whether this is the cheapest rate available

hasFreeCancellation
Required

Indicates whether the room has free cancellation

canPayLater
Required

Indicates whether the payment can be made later

isBundledRate
Required

Indicates whether the rate is bundled with other services

inclusions
Required

A collection of complimentary features and services provided as part of the room booking fee

availableRooms
Required

Number of available rooms

providerIndex
Required

Index of the provider

isDeprioritisedForExcludedCharges
Required

Indicates whether the rate is deprioritized for excluded charges

bookUri
Required

Link to the provider's booking page

rateBreakdown

Breakdown of the room rates

Optionally included by passing rateBreakdown value to the responseOptions parameter

Example:
{
    "roomName": "Club-Zimmer, 1 Queen-Bett",
    "totalRate": 229204.52,
    "isCheapestRate": true,
    "hasFreeCancellation": true,
    "canPayLater": true,
    "isBundledRate": false,
    "inclusions": [],
    "availableRooms": 9,
    "providerIndex": 0,
    "isDeprioritisedForExcludedCharges": false,
    "bookUri": "https://sandbox-en-us.kayakaffiliates.com/in?cluster=5&a=hctest&p=&cc=ch&mc=KRW&lc=EN&url=%2Fbook%2Fhotel%3Fcode%3DePGkPeZiuU.WfxetRcZFwD1Q7IXP-_L1Py0tDCcY098_zlHXEqg5Jg.8011.34725.MTczNTAxNjQwMDAwMF4xNzM1MTg5MjAwMDAwXjFeMl4%3D%26h%3D15934f2d29fb%26sub%3D0%26_pt_%3D1&utid=Y2JlZWVkZTctOGQwMy00YjNmLTk0YjItNmEyOTgyNmIwZGFj&cookieOverrides=e0r-vV17CTyHTY65FOuSfpuiSi532wQJ5efdFnxzSuKhG6hIIkTjCcazxC1bHSnyNDLZSN6LSQ92RWM8UC2QrTiqSq74qWiWmqrB6bGpmBAMa6U3OZ4OyZLfeXwRDHnM1tHUoT5wROmaDjmSIwQkTfyq0BGn6FcFYK-0mxtf-FM"
}

HotelReviewerType

Hotel reviewer type details

Properties
type
Required

Reviewer type

numberOfReviews
Required

Count of reviews supplied by this reviewer type

aspects
Required

Aspects popular with this review type

name
Required

Localized reviewer type name

Example:
{
    "type": 3,
    "numberOfReviews": 1,
    "aspects": [],
    "name": "Business travelers"
}

HotelRateBreakdown

Hotel rate breakdown details

Properties
baseRate
Required

Base rate of the room

taxes
Required

Taxes applicable to the room rate

localTaxes

Local taxes applicable to the room rate

Example:
{
    "baseRate": 417540,
    "taxes": 68684,
    "localTaxes": 85796
}

HotelItemReference

Hotel item reference details

Properties
id
Required

Id of the item

name
Required

Name of the item

hotelCount
Required

Number of hotels associated with this item

Example:
{
    "id": 524,
    "name": "25hours Hotels",
    "hotelCount": 0
}

HotelDestination

Hotel destination details

Properties
id
Required

Unique identifier of the destination

key
Required

Key of the destination

href
Required

Absolute URL to the multiple hotel search for this destination

type
Required

Type of the destination

name
Required

Name of the destination

fullName
Required

Full name of the destination

isSearchable
Required

Indicates whether the destination is searchable

latitude
Required

Latitude of the destination

longitude
Required

Longitude of the destination

hasBoundary
Required

Indicates whether the destination has a boundary

radius
Required

Radius of the destination

maximumRadius
Required

Maximum radius of the destination

Example:
{
    "id": 58075,
    "key": "kplace:58075",
    "href": "https://sandbox-en-us.kayakaffiliates.com/api/3.0/hotels?apiKey=key&checkin=2024-12-24&checkout=2024-12-26&rooms=2&userTrackId=trackId&currencyCode=KRW&responseOptions=filter%2Ctoprates%2Cdestination&includeLocalTaxesInTotal=true&destination=kplace%3A58075",
    "type": 2,
    "name": "Boston",
    "fullName": "Boston, Massachusetts, United States",
    "isSearchable": false,
    "latitude": 42.360903491390246,
    "longitude": -71.05889023544313,
    "hasBoundary": true,
    "radius": 0,
    "maximumRadius": 0
}

HotelProvider

Hotel provider details

Properties
code
Required

Provider code

name
Required

Provider name

logo
Required

URL to the provider's logo

isDirect
Required

Indicates whether the provider is a direct provider. Direct providers are typically hotel chains

isLanguageSupported
Required

Indicates whether the provider supports the requested language

cashback

Cashback details for provider. Populated when the affiliate supports cashback.

Example:
{
    "code": "BOOKINGDOTCOMAFFILIATE",
    "name": "Booking.com",
    "logo": "https://content.r9cdn.net/rimg/provider-logos/hotels/h/BOOKINGDOTCOM.png?crop=false&width=88&height=31&fallback=default2.png&_v=1233faf051a0a6b9d9807846b1316f74",
    "isDirect": false,
    "isLanguageSupported": true,
    "cashback": {
        "type": "PERCENTAGE",
        "value": 5,
        "cap": 25,
        "currency": "GBP"
    }
}

ProviderCashback

Cashback configuration details for a booking option.

Properties
type
Required
enum: PERCENTAGE | FLAT

Type of cashback (e.g., percentage, fixed amount).

value
Required

Cashback value (percentage or fixed amount).

cap

Maximum cashback cap, if applicable.

currency
Required

Currency code for the cashback amount and cap.

SortFieldenum

Field to use for sorting the results

consumerRating | distance | name | minRate | popularity | rating

SortDirectionenum

Direction to use for sorting the results

ascending | descending

PipeDelimitedIntegerList

Pipe-delimited list of integers

Example:
1|2|3|4

CurrencyCode

ISO 4217 code identifier for currency. Currency codes are composed of a country's two-character Internet country code plus a third character denoting the currency unit

Pattern: [A-Z]{3}

Example:
USD

LanguageCode

ISO 639 code identifier for language. Note: Chinese requires a regional variant (e.g., zh_TW, zh_HK, zh_SG).

Pattern: ^[a-z]{2}_[A-Z]{2}$

Example:
zh_TW
de

CountryCode

ISO 3166 code identifier for country

Pattern: [A-Z]{2}

Example:
KR

InclusionType

Inclusion type. The value is used to determine the type of inclusion.

0 - Breakfast included 1 - Lunch included 2 - Dinner included 3 - Meals included 4 - All inclusive

HotelResult

Hotel search result details

Properties
id
Required

Unique identifier for the hotel

key
Required

Hotel key

name
Required

Hotel name

address
Required

Hotel address

hotelCountryCode
Required

Country code for the hotel's country

latitude
Required

Latitude of the hotel's location

longitude
Required

Longitude of the hotel's location

starRating
Required

Hotel star rating

isSelfRated
Required

Indicates whether the hotel is self-rated

lowestRate
Required

Lowest rate available for the hotel

href
Required

Absolute URL to this hotel's search

distance
Required

Distance from the search location to the hotel.

kpolygon - distance is calculated from hotel to polygon center; klatlon - distance is calculated from hotel to lat/lon; kplace - distance is calculated from hotel to given place; khotels, khotel - distance is not set;

isWithinBoundary
Required

Indicates whether the hotel is within the search boundary. Always false.

isGreatValue
Required

Indicates whether the hotel is considered a great value. It's true if any of the booking options have custom rate (e.g, mobile rate or desktop rate only), is under priced or opaque.

propertyType
Required

Property type

numberOfProviders
Required

Number of providers offering rates for the hotel

numberOfRates
Required

Number of rates available for the hotel

guestRating
Required

Hotel guest rating

numberOfReviews
Required

Number of reviews for the hotel

highestRate
Required

Highest rate available for the hotel

licenseNumber

License number for the property

rates

Rates for the hotel. Booking options are returned sorted based on our recommendations to provide the most relevant options first. Optionally included by passing topRates or multipleHotelsAllRates value to the responseOptions parameter

wellKnownPlace

Well-known place information that the hotel belongs to.

Optionally included by passing hotelWellKnownPlace value to the responseOptions parameter

images

Hotel images.

Optionally included by passing images value to the responseOptions parameter

place

Hotel place information.

Optionally included by passing hotelPlace value to the responseOptions parameter

reviewQuotes

List of quotes from reviews

Optionally included by passing reviews value to the responseOptions parameter

guestRatingSentiment

Guest rating sentiment.

Optionally included by passing reviews value to the responseOptions parameter

features

Hotel feature identifiers.

Optionally included by passing features value to the responseOptions parameter

Example:
{
    "id": 2589314,
    "key": "khotel:2589314",
    "name": "citizenM Tower of London",
    "address": "40 Trinity Square",
    "hotelCountryCode": "GB",
    "latitude": 51.51018,
    "longitude": -0.07687,
    "starRating": 4,
    "isSelfRated": false,
    "images": [
        {
            "large": "https://www.kayak.ch/h/run/api/image?url=/himg/c7/00/32/expedia_group-2589314-56e9e3-056459.jpg&maxheight=460",
            "small": "https://www.kayak.ch/h/run/api/image?url=/himg/c7/00/32/expedia_group-2589314-56e9e3-056459.jpg&maxheight=230"
        }
    ],
    "lowestRate": 1213.11,
    "href": "https://sandbox-en-us.kayakaffiliates.com/api/3.0/hotel?apiKey=key&checkin=2025-01-01&checkout=2025-01-10&rooms=2&pageSize=2&responseOptions=toprates%2Cimages&userTrackId=trackId&pageSize=1&hotel=khotel%3A2589314",
    "distance": 0,
    "isWithinBoundary": false,
    "isGreatValue": false,
    "propertyType": 0,
    "numberOfProviders": 4,
    "numberOfRates": 7,
    "guestRating": 8.6,
    "numberOfReviews": 3118,
    "highestRate": 1429.74,
    "rates": [
        {
            "roomName": "King-Zimmer",
            "totalRate": 1215.27,
            "isCheapestRate": false,
            "hasFreeCancellation": false,
            "canPayLater": false,
            "isBundledRate": false,
            "inclusions": [],
            "availableRooms": 10,
            "providerIndex": 1,
            "isDeprioritisedForExcludedCharges": false,
            "bookUri": "https://sandbox-en-us.kayakaffiliates.com/in?cluster=5&a=kan_316089_592117&p=&cc=ch&mc=CHF&lc=EN&url=%2Fbook%2Fhotel%3Fcode%3DeXGkEkc2O2.xpBwLNU05piWyuc3AtCaFCQNXgtXYvS8.18445.2589314.MTczNTcwNzYwMDAwMF4xNzM2NDg1MjAwMDAwXjFeMl4%3D%26h%3D33a771566190%26sub%3D0%26_pt_%3D1&utid=YXF3ZGFhd2Rhd2RhYWRhYWF3ZGRhZHc%3D&cookieOverrides=e0r-vV17CTyHTY65FOuSfpGlZ8VuTtLg-vwvRhe5-avqm932KtEVJZiOo4bVrFuActUOcDgSrhkWgKBlk9DiUyyEqfs91OQwgBw-4svw-cD8_AUUTgde4st6JYeA6J64Coj0sGlwD5WqQy_UFPcgjCumX55wHwwOVU87k42BgPs"
        }
    ]
}

BasicHotelResult

Properties
id
Required

Unique identifier for the hotel

key
Required

Unique key for the hotel

name
Required

Name of the hotel

latitude
Required

Latitude of the hotel's location

longitude
Required

Longitude of the hotel's location

starRating
Required

Star rating of the hotel

isSelfRated
Required

Indicates whether the hotel is self-rated

lowestRate
Required

Lowest rate available for the hotel

href
Required

Absolute URL to this hotel's search

guestRating
Required

Guest rating of the hotel

numberOfReviews
Required

Number of reviews for the hotel

highestRate
Required

Highest rate available for the hotel

image
Required

Hotel image

licenseNumber

License number for the property

Example:
{
    "id": 19097,
    "key": "khotel:19097",
    "name": "Hilton Boston Logan Airport",
    "latitude": 42.366585,
    "longitude": -71.022865,
    "starRating": 4,
    "isSelfRated": false,
    "lowestRate": 1208.34,
    "highestRate": null,
    "href": "https://sandbox-en-us.kayakaffiliates.com/api/3.0/hotel?apiKey=key&checkin=2025-01-01&checkout=2025-01-10&rooms=2&userTrackId=123&hotel=khotel%3A19097",
    "guestRating": 7.8,
    "numberOfReviews": 1638,
    "image": {
        "large": "https://sandbox-en-us.kayakaffiliates.com/himg/ea/0c/3a/ice-19097-99661196-299894.jpg"
    }
}

SingleHotelSearchResponseOptions

Comma-separated list of optional elements that should be included within the response object.

Optional elements will only be returned if they have been requested via this parameter. Each optional element detailed below will list the responseOptions name required to return it as part of the response:

  • features (includes features [HotelFeatures] field in response)
  • featureSummary (includes featureSummary [HotelFeatureSummary[]] field in response)
  • featureTags (includes featureTags [HotelFeatureTag[]] field in response)
  • description (includes description [string] field in response)
  • images (includes images [HotelImage[]] field in response)
  • place (includes place [HotelPlace] field in response)
  • reviews (includes reviews [HotelReviews] field in response)
  • hotelWellKnownPlace (includes wellKnownPlace [HotelWellKnownPlace] field in response)
Example:
features,images,place,reviews

SingleHotelSearchResponse

Properties
id
Required

Unique hotel identifier

key
Required

Hotel key

name
Required

Hotel name

translatedName

Translated hotel name.

Included when the languageCode parameter is set to a language other than the default

address
Required

Hotel address

hotelCountryCode
Required

Country code for the hotel's country

latitude
Required

Latitude of the hotel's location

longitude
Required

Longitude of the hotel's location

starRating
Required

Hotel star rating

isSelfRated
Required

Indicates whether the hotel gave itself a star rating

lowestRate
Required

Lowest rate of the cheapest provider. Can be null

When searching without dates, this represents the lowest nightly rate recently observed for this hotel

isComplete
Required

Indicates whether the search is complete.

If false, subsequent requests need to be made until completion.

Refer to the Query completion section for more details

searchTime
Required

Time taken to complete the search in milliseconds

totalResults
Required

Total number of results

currencyCode
Required

Currency of the returned rates

languageCode
Required

Language of the returned result

countryCode
Required

ISO country code derived from request data

policies
Required

Hotel policies

providers
Required

List of providers offering rates for the hotel.

results

List of rates for the hotel. Booking options are returned sorted based on our recommendations to provide the most relevant options first. Not included for dataless searches.

licenseNumber

License number for the property

features

Hotel feature identifiers.

Optionally included by passing features value to the responseOptions parameter

featureSummary

Hotel features and their descriptions.

Optionally included by passing featureSummary value to the responseOptions parameter

featureTags

Hotel feature tags.

Optionally included by passing featureTags value to the responseOptions parameter

description

Hotel description.

Optionally included by passing description value to the responseOptions parameter

images

Hotel images.

Optionally included by passing images value to the responseOptions parameter

place

Hotel place information.

Optionally included by passing place value to the responseOptions parameter

reviews

Hotel review information.

Optionally included by passing reviews value to the responseOptions parameter

wellKnownPlace

Well-known place that the hotel belongs to.

Optionally included by passing hotelWellKnownPlace value to the responseOptions parameter

Example:
{
    "id": 53213,
    "key": "khotel:53213",
    "name": "Novotel Paris les Halles",
    "address": "8 Place Marguerite de Navarre",
    "hotelCountryCode": "FR",
    "latitude": 48.86061,
    "longitude": 2.346624,
    "starRating": 4,
    "isSelfRated": false,
    "lowestRate": 123,
    "isComplete": false,
    "searchTime": 141,
    "totalResults": 0,
    "currencyCode": "USD",
    "languageCode": "EN",
    "countryCode": "US",
    "policies": [
        {
            "code": "checkin",
            "name": "Check-in",
            "description": "From 2:00 pm"
        },
        {
            "code": "checkout",
            "name": "Check-out",
            "description": "Prior to 12:00 pm"
        }
    ],
    "providers": [
        {
            "code": "BOOKINGDOTCOMAFFILIATE",
            "name": "Booking.com",
            "logo": "https://content.r9cdn.net/rimg/provider-logos/hotels/h/BOOKINGDOTCOM.png?crop=false&width=88&height=31&fallback=default2.png&_v=1233faf051a0a6b9d9807846b1316f74",
            "isDirect": false,
            "isLanguageSupported": true
        }
    ],
    "results": [
        {
            "roomName": "Superior Room, 1 Double Bed with Sofa bed",
            "totalRate": 496.57,
            "isCheapestRate": true,
            "hasFreeCancellation": true,
            "canPayLater": false,
            "isBundledRate": false,
            "inclusions": [
                0
            ],
            "availableRooms": 5,
            "providerIndex": 0,
            "isDeprioritisedForExcludedCharges": false,
            "bookUri": "https://sandbox-en-us.kayakaffiliates.com/in?cluster=5&a=test&p=&cc=us&mc=USD&lc=EN&url=%2Fbook%2Fhotel%3Fcode%3DePGkPeZiuU.WfxetRcZFwD1Q7IXP-_L1Py0tDCcY098_zlHXEqg5Jg.8011.34725.MTczNTAxNjQwMDAwMF4xNzM1MTg5MjAwMDAwXjFeMl4%3D%26h%3D15934f2d29fb%26sub%3D0%26_pt_%3D1&utid=Y2JlZWVkZTctOGQwMy00YjNmLTk0YjItNmEyOTgyNmIwZGFj&cookieOverrides=e0r-vV17CTyHTY65FOuSfpuiSi532wQJ5efdFnxzSuKhG6hIIkTjCcazxC1bHSnyNDLZSN6LSQ92RWM8UC2QrTiqSq74qWiWmqrB6bGpmBAMa6U3OZ4OyZLfeXwRDHnM1tHUoT5wROmaDjmSIwQkTfyq0BGn6FcFYK-0mxtf-FM"
        }
    ]
}

MultipleHotelSearchResponseOptions

Comma-separated list of optional elements that should be included within the response object.

Optional elements will only be returned if they have been requested via this parameter. Each optional element detailed below will list the responseOptions name required to return it as part of the response:

  • features (includes features [HotelFeatures] field in response)
  • filter - includes the following filter buckets with total hotel counts in response for these buckets:
    • chains [HotelItemReference[]]
    • hotelThemes [HotelItemReference[]]
    • propertyTypes [HotelItemReference[]]
    • facilities [HotelItemReference[]]
    • deals [HotelItemReference[]]
    • guestRatings [BasicHotelRating[]]
    • starRatings [BasicHotelRating[]]
    • hotelRatings [DetailedHotelRating[]]
    • priceRanges [HotelPriceRange[]]
  • destination (includes destination [HotelDestination] field in response)
  • rateBreakdown (includes results.rates.rateBreakdown [HotelRateBreakdown] field in response)
  • hotelWellKnownPlace (includes results.wellKnownPlace [HotelWellKnownPlace] field in response)
  • images (includes results.images [HotelImage[]] field in response)
  • hotelPlace (includes results.place [HotelPlace] field in response)
  • reviews (includes results.reviewQuotes [string[]] and results.guestRatingSentiment [string] fields in response)
  • topRates (includes providers [HotelProvider[]] and results.rates [HotelRate[]] (limited to 4 top values) fields in response)
  • multipleHotelsAllRates (includes providers [HotelProvider[]] and results.rates [HotelRate[]] fields in response)
Example:
filter,destination

MultipleHotelSearchResponse

Properties
isComplete
Required

Indicates whether the search is complete.

If false, subsequent requests can be made until completion

searchTime
Required

Time taken to complete the search in milliseconds

totalResults
Required

Total number of results

totalAvailableResults
Required

Total number of available results

totalFilteredResults
Required

Total number of filtered results

currencyCode
Required

Currency of the returned rates.

Defaults to the currency based on user's location

languageCode
Required

Language of the returned results

lowestTotalRate

Lowest rate of the cheapest hotel

highestTotalRate

Highest rate of the most expensive hotel

postFilterLowestTotalRate

Lowest rate of the cheapest hotel after filters are applied

postFilterHighestTotalRate

Highest rate of the most expensive hotel after filters are applied

results

List containing a single page of results.

Hotels are returned sorted based on our recommendations to provide the most relevant results first.

Not returned when the summaryOnly parameter is set to true

destination
Required

Details of the destination that was searched. Returns null if the destination was not found.

Optionally included by passing destination value to the responseOptions parameter

chains

Chains of the found hotels and the number of hotels belonging to each chain after filters are applied

Optionally included by passing filter value to the responseOptions parameter

hotelThemes

Themes of the found hotels and the number of hotels belonging to each theme after filters are applied

Optionally included by passing filter value to the responseOptions parameter

propertyTypes

Property types of the found hotels and the number of hotels belonging to each property type after filters are applied

Optionally included by passing filter value to the responseOptions parameter

facilities

Facilities of the found hotels and the number of hotels belonging to each facility after filters are applied

Optionally included by passing filter value to the responseOptions parameter

deals

Deals of the found hotels and the number of hotels belonging to each deal after filters are applied

Optionally included by passing filter value to the responseOptions parameter

guestRatings

Guest ratings of the found hotels and the number of hotels belonging to each guest rating after filters are applied

Optionally included by passing filter value to the responseOptions parameter

starRatings

Star ratings of the found hotels and the number of hotels belonging to each star rating after filters are applied Optionally included by passing filter value to the responseOptions parameter

hotelRatings

Detailed hotel ratings of the found hotels and the number of hotels belonging to each rating after filters are applied Optionally included by passing filter value to the responseOptions parameter

priceRanges

A series of price ranges and the number of hotels for which the lowest rate is within that range after filters are applied. The keys represent the lower bound of the range in the same currency as the results; the upper bound of the range is represented by the key of the next item in the array. The number and size of the price ranges varies from time to time

Optionally included by passing filter value to the responseOptions parameter

providers

List of providers that offer rates for the hotels in the search results.

Optionally included by passing topRates or multipleHotelsAllRates value to the responseOptions parameter

Example:
{
    "isComplete": true,
    "searchTime": 294,
    "totalResults": 1,
    "totalAvailableResults": 1,
    "totalFilteredResults": 1,
    "currencyCode": "CHF",
    "languageCode": "EN",
    "lowestTotalRate": 1213.11,
    "highestTotalRate": 1213.11,
    "postFilterLowestTotalRate": 1213.11,
    "postFilterHighestTotalRate": 1213.11,
    "destination": {
        "id": 58075,
        "key": "kplace:58075",
        "href": "https://sandbox-en-us.kayakaffiliates.com/api/3.0/hotels?apiKey=key&check",
        "type": 2,
        "name": "Boston",
        "fullName": "Boston, Massachusetts, United States",
        "isSearchable": true,
        "latitude": 42.360903491390246,
        "longitude": -71.05889023544313,
        "hasBoundary": true,
        "radius": 0,
        "maximumRadius": 0
    },
    "providers": [
        {
            "code": "BOOKINGDOTCOMAFFILIATE",
            "name": "Booking.com",
            "logo": "https://content.r9cdn.net/rimg/provider-logos/hotels/h/BOOKINGDOTCOM.png?crop=false&width=88&height=31&fallback=default2.png&_v=1233faf051a0a6b9d9807846b1316f74",
            "isDirect": false,
            "isLanguageSupported": true
        }
    ],
    "results": [
        {
            "id": 2589314,
            "key": "khotel:2589314",
            "name": "citizenM Tower of London",
            "address": "40 Trinity Square",
            "hotelCountryCode": "GB",
            "latitude": 51.51018,
            "longitude": -0.07687,
            "starRating": 4,
            "isSelfRated": false,
            "images": [
                {
                    "large": "https://www.kayak.ch/h/run/api/image?url=/himg/c7/00/32/expedia_group-2589314-56e9e3-056459.jpg&maxheight=460",
                    "small": "https://www.kayak.ch/h/run/api/image?url=/himg/c7/00/32/expedia_group-2589314-56e9e3-056459.jpg&maxheight=230"
                }
            ],
            "lowestRate": 1213.11,
            "href": "https://sandbox-en-us.kayakaffiliates.com/api/3.0/hotel?apiKey=key&checkin=2025-01-01&checkout=2025-01-10&rooms=2&pageSize=2&responseOptions=toprates%2Cimages&userTrackId=trackId&pageSize=1&hotel=khotel%3A2589314",
            "distance": 0,
            "isWithinBoundary": false,
            "isGreatValue": false,
            "propertyType": 0,
            "numberOfProviders": 4,
            "numberOfRates": 7,
            "guestRating": 8.6,
            "numberOfReviews": 3118,
            "highestRate": 1429.74,
            "rates": [
                {
                    "roomName": "King-Zimmer",
                    "totalRate": 1215.27,
                    "isCheapestRate": false,
                    "hasFreeCancellation": false,
                    "canPayLater": false,
                    "isBundledRate": false,
                    "inclusions": [],
                    "availableRooms": 10,
                    "providerIndex": 1,
                    "isDeprioritisedForExcludedCharges": false,
                    "bookUri": "https://sandbox-en-us.kayakaffiliates.com/in?cluster=5&a=kan_316089_592117&p=&cc=ch&mc=CHF&lc=EN&url=%2Fbook%2Fhotel%3Fcode%3DeXGkEkc2O2.xpBwLNU05piWyuc3AtCaFCQNXgtXYvS8.18445.2589314.MTczNTcwNzYwMDAwMF4xNzM2NDg1MjAwMDAwXjFeMl4%3D%26h%3D33a771566190%26sub%3D0%26_pt_%3D1&utid=YXF3ZGFhd2Rhd2RhYWRhYWF3ZGRhZHc%3D&cookieOverrides=e0r-vV17CTyHTY65FOuSfpGlZ8VuTtLg-vwvRhe5-avqm932KtEVJZiOo4bVrFuActUOcDgSrhkWgKBlk9DiUyyEqfs91OQwgBw-4svw-cD8_AUUTgde4st6JYeA6J64Coj0sGlwD5WqQy_UFPcgjCumX55wHwwOVU87k42BgPs"
                }
            ]
        }
    ]
}

BasicMultipleHotelSearchResponse

Properties
isComplete
Required

Indicates whether the search is complete.

If false, subsequent requests can be made until completion

searchTime
Required

Time taken to complete the search in milliseconds

totalResults
Required

Total number of results

totalAvailableResults
Required

Total number of available results

totalFilteredResults
Required

Total number of filtered results

currencyCode
Required

Currency of the returned rates.

Defaults to the currency based on user's location

languageCode
Required

Language of the returned results

results

List containing a single page of results

Example:
{
    "isComplete": true,
    "searchTime": 508,
    "totalResults": 1,
    "totalAvailableResults": 1,
    "totalFilteredResults": 1,
    "currencyCode": "CHF",
    "languageCode": "EN",
    "results": [
        {
            "id": 2589314,
            "key": "khotel:2589314",
            "name": "citizenM Tower of London",
            "latitude": 51.51018,
            "longitude": -0.07687,
            "starRating": 4,
            "isSelfRated": false,
            "lowestRate": 1213.11,
            "highestRate": 4999.99,
            "href": "https://sandbox-en-us.kayakaffiliates.com/api/3.0/hotel?apiKey=3C3AF44A-5951-4F5E-9896-94DE5550CC26&checkin=2025-01-01&checkout=2025-01-10&rooms=2&sessionID=123&hotel=khotel%3A2589314",
            "guestRating": 8.6,
            "numberOfReviews": 3118,
            "image": {
                "large": "https://sandbox-en-us.kayakaffiliates.com/himg/c7/00/32/expedia_group-2589314-56e9e3-056459.jpg"
            }
        }
    ]
}

The KAYAK Affiliate Network lets you link from any brand you likeEnhance and monetize your travel content with flights, hotels, cars and more!

KAYAK logo
HotelsCombined logo
Momondo logo
Cheapflights logo
Cookie preferences