Discounts and rates
Find in this section an overview of the available discount types including deals, regular rates, third-party inventory (TPI) rates, and Closed User Group (CUG) rates, along with guidance on how to correctly retrieve them via the Demand API.
Booking.com enables partners to offer a variety of discount mechanisms designed to improve visibility, drive bookings, and enhance the traveller experience. These incentives include:
Time-sensitive deals, such as Black Friday and other seasonal promotions
Targeted rate offers, based on user device or location.
Exclusive offers, available to logged-in or authenticated users.
Third-party inventory (TPI) rates, providing competitive pricing from external suppliers.
As an Affiliate Demand API partner, you can surface these rates dynamically, tailoring offers based on context to maximise conversion and user satisfaction.
To confirm eligibility or access specific discount types, please contact your Account Manager.
Discount categories
Booking.com supports several discount mechanisms. Each type has a distinct business purpose and API behaviour:
Deals
Publicly visible discounts designed to generate urgency and increase visibility—no login or special membership required.
Use cases:
- Promote seasonal or limited-time campaigns (e.g., Black Friday).
- Highlight discounted properties during off-peak periods.
- Drive short-term booking spikes.
Available deal types via Demand API:
Logged in deal (formerly Secret deals)
| Deal of the day
| |
Last minute deals
| Limited-time deals
|
Regular (target) rates
Public rates tailored to specific customer segments, based on attributes like geography or booking platform.
Use cases:
- Encourage mobile bookings.
- Target specific countries or regions.
- Optimise pricing strategy across different markets.
Target rate types:
Mobile rates - Special rates for bookings made via mobile apps or browsers. | Geo/country rates - Discounts based on the user's location or country of residence. |
Closed user group (CUG) rates
Closed user group (CUG) rates are discounted rates offered exclusively to verified or loyalty-based user groups.
Use cases:
- Provide added value to Genius or loyalty programme members.
- Support private sales or corporate programmes.
- Offer consistent long-term pricing to authenticated users.
Important considerations:
- Access control is required (e.g., authentication or tokenisation)
- CUG rates may be combinable with other discounts.
- Prior approval from your Account Manager is required.
Contact your Account Manager for further details.
Third-party inventory (TPI) rates
Third-party inventory (TPI) rates are sourced from external suppliers (e.g., wholesalers, bedbanks), providing broader inventory and competitive pricing.
Key characteristics:
Available via Demand API v3.1 (or above)
Depending on your configuration the TPI rates are:
- Commissionable (Sell rates) which are part of the "Regular rates" group.
- or non-commissionable (Net rates), which are CUG rates.
Useful for supplementing property availability with competitive alternatives.
See the TPI section for integration details.
Discounts in requests
To effectively use discounts via the Demand API, it's essential to understand how to implement them correctly, so travellers can receive the appropriate pricing based on their eligibility.
Endpoints
Use the following accommodation endpoints to access deals and rates information:
Endpoint | Best practice |
✓ When querying availability or searching for accommodations, make sure to include the correct key parameters in your requests. ✓ This ensures the API returns the appropriate rates/deals based on the user's eligibility. | |
/orders/preview | ✓ Before finalising the booking, review the applied rates and deals to ensure they are correct. |
Key parameters
The following parameters determine which deals and rates are available:
- The API token and
affiliate ID
must be included in theAuthorization: Bearer
header, in every API request. - These identify your partner account and determine which deals and rates are accessible to them.
✅ The booker
object - Specifies the conditions under which users can access particular rates.
"booker" parameters | Description |
---|---|
platform | Defines whether the user is making the booking through mobile, desktop, etc. |
country (and state ) | Restricts rates to users from a specific country (or state in the US) |
| It identifies whether the booker is part of a membership tier, ensuring the correct CUG rates are retrieved.
|
checkin / checkout | Include deals valid for the specified period. |
Use the key parameters in your requests to retrieve discounts on accommodations triggered by the search results.
Retrieving target rates
To retrieve rates offered to specific targets located in a strategic market and/or using a specific platform for bookings:
Include the following information in the booker
object:
Identify the booker
platform
. In this case, for mobile rates:"platform": "mobile"
Set the booker
country
, so the right rates are retrieved (for example,"country": "us"
for the USA). (Use the common/locations/countries endpoint to return the country codes if needed.)If discounts are attached to a specific time-window, ensure you set the correct
checkin
andcheckout
dates.
Example:
{
...
"booker": {
"platform": "mobile",
"country": "us",
},
"checkin": "2025-09-05",
"checkout": "2025-09-14",
"extras": ["products"],
...
}
Refer to the Search accommodation guide, for instructions and recommendations on defining your search requests.
Accessing CUG rates
To access exclusive deals such as logged_in_deal
(previously known secret_deals
) in v3, specifying "user_groups": ["genius2"]
alone is no longer sufficient, even if a logged_in_deal
is available for this group.
You should always include the "authenticated" field in the user_groups
parameter in your availability and orders/preview requests:
- Include
authenticated
to ensure only registered and logged-in travellers get CUG rates. - Add the membership tier to apply the discounts (e.g., genius or genius2).
Example:
"booker": {
"platform": "desk",
"country": "us",
"user_groups": [
"authenticated",
"genius2"]
},
- If the booker account does not have access to certain rate tiers (e.g., genius2), passing this value will not return applicable rates.
- Always confirm available rate tiers with your Account Manager before making requests.
Combining discounts
In this example, a combination of deals and CUG rates is applied:
- Target discounts are applied to mobile users located in Spain, during the selected period.
- For the exclusive Genius closed group, the user must be
authenticated
to receive special rates.
{
...
"booker": {
"platform": "mobile",
"country": "es",
"user_groups": ["authenticated", "genius"]
},
"checkin": "2025-09-05",
"checkout": "2025-09-14",
"extras": ["products"],
...
}
Note we do not automatically combine deals/rates with each other, unless rate stacking is activated in your account. Contact your Account Manager for more details.
Discounts in responses
When you call any of the previously mentioned endpoints, the response will contain the products.deal
object, which provides summary information on available discounts.
Example - Search response with discounts
The following example shows a product eligible for a 28% discount, applicable when booking via a mobile device or during a specific promotional period.
The original price is €100, resulting in a discounted price of €72.00.
{
...
"currency": "EUR",
...
"products": [
...
"id": "xxxxxxxx_x_xxxxxxxxx_x_x_x",
"deal": {
"discount_percentage": 28,
"public_price": 100.00,
"tags": [
"mobile_rate",
"limited_time_deal"
]
},
...
"price": {
"book": 72.00,
},
"Deal" object parameters
discount_percentage | The total discount percentage applied to the product's public_price . |
public_price | This is the original price of the product, before any discounts. This is the price to which the discount_percentage is applied. |
price.book | The discounted price (public_price minus the discount_percentage ). |
tags | These tags help platforms categorise discounts and make it easier for users to identify promotions. (See next section for details). |
Note that the products.deal
object may not provide a detailed breakdown of how the discount_percentage
is calculated.
Tags
Each discount is tagged to identify its type.
Tag | Description |
---|---|
black_friday | Deals part of the Black Friday promotion, a major shopping event with significant discounts or limited-time offers, usually held in late November. |
limited_time_deal | Deals that expire after a certain period, often flash sales or promotions with a deadline. |
logged_in_deal (previously named "Secret deals") | Deals available only to logged-in users (authenticated ), often exclusive or part of a loyalty program like Genius. |
mobile_rate | Special discounted rates offered to target users booking through mobile apps. |
seasonal_deal | Deals tied to specific seasons or holiday periods, offering discounts aligned with travel trends (such as Summer, Getaway deals, Easter, etc.). |
Important
- Multiple deals may be applied sequentially.
- If deals cannot be combined, only the highest discount is applied.
- Learn how to display discounts in your application with our dedicated guide.
- Refer to the TPI section for detailed instructions on retrieving and booking Third-party inventory rates.