Hotel price and availability monitoring
Use Expedia endpoints to turn hotel price and availability monitoring into repeatable API requests with documented inputs and JSON responses.
Turn Expedia's Stays, Flights, and Things To Do results into structured JSON — destination search, hotel listings with pricing and reviews, flight offers, and activity search, sourced from the same API the official mobile app uses. Credential-free.
Extract Expedia hotel search, hotel detail and reviews, flight search, and Things To Do activity search as structured JSON.
Endpoint families
4
Documented params
14
Examples
7
Live catalog snapshot
Active endpoints
7
Methods
POST
Required params
14
Schema refs
7
{
"platform": "Expedia",
"endpoint": "expedia-properties-search",
"method": "POST",
"path": "/expedia/properties/search",
"auth": "apiKey"
}Use cases
Extract Expedia hotel search, hotel detail and reviews, flight search, and Things To Do activity search as structured JSON.
Use Expedia endpoints to turn hotel price and availability monitoring into repeatable API requests with documented inputs and JSON responses.
Use Expedia endpoints to turn flight fare research into repeatable API requests with documented inputs and JSON responses.
Use Expedia endpoints to turn travel activity discovery into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Expedia endpoint catalog — 7 endpoints, 14 documented request parameters, and 7 published response schemas — the same catalog Docs and Playground run against.
7 documented Expedia endpoints, grouped into 4 request families — Properties, Activities and Flights, plus 1 more.
14 request parameters are documented across those Expedia endpoints, 14 of them required — the full input contract is public before you write any integration code.
7 of the 7 Expedia endpoints ship a recorded example response, and 7 carry a documented response schema — you can code against the real JSON before the first request.
Expedia endpoints document their error responses (400, 404, 429, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
7 hosted MCP tools back the Expedia endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/expedia/properties/search
/expedia/activities/search
/expedia/flights/search
/expedia/locations/search
Endpoint catalog
/expedia/locations/searchReturns normalized destination/property typeahead suggestions (cities, airports, neighborhoods, hotels) for a free-text term.
Response notes
Each `data.items[]` entry's `region_id` (when present) can be passed as the `destination` context to `expedia-properties-search`/`expedia-properties-filters`/`expedia-activities-search`, which resolve free-text destinations through this same typeahead internally. Example response: ```json { "code": 200, "msg": "OK", "data": { "term": "Miami", "items": [ { "type": "SearchLocationBasicItem", "geo_type": "CITY", "primary_text": "Miami", "secondary_text": "Florida, United States", "location_full_name": "Miami, FL, United States", "region_id": "178289", "latitude": 25.77427, "longitude": -80.19366 } ] } } ```
MCP tool expedia_locations_search
/expedia/properties/searchReturns normalized Expedia Stays (hotel) search results for a free-text destination and date range. Promotional banners and sponsored ad slots are dropped, so every returned property has an id and name.
Response notes
`data.region_id` identifies the resolved destination and can be reused directly by `expedia-properties-filters`. Each `data.properties[]` entry's `id` is the property id for `expedia-properties-detail`/`expedia-properties-reviews`. Every returned property has a non-empty `id` and `name`: promotional banners and sponsored ad slots that Expedia mixes into its result list are dropped. They come on top of the requested `page_size`, so a full page still holds `page_size` properties. Price fields are kept as upstream-formatted display strings (e.g. `"$72 total"`) rather than parsed into a currency amount, since the upstream schema only exposes display-formatted price text on the search-results card. Example response: ```json { "code": 200, "msg": "OK", "data": { "destination": "Miami, Florida, United States of America", "region_id": "2297", "check_in": "2026-08-04", "check_out": "2026-08-05", "page": 1, "results_label": "300+ properties", "properties": [ { "id": "111893452", "name": "Kompose Boutique Hotel Miami Airport", "url": "https://www.expedia.com/Miami-Hotels-Kompose-Boutique-Hotel-Miami-Airport.h111893452.Hotel-Information", "review_score": 9.2, "review_count": 4460, "review_title": "Wonderful", "price": "$72 total", "strikeout_price": "$94", "nightly_price": "$53 nightly", "thumbnail_url": "https://images.trvl-media.com/lodging/112000000/111900000/111893500/111893452/5069ea21.jpg", "amenities": ["Pool"], "badges": ["VIP Access", "Member Price $22 off"] } ] } } ```
MCP tool expedia_properties_search
/expedia/properties/filtersReturns the sort and filter facets (amenities, star rating, neighborhood, nightly price range, sort options) available for a Stays search.
Response notes
Each `data.sections[].fields[]` entry's `type` is one of: `multi_select`, `single_select`, `dropdown`, `range`. For the selection types, `options[]` lists the selectable values; for `range`, `range_min`/`range_max` bound the field instead. Each option's `filter_id` (e.g. `amenities`, `star_rating`, `regionId`) and `value` are the upstream selection keys these facets represent -- exposed for reference; `expedia-properties-search` does not yet accept a filter-selection input. Example response: ```json { "code": 200, "msg": "OK", "data": { "destination": "Miami, Florida, United States of America", "region_id": "2297", "sections": [ { "title": "Filter by", "fields": [ { "type": "range", "label": "Nightly price", "range_min": 0, "range_max": 1000 }, { "type": "multi_select", "label": "Popular filters", "options": [ {"filter_id": "amenities", "value": "92", "label": "Airport shuttle included (92)"} ] } ] } ], "sort_options": [ {"filter_id": "sort", "value": "RECOMMENDED", "label": "Recommended for you", "selected": true} ] } } ```
MCP tool expedia_properties_filters
/expedia/properties/detailReturns a hotel's detail summary (name, star rating, address/coordinates, top amenities) for a known property id.
MCP tool expedia_properties_detail
/expedia/properties/reviewsReturns a hotel's overall rating and highlighted/recent guest reviews (reviewer, date, rating, message) for a known property id.
MCP tool expedia_properties_reviews
/expedia/flights/searchReturns normalized Expedia Flights search results (departing-leg offers) for an origin/destination IATA pair and date range.
Response notes
`data.offers[]` lists the *departing*-leg offers only, matching the app's own multi-step round-trip selection flow -- return-leg selection is not implemented. Example response: ```json { "code": 200, "msg": "OK", "data": { "origin": "JFK", "destination": "LAX", "departure_date": "2026-08-17", "return_date": "2026-08-18", "offers": [ { "airline": "JetBlue Airways", "route": "New York (JFK) - Los Angeles (LAX)", "departure_time": "7:30am", "arrival_time": "10:26am", "stops": 0, "duration_summary": "5h 56m • Nonstop", "price": "$551", "price_note": "Roundtrip per traveler" } ] } } ```
MCP tool expedia_flights_search
/expedia/activities/searchReturns normalized Expedia Things To Do (activities/tours) search results for a free-text destination and date range.
MCP tool expedia_activities_search
Related APIs
Travel & Hospitality
Build travel and lodging research workflows from structured Airbnb stay, room, availability, and review data.
Travel & Hospitality
Research hotels, restaurants, attractions, and destination pages from TripAdvisor with normalized listing and review endpoints.
Travel & Hospitality
Turn Booking.com's hotel, flight, and attractions surfaces into structured JSON — search results, hotel detail with rooms and photos, guest reviews, flight offers, and things-to-do listings, replayed directly against Booking.com's own persisted-query GraphQL and REST endpoints. Credential-free.
Company coverage
Expedia Group, Inc. · EXPE
Expedia is operated by Expedia Group, Inc. (EXPE). Crawlora's SEC endpoints take the same company's CIK, so filings, financials, insider transactions and 13F holdings come from the same API key as the Expedia endpoints above.
Other Expedia Group, Inc. platforms in the catalog
How to scrape Expedia
Crawlora's Expedia endpoints cover Stays, Flights, and Things To Do. Unlike most endpoint families, every Expedia call is a POST with a JSON body, such as {"destination": "Miami", "check_in": …, "adults": 2}. Responses mirror what Expedia's app shows a shopper: prices as display strings like $351 total or $120 nightly, strikeout prices, sale badges, and review labels.
POST /expedia/properties/search with destination, check_in, check_out, adults, and rooms. It returns region_id, a results_label (300+ properties for Miami Beach), and a page of property cards. Expedia mixes promo banners and sponsored slots into its result list (4 extra entries in one Miami search). The API drops them, so every card has an id and name and a full page still holds page_size cards (20 by default). Cards carry review_score, price, strikeout_price, nightly_price, and badges such as Sale $285 off.
/expedia/properties/filters returns the search-page facets for a destination: star rating (1 to 5 stars), guest rating (Good 7+, Very good 8+, and so on), and six sort options, each with its filter_id and value. The search endpoint does not accept filter selections yet, so treat the facets as reference data.
/expedia/properties/detail returns star_rating (half stars occur, for example 3.5), address, coordinates, and an amenities list such as Pool, Breakfast included, and Free WiFi. /expedia/properties/reviews returns overall_rating as text (8.4/10) plus reviews with a rating label and a verified flag.
/expedia/flights/search returns departing-leg offers only (the return leg is chosen in a second step on Expedia). Each offer carries airline, route, stops, a duration summary such as 2h 59m • Nonstop, and a per-traveler round-trip price. /expedia/activities/search returns activities with duration, review score and label, price, and a free_cancellation flag.
FAQ
Expedia's search cards only expose display-formatted prices, such as $351 total, $120 nightly, or $636 as a strikeout, so the API keeps them verbatim. Parse the number yourself if you need arithmetic.
No. Expedia's own result list mixes promo banners and sponsored ad slots in with real hotels. The API drops them, so every returned property has an id and a name, and a full page still holds page_size properties.
No. /expedia/flights/search returns departing-leg offers only, which matches Expedia's own multi-step round-trip flow. Each offer's price is the round-trip price per traveler.
Not a self-serve one. Expedia Group's Rapid API requires becoming an approved Expedia partner before you can even request an API key, and that key stays restricted to a development mode until your integration passes a site review — there's no instant, unaffiliated developer signup. Crawlora's Expedia endpoints return hotel, flight, and activity search and detail data as structured JSON with a single API key, no partner approval or site review required.