Show grid
const url = 'https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/studio/sales-channel/grid';const options = { method: 'POST', headers: { 'Wink-Version': '2.0', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: 'null'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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 nullReturns a paginated, filterable grid of the affiliate’s sales channels.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Affiliate/managing entity identifier
Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69Header Parameters
Section titled “Header Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”Pageable grid state including page number, page size, sort fields, and optional filters to narrow the affiliate’s sales channel results
Pagination, sorting, filtering, and grouping state used to query a paged result set.
object
Descriptors used for filtering result set
object
Descriptors used for filtering the result set
A single field-level filter criterion that specifies what to match and how to compare it.
object
Field name to filter on
Example
hotel.nameMake filter comparison case insensitive. Default: Case sensitive
Example
trueFilter operator to use on field
Example
startsWithValue to filter dataset against
Example
Happy ResExample
{ "field": "hotel.name", "ignoreCase": true, "operator": "startsWith", "value": "Happy Res"}Whether to filter inclusively or exclusively
Example
andExample
{ "filters": [ { "field": "hotel.name", "ignoreCase": true, "operator": "startsWith", "value": "Happy Res" } ], "logic": "and"}Descriptors to group result sets by.
Descriptor that defines how a result set should be grouped, including sort direction and optional aggregate calculations.
object
Primitive aggregate data points
Descriptor that defines an aggregate function to apply to a specific field in a grouped result set.
object
Aggregate function
Example
countField to run aggregate function on
Example
hotel.bookingsExample
{ "aggregate": "count", "field": "hotel.bookings"}Group sort direction
Example
ascField to group data set on
Example
createdDateExample
{ "aggregates": [ { "aggregate": "count", "field": "hotel.bookings" } ], "dir": "asc", "field": "createdDate"}Number of records to be skipped by the pager.
Example
0Descriptors used for sorting result set.
Descriptor that defines the sort direction and field for ordering a result set.
object
Descriptors used for sorting result set
Example
ascData set field to sort on
Example
hotel.nameExample
{ "dir": "asc", "field": "hotel.name"}Number of records to take.
Example
10Example
{ "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}Responses
Section titled “Responses”Paginated list of sales channels for the affiliate
Owned pagination envelope: a page of content plus flat page metadata.
object
The elements on this page.
Lightweight projection of a SalesChannel representing a configured distribution relationship between a supplier and an affiliate.
object
A way to blacklist a specific channel a property doesn’t want to send blocking to.
System override by supplier to disable channel. E.g. Platform disables supplier.
Amount of sales commission earned through this channel and all its children [unless configured at the child level].
Datetime this record was first created
Flag the supplier can use to enable / disable this channel
Unique identifier for this record.
Datetime this record was last updated
A specific identifier for the company / corporation / travel agency that is retrieving the rates
Name of the owner / affiliate. Hotel booking customization when it’s the booking customization.
Percent discount on this channel and all its children [unless configured at the child level].
Promotion bundles for this channel
A lightweight projection of a promotion bundle containing the full set of qualifying conditions and metadata.
object
Simplified localized description containing text content and its language code.
object
Whether it was user or system generated.
Longer text description
Indicate which language this description is written in.
The md5 hash of the name, description and language.
Datetime this record was first created
Optional bundle-level descriptions. When populated, these replace the aggregated item descriptions in offerDetails.
Simplified localized description containing text content and its language code.
object
Whether it was user or system generated.
Longer text description
Indicate which language this description is written in.
The md5 hash of the name, description and language.
Simplified localized description containing text content and its language code.
object
Whether it was user or system generated.
Longer text description
Indicate which language this description is written in.
The md5 hash of the name, description and language.
Whether this promotion ancillary is enabled or not.
Hotel identifier.
Unique identifier for this record.
Promotions that go together to make up this ancillary.
object
Restrict promotion to users who want to book in advance.
Restrict promotion to specific days of the week the guest is arriving.
Restrict promotion to specific days of the week the promotion is available.
A date range during which a promotion is not available (blackout period).
object
Start date when the promotion is not available (inclusive).
End date when the promotion is not available (inclusive).
Qualifier that restricts a promotion to guests whose IP geolocation resolves to a specific city.
object
City details (obtained via geonames) to restrict the promotion by guest location.
object
City name
Continent code
Continent name
Country ISO code
Country name
GeoNameLightweight identifiers taken from https://geonames.org.
Locale code
Sub-division 1 code
Sub-division 1 name
Sub-division 2 code
Sub-division 2 name
Timezone
Qualifier that restricts a promotion to guests whose IP geolocation resolves to a specific continent.
object
Two-letter continent code (e.g. NA, EU, AS)
Qualifier that restricts a promotion to guests whose IP geolocation resolves to a specific country.
object
Country (obtained via geonames) to restrict the promotion by guest location.
object
Continent code (two-letter ISO)
Continent name
Country ISO 3166-1 alpha-2 code
Country name
GeoNames identifier
Datetime this record was first created
Restrict promotion to specific days of the week the guest is departing.
Simplified localized description containing text content and its language code.
object
Whether it was user or system generated.
Longer text description
Indicate which language this description is written in.
The md5 hash of the name, description and language.
Whether this promotion is enabled or not.
Qualifier that restricts a promotion to guests within a circular geographic area defined by a center point and radius.
object
Latitude of the center point for the geo-location radius check.
Longitude of the center point for the geo-location radius check.
Radius in kilometers around the center point within which the guest must be located.
Unique identifier of the property this promotion belongs to.
Unique identifier for this record.
Qualifier that restricts a promotion to guests whose IP address falls within a specified IPv4 range.
object
Ending IP address of the range (inclusive).
Starting IP address of the range (inclusive).
Restrict promotion to users who want to book a room close to the date.
Datetime this record was last updated
Restrict promotion to users who want to stay a certain number of days.
The discount or premium amount and its type (fixed or percentage).
Internal name of promotion.
Restrict promotion to either prepaid / non-prepaid rates.
This determines whether this discount should be applied per night, per stay or per person - per night
Qualifier that restricts a promotion to guests who enter a specific promotional code at checkout.
object
Promo code that guests must enter to access this promotion.
Restrict promotion to either refundable / non-refundable rates.
Restrict promotion to specific days of the week the guest has to stay.
Restrict promotion by restricting to how many rooms the user wants.
Qualifier that restricts a promotion to bookings made within a specific date window.
object
Promotion is available when the booking is made on or after this date (inclusive).
Promotion is available when the booking is made on or before this date (inclusive).
Rate qualifier that restricts a promotion to guests whose stay falls within a specific date range.
object
Promotion applies when guest’s stay starts on or after this date (inclusive).
Promotion applies when guest’s stay starts on or before this date (inclusive).
Qualifier that restricts a promotion to guests whose system timezone matches the specified IANA timezone name.
object
IANA timezone name of the booker’s location (e.g. Asia/Bangkok).
Set whether you want the price to go up or down when the rules of this promotion have been satisfied.
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.
Datetime this record was last updated
Optional: override the combined discount of all bundle items with a single fixed or percentage amount.
Internal name of promotion ancillary.
Determines whether this discount should be applied per night, per stay or per person - per night; Required if amount override is not null
Required if manual override modifier is not null
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.
Promotions for this channel
A lightweight projection of a special rate (promotion) containing all qualifying conditions and metadata.
object
Restrict promotion to users who want to book in advance.
Restrict promotion to specific days of the week the guest is arriving.
Restrict promotion to specific days of the week the promotion is available.
A date range during which a promotion is not available (blackout period).
object
Start date when the promotion is not available (inclusive).
End date when the promotion is not available (inclusive).
Qualifier that restricts a promotion to guests whose IP geolocation resolves to a specific city.
object
City details (obtained via geonames) to restrict the promotion by guest location.
object
City name
Continent code
Continent name
Country ISO code
Country name
GeoNameLightweight identifiers taken from https://geonames.org.
Locale code
Sub-division 1 code
Sub-division 1 name
Sub-division 2 code
Sub-division 2 name
Timezone
Qualifier that restricts a promotion to guests whose IP geolocation resolves to a specific continent.
object
Two-letter continent code (e.g. NA, EU, AS)
Qualifier that restricts a promotion to guests whose IP geolocation resolves to a specific country.
object
Country (obtained via geonames) to restrict the promotion by guest location.
object
Continent code (two-letter ISO)
Continent name
Country ISO 3166-1 alpha-2 code
Country name
GeoNames identifier
Datetime this record was first created
Restrict promotion to specific days of the week the guest is departing.
Simplified localized description containing text content and its language code.
object
Whether it was user or system generated.
Longer text description
Indicate which language this description is written in.
The md5 hash of the name, description and language.
Whether this promotion is enabled or not.
Qualifier that restricts a promotion to guests within a circular geographic area defined by a center point and radius.
object
Latitude of the center point for the geo-location radius check.
Longitude of the center point for the geo-location radius check.
Radius in kilometers around the center point within which the guest must be located.
Unique identifier of the property this promotion belongs to.
Unique identifier for this record.
Qualifier that restricts a promotion to guests whose IP address falls within a specified IPv4 range.
object
Ending IP address of the range (inclusive).
Starting IP address of the range (inclusive).
Restrict promotion to users who want to book a room close to the date.
Datetime this record was last updated
Restrict promotion to users who want to stay a certain number of days.
The discount or premium amount and its type (fixed or percentage).
Internal name of promotion.
Restrict promotion to either prepaid / non-prepaid rates.
This determines whether this discount should be applied per night, per stay or per person - per night
Qualifier that restricts a promotion to guests who enter a specific promotional code at checkout.
object
Promo code that guests must enter to access this promotion.
Restrict promotion to either refundable / non-refundable rates.
Restrict promotion to specific days of the week the guest has to stay.
Restrict promotion by restricting to how many rooms the user wants.
Qualifier that restricts a promotion to bookings made within a specific date window.
object
Promotion is available when the booking is made on or after this date (inclusive).
Promotion is available when the booking is made on or before this date (inclusive).
Rate qualifier that restricts a promotion to guests whose stay falls within a specific date range.
object
Promotion applies when guest’s stay starts on or after this date (inclusive).
Promotion applies when guest’s stay starts on or before this date (inclusive).
Qualifier that restricts a promotion to guests whose system timezone matches the specified IANA timezone name.
object
IANA timezone name of the booker’s location (e.g. Asia/Bangkok).
Set whether you want the price to go up or down when the rules of this promotion have been satisfied.
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.
Whether the sales channel is a self-acquiring entity.
What type of segment of channel is this.
Channel is owned by this supplier identifier.
Name of property / supplier that owns this channel
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.
Whether this is the first page.
Whether this is the last page.
Zero-based index of this page.
Number of elements on this page.
The requested page size.
Total number of elements across all pages.
Total number of pages for the current page size.
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" ], "advanceBookingRateQualifier": null, "arrivalDaysOfWeekRateQualifier": null, "availableDaysOfWeekRateQualifier": null, "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", "departureDaysOfWeekRateQualifier": null, "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" } ], "lastMinuteRateQualifier": null, "lastUpdate": "2026-02-03T16:45:12", "lengthOfStayRateQualifier": null, "masterRateIdentifiers": [ "770e8400-e29b-41d4-a716-446655440222" ], "name": "Early bird", "prepayRateQualifier": null, "pricingType": "PER_PERSON_PER_NIGHT", "promotionRateQualifiers": [ { "promotion": "EARLYBIRD2026" } ], "ratePlanIdentifiers": [ "990e8400-e29b-41d4-a716-446655440444" ], "refundableRateQualifier": null, "requiredDaysOfWeekRateQualifier": null, "roomRangeRateQualifier": null, "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" ], "advanceBookingRateQualifier": null, "arrivalDaysOfWeekRateQualifier": null, "availableDaysOfWeekRateQualifier": null, "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", "departureDaysOfWeekRateQualifier": null, "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" } ], "lastMinuteRateQualifier": null, "lastUpdate": "2026-02-03T16:45:12", "lengthOfStayRateQualifier": null, "masterRateIdentifiers": [ "770e8400-e29b-41d4-a716-446655440222" ], "name": "Early bird", "prepayRateQualifier": null, "pricingType": "PER_PERSON_PER_NIGHT", "promotionRateQualifiers": [ { "promotion": "EARLYBIRD2026" } ], "ratePlanIdentifiers": [ "990e8400-e29b-41d4-a716-446655440444" ], "refundableRateQualifier": null, "requiredDaysOfWeekRateQualifier": null, "roomRangeRateQualifier": null, "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
object
object
Example
Unauthorized — authentication is required or the session has expired
object
object
Example
Forbidden — authenticated but lacking the required permission or scope
object
object
Example
Not Found — the requested resource does not exist
object
object
Example
Method Not Allowed — the HTTP verb is not supported on this endpoint
object
object
Example
Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version
object
object
Example
Unsupported Media Type — use application/json
object
object
Example
Internal Server Error — an unexpected failure occurred on the server
object
object
Example
Service Unavailable — a downstream dependency is unreachable
