Getting startedProperty status

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.

Note: You can download the launch kit here.

After you have integrated this capability, please share your feedback here. Your feedback is valuable to us and will be shared directly with the Product teams responsible for delivering new API features and functionality.

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.

CheckpointSource APIMinimum requirement
BEXHasStopSellDisabled
HasProviderConfigured
BEXHasPropertyOnboarded, which relies on all of the following checkpoints:
HasActiveImagesImage APIAt least six active images were provided.
HasActiveRoomProduct APIAt least one room type with an active rate plan was created.
HasBathroomCountProperty API or Product APIRequired 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.
HasBedroomCountProperty API or Product API

Number of bedrooms were specified.

  • If the property has separate bedrooms, push property-level attribute NUMBER_OF_BEDROOMS and room-level attributes ROOM_SEPARATE_BEDROOM and NUMBER_OF_BEDROOMS
  • If the property does not have separate bedrooms, such as a studio, push property-level attribute NO_NUMBER_OF_BEDROOMS and room-level attribute ROOM_NO_SEPARATE_BEDROOM
HasBusinessModelProperty APIBusiness model (distributionModels) is set.
HasCheckInInstructionsProperty APIWhether 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.
HasContactProperty APIAt least a contact's first name, last name, and email address are provided. Set contacts as necessary.
HasCurrencyCodeProperty APIA currency code has been provided. Set currencyCode as necessary.
HasInventoryAvailability and Rates APIAt least one room type has inventory of at least one room available in the next 365 days (maximum availability is recommended).
HasLatLongProperty APILatitude and longitude are provided. Set latitude and longitude as necessary.
HasPhoneProperty APIProperty phone number is provided. Cannot be null; Numeric total length 6-20 characters. Set contacts as necessary.
HasPropertyNameProperty APIProperty name is provided. Set name as necessary.
HasPropertyTaxes, which relies on these checkpoints:
      HasLodgingTaxProperty APIProperty has taxes defined (any tax offered by the Property API). Set taxes as necessary.
      HasTaxEntityNameProperty APIProperty has taxes defined (any tax offered by the Property API). Set taxes as necessary.
      IsRegisteringTaxIdProperty APIProperty has taxes defined (any tax offered by the Property API). Set taxes as necessary.
      HasTaxIdProperty APIProperty has taxes defined (any tax offered by the Property API). Set taxes as necessary.
      IsTaxIdValidProperty APIProperty has taxes defined (any tax offered by the Property API). Set taxes as necessary.
HasRegulatoryProduct APIRegulatory 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.
HasStructureTypeProperty APIStructure (property) type is set. Set structureType as necessary.
HasAddress, which relies on the following checkpoints:
      HasAddressLine1Property APIMust be 2-80 English alphanumerical characters including the street name, if available. Set address > line1, if necessary.
      HasAddressLine2Property APINot required for all properties. Must be between 2-80 characters, if present. Set address > line2, if necessary.
      HasCityProperty APIMust be 2-80 English characters alphanumeric in length. Set address > city, if necessary.
      HasCountryProperty APISpecify 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.
      HasPostalCodeProperty APIMust be between 3-20 characters, if present. Set address > postalCode, if necessary.
      HasProvinceProperty APINot required for all properties. Must be between 2-40 characters, if present. Set address > state, if necessary.
      HasValidatedAddressProperty APILatitude and longitude coordinates match the specified address details.
HasAmenities, which relies on the following checkpoints:
      HasBathroomTypeProperty API or Product APISpecify ROOM_BATHROOM_TYPE and detailCode, if necessary.
      HasBreakfastProperty APIRequired for conventional lodging only. Specify BREAKFAST or NO_BREAKFAST and detailCode, if necessary.
      HasBuildingFeaturesProperty APIThe number of bookable units within the property. Specify TOTAL_ROOMS and value, if necessary.
      HasCheckInCheckOutProperty APICheck-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.
      HasGuestFacilitiesAndServicesProperty APISpecify 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.
      HasInternetProperty APIMust 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.
      HasKitchenProperty API or Product APIRequired for vacation rentals only. Specify kitchen type available. Specify one of these: ROOM_KITCHEN and detailCode or ROOM_NO_KITCHEN.
      HasKitchenFeaturesProperty API or Product APIRequired 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.
      HasMandatoryFeesFacilitiesAndServicesProperty 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: CLEANING_FEE and detailCode, NO_CLEANING_FEE, or CLEANING_FEE_IN_RATE (policies section).

      HasParkingTransportProperty API

Specify parking and transportation amenities available. Specify at least one of these: SELF_PARKING and detailCode, NO_SELF_PARKING, VALET_PARKING and detailCode, or NO_VALET_PARKING.

And then specify one of these: ELECTRIC_CAR_CHARGING_STATION or NO_ELECTRIC_CAR_CHARGING_STATION.

      HasPaymentMethodProperty 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: ACCEPTS_AMERICAN_EXPRESS, ACCEPTS_CARTE_BLANCHE, ACCEPTS_DINERS_CLUB, ACCEPTS_DISCOVER, ACCEPTS_JCB_INTERNATIONAL, ACCEPTS_MASTERCARD, ACCEPTS_VISA, FORMS_OF_PAYMENT_ACCEPTED | CASH, or FORMS_OF_PAYMENT_ACCEPTED | DEBIT_CARDS.

      HasPetsProperty APISpecify one of these: PET_POLICY and detailCode or PETS_NOT_ALLOWED.
      HasPoolProperty API

Specify on-site and nearby swimming pools and pool amenities at the property. Specify one of these: POOL_INDOOR and detailCode* or NO_INDOOR_POOL.

And then specify one of these: POOL_OUTDOOR and detailCode* or NO_OUTDOOR_POOL.

And one of these: CHILDRENS_POOL or NO_CHILDRENS_POOL.

And one of these: POOLSIDE_BAR and detailCode* or NO_POOLSIDE_BAR.

* Provide value when selecting MULTIPLE

      HasRoomLayoutProperty API or Product APIDescribe 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.
      HasMandatoryFeesProperty APIIf 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 provided
    • HasActiveRoom - At least one room type has been created
    • HasAddress - 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 specified
    • HasBedroomCount - Number of bedrooms were specified
    • HasBusinessModel - Business model is set
    • HasCheckInInstructions - 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 provided
    • HasCurrencyCode - A currency code has been provided
    • HasInventory - Property has availability
    • HasLatLong- Latitude and longitude are provided
    • HasPhone- Property phone number is provided
    • HasPropertyName- Property name is provided
    • HasPropertyTaxes - Relies on these checkpoints:
      • HasLodgingTax
      • HasTaxEntityName
      • HasTaxId
      • IsRegisteringTaxId
      • IsTaxIdValid
    • HasRegulatory- Regulatory records are provided, if required
    • HasStructureType- 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 the IsPCOPublishSubmitted 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
1query {
2 property(id: "9672235", idSource: EXPEDIA) {
3 ids {
4 id
5 idSource
6 }
7 name
8 activeStatus {
9 active
10 }
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).

1query {
2 property(id: "9672235", idSource: EXPEDIA) {
3 name
4 activeStatus {
5 active
6 statusCheckpoint {
7 name
8 lastEvaluated
9 resolutionStatus
10 checkpoints {
11 name
12 path
13 lastEvaluated
14 resolutionStatus
15 fulfilled
16 }
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.

1query {
2 property(id: "9672235", idSource: EXPEDIA) {
3 name
4 activeStatus {
5 active
6 statusCheckpoint {
7 fulfilled
8 lastEvaluated
9 checkpoints(filter: {result: FAILED}) {
10 name
11 resolutionStatus
12 fulfilled
13 }
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.

1query {
2 property(id: "9672235", idSource: EXPEDIA) {
3 id
4 name
5 address {
6 addressLines
7 locality
8 countryCode
9 postalCode
10 }
11 listings(domains: ["expedia.com"]) {
12 locale
13 url
14 }
15 }
16}