Product API
ReferenceProduct API

Property resources

The Product API request enables you to read property-level information. The Product API response is transmitted through a synchronous connection to update the property’s system with the status of the Product API request. If a connectivity problem or another issue occurs, an error code will be returned that indicates what issue occurred.

Product API is RESTful and all requests and responses must be sent over a secure connection. All request and response bodies, including errors are encoded in JSON.

To facilitate integrating with Product API, Expedia Group offers a Swagger JSON file file documenting Product API’s model and operations.

Obtain a list of properties

  • Method: GET
  • URL: https://services.expediapartnercentral.com/products/properties
  • Consumes: HTTP Request (GET)
  • Produces: application/vnd.expedia.eps.product-v2+json

Request parameters

ParameterParameter TypeDescriptionRequiredData TypeDefault Value

Authorization

header

Authorization token in HTTP header. Format: Authorization: Basic [username:password encoded by Base64]

Yes

Base64 encoded auth token

status

query

Status filter. String. Only supported value is "all".

false

string

If not provided, API will only return active properties.

offset

query

Pagination offset. Integer starting at 0

false

string

0

limit

query

Pagination limit. Integer between 1 and 200.

false

string

20

Success responses

Status CodeDescriptionResponse Model

200

OK

Property

Read a single property

  • Method: GET
  • URL: https://services.expediapartnercentral.com/products/properties/{propertyId}
  • Consumes: HTTP Request (GET)
  • Produces: application/vnd.expedia.eps.product-v2+json

Request parameters

ParameterParameter TypeDescriptionRequiredData Type

Authorization

header

Authorization token in HTTP header. Format: Authorization: Basic [username:password encoded by Base64]

Yes

Base64 encoded auth token

propertyId

path

Expedia Property ID

Yes

string

Success responses

Status CodeDescriptionResponse Model

200

OK

Property

Definitions

Property resource definition

Property NameTypeDescription

resourceId

integer

Expedia property ID.

name

string

Name describing the property. Maximum 255 characters.

partnerCode

string

Partner property code/identifier. Maximum 64 characters. Optional field returned for connected properties. This code allows you to uniquely identify the property in your system.

status

string

Status in which the property can be in. Allowed values:

  • Active
  • Inactive
  • Onboarding
  • UnderConversion

currency

string

Currency code applicable to all amounts found in any resources available as part of Product API. The code is the 3-letter currency code assigned to the property, based on theISO-4217 specification.

Data type, string

Example: "USD" (for US dollars), "CAD" (for Canadian dollars), etc.

address

PropertyAddress

Property address details.

distributionModels

Array[Enum]

Distribution model(s) under which the property is configured to work with Expedia. Possible values: ExpediaCollect, HotelCollect.

Properties that have opted into the Expedia Traveler Preference program will have both.

rateAcquisitionType

Enum

Describes which type of rate will be provided via this API, but also which type of rate should be used when managing availability and rates in Partner Central or using Expedia Group's other APIs. Possible values:

  • NetRate (rate net of Expedia Group's compensation)
  • SellLAR (rate inclusive of compensation)

taxInclusive

Boolean

Returned to indicate whether the rate being exchanged over other APIs (availability/rates or booking) is inclusive of taxes or not.

pricingModel

Enum

Configuration of the property when it comes to pricing rooms and rates. Possible values:

  • PerDayPricing
  • OccupancyBasedPricing

This list is different from the rate plan pricing model list, as rate plans can have more detailed pricing schemes (arrival and length of stay).

baseAllocationEnabled

Boolean

Boolean to indicate whether this property has a base allocation contract with Expedia.

cancellationTime

string

Cancellation deadline reference time. When cancel policies are defined and exchanged via the rate plan resource, a deadline in hours is provided. The deadline in hours is always relative to this property cancellation deadline reference time configuration.

timezone

string

Descriptive information about property time zone configuration in Expedia Group system. The description will start with a GMT offset, followed by a more user-friendly name. Any configuration or settings related to date or time for a property will always be relative to this time zone. Examples of such configurations include property cancellation time and property reservation cutoff time.

Example: "(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London"

reservationCutOff

CutOff

Used to indicate when we stop making rate plans available to book for same day reservations. Expedia Group can configure properties to accept last minute bookings up until 5:00 AM on the next day.

Example: If configured this way, a property would accept that Expedia Group uses availability and rates from September 1st, and sell it up until September 2nd, 5:00 AM (based on property timezone).

allowedAgeCategories

Array[Enum]

Age Categories that are permitted for this property. Possible values are:

  • Adult
  • ChildAgeA
  • ChildAgeB
  • ChildAgeC
  • ChildAgeD
  • Infant

CutOff resource definition

Property NameTypeDescription

time

string

Indicates at which time Expedia Group will stop making inventory available for same day reservations

day

string

Can take one of two values: sameDay or nextDay. It complements the time attribute.

PropertyAddress resource definition
Property NameTypeDescription

line1

string

First line of address.

line2

string

Optional. Second line of address.

city

string

City in which the property is located.

state

string

Optional. State/Province.

postalCode

string

Optional. Postal or State Code.

countryCode

string

ISO 3166-1Alpha 3 country code, of the country where the property is located.

Examples

This section contains sample messages illustrating how to interact with Product API.

This section contains examples on how to query the property resource of the product API.

The property read function allows you to retrieve several important settings related to your properties’ configuration in Expedia Group’s system. Some of these settings will help you better understand how to manage room type and rate plan resources.

It also enables you to find out which properties are currently assigned to your accounts, by simply calling the /properties endpoint and iterating through all the properties returned.

Single property read

Request is a simple HTTP GET:

GET https://services.expediapartnercentral.com/products/properties/2268140
Content-Type: application/vnd.expedia.eps.product-v2+json
Accept: application/vnd.expedia.eps.product-v2+json
Authorization: Basic [your encoded username:password in base64]

Response:

1{
2 "entity": {
3 "resourceId": 2268140,
4 "name": "Eslington Villa",
5 "parnerCode": "ABC123",
6 "status": "Active",
7 "currency": "GBP",
8 "address": {
9 "line1": "199 Some Street",
10 "line2": null,
11 "city": "Glasgow",
12 "state": null,
13 "postalCode": "12345",
14 "countryCode": "GBR"
15 },
16 "distributionModels": [
17 "ExpediaCollect",
18 "HotelCollect"
19 ],
20 "rateAcquisitionType": "SellLAR",
21 "taxInclusive": true,
22 "pricingModel": "PerDayPricing",
23 "baseAllocationEnabled": false,
24 "cancellationTime": "18:00",
25 "timezone": "(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London",
26 "reservationCutOff": {
27 "time": "05:00",
28 "day": "nextDay"
29 },
30 "allowedAgeCategories": [
31 "Adult",
32 "ChildAgeA",
33 "Infant"
34 ]
35 }
36}

Multiple properties read

When using GET for multiple properties, additional parameters can be provided to navigate through the result set. By default, only 20 properties are returned at a time. If you have more than 20 properties assigned to your accounts and want to get through all your properties, you have to use offset and limit parameters. For example, if you want to get 3 results at a time would do a request like this:

GET https://services.expediapartnercentral.com/products/properties?offset=0&limit=3
Content-Type: application/vnd.expedia.eps.product-v2+json
Accept: application/vnd.expedia.eps.product-v2+json
Authorization: Basic [your encoded username:password in base64]

The Product API will sort all properties assigned to this account by resourceId, ascending, and return the 3 lowest property resource IDs.

Response:

1{
2 "entity": [
3 {
4 "resourceId": 2268142,
5 "name": "Eslington Villa",
6 "parnerCode": "ABC123",
7 "status": "Active",
8 "currency": "GBP",
9 "address": {
10 "line1": "199 Some Street",
11 "city": "Glasgow",
12 "postalCode": "PL99A9",
13 "state": "Scotland",
14 "countryCode": "GBR"
15 },
16 "distributionModels": [
17 "ExpediaCollect", "HotelCollect"
18 ],
19 "rateAcquisitionType": "SellLAR",
20 "taxInclusive": true,
21 "pricingModel": "PerDayPricing",
22 "baseAllocationEnabled": false,
23 "cancellationTime": "18:00",
24 "timezone": "(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London",
25 "reservationCutOff": {
26 "time": "05:00",
27 "day": "nextDay"
28 },
29 "allowedAgeCategories": [
30 "Adult",
31 "ChildAgeA",
32 "Infant"
33 ]
34 }, {
35 "resourceId": 2268141,
36 "name": "Hotel Downtown",
37 "parnerCode": "DEF456",
38 "status": "Active",
39 "currency": "CAD",
40 "address": {
41 "line1": "299 Some Other Street",
42 "line2": "with a very long name",
43 "city": "Montreal",
44 "state": "Quebec",
45 "postalCode": "H11H1H",
46 "countryCode": "CAN"
47 },
48 "distributionModels": [
49 "ExpediaCollect"
50 ],
51 "rateAcquisitionType": "SellLAR",
52 "taxInclusive": false,
53 "pricingModel": "OccupancyBasedPricing",
54 "baseAllocationEnabled": false,
55 "cancellationTime": "18:00",
56 "timezone": "(GMT-05:00) Eastern Time (US & Canada)",
57 "reservationCutOff": {
58 "time": "23:59",
59 "day": "sameDay"
60 },
61 "allowedAgeCategories": [
62 "Adult",
63 "ChildAgeA",
64 "Infant"
65 ]
66 }, {
67 "resourceId": 2268140,
68 "name": "Villa by the Sea",
69 "parnerCode": "GHI789",
70 "status": "Active",
71 "currency": "EUR",
72 "address": {
73 "line1": "299 Some Other Street",
74 "city": "Palma de Mallorca",
75 "postalCode": "7610",
76 "countryCode": "ESP"
77 },
78 "distributionModels": [
79 "ExpediaCollect", "HotelCollect"
80 ],
81 "rateAcquisitionType": "SellLAR",
82 "taxInclusive": true,
83 "pricingModel": "OccupancyBasedPricing",
84 "baseAllocationEnabled": false,
85 "cancellationTime": "18:00",
86 "timezone": "(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",
87 "reservationCutOff": {
88 "time": "05:00",
89 "day": "nextDay"
90 },
91 "allowedAgeCategories": [
92 "Adult",
93 "ChildAgeA",
94 "Infant"
95 ]
96 }
97 ]
98}

You can then iterate through your properties by increasing the offset parameter. To get the next 3 properties, you would issue a GET with offset=3, limit=3:

GET https://services.expediapartnercentral.com/products/properties?offset=3&limit=3

To get the next results, offset would become 6:

GET https://services.expediapartnercentral.com/products/properties?offset=6&limit=3