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
name
field on theStatusCheckpoint
type for a complete list.
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.
Download the launch kit here.
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).
Minimum content requirements
Fulfilled and missing content requirements ("checkpoints") can be retrieved. Here are the minimum requirements that correspond to each checkpoint; the update source API can be used to meet requirements, if necessary.
Checkpoint | Update source API | Minimum requirement |
---|---|---|
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. |
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. |
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 . |
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. At the property level, specify NUMBER_OF_BEDROOMS . At the room level, specify ROOM_NUMBER_OF_BATHROOMS . |
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 | 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. |
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}