expedia.com APIexpedia.com ↗
Search Expedia hotels by destination and dates, retrieve property details and amenities, and generate flight search URLs via a single REST API.
curl -X GET 'https://api.parse.bot/scraper/a8253ddf-ea1b-46b0-b3c1-5628b90f1aac/search_hotels?rooms=2&adults=2&end_date=2026-06-05&start_date=2026-06-01&destination=Las+Vegas' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for hotels and vacation rentals by destination and dates. Returns properties with name, price, rating, and property ID from server-side rendered results. Typically returns 3-5 results from the initial page load.
| Param | Type | Description |
|---|---|---|
| rooms | integer | Number of rooms |
| adults | integer | Number of adults |
| end_daterequired | string | Check-out date in YYYY-MM-DD format |
| start_daterequired | string | Check-in date in YYYY-MM-DD format |
| destinationrequired | string | Destination city or area (e.g. 'Las Vegas', 'New York', 'Miami') |
{
"type": "object",
"fields": {
"hotels": "array of objects with keys: name, property_id, url, price, rating",
"total_found_on_page": "integer count of hotels returned"
},
"sample": {
"data": {
"hotels": [
{
"url": "https://www.expedia.com/Las-Vegas-Hotels-The-Venetian-Resort-Las-Vegas.h1443.Hotel-Information?chkin=2026-06-01&chkout=2026-06-05&x_pwa=1&rfrr=HSR",
"name": "The Venetian Resort Las Vegas",
"price": "$504 off",
"rating": "9.2 out of 10",
"property_id": "1443"
}
],
"total_found_on_page": 3
},
"status": "success"
}
}About the expedia.com API
The Expedia API covers 3 endpoints for searching hotels, fetching property details, and building flight search URLs. The search_hotels endpoint accepts a destination, check-in/check-out dates, and occupancy details, returning up to 5 properties per query with name, price, rating, and Expedia property ID. get_hotel_details goes deeper, returning street address, city, and categorized amenities for a specific property.
Hotel Search
The search_hotels endpoint takes a destination string (city or area name), a start_date and end_date in YYYY-MM-DD format, and optional adults and rooms counts. It returns an array of hotel objects, each containing name, property_id, url, price, and rating, plus a total_found_on_page integer. Typical responses contain 3–5 properties drawn from the initial results page — this is not a full paginated listing, so it suits quick price comparisons rather than exhaustive inventory sweeps.
Property Details
get_hotel_details takes a property_id (the numeric string returned by search_hotels) and optional start_date/end_date to provide pricing context. The response includes name, address, city, and an amenities array. Each amenity entry has a category string and an items array listing individual amenities in that group. Note that amenities can return empty if the property page loads that section client-side rather than in the initial server response — this varies by property.
Flight Search URL Generation
The search_flights endpoint accepts an origin and destination airport code (IATA format, e.g. JFK, LAX) plus an optional date. It does not return flight listings or prices. Expedia renders flight results client-side, so the endpoint returns a search_url string you can open in a browser, along with a message and note explaining the limitation. Use this endpoint to deep-link users directly into the relevant Expedia flight search page.
Data Scope and Freshness
All hotel data reflects what Expedia surfaces for the requested destination and dates at query time. Prices are point-in-time and can shift with availability. The property_id values are stable Expedia identifiers and can be stored and reused across calls to get_hotel_details.
- Compare hotel prices across Las Vegas properties for a specific date range using search_hotels price fields
- Build a travel app that deep-links users to Expedia flight search pages with pre-filled origin, destination, and date
- Aggregate hotel amenity data by category from get_hotel_details to filter properties by pool, parking, or breakfast
- Display formatted hotel addresses and city strings in a travel itinerary planner
- Monitor nightly rate changes for a specific property by polling search_hotels with the same property destination over time
- Populate a hotel comparison widget using name, rating, and price fields returned by search_hotels
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Expedia have an official developer API?+
How many hotel results does search_hotels return per query?+
Why might the amenities array be empty in get_hotel_details?+
Can the API return actual flight prices or availability?+
search_flights endpoint returns only a constructed Expedia search URL; flight listings and fares are rendered client-side on Expedia and are not included in the response. The API covers hotel search and hotel detail retrieval. You can fork it on Parse and revise it to add a flight results endpoint if the underlying data becomes accessible.Does the API support searching more than one page of hotel results?+
search_hotels returns the properties found on a single initial page load, typically 3–5 results. There is no offset or page parameter to retrieve additional listings. You can fork the API on Parse and revise it to add pagination support for deeper result sets.