Get a single promotion
const url = 'https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/extranet/promotion/550e8400-e29b-41d4-a716-446655440000';const options = { method: 'GET', headers: {'Wink-Version': '2.0', Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/extranet/promotion/550e8400-e29b-41d4-a716-446655440000 \ --header 'Authorization: Bearer <token>' \ --header 'Wink-Version: 2.0'Retrieve a specific promotion by its identifier for the given property.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The unique identifier of the managing entity (property).
Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69The unique identifier of the promotion to retrieve.
Example
550e8400-e29b-41d4-a716-446655440000Header Parameters
Section titled “Header Parameters”Responses
Section titled “Responses”Promotion retrieved successfully.
A lightweight projection of a special rate (promotion) containing all qualifying conditions and metadata.
object
Unique identifier for this record.
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.
Unique identifier of the property this promotion belongs to.
Internal name of promotion.
Set whether you want the price to go up or down when the rules of this promotion have been satisfied.
The discount or premium amount and its type (fixed or percentage).
object
When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.
A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.
A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.
object
Monetary amount value
ISO 4217 currency code
Whether this promotion is enabled or not.
This determines whether this discount should be applied per night, per stay or per person - per night
Simplified localized description containing text content and its language code.
object
Longer text description
Indicate which language this description is written in.
Whether it was user or system generated.
The md5 hash of the name, description and language.
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
GeoNameLightweight identifiers taken from https://geonames.org.
Locale code
Continent code
Continent name
Country ISO code
Country name
City name
Timezone
Sub-division 1 code
Sub-division 1 name
Sub-division 2 code
Sub-division 2 name
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
GeoNames identifier
Continent code (two-letter ISO)
Continent name
Country ISO 3166-1 alpha-2 code
Country name
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.
Qualifier that restricts a promotion to guests whose IP address falls within a specified IPv4 range.
object
Starting IP address of the range (inclusive).
Ending IP address of the range (inclusive).
Restrict promotion by restricting to how many rooms the user wants.
object
Minimum number of rooms in the booking for this promotion to apply.
Maximum number of rooms in the booking. Leave null or 0 for no upper limit.
Restrict promotion to either prepaid / non-prepaid rates.
object
True to apply only to prepaid rates, false to apply only to pay-at-property rates.
Restrict promotion to either refundable / non-refundable rates.
object
True to apply only to refundable rates, false to apply only to non-refundable rates.
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).
Restrict promotion to users who want to book a room close to the date.
object
Number of seconds before the arrival date when the promotion becomes active (last-minute bookings).
Restrict promotion to users who want to stay a certain number of days.
object
Minimum number of nights for promotion to apply. Set to 0 for no minimum.
Maximum number of nights. Set to 0 for no maximum.
Restrict promotion to users who want to book in advance.
object
Minimum days in advance of stay start date when the booking must be made. Set to 0 for no minimum.
Maximum days in advance of stay start date when the booking may be made. Set to 0 for no maximum.
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 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).
Restrict promotion to specific days of the week the promotion is available.
object
The days of the week when this rate is available for booking
object
Set to true to enable Monday.
Set to true to enable Tuesday.
Set to true to enable Wednesday.
Set to true to enable Thursday.
Set to true to enable Friday.
Set to true to enable Saturday.
Set to true to enable Sunday.
Convenience property to quickly determine if this existing object has any active days enabled.
Restrict promotion to specific days of the week the guest is arriving.
object
The days of the week when this rate is available for guests to arrive on
object
Set to true to enable Monday.
Set to true to enable Tuesday.
Set to true to enable Wednesday.
Set to true to enable Thursday.
Set to true to enable Friday.
Set to true to enable Saturday.
Set to true to enable Sunday.
Convenience property to quickly determine if this existing object has any active days enabled.
Restrict promotion to specific days of the week the guest is departing.
object
The days of the week when the guest is allowed to depart
object
Set to true to enable Monday.
Set to true to enable Tuesday.
Set to true to enable Wednesday.
Set to true to enable Thursday.
Set to true to enable Friday.
Set to true to enable Saturday.
Set to true to enable Sunday.
Convenience property to quickly determine if this existing object has any active days enabled.
Restrict promotion to specific days of the week the guest has to stay.
object
The days of the week the user has to stay on to get this rate
object
Set to true to enable Monday.
Set to true to enable Tuesday.
Set to true to enable Wednesday.
Set to true to enable Thursday.
Set to true to enable Friday.
Set to true to enable Saturday.
Set to true to enable Sunday.
Convenience property to quickly determine if this existing object has any active days enabled.
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).
Datetime this record was first created
Datetime this record was last updated
Example
{ "id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47", "version": 3, "hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18", "name": "Early bird", "type": "DISCOUNT", "modifier": { "type": "PERCENTAGE", "percent": 0.25, "fixedAmount": { "amount": 1250, "currency": "USD" } }, "enabled": true, "pricingType": "PER_PERSON_PER_NIGHT", "descriptions": [ { "description": "This is a longer description in the specified language.", "language": "en", "creator": "USER", "md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e" } ], "cityRateQualifiers": [ { "city": { "geoNameId": "1609350", "name": "Bangkok", "countryCode": "TH", "latitude": 13.7563, "longitude": 100.5018 } } ], "continentRateQualifiers": [ { "continent": "NA" } ], "countryRateQualifiers": [ { "country": { "geoNameId": "1609350", "name": "Thailand", "isoAlpha2": "TH", "isoAlpha3": "THA", "continentCode": "AS" } } ], "promotionRateQualifiers": [ { "promotion": "EARLYBIRD2026" } ], "ipRangeRateQualifiers": [ { "startIPRange": "192.168.1.0", "endIPRange": "192.168.1.255" } ], "roomRangeRateQualifier": { "minRooms": 1, "maxRooms": 4 }, "prepayRateQualifier": { "prepay": true }, "refundableRateQualifier": { "refundable": true }, "timezoneRateQualifiers": [ { "timezone": "Asia/Bangkok" } ], "lastMinuteRateQualifier": { "seconds": 1440 }, "lengthOfStayRateQualifier": { "minLOS": 3, "maxLOS": 30 }, "advanceBookingRateQualifier": { "minAdvanceBookingOffset": 7, "maxAdvanceBookingOffset": 365 }, "stayDateRateQualifiers": [ { "effectiveDate": "2026-06-01", "expireDate": "2026-08-31" } ], "sellDateRateQualifiers": [ { "effectiveDate": "2026-05-01", "expireDate": "2026-08-31" } ], "availableDaysOfWeekRateQualifier": { "daysOfWeek": { "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": true, "sun": true, "disabled": true } }, "arrivalDaysOfWeekRateQualifier": { "daysOfWeek": { "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": true, "sun": true, "disabled": true } }, "departureDaysOfWeekRateQualifier": { "daysOfWeek": { "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": true, "sun": true, "disabled": true } }, "requiredDaysOfWeekRateQualifier": { "daysOfWeek": { "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": true, "sun": true, "disabled": true } }, "masterRateIdentifiers": [ "770e8400-e29b-41d4-a716-446655440222" ], "addOnIdentifiers": [ "880e8400-e29b-41d4-a716-446655440333" ], "ratePlanIdentifiers": [ "990e8400-e29b-41d4-a716-446655440444" ], "blackoutDates": [ { "effectiveDate": "2026-04-13", "expireDate": "2026-04-15" } ], "createdDate": "2026-01-14T09:30:00", "lastUpdate": "2026-02-03T16:45:12"}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
