Skip to content

Show grid

POST
/api/managing-entity/{managingEntityIdentifier}/studio/sales-channel/grid
curl --request POST \
--url https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/studio/sales-channel/grid \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Wink-Version: 2.0' \
--data '{ "filter": { "filters": [ { "field": "hotel.name", "ignoreCase": true, "operator": "startsWith", "value": "Happy Res" } ], "logic": "and" }, "group": [ { "aggregates": [ { "aggregate": "count", "field": "hotel.bookings" } ], "dir": "asc", "field": "createdDate" } ], "skip": 0, "sort": [ { "dir": "asc", "field": "hotel.name" } ], "take": 10 }'

Returns a paginated, filterable grid of the affiliate’s sales channels.

managingEntityIdentifier
required
string

Affiliate/managing entity identifier

Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
Wink-Version
string
default: 2.0.0
Allowed values: 2.0

Pageable grid state including page number, page size, sort fields, and optional filters to narrow the affiliate’s sales channel results

Media typeapplication/json

Pagination, sorting, filtering, and grouping state used to query a paged result set.

object
filter

Descriptors used for filtering result set

object
filters

Descriptors used for filtering the result set

Array<object>

A single field-level filter criterion that specifies what to match and how to compare it.

object
field
required

Field name to filter on

string
>= 1 characters
Example
hotel.name
ignoreCase

Make filter comparison case insensitive. Default: Case sensitive

boolean
Example
true
operator
required

Filter operator to use on field

string
Allowed values: neq eq contains doesnotcontain isnull isnotnull isempty isnotempty startswith endswith gte lte gt lt in nin
Example
startsWith
value

Value to filter dataset against

Example
Happy Res
Example
{
"field": "hotel.name",
"ignoreCase": true,
"operator": "startsWith",
"value": "Happy Res"
}
logic

Whether to filter inclusively or exclusively

string
Allowed values: and or
Example
and
Example
{
"filters": [
{
"field": "hotel.name",
"ignoreCase": true,
"operator": "startsWith",
"value": "Happy Res"
}
],
"logic": "and"
}
group

Descriptors to group result sets by.

Array<object>

Descriptor that defines how a result set should be grouped, including sort direction and optional aggregate calculations.

object
aggregates

Primitive aggregate data points

Array<object>

Descriptor that defines an aggregate function to apply to a specific field in a grouped result set.

object
aggregate

Aggregate function

string
Allowed values: count sum average min max
Example
count
field

Field to run aggregate function on

string
Example
hotel.bookings
Example
{
"aggregate": "count",
"field": "hotel.bookings"
}
dir

Group sort direction

string
Allowed values: asc desc
Example
asc
field

Field to group data set on

string
Example
createdDate
Example
{
"aggregates": [
{
"aggregate": "count",
"field": "hotel.bookings"
}
],
"dir": "asc",
"field": "createdDate"
}
skip

Number of records to be skipped by the pager.

integer format: int32
0
Example
0
sort

Descriptors used for sorting result set.

Array<object>

Descriptor that defines the sort direction and field for ordering a result set.

object
dir

Descriptors used for sorting result set

string
Allowed values: asc desc
Example
asc
field

Data set field to sort on

string
Example
hotel.name
Example
{
"dir": "asc",
"field": "hotel.name"
}
take

Number of records to take.

integer format: int32
default: 30 >= 1 <= 180
Example
10
Example
{
"filter": {
"filters": [
{
"field": "hotel.name",
"ignoreCase": true,
"operator": "startsWith",
"value": "Happy Res"
}
],
"logic": "and"
},
"group": [
{
"aggregates": [
{
"aggregate": "count",
"field": "hotel.bookings"
}
],
"dir": "asc",
"field": "createdDate"
}
],
"skip": 0,
"sort": [
{
"dir": "asc",
"field": "hotel.name"
}
],
"take": 10
}

Paginated list of sales channels for the affiliate

Media typeapplication/json

Owned pagination envelope: a page of content plus flat page metadata.

object
content

The elements on this page.

Array<object>

Lightweight projection of a SalesChannel representing a configured distribution relationship between a supplier and an affiliate.

object
blacklisted
required

A way to blacklist a specific channel a property doesn’t want to send blocking to.

boolean
channelDisabled

System override by supplier to disable channel. E.g. Platform disables supplier.

boolean
commission

Amount of sales commission earned through this channel and all its children [unless configured at the child level].

number format: float
<= 1
createdDate

Datetime this record was first created

string | null format: date-time
enabled

Flag the supplier can use to enable / disable this channel

boolean
default: true
id
required

Unique identifier for this record.

string format: uuid
>= 1 characters
lastUpdate

Datetime this record was last updated

string | null format: date-time
ownerIdentifier

A specific identifier for the company / corporation / travel agency that is retrieving the rates

string format: uuid
ownerName

Name of the owner / affiliate. Hotel booking customization when it’s the booking customization.

string
percentDiscount

Percent discount on this channel and all its children [unless configured at the child level].

number format: float
<= 1
rateModifierBundles

Promotion bundles for this channel

Array<object>

A lightweight projection of a promotion bundle containing the full set of qualifying conditions and metadata.

object
aggregatedItemDescriptions
Array<object>

Simplified localized description containing text content and its language code.

object
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
description
required

Longer text description

string
>= 1 characters <= 2147483647 characters
hashMismatch
boolean
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
md5ContentHash

The md5 hash of the name, description and language.

string
createdDate

Datetime this record was first created

string | null format: date-time
descriptions

Optional bundle-level descriptions. When populated, these replace the aggregated item descriptions in offerDetails.

Array<object>

Simplified localized description containing text content and its language code.

object
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
description
required

Longer text description

string
>= 1 characters <= 2147483647 characters
hashMismatch
boolean
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
md5ContentHash

The md5 hash of the name, description and language.

string
effectiveDescriptions
Array<object>

Simplified localized description containing text content and its language code.

object
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
description
required

Longer text description

string
>= 1 characters <= 2147483647 characters
hashMismatch
boolean
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
md5ContentHash

The md5 hash of the name, description and language.

string
enabled
required

Whether this promotion ancillary is enabled or not.

boolean
default: true
hasFixedDiscountModifier
boolean
hasPercentDiscountModifier
boolean
hotelIdentifier
required

Hotel identifier.

string format: uuid
>= 1 characters
id
required

Unique identifier for this record.

string format: uuid
>= 1 characters
isValid
boolean
items
required
Array<object>
>= 1 items

Promotions that go together to make up this ancillary.

object
addOnIdentifiers
Array<string>
advanceBookingRateQualifier

Restrict promotion to users who want to book in advance.

arrivalDaysOfWeekRateQualifier

Restrict promotion to specific days of the week the guest is arriving.

availableDaysOfWeekRateQualifier

Restrict promotion to specific days of the week the promotion is available.

blackoutDates
Array<object>

A date range during which a promotion is not available (blackout period).

object
effectiveDate
required

Start date when the promotion is not available (inclusive).

string format: date
expireDate
required

End date when the promotion is not available (inclusive).

string format: date
cityRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests whose IP geolocation resolves to a specific city.

object
city
required

City details (obtained via geonames) to restrict the promotion by guest location.

object
cityName
required

City name

string
>= 1 characters
continentCode
required

Continent code

string
>= 1 characters
continentName
required

Continent name

string
>= 1 characters
countryIsoCode
required

Country ISO code

string
>= 1 characters /^[A-Z]{2}$/
countryName
required

Country name

string
>= 1 characters
geoNameId
required

GeoNameLightweight identifiers taken from https://geonames.org.

string
>= 1 characters
localeCode
required

Locale code

string
>= 1 characters /^[a-z]{2}(-[A-Z]{2})?$/
subDivision1Code

Sub-division 1 code

string
subDivision1Name

Sub-division 1 name

string
subDivision2Code

Sub-division 2 code

string
subDivision2Name

Sub-division 2 name

string
timezone
required

Timezone

string
>= 1 characters
continentRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests whose IP geolocation resolves to a specific continent.

object
continent
required

Two-letter continent code (e.g. NA, EU, AS)

string
>= 1 characters
countryRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests whose IP geolocation resolves to a specific country.

object
country
required

Country (obtained via geonames) to restrict the promotion by guest location.

object
continentCode

Continent code (two-letter ISO)

string
continentName

Continent name

string
countryIsoCode

Country ISO 3166-1 alpha-2 code

string
/^[A-Z]{2}$/
countryName

Country name

string
geoNameId

GeoNames identifier

string
createdDate

Datetime this record was first created

string | null format: date-time
departureDaysOfWeekRateQualifier

Restrict promotion to specific days of the week the guest is departing.

descriptions
required
Array<object>
>= 1 items

Simplified localized description containing text content and its language code.

object
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
description
required

Longer text description

string
>= 1 characters <= 2147483647 characters
hashMismatch
boolean
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
md5ContentHash

The md5 hash of the name, description and language.

string
enabled
required

Whether this promotion is enabled or not.

boolean
default: true
geoLocationRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests within a circular geographic area defined by a center point and radius.

object
latitude
required

Latitude of the center point for the geo-location radius check.

number format: double
longitude
required

Longitude of the center point for the geo-location radius check.

number format: double
radiusInKilometers
required

Radius in kilometers around the center point within which the guest must be located.

integer format: int32
hotelIdentifier
required

Unique identifier of the property this promotion belongs to.

string format: uuid
>= 1 characters
id
required

Unique identifier for this record.

string format: uuid
>= 1 characters
ipRangeRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests whose IP address falls within a specified IPv4 range.

object
endIPRange
required

Ending IP address of the range (inclusive).

string
>= 1 characters
startIPRange
required

Starting IP address of the range (inclusive).

string
>= 1 characters
lastMinuteRateQualifier

Restrict promotion to users who want to book a room close to the date.

lastUpdate

Datetime this record was last updated

string | null format: date-time
lengthOfStayRateQualifier

Restrict promotion to users who want to stay a certain number of days.

masterRateIdentifiers
Array<string>
modifier
required

The discount or premium amount and its type (fixed or percentage).

name
required

Internal name of promotion.

string
>= 1 characters
prepayRateQualifier

Restrict promotion to either prepaid / non-prepaid rates.

pricingType
required

This determines whether this discount should be applied per night, per stay or per person - per night

string
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
promotionRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests who enter a specific promotional code at checkout.

object
promotion
required

Promo code that guests must enter to access this promotion.

string
>= 1 characters
ratePlanIdentifiers
Array<string>
refundableRateQualifier

Restrict promotion to either refundable / non-refundable rates.

requiredDaysOfWeekRateQualifier

Restrict promotion to specific days of the week the guest has to stay.

roomRangeRateQualifier

Restrict promotion by restricting to how many rooms the user wants.

sellDateRateQualifiers
Array<object>

Qualifier that restricts a promotion to bookings made within a specific date window.

object
effectiveDate
required

Promotion is available when the booking is made on or after this date (inclusive).

string format: date
expireDate
required

Promotion is available when the booking is made on or before this date (inclusive).

string format: date
stayDateRateQualifiers
Array<object>

Rate qualifier that restricts a promotion to guests whose stay falls within a specific date range.

object
effectiveDate
required

Promotion applies when guest’s stay starts on or after this date (inclusive).

string format: date
expireDate
required

Promotion applies when guest’s stay starts on or before this date (inclusive).

string format: date
timezoneRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests whose system timezone matches the specified IANA timezone name.

object
timezone
required

IANA timezone name of the booker’s location (e.g. Asia/Bangkok).

string
>= 1 characters
type
required

Set whether you want the price to go up or down when the rules of this promotion have been satisfied.

string
Allowed values: PREMIUM DISCOUNT
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
lastUpdate

Datetime this record was last updated

string | null format: date-time
modifierOverride

Optional: override the combined discount of all bundle items with a single fixed or percentage amount.

name
required

Internal name of promotion ancillary.

string
>= 1 characters
pricingType

Determines whether this discount should be applied per night, per stay or per person - per night; Required if amount override is not null

string
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
type

Required if manual override modifier is not null

string
Allowed values: PREMIUM DISCOUNT
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
rateModifiers

Promotions for this channel

Array<object>

A lightweight projection of a special rate (promotion) containing all qualifying conditions and metadata.

object
addOnIdentifiers
Array<string>
advanceBookingRateQualifier

Restrict promotion to users who want to book in advance.

arrivalDaysOfWeekRateQualifier

Restrict promotion to specific days of the week the guest is arriving.

availableDaysOfWeekRateQualifier

Restrict promotion to specific days of the week the promotion is available.

blackoutDates
Array<object>

A date range during which a promotion is not available (blackout period).

object
effectiveDate
required

Start date when the promotion is not available (inclusive).

string format: date
expireDate
required

End date when the promotion is not available (inclusive).

string format: date
cityRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests whose IP geolocation resolves to a specific city.

object
city
required

City details (obtained via geonames) to restrict the promotion by guest location.

object
cityName
required

City name

string
>= 1 characters
continentCode
required

Continent code

string
>= 1 characters
continentName
required

Continent name

string
>= 1 characters
countryIsoCode
required

Country ISO code

string
>= 1 characters /^[A-Z]{2}$/
countryName
required

Country name

string
>= 1 characters
geoNameId
required

GeoNameLightweight identifiers taken from https://geonames.org.

string
>= 1 characters
localeCode
required

Locale code

string
>= 1 characters /^[a-z]{2}(-[A-Z]{2})?$/
subDivision1Code

Sub-division 1 code

string
subDivision1Name

Sub-division 1 name

string
subDivision2Code

Sub-division 2 code

string
subDivision2Name

Sub-division 2 name

string
timezone
required

Timezone

string
>= 1 characters
continentRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests whose IP geolocation resolves to a specific continent.

object
continent
required

Two-letter continent code (e.g. NA, EU, AS)

string
>= 1 characters
countryRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests whose IP geolocation resolves to a specific country.

object
country
required

Country (obtained via geonames) to restrict the promotion by guest location.

object
continentCode

Continent code (two-letter ISO)

string
continentName

Continent name

string
countryIsoCode

Country ISO 3166-1 alpha-2 code

string
/^[A-Z]{2}$/
countryName

Country name

string
geoNameId

GeoNames identifier

string
createdDate

Datetime this record was first created

string | null format: date-time
departureDaysOfWeekRateQualifier

Restrict promotion to specific days of the week the guest is departing.

descriptions
required
Array<object>
>= 1 items

Simplified localized description containing text content and its language code.

object
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
description
required

Longer text description

string
>= 1 characters <= 2147483647 characters
hashMismatch
boolean
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
md5ContentHash

The md5 hash of the name, description and language.

string
enabled
required

Whether this promotion is enabled or not.

boolean
default: true
geoLocationRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests within a circular geographic area defined by a center point and radius.

object
latitude
required

Latitude of the center point for the geo-location radius check.

number format: double
longitude
required

Longitude of the center point for the geo-location radius check.

number format: double
radiusInKilometers
required

Radius in kilometers around the center point within which the guest must be located.

integer format: int32
hotelIdentifier
required

Unique identifier of the property this promotion belongs to.

string format: uuid
>= 1 characters
id
required

Unique identifier for this record.

string format: uuid
>= 1 characters
ipRangeRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests whose IP address falls within a specified IPv4 range.

object
endIPRange
required

Ending IP address of the range (inclusive).

string
>= 1 characters
startIPRange
required

Starting IP address of the range (inclusive).

string
>= 1 characters
lastMinuteRateQualifier

Restrict promotion to users who want to book a room close to the date.

lastUpdate

Datetime this record was last updated

string | null format: date-time
lengthOfStayRateQualifier

Restrict promotion to users who want to stay a certain number of days.

masterRateIdentifiers
Array<string>
modifier
required

The discount or premium amount and its type (fixed or percentage).

name
required

Internal name of promotion.

string
>= 1 characters
prepayRateQualifier

Restrict promotion to either prepaid / non-prepaid rates.

pricingType
required

This determines whether this discount should be applied per night, per stay or per person - per night

string
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
promotionRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests who enter a specific promotional code at checkout.

object
promotion
required

Promo code that guests must enter to access this promotion.

string
>= 1 characters
ratePlanIdentifiers
Array<string>
refundableRateQualifier

Restrict promotion to either refundable / non-refundable rates.

requiredDaysOfWeekRateQualifier

Restrict promotion to specific days of the week the guest has to stay.

roomRangeRateQualifier

Restrict promotion by restricting to how many rooms the user wants.

sellDateRateQualifiers
Array<object>

Qualifier that restricts a promotion to bookings made within a specific date window.

object
effectiveDate
required

Promotion is available when the booking is made on or after this date (inclusive).

string format: date
expireDate
required

Promotion is available when the booking is made on or before this date (inclusive).

string format: date
stayDateRateQualifiers
Array<object>

Rate qualifier that restricts a promotion to guests whose stay falls within a specific date range.

object
effectiveDate
required

Promotion applies when guest’s stay starts on or after this date (inclusive).

string format: date
expireDate
required

Promotion applies when guest’s stay starts on or before this date (inclusive).

string format: date
timezoneRateQualifiers
Array<object>

Qualifier that restricts a promotion to guests whose system timezone matches the specified IANA timezone name.

object
timezone
required

IANA timezone name of the booker’s location (e.g. Asia/Bangkok).

string
>= 1 characters
type
required

Set whether you want the price to go up or down when the rules of this promotion have been satisfied.

string
Allowed values: PREMIUM DISCOUNT
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
selfAcquires

Whether the sales channel is a self-acquiring entity.

boolean
subType
required

What type of segment of channel is this.

string
Allowed values: TRIP_PAY FACILITATOR DIRECT APPLICATION HOTEL TRAVELIKO CORPORATE TRAVEL_AGENT INFLUENCER BLOGGER DESTINATION CHANNEL_MANAGER PROPERTY_MANAGEMENT_SYSTEM CENTRAL_RESERVATION_SYSTEM GOOGLE_HOTEL_API MANAGEMENT_COMPANY CHAIN BRAND EVENT_ORGANIZER OTHER
supplierIdentifier
required

Channel is owned by this supplier identifier.

string format: uuid
>= 1 characters
supplierName
required

Name of property / supplier that owns this channel

string
>= 1 characters
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
first

Whether this is the first page.

boolean
last

Whether this is the last page.

boolean
number

Zero-based index of this page.

integer format: int32
numberOfElements

Number of elements on this page.

integer format: int32
size

The requested page size.

integer format: int32
totalElements

Total number of elements across all pages.

integer format: int64
totalPages

Total number of pages for the current page size.

integer format: int32
Example
{
"content": [
{
"blacklisted": false,
"channelDisabled": false,
"commission": 0.2,
"createdDate": "2026-01-14T09:30:00",
"enabled": true,
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"lastUpdate": "2026-02-03T16:45:12",
"ownerIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"ownerName": "The Siam Residences",
"percentDiscount": 0.15,
"rateModifierBundles": [
{
"aggregatedItemDescriptions": [
{
"creator": "USER",
"description": "This is a longer description in the specified language.",
"language": "en",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"createdDate": "2026-01-14T09:30:00",
"descriptions": [
{
"creator": "USER",
"description": "This is a longer description in the specified language.",
"language": "en",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"effectiveDescriptions": [
{
"creator": "USER",
"description": "This is a longer description in the specified language.",
"language": "en",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"enabled": true,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"items": [
{
"addOnIdentifiers": [
"880e8400-e29b-41d4-a716-446655440333"
],
"blackoutDates": [
{
"effectiveDate": "2026-04-13",
"expireDate": "2026-04-15"
}
],
"cityRateQualifiers": [
{
"city": {
"countryCode": "TH",
"geoNameId": "1609350",
"latitude": 13.7563,
"longitude": 100.5018,
"name": "Bangkok"
}
}
],
"continentRateQualifiers": [
{
"continent": "NA"
}
],
"countryRateQualifiers": [
{
"country": {
"continentCode": "AS",
"geoNameId": "1609350",
"isoAlpha2": "TH",
"isoAlpha3": "THA",
"name": "Thailand"
}
}
],
"createdDate": "2026-01-14T09:30:00",
"descriptions": [
{
"creator": "USER",
"description": "This is a longer description in the specified language.",
"language": "en",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"enabled": true,
"geoLocationRateQualifiers": [
{
"latitude": 13.7563,
"longitude": 100.5018,
"radiusInKilometers": 50
}
],
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"ipRangeRateQualifiers": [
{
"endIPRange": "192.168.1.255",
"startIPRange": "192.168.1.0"
}
],
"lastUpdate": "2026-02-03T16:45:12",
"masterRateIdentifiers": [
"770e8400-e29b-41d4-a716-446655440222"
],
"name": "Early bird",
"pricingType": "PER_PERSON_PER_NIGHT",
"promotionRateQualifiers": [
{
"promotion": "EARLYBIRD2026"
}
],
"ratePlanIdentifiers": [
"990e8400-e29b-41d4-a716-446655440444"
],
"sellDateRateQualifiers": [
{
"effectiveDate": "2026-05-01",
"expireDate": "2026-08-31"
}
],
"stayDateRateQualifiers": [
{
"effectiveDate": "2026-06-01",
"expireDate": "2026-08-31"
}
],
"timezoneRateQualifiers": [
{
"timezone": "Asia/Bangkok"
}
],
"type": "DISCOUNT",
"version": 3
}
],
"lastUpdate": "2026-02-03T16:45:12",
"name": "Early bird - Long Term",
"pricingType": "PER_NIGHT",
"type": "DISCOUNT",
"version": 3
}
],
"rateModifiers": [
{
"addOnIdentifiers": [
"880e8400-e29b-41d4-a716-446655440333"
],
"blackoutDates": [
{
"effectiveDate": "2026-04-13",
"expireDate": "2026-04-15"
}
],
"cityRateQualifiers": [
{
"city": {
"countryCode": "TH",
"geoNameId": "1609350",
"latitude": 13.7563,
"longitude": 100.5018,
"name": "Bangkok"
}
}
],
"continentRateQualifiers": [
{
"continent": "NA"
}
],
"countryRateQualifiers": [
{
"country": {
"continentCode": "AS",
"geoNameId": "1609350",
"isoAlpha2": "TH",
"isoAlpha3": "THA",
"name": "Thailand"
}
}
],
"createdDate": "2026-01-14T09:30:00",
"descriptions": [
{
"creator": "USER",
"description": "This is a longer description in the specified language.",
"language": "en",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"enabled": true,
"geoLocationRateQualifiers": [
{
"latitude": 13.7563,
"longitude": 100.5018,
"radiusInKilometers": 50
}
],
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"ipRangeRateQualifiers": [
{
"endIPRange": "192.168.1.255",
"startIPRange": "192.168.1.0"
}
],
"lastUpdate": "2026-02-03T16:45:12",
"masterRateIdentifiers": [
"770e8400-e29b-41d4-a716-446655440222"
],
"name": "Early bird",
"pricingType": "PER_PERSON_PER_NIGHT",
"promotionRateQualifiers": [
{
"promotion": "EARLYBIRD2026"
}
],
"ratePlanIdentifiers": [
"990e8400-e29b-41d4-a716-446655440444"
],
"sellDateRateQualifiers": [
{
"effectiveDate": "2026-05-01",
"expireDate": "2026-08-31"
}
],
"stayDateRateQualifiers": [
{
"effectiveDate": "2026-06-01",
"expireDate": "2026-08-31"
}
],
"timezoneRateQualifiers": [
{
"timezone": "Asia/Bangkok"
}
],
"type": "DISCOUNT",
"version": 3
}
],
"selfAcquires": false,
"subType": "DIRECT",
"supplierIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"supplierName": "The Siam Residences, Bangkok",
"version": 3
}
],
"first": true,
"last": false,
"number": 0,
"numberOfElements": 20,
"size": 20,
"totalElements": 1234,
"totalPages": 62
}

Bad Request — missing or invalid request parameter or body

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Unauthorized — authentication is required or the session has expired

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Forbidden — authenticated but lacking the required permission or scope

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Not Found — the requested resource does not exist

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Method Not Allowed — the HTTP verb is not supported on this endpoint

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Unsupported Media Type — use application/json

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Internal Server Error — an unexpected failure occurred on the server

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Service Unavailable — a downstream dependency is unreachable

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}