Skip to main content

Use Cases

The Hotel Lead Availability API returns Lead rates over a date range for one or more hotels. The output is a list of hotels and for each hotel, if it is available, failure reason(s) and pricing information including:

  • Average: The total price of all products divided by the number of products. The amount does not reflect the price of a specific product.
  • Maximum: The maximum total priced product.
  • Minimum: The minimum total priced product.
  • Maximum Average: The maximum daily average across all products. The amount does not reflect the price of a specific product.
  • Minimum Average: The minimum daily average across all products. The amount does not reflect the price of a specific product.
  • Maximum First Night: The maximum first-night price across all products.
  • Minimum First Night: The minimum first-night price across all products.
  • Maximum Highest Price with Inclusive Tax: The maximum highest room price inclusive of taxes across all products.
  • Minimum Highest Price with Inclusive Tax: The minimum highest room price inclusive of taxes across all products.

 

Usage Notes

  • Hotel Lead Availability uses a cache with a max life of 5 minutes. If you are testing with the exact same request, then it will pull the data from cache if it exists.
  • If there are no products available then the response will return pricing for the unavailable products. However, if there is at least 1 available product the response will only include the available product(s).
  • If the request includes a roomCode and either a rateCode or rateFilter then only combinations of those products are returned in the response. If there is no availability, then no other rooms or rates will be evaluated. The only way to search for “alternate” availability is if the request only includeds a roomCode or rateCode/rateFilter but not both.

 

REST Method/Endpoint

MethodEndpoint
GEThttps://[environment]/v1/api/hotel/leadAvailability

 

Basic Search

Basic parameters are used in all searches and are the foundation with which additional use cases can be added.

  • Unqualified searches: Occur when only general availability products are part of the request.
  • To request generally available products: Only minimum required inputs are required.
ParameterDescription
adultsNumber of adults staying in the room. 
Type: Integer 
Required
childrenNumber of children staying in the room. 
Type: Integer
childrenAgeAges of children 
Type: Integer
chainIdUnique ID that identifies hotel chain or management group in SynXis 
Type: Integer 
Required
hotelIdID that uniquely identifies a single hotel property in SynXis CR 
Type: Integer
primaryChannelSynXis CR booking channel code (use for content customization) 
Type: String 
Required
secondaryChannelSynXis CR booking channel code (use for content customization) 
Type: String 
Required
numRoomsNumber of rooms requested 
Type: Integer 
Required
startDateStart date for requesting availability 
Type: String 
Format: yyyy-mm-dd 
Required
endDateEnd date for requesting availability 
Type: String 
Format: yyyy-mm-dd 
Required

 

Sample Request

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&children=1&childrenAge=10&startDate=2022-11-20&endDate=2022-11-22&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB

 

Sample Response (Partial)

The response includes one leadAvailabilityList item per hotel for the specified @startDate and @endDate.

{
    "paging": {...},
    "leadAvailabilityList": [
        {
            "Hotel": {...},
            "AllocationBlockList": [],
            "LeastRestrictiveFailure": [...],
            "Failures": [...],
            "Price": [...],
            "PriceGroup": [...],
            "Available": true,
            "ArrivalDate": "2022-11-20",
            "DepartureDate": "2022-11-22"
        }
    ]
}

 

Qualified Search

A qualified search is a Hotel Availability request with additional search criteria to find protected or otherwise private rates, exclude rates/rooms or limit the products. A qualified search response contains a priceGroup node that provides pricing information only for the qualified searched products. The priceGroup node mirrors the price node but is specific to qualified searched products whereas the price node contains information across all products.

The price and priceGroup nodes provide a comparison between qualified searched products and all the products included in the general response.

For example, if a search request includes rate codes 'BAR' and 'ADV', then the response contains a priceGroup list item for both 'BAR' and 'ADV' along with a price list item across all products in the search results.

Use @onlyCheckRequested=true to limit the response to only include products that match the qualified search criteria.

 

Access Code

Access Code - Corporate, Group or Promotion

Include Corporate, Group, or Promotion Access codes to return associated rates Rates in the availability response. The response is almost identical in terms of structure to the unqualified search but it includes more products since the access code unlocks the usage of additional products.

Note: For a Corporate code search, the system will look for a Hotel-level company profile first and if not found then a Chain-level profile.

ParameterDescriptionType
accessCodeAccess codeString
accessTypeAccess code type. 
Values: corporate, group, promotion
String
onlyCheckRequestedIf true, the system will only check for product availability based upon the requested parameters.Boolean

Sample Request

Request for Corporate access code

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&children=1&childrenAge=10&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&accessCode=DELL&accessType=corporate

 

Request for Promotion access code

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&children=1&childrenAge=10&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&accessCode=50PCTDISC&accessType=Promotion

 

Request for Group access code

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&children=1&childrenAge=10&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&accessCode=ABA&accessType=Group

 

Note: An invalid access code will result in a warning.

    "Warning": [
        {
            "Code": "InvalidPromoOrCorporateCode",
            "Value": "DELL2"
        }
    ]

 

Agent - Booker, Chain Agent, or Travel Agent specific rates

Unlock rates assigned to a Booker, IATA Agency, or Chain Agent.

ParameterDescriptionType
agentIdID associated to an agentString
agentTypeAgent Type 
Values: Booker, ChainAgent, or IATA
String

Samples Request

Request for rates assigned to a Booker profile

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&children=1&childrenAge=10&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&agentId=12075c7a-6a21-4402-94b6-600a19f2983d&agentType=Booker

 

Request for rates assigned to a Chain Agent

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&children=1&childrenAge=10&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&agentId=VA263474&agentType=ChainAgent

 

Request for rates assigned to a Travel Agent

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&children=1&childrenAge=10&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&agentId=05620860&agentType=IATA

 

Calendar Availability

Request pricing elements per night by length of stay, per hotel, across a stay interval by populating the @lengthOfStay parameter

ParameterDescriptionType
lengthOfStayLength of stay used when requesting nightly (i.e. Calendar) availability. 
If populated, the system returns Nightly Availability for the length of stay. 
If not, populated the system returns Lead Availability.
Number

 

Request

Sample request with startDate=2022-11-20, endDate=2022-11-22 and lengthOfStay=3.

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&startDate=2022-11-20&endDate=2022-11-22&lengthOfStay=3

 

Response (Partial)

The response includes leadAvailabilityList items for each night and lengthOfStay.

{
    "paging": {...},
    "leadAvailabilityList": [
        {
            "Hotel": {...},
            "AllocationBlockList": [],
            "LeastRestrictiveFailure": [...],
            "Failures": [...],
            "Price": [...],
            "PriceGroup": [...],
            "Available": true,
            "ArrivalDate": "2022-11-20",
            "DepartureDate": "2022-11-23"
        },
        {
            "Hotel": {...},
            "AllocationBlockList": [],
            "LeastRestrictiveFailure": [...],
            "Failures": [...],
            "Price": [...],
            "PriceGroup": [...],
            "Available": true,
            "ArrivalDate": "2022-11-21",
            "DepartureDate": "2022-11-24"
        },
        {
            "Hotel": {...},
            "AllocationBlockList": [],
            "LeastRestrictiveFailure": [...],
            "Failures": [...],
            "Price": [...],
            "PriceGroup": [...],
            "Available": true,
            "ArrivalDate": "2022-11-22",
            "DepartureDate": "2022-11-25"
        }
    ]
}

 

Central Reservations Office (CRO) Rates

Search for rates assigned to CRO by including @croId in the request. Additionally, a CRO search can request availability for the previous day when the date is already past midnight. This functionality allows a late arriving guest to still get a room for the night, even if the night is past midnight. (This functionality is configurable in the SynXis CR.) Example: If today is January 3 at 3:00 AM, a CRO request can shop for dates of Jan 2 – Jan 3.

ParameterDescriptionType
croIdSynXis CR ID for a Central Reservation Office (CRO).String

 

Request for CRO rates

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&children=1&childrenAge=10&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&croId=14160760

 

Currency Code

Rates can be set up in the Hotel’s default currency or in alternate currencies. By default, the response only contains rates set up in the default currency.

Including @currencyCode in the request, the system will evaluate rates configured in the requested currency and perform currency conversion on rates not loaded in the specified currency.

Note: Converting rates to the requested currency is only done as a courtesy for the client. Rates must be booked and paid for in the currency they are configured, not based on currency conversion.

ParameterDescriptionType
currencyCodeISO 4217 three alpha currency code.String

 

Request for a specific currency code

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&children=1&childrenAge=10&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&currencyCode=EUR

 

Loyalty Program

Use a qualified search to check availability based on loyalty program code and level.

Note: Point Redemption Rates are not supported in the Lead Availability API. Only cash rates or the cash amount for Points or Cash rates are supported.

ParameterDescriptionType
loyaltyProgramLoyalty program codeString
loyaltyLevelCode associated with a loyalty program level (i.e. SILVER, GOLD, PLATINUM)[String]
onlyCheckRequestedIf true, the system will only check for product availability based upon the requested parameters.Boolean

 

Request for rates assigned to a loyalty program and level

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&children=1&childrenAge=10&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&loyaltyProgram=MyLoyalty&loyaltyLevel=GOLD

 

Price Range

The search results can be filtered by specifying a minimum and/or maximum price, a price type and a currency type.

ParameterDescriptionType
priceRangeMinLow-end price range to include in the resultsNumber
priceRangeMaxHigh-end price range to include in the resultsNumber
priceRangeTypeIndicates which value the min / max price range should apply. Required for a price range search. 
Values: Average, FirstNight, Highest, HighestInclusiveTax, Lowest, Total
String
priceRangeCurrencyIndicates which currency the min / max price range should apply 
Values: HotelDefaultCurrency, RequestedCurrency
String

 

Pagination

Use pagination to access the response data in smaller sets.

ParameterDescriptionType
pageStartIndicates the starting record to be returned in the response.Integer
pageSizeIndicates the number of records to return in the response (0 = return the maximum size of 100).Integer

 

Request using pagination

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&pageStart=2&pageSize=75

 

Successful Response (partial)

A successful response will return a Paging node. The values from the paging node can be used to access the data in smaller sets.

ParameterDescriptionType
paging/@SizeNumber of records returned in the responseInteger
paging/@StartStarting record returned in the responseInteger
paging/@TotalTotal number of recordsInteger

 

    "paging": {
        "Size": 51,
        "Start": 0,
        "Total": 51
    }

 

Rate

Search for specific rate codes in the availability results.

ParameterDescriptionType
rateCodeRate Code[String]
onlyCheckRequestedIf true, the system will only check for product availability based upon the requested parameters.Boolean

 

Request for one rate code

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&onlyCheckRequested=true&rateCode=ADV

 

Request for multiple rate codes

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&onlyCheckRequested=true&rateCode=ADV,BAR

 

Rate Class

Include or exclude rates assigned to a rate class from the search by passing in one or more rateClass or rateClassExclude values.

Note: A request can contain both rateClass and rateClassExclude parameters.

ParameterDescriptionType
rateClassRate class types to include 
Values: Association, Convention, Corporate, Government, Military, Negotiated, Package, Promotional, Rack
[String]
rateClassExcludeRate class types to exclude 
Values: Association, Convention, Corporate, Government, Military, Negotiated, Package, Promotional, Rack
[String]
onlyCheckRequestedIf true, the system will only check for product availability based upon the requested parameters.Boolean

 

Request to include a rate class

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&onlyCheckRequested=true&rateClass=Negotiated

 

Rate Filter

Search for rates associated with a Rate Filter code.

ParameterDescriptionType
rateFilterCode associated with a rate filter[String]
onlyCheckRequestedIf true, the system will only check for product availability based upon the requested parameters.Boolean

 

Request for a specific rate filter

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&onlyCheckRequested=true&rateFilter=HOTRF99

 

Room Code

Search by specific room codes.

ParameterDescriptionType
roomCodeRoom Code[String]
onlyCheckRequestedIf true, the system will only check for product availability based upon the requested parameters.Boolean

Request for a specific room code

/v1/hotel/leadAvailability?chainId=12723&hotelId=13098&adults=2&startDate=2022-11-10&endDate=2022-11-12&numRooms=1&primaryChannel=WEB&secondaryChannel=WEB&onlyCheckRequested=true&roomCode=A1K