Intro to property status
The property status capability is provided by the Lodging Supply GraphQL API, and it enables Expedia and Vrbo partners to retrieve property information from our systems, including the following:
- Status (active or inactive) of a property on the Expedia platform.
- Point-of-sale URLs of the property's listings on the Expedia platform.
- Fulfilled and missing content requirements (referred to as "checkpoints")
Refer to the property query reference for details.
If you are unfamiliar with GraphQL concepts, such as queries and mutations, read this overview to learn more.
Limitations
Be aware of these as you integrate the property status capability:
- Property status resources are accessible only after property creation is completed in our systems. For properties that are newly onboarded and set up using Property API, this API capability can only return information after the OnboardingSucceeded status is reached.
- Not all checkpoints are included in every response when checkpoints are requested because not all checkpoints apply to all properties. The list of documented checkpoints may change over time, therefore assumptions about the presence of any of the checkpoints should not be built into logic.
- Property updates that are made to fulfill checkpoints may take up to five hours to reflect in the query results.
- The rate limit is currently set to five transactions per second (TPS).
Checkpoints
Fulfilled and missing content requirements ("checkpoints") can be retrieved using the property
query. This section lists the checkpoints that may be returned.
Minimum content requirements
The following is a list of checkpoints that correspond to minimum content requirements, which must be met for a property to go live on an Expedia site.
Checkpoint | Source API | Minimum requirement | |
---|---|---|---|
BEXHasStopSellDisabled | |||
HasProviderConfigured | |||
BEXHasPropertyOnboarded, which relies on all of the following checkpoints: | |||
HasActiveImages | Image API | At least six active images were provided. | |
HasActiveRoom | Product API | At least one room type with an active rate plan was created. | |
HasBathroomCount | Property API or Product API | Required for vacation rentals only. Total number of bathrooms at property level (Property API) or room level (Product API) At the property level, specify NUMBER_OF_BATHROOMS . At the room level, specify ROOM_NUMBER_OF_BATHROOMS . | |
HasBedroomCount | Property API or Product API | Number of bedrooms were specified.
| |
HasBusinessModel | Property API | Business model (distributionModels ) is set. | |
HasCheckInInstructions | Property API | Whether text specified in the Property API's paragraphs field has been moderated, if text is specified. Special check-in instructions are optional. If necessary to specify, set paragraphs > code DESCRIPTION & value . We will auto-route information to structured fields, where possible. | |
HasContact | Property API | At least a contact's first name, last name, and email address are provided. Set contacts as necessary. | |
HasCurrencyCode | Property API | A currency code has been provided. Set currencyCode as necessary. | |
HasInventory | Availability and Rates API | At least one room type has inventory of at least one room available in the next 365 days (maximum availability is recommended). | |
HasLatLong | Property API | Latitude and longitude are provided. Set latitude and longitude as necessary. | |
HasPhone | Property API | Property phone number is provided. Cannot be null; Numeric total length 6-20 characters. Set contacts as necessary. | |
HasPropertyName | Property API | Property name is provided. Set name as necessary. | |
HasPropertyTaxes, which relies on these checkpoints: | |||
HasLodgingTax | Property API | Property has taxes defined (any tax offered by the Property API). Set taxes as necessary. | |
HasTaxEntityName | Property API | Property has taxes defined (any tax offered by the Property API). Set taxes as necessary. | |
IsRegisteringTaxId | Property API | Property has taxes defined (any tax offered by the Property API). Set taxes as necessary. | |
HasTaxId | Property API | Property has taxes defined (any tax offered by the Property API). Set taxes as necessary. | |
IsTaxIdValid | Property API | Property has taxes defined (any tax offered by the Property API). Set taxes as necessary. | |
HasRegulatory | Product API | Regulatory records are provided, if required. Set regulatoryRecords as necessary, and use the compliance capability to determine and address issues at a unit (room type) level. | |
HasStructureType | Property API | Structure (property) type is set. Set structureType as necessary. | |
HasAddress, which relies on the following checkpoints: | |||
HasAddressLine1 | Property API | Must be 2-80 English alphanumerical characters including the street name, if available. Set address > line1 , if necessary. | |
HasAddressLine2 | Property API | Not required for all properties. Must be between 2-80 characters, if present. Set address > line2 , if necessary. | |
HasCity | Property API | Must be 2-80 English characters alphanumeric in length. Set address > city , if necessary. | |
HasCountry | Property API | Specify property's country code using ISO 3166-1 alpha-2 or alpha-3. (stored in Expedia Group's system as alpha-3). Set address > countryCode , if necessary. | |
HasPostalCode | Property API | Must be between 3-20 characters, if present. Set address > postalCode , if necessary. | |
HasProvince | Property API | Not required for all properties. Must be between 2-40 characters, if present. Set address > state , if necessary. | |
HasValidatedAddress | Property API | Latitude and longitude coordinates match the specified address details. | |
HasAmenities, which relies on the following checkpoints: | |||
HasBathroomType | Property API or Product API | Specify ROOM_BATHROOM_TYPE and detailCode , if necessary. | |
HasBreakfast | Property API | Required for conventional lodging only. Specify BREAKFAST or NO_BREAKFAST and detailCode , if necessary. | |
HasBuildingFeatures | Property API | The number of bookable units within the property. Specify TOTAL_ROOMS and value , if necessary. | |
HasCheckInCheckOut | Property API | Check-in time, check-out time, and front desk policy. Specify CHECKIN_START_TIME and CHECKOUT_TIME and at least one of these: NO_FRONT_DESK , 24_HOUR_FRONT_DESK , LIMITED_CHECK_IN , FRONT_DESK_DAY_RANGE_START_DAY , FRONT_DESK_DAY_RANGE_END_DAY , FRONT_DESK_DAY_RANGE_START_TIME , or FRONT_DESK_DAY_RANGE_END_TIME . | |
HasGuestFacilitiesAndServices | Property API | Specify at least one guest services code, which describes on-site services available to guests at the property. Specify at least one of these: SMOKING_POLICY and detailCode , DRY_CLEANING , NO_DRY_CLEANING , CONCIERGE , NO_CONCIERGE , LAUNDRY_FACILITIES , NO_LAUNDRY_FACILITIES , LUGGAGE_STORAGE , NO_LUGGAGE_STORAGE , SAFE_DEPOSIT_AT_FRONT_DESK , or NO_SAFE_DEPOSIT_AT_FRONT_DESK . | |
HasInternet | Property API | Must provide at least one code describing the available internet access options, in public areas and in-room. Specify at least one of these: WIFI_INTERNET and detailCode , NO_WIFI , WIRED_INTERNET and detailCode , or NO_WIRED_INTERNET . | |
HasKitchen | Property API or Product API | Required for vacation rentals only. Specify kitchen type available. Specify one of these: ROOM_KITCHEN and detailCode or ROOM_NO_KITCHEN . | |
HasKitchenFeatures | Property API or Product API | Required for vacation rentals only. Specify kitchen appliances and equipment. Specify at least one of these: ROOM_REFRIGERATOR and detailCode , ROOM_NO_REFRIGERATOR , ROOM_MICROWAVE and detailCode , ROOM_NO_MICROWAVE , ROOM_STOVETOP and detailCode , ROOM_NO_STOVETOP , ROOM_OVEN and detailCode , ROOM_NO_OVEN , ROOM_DISHWASHER and detailCode , or ROOM_NO_DISHWASHER . | |
HasMandatoryFeesFacilitiesAndServices | Property API | Required for vacation rentals only. This checkpoint accounts for fees that guests are required to pay on-site at the property. Fees collected at the time of booking must be defined via Product API Rate plan-level Service fees. Specify one of these: | |
HasParkingTransport | Property API | Specify parking and transportation amenities available. Specify at least one of these: And then specify one of these: | |
HasPaymentMethod | Property API | Specify payment options available. Note that if the property does not accept one of the payment methods, specify the negative version of the attribute. For example, if all methods but AMEX are accepted, specify all the ACCEPTS_ attributes and NO_AMERICAN_EXPRESS. Specify at least one of these: | |
HasPets | Property API | Specify one of these: PET_POLICY and detailCode or PETS_NOT_ALLOWED . | |
HasPool | Property API | Specify on-site and nearby swimming pools and pool amenities at the property. Specify one of these: And then specify one of these: And one of these: And one of these: * Provide value when selecting MULTIPLE | |
HasRoomLayout | Property API or Product API | Describe the physical characteristics in the rooms or unit guests can book for their stay. Specify at least one of these: NUMBER_OF_BEDROOMS , NO_NUMBER_OF_BEDROOMS , ROOM_SEPARATE_DINING_AREA , ROOM_NO_SEPARATE_DINING_AREA , ROOM_LIVING_ROOM , ROOM_NO_LIVING_ROOM , ROOM_SEPARATE_SITTING_AREA , ROOM_NO_SEPARATE_SITTING_AREA , ROOM_BALCONY and detailCode , ROOM_NO_BALCONY , ROOM_DESK , ROOM_NO_DESK , ROOM_PRIVATE_POOL and detailCode , or ROOM_NO_PRIVATE_POOL . | |
HasMandatoryFees | Property API | If mandatory fees are not defined, the property should cannot be onboarded. |
Checkpoints for Expedia properties
The following is an alphabetized list of checkpoints may be met for properties onboarded on Expedia:
Important: Not all checkpoints are included in every query response, and **this list may not be definitive**. Assumptions about the presence of any of these checkpoints should not be built into logic.
BEXHasPropertyOnboarded
- Relies on the following checkpoints:HasActiveImages
- At least six images were providedHasActiveRoom
- At least one room type has been createdHasAddress
- Relies on the following checkpoints:HasAddressLine1
HasAddressLine2
HasCity
HasCountry
HasPostalCode
HasProvince
HasValidatedAddress
HasAmenities
- Relies on these checkpoints:HasBathroomType
HasBreakfast
(for conventional lodging only)HasBuildingFeatures
HasCheckInCheckOut
HasGuestFacilitiesAndServices
HasInternet
HasKitchen
(for vacation rentals only)HasKitchenFeatures
(for vacation rentals only)HasMandatoryFeesFacilitiesAndServices
(for vacation rentals only)HasParkingTransport
HasPaymentMethod
HasPets
HasPool
HasRoomLayout
HasMandatoryFees
HasBathroomCount
- Number of bathrooms were specifiedHasBedroomCount
- Number of bedrooms were specifiedHasBusinessModel
- Business model is setHasCheckInInstructions
- Whether text specified in the Property API's SPECIAL_CHECKIN_INSTRUCTIONS field has been moderated, if text is specified (special instructions are optional)HasContact
- At least a contact's first name, last name, and email address are providedHasCurrencyCode
- A currency code has been providedHasInventory
- Property has availabilityHasLatLong
- Latitude and longitude are providedHasPhone
- Property phone number is providedHasPropertyName
- Property name is providedHasPropertyTaxes
- Relies on these checkpoints:HasLodgingTax
HasTaxEntityName
HasTaxId
IsRegisteringTaxId
IsTaxIdValid
HasRegulatory
- Regulatory records are provided, if requiredHasStructureType
- Structure (property) type is set
BEXHasStopSellDisabled
- No external services have set stop-sell on the property. This checkpoint is generated internally and cannot be updated by the partner.BEXPropertyIsEnabledPredicate
- Top-level checkpoint and "container" of all others.HasProviderConfigured
- An active provider exists for the property. This checkpoint is generated internally by Expedia based on internal processes; it cannot be updated by the partner. Contact your Technical Relationship Manager if you have issues with this checkpoint.IsNotPCOOnboarded
- The property has not completed the prelive step of Partner Central Onboarding. If this is fulfilled,IsPCOPublishSubmitted
is not required. This checkpoint is generated internally and cannot be updated by the partner, and it is not applicable for properties that were onboarded using the API.IsPCOOnboarded
- The property has completed the prelive step of Partner Central Onboarding, which determines if theIsPCOPublishSubmitted
checkpoint is required. This checkpoint is generated internally and cannot be updated by the partner, and it is not applicable for properties that were onboarded using the API.IsPCOPublishSubmitted
- The partner has clicked the "publish" button at the end of Partner Central Onboarding. This checkpoint is generated internally and cannot be updated by the partner.
Minimum certification requirements
To adopt the property status capability, you must successfully complete end-to-end certification with Expedia Group teams. Specifically, you must be able to retrieve property information from our systems, including the following:
- Status (active or inactive) of a property on the Expedia platform.
- Fulfilled and missing content requirements (referred to as "checkpoints"); see above
Retrieving status and IDs
Use this query to determine whether an Expedia property is active and to retrieve its IDs. An Expedia property is inactive if one of these conditions is true:
- Payment issues or overdue invoices
- Compliance issues due to regulatory or tax mandates
- Recontracting or change of ownership
- Incomplete onboarding
- Renovations
- Request
- Response
1query {2 property(id: "9672235", idSource: EXPEDIA) {3 ids {4 id5 idSource6 }7 name8 activeStatus {9 active10 }11 }12}
Retrieving all content checkpoints
Use this query to retrieve the content checkpoints (found and fulfilled content requirements) for a property. Note the lastEvaluated
field, which indicates when the checkpoint was last evaluated (checkpoints are evaluated every five hours).
- Request
- Response
1query {2 property(id: "9672235", idSource: EXPEDIA) {3 name4 activeStatus {5 active6 statusCheckpoint {7 name8 lastEvaluated9 resolutionStatus10 checkpoints {11 name12 path13 lastEvaluated14 resolutionStatus15 fulfilled16 }17 }18 }19 }20}
Determining missing content
Use this query to determine why a property is inactive and not displayed on Expedia sites. It retrieves the checkpoints that are unfulfilled.
- Request
- Response
1query {2 property(id: "9672235", idSource: EXPEDIA) {3 name4 activeStatus {5 active6 statusCheckpoint {7 fulfilled8 lastEvaluated9 checkpoints(filter: {result: FAILED}) {10 name11 resolutionStatus12 fulfilled13 }14 }15 }16 }17}
Retrieving location and listing URLs
Use this query to retrieve a property's address and listing URLs on the Expedia and Vrbo platforms.
- Request
- Response
1query {2 property(id: "9672235", idSource: EXPEDIA) {3 id4 name5 address {6 addressLines7 locality8 countryCode9 postalCode10 }11 listings(domains: ["expedia.com"]) {12 locale13 url14 }15 }16}