Lodging Listings API
The Lodging Listings API allows travellers on your website to search Expedia lodging inventory by Location Keyword, Region ID, Lat/Long, or Hotel ID(s) and return up to 1,000 offers per response. Travellers will then be able to deeplink from your website to the Expedia website to complete their travel booking.
How to make a Lodging Listings API call
Request Url
curl https://apim.expedia.com/hotels/listings
Required Headers
- Accept: application/vnd.exp-hotel.v3+json
- Key: Expedia API key
- Authorization: More info on Authorization String Creation
- Partner-Transaction-Id: Partner TransactionID String
Optional Headers
- Accept-Encoding: gzip
Request Parameter
Minimum request parameters
- Search Type - You can make a request using one of the following types.
- Search by Hotel ID's
- Search by Latitude & Longitude
- Search by Location Keyword
- Search by Expedia Region ID
- checkIn & checkOut
Parameter | Sample | Description |
---|---|---|
ecomHotelIds | 28082,11133 | Comma-separated list of Expedia hotel IDs. There can be no spaces between parameters. |
geoLocation | 40.714269,-74.005973 | Use latitude and longitude (separated by a comma) to represent the search center: positive for north latitude and east longitude, negative for south latitude and west longitude. |
locationKeyword | seattle | A keyword search for a location. The keyword can be a city, address, airport or a landmark. |
regionIds | 8816, 1234, 319626202325190073 | Comma-separated list of Expedia Region IDs. Search returns set of all hotels in the combined regions. |
checkIn | 2025-10-01 | CheckIn date in YYYY-MM-DD format. |
checkOut | 2025-10-02 | CheckOut date in YYYY-MM-DD format. |
Example Request for Date Search:
Search by Hotel ID's:
curl https://apim.expedia.com/hotels/listings?ecomHotelIds=28082,11133&checkIn=2025-10-01&checkOut=2025-10-02 \
-H 'Accept: application/vnd.exp-hotel.v3+json' \
-H 'Partner-Transaction-Id: ••••••' \
-H 'Key: ••••••' \
-H 'Authorization: ••••••'
Search by Latitude & Longitude:
curl https://apim.expedia.com/hotels/listings?geoLocation=40.714269,-74.005973&checkIn=2025-10-01&checkOut=2025-10-02 \
-H 'Accept: application/vnd.exp-hotel.v3+json' \
-H 'Partner-Transaction-Id: ••••••' \
-H 'Key: ••••••' \
-H 'Authorization: ••••••'
Search by city, address, airport or landmark.:
curl https://apim.expedia.com/hotels/listings?locationKeyword=seattle&checkIn=2025-10-01&checkOut=2025-10-02 \
-H 'Accept: application/vnd.exp-hotel.v3+json' \
-H 'Partner-Transaction-Id: ••••••' \
-H 'Key: ••••••' \
-H 'Authorization: ••••••'
Search by Expedia Region ID:
curl https://apim.expedia.com/hotels/listings?regionId=8816,1234,319626202325190073&checkIn=2025-10-01&checkOut=2025-10-02 \
-H 'Accept: application/vnd.exp-hotel.v3+json' \
-H 'Partner-Transaction-Id: ••••••' \
-H 'Key: ••••••' \
-H 'Authorization: ••••••'
Example Request for Dateless Search:
curl https://apim.expedia.com/hotels/listings?locationKeyword=seattle \
-H 'Accept: application/vnd.exp-hotel.v3+json' \
-H 'Partner-Transaction-Id: ••••••' \
-H 'Key: ••••••' \
-H 'Authorization: ••••••'
Example request for a family trip:
curl https://apim.expedia.com/hotels/listings?locationKeyword=seattle&checkIn=2025-10-01&checkOut=2025-10-02&room1.adults=2&room1.childAges=3,6&room2.adults=1 \
-H 'Accept: application/vnd.exp-hotel.v3+json' \
-H 'Partner-Transaction-Id: ••••••' \
-H 'Key: ••••••' \
-H 'Authorization: ••••••'
Filter Parameters
We recommend using filters to only retrieve the data you need for better latency and smaller payloads
Parameter | Sample | Description |
---|---|---|
minStarRating | 3.0 | The minimum star rating for hotels returned in the response. |
maxStarRating | 5.0 | The maximum star rating for hotels returned in the response. |
smokingPreference | smoking | Specifies smoking preference. Allowed values are: smoking, nonsmoking, both |
freeCancellation | true | Specifies whether to return only free cancelable room rates in the search results. |
travelWithPets | true | Indicates if the search should include pet-friendly properties. |
links | WD | Comma-separated list to specify the types of deep links. WD (link to Web Details site), WS (link to Web Search Result page), WEB (include all website links) |
radius | 100 | The size of the search radius around a specified point when searching by either geoLocation or by locationKeyword. radius must be less than 200 km or 124 mi. |
unit | km | The unit of measure for searches performed via locationKeyword or geoLocation. |
Response
A successful response returns the following data:
{
"Count": 10,
"TotalHotelCount": 1000,
"TransactionId": "186c782a-16a3-42af-8898-d3a744439554",
...
"Hotels": [
{
...
"Links": {
"WebSearchResult": {
"Method": "GET",
"Href": "https://www.expedia.com/Hotel-Search?mpd=USD&tpid=1&mpe=1744119404&endDate=2025-05-03&adults=2&mpn=113176254&mpm=83&locale=en_US&chid=186c782a-16a3-42af-8898-d3a744439554&eapid=0¤cy=USD&rateplanid=00004fa186b21bf34d56a5ce360c3a55a85b&selected=113176254&startDate=2025-05-01&mpb=419.68&mpa=196.00"
}
},
"RoomTypes": [
{
"Price": {
...
},
"Links": {
"WebDetails": {
"Method": "GET",
"Href": "https://www.expedia.com/Hotel.h113176254.Hotel-Information?mdpcid=US.DIRECT.GENAIPARTNER1&rm1=a2&chid=186c782a-16a3-42af-8898-d3a744439554&tpid=1&eapid=0¤cy=USD&langid=1033&rateplanid=00004fa186b21bf34d56a5ce360c3a55a85b®ionId=553248635975749111&chkin=2025-05-01&chkout=2025-05-03&mpa=196.00&mpb=419.68&mpd=USD&mpe=1744119404&mpm=83"
}
}
}
]
}
]
}
Error Response
{
"Errors": [
{
"Code": "MISSING_CHECKIN_OR_CHECKOUT",
"Description": "Either checkIn or checkOut is missing. Please specify checkIn and checkOut together."
}
],
"TransactionId": "7d806ae9-1466-4e4b-9ed8-4102c830db03"
}
Full list of possible error codes and error details:
Understanding how handle errors: Error Handling.
You will get an ambiguous error response when multiple locations match a locationKeyword search.
When you search for a locationKeyword
that refers to one or more global locations, the API will ask you to clarify which location you'd like to search, then you can choose the right one and call Lodging Listings API again.
{
"Errors": [
{
"Code": "AMBIGUOUS_LOCATION",
"DetailCode": "MULTIPLE_AMBIGUOUS_LOCATION",
"Description": "More than one location found",
"LocationKeyword": "dublin",
"LocationOptions": [
{
"Type": "MULTICITY",
"RegionId": "178256",
"ShortName": "Dublin (and vicinity)",
"AirportCode": "DUB",
"Address": "Dublin (and vicinity), Ireland",
"Country": {
"Name": "Ireland",
"IsoCode2": "IE",
"IsoCode3": "IRL"
},
"GeoLocation": {
"Latitude": "53.34402",
"Longitude": "-6.26146"
}
},
...
{
"Type": "POI",
"RegionId": "553248621563220238",
"ShortName": "Market On Madison",
"AirportCode": "MCN",
"Address": "Market On Madison, Dublin, Georgia, United States of America",
"Country": {
"Name": "United States of America",
"IsoCode2": "US",
"IsoCode3": "USA"
},
"GeoLocation": {
"Latitude": "32.539313",
"Longitude": "-82.902537"
}
}
]
}
],
"TransactionId": "cc026998-5e61-4613-a086-7c725def7eea"
}
Next Steps
- Here, you can explore the endpoint definitions for this API, then go to the API Explorer to try out all the XAP endpoints, download OpenAPI specs, or download Postman collections. Testing with one or all of these options will give you an understanding of how the examples and schema definitions compare to the actual output. Go to the API Explorer to find out more.
- Deeplink customers to the Expedia website where they can book selected hotel. You will also be able to earn commission on any bookings that your customers make using our XAP API solution.