Retrieves information about a single property's promotions. You can retrieve all active promotions for a property, or you can retrieve a single promotion. Promotions include single, day-of-week, and multi-night discounts. Each promotion has an assigned promotion ID that can be used for subsequent management.
Information is returned at the property level, not the unit level.
Note: The promotions query is nested under the property query, which provides access to other capabilities, such as property status and reservations. However, you must be granted access to each capability before you can code to it. Contact your Technical Relationship Manager if you are interested in more than promotions.
Use the interactive GraphQL explorer in the following sections to run a sample query. A test property ID is passed into the explorer; its test data is returned. The GraphQL explorer will help you get comfortable with the GraphQL:
For each query, a test property ID is passed into the explorer; its test data is returned.
Click Run Query to execute the query in the explorer on the page. You can modify the query to retrieve the desired fields, and the explorer provides a list of fields when you start typing.
Click API Explorer to launch the full explorer in another tab/window, which provides syntax highlighting, schema introspection, real-time error highlighting, and auto-completion, among other things.
Day-of-week discounts enable partners to set discount percentages for specific
days of the week. The day fields specify the discount for that day of the week
for the travel dates (such as Mondays at 15%, Tuesdays at 10% discount).
Exception (blackout) dates for which the promotion should NOT apply. This
field is only returned when querying for a single promotion (by specifying the promotion ID).
Promotion code that travelers will use to apply the promotion. This field is
returned in our booking APIs if a reservation is created for a product that
has an active promotion. It is returned in PromotionCode for the Booking
Notification API and in promoName for Booking Retrieval API. Note that only
these characters are supported: a-z, A-Z, 0-9, ., ,, ', :, !, ?, $, %, (, ),
/, -, and space.
Whether the promotion is currently bookable based on the its reservation
date/time range. This field is supported in queries only. All dates and times
are relative to the property’s time zone. The promotion may still be
unavailable due to other restrictions. At the time of querying, if the
promotion's bookingLocalDateTimeFrom and bookingLocalDateTimeTo values are
in the past but the travelDateFrom and travelDateTo values are in the
future, the promotion is considered expired because the promotion can no
longer be made available.
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
ID
ID
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
IdSource
Enum
Source of a given ID.
Name
Description
EXPEDIA
Expedia is the source of the ID.
SUPPLIER
Connectivity provider or lodging partner is the source of the ID. This value is not supported for use in promotions.
VRBO
Unsupported.
Int
Int
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
LocalDate
LocalDate
A type representing a date in ISO 8601 format: YYYY-MM-DD (such as 2007-12-03).
LocalDateTime
LocalDateTime
A type representing a date and time (such as 2007-12-03T10:15:30).
LocalTime
LocalTime
Scalar representing a time in this format: HH:mm:ss or HH:mm (such as 10:15:30 or 10:15).
MultiNightDiscount
Object
Multi-night discounts offer percentage-based discounts for applicable nights (such as 15% off a third night).
Field
Description
applicableNight
Not nullable.
Value of the applicable night to which the discount is applied. Permitted values are 2 to 28.
Whether the discount applied on the applicable night is recurring. For
example, if applicableNight is set to 3 and isRecurring is set to true,
the discount will be applied to the third, sixth, ninth nights (and so on).
Additional discount that is added to value for members only. For example, if
value is 10, unit is PERCENT, and memberOnlyAdditionalValue is 5,
members are offered 15 percent off.
Whether the promotion is currently bookable based on the its reservation
date/time range. This field is supported in queries only. All dates and times
are relative to the property’s time zone. The promotion may still be
unavailable due to other restrictions. At the time of querying, if the
promotion's bookingLocalDateTimeFrom and bookingLocalDateTimeTo values are
in the past but the travelDateFrom and travelDateTo values are in the
future, the promotion is considered expired because the promotion can no
longer be made available.
Priced (discount) promotion. That is, the traveler benefit here is monetary savings via promotions.
PromotionName
Enum
Name
Description
BASIC_PROMOTION
Flexible offer with restrictions defined by the connectivity or lodging
partner. You can specify this value when creating or updating single and
day-of-week discounts.
EARLY_BOOKING_PROMOTION
Discount offered to travelers who want to book early. You can specify this
value when creating or updating single and day-of-week discounts only.
MULTI_NIGHT_PROMOTION
Multi-night discount that offers a percentage-based discount for applicable
nights. You can specify this value when creating or updating multi-night
discounts only.
SAME_DAY_PROMOTION
Discount offered to attract last-minute travelers by setting up a recurring
deal when the travel date is the same as the booking date. You can specify
this value when creating or updating single discounts only.
Values to indicate whether a promotion is currently bookable based on the its reservation date/time range.
Name
Description
EXPIRED
Promotion cannot be booked because today’s date is after the promotion's bookingLocalDateTimeTo.
CURRENT
Promotion can be booked because today’s date is between the promotion's
bookingLocalDateTimeFrom and .bookingLocalDateTimeTo.
FUTURE
Promotion cannot be booked yet because today's date is before the promotion's
bookingLocalDateTimeFrom. However, this promotion will become available to
book in the future.
PromotionStatus
Enum
Name
Description
ACTIVE
INACTIVE
Property
Object
Representation of a physical property, including its units, reservations, and promotions.
Field
Description
promotions
List of promotions that matches the specified arguments. You can specify these arguments:
filter (type: FiltersInput), which enables you to refine the promotions to
retrieve. Note that if you filter results by promotion ID, you cannot specify
addition filters.
pageSize (type: Int!), which is required and specifies the maximum number
of promotions on each page (up to 25) returned by the response. For example,
if there are 40 promotions on a property, you can retrieve two pages if this
argument is set to 25 (page 1 includes 25 promotions, page 2 includes 15 promotions).
after (type: String), which is the cursor from the previous query response
that marked the end of the previous page of results.
Beginning of the date range (inclusive) when the reservation can be made in
order for this promotion to be applicable. Format is YYYY-MM-DDThh:mm:ss, in
the property’s local time zone.
End of the date range (inclusive) when the reservation can be made in order
for this promotion to be applicable. Format is YYYY-MM-DDThh:mm:ss, in the
property’s local time zone.
Whether this promotion is applicable only to travelers booking on the mobile
device. This field is returned when querying for a single promotion only (by
specifying the promotion ID).
Discount that offers a percentage off a rate (such as 15% off).
Field
Description
memberOnlyAdditionalValue
Value of member-only discount applied. For example, if the regular discount is
10% and memberOnlyAdditionalValue is set to 5, a member will receive a 15%
discount and a non-member will receive a 10% discount.
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
TravelDateInput
InputObject
Field
Description
from
Start date of the travel window (format: YYYY-MM-DD).