Expedia Hotels + Reviews
Pricing
from $1.00 / 1,000 results
Expedia Hotels + Reviews
From $1/1K. Extract hotel listings and reviews from Expedia.com. Get comprehensive data, including prices, ratings, review text, photos, and location details for any destination.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(2)
Developer
AbotAPI
Actor stats
0
Bookmarked
4
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Expedia Hotel Scraper
Extract hotel listings and reviews from Expedia.com, the world's largest online travel marketplace with millions of properties across 200+ countries. Get comprehensive data including prices, ratings, review text, photos, and location details for any destination.
What does Expedia Hotel Scraper do?
This Actor collects hotel data from Expedia in two ways:
- Search by destination. Paste a city name, get back a paginated list of hotels with prices, ratings, and photos for your selected dates.
- Fetch by URL. Paste Expedia hotel or search URLs, get the matching hotel cards. Search URLs auto paginate through all pages.
A single toggle switches the output between aggregate hotel cards and individual review records (one row per review).
Key Features
| Feature | Description |
|---|---|
| Destination search | Type any city; the Actor resolves it to the correct Expedia region |
| URL mode | Accepts hotel URLs and search URLs; search URLs auto paginate |
| Deeplink support | Expedia share links (expe.onelink.me and similar) are auto-resolved to the canonical hotel URL |
| Reviews only toggle | Output individual review records instead of hotel cards |
| Date and guest filters | Check in/out dates, adults, rooms, children with ages |
| Price and rating filters | Min/max price, star ratings, sort order |
| 29 locales, 36 currencies | Localized content and prices |
| Photos and pricing | Up to 4 images per hotel, nightly price, strikeout discounts |
| Per hotel review cap | Cap reviews per hotel to control cost on high volume properties |
What data can you extract?
Hotel card (Search mode or URL mode)
|
Identity and location
|
Pricing
|
|
Reviews (aggregate)
|
Media and dates
|
Review record (Reviews Only mode)
- Review ID, title, text
- Rating value (0 to 10) and label
- Author name
- Review and stay date
- Sentiment: liked and disliked lists
- Guest photo URLs
- Linked hotel ID and URL
How to use the Expedia Hotel Scraper
Search by destination
{"mode": "search","destination": "Paris","adults": 2,"currency": "USD","locale": "en_US","maxItems": 50}
Filter by price and star rating
{"mode": "search","destination": "Tokyo","checkIn": "2026-09-10","checkOut": "2026-09-13","adults": 2,"starRatings": ["4", "5"],"minPrice": 150,"maxPrice": 400,"sortBy": "REVIEW"}
Fetch specific hotels by URL
{"mode": "url","startUrls": [{ "url": "https://www.expedia.com/Example-City-Hotels-Sample-Hotel.h11111.Hotel-Information" },{ "url": "https://www.expedia.com/Example-City-Hotels-Another-Sample.h22222.Hotel-Information" }]}
Paste a deeplink (expe.onelink.me share link)
Share links generated by the Expedia mobile app's "Share" button, as well as marketing and social deeplinks, are accepted as is. The Actor follows the redirect, identifies the hotel, and scrapes it like any other URL.
{"mode": "url","startUrls": [{ "url": "https://expe.onelink.me/hnLd/9o2lnq8o" }]}
Supported deeplink hosts: expe.onelink.me (primary), expe.app.link, trip.expedia.com. Only Expedia hotel deeplinks are handled. Hotels.com and Vrbo short links are out of scope for this release.
Auto paginate a search URL
Paste an Expedia search URL with your filters already applied. The Actor walks every page until maxItems is reached.
{"mode": "url","startUrls": [{ "url": "https://www.expedia.com/Hotel-Search?destination=Barcelona&d1=2026-07-01&d2=2026-07-05&adults=2" }],"maxItems": 200}
Scrape reviews only
{"mode": "search","destination": "New York","reviewsOnly": true,"maxReviewsPerHotel": 50,"maxItems": 500}
Or supply hotel URLs directly:
{"mode": "url","startUrls": [{ "url": "https://www.expedia.com/Example-City-Hotels-Sample-Hotel.h11111.Hotel-Information" }],"reviewsOnly": true,"maxReviewsPerHotel": 100}
Family travel with children
{"mode": "search","destination": "Orlando","adults": 2,"children": ["5", "10"],"rooms": 1}
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search or url |
destination | string | City name (Search mode) | |
startUrls | object[] | Expedia URLs (URL mode) | |
destinationId | string | Optional numeric region ID. Skips auto resolution | |
reviewsOnly | boolean | false | Output reviews instead of hotel cards |
checkIn | string | tomorrow | YYYY-MM-DD or a relative offset like 1 day |
checkOut | string | day after tomorrow | YYYY-MM-DD or a relative offset like 2 days |
adults | integer | 2 | Adult guests, 1 to 14 |
children | string[] | [] | Ages of children, 0 to 17 (one entry per child) |
rooms | integer | 1 | Rooms to book, 1 to 8 |
minPrice | integer | Minimum nightly price | |
maxPrice | integer | Maximum nightly price | |
starRatings | string[] | [] | One or more of 1, 2, 3, 4, 5 |
sortBy | string | RECOMMENDED | RECOMMENDED, PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW, DISTANCE, PROPERTY_CLASS, REVIEW |
currency | string | USD | 3 letter ISO code from the dropdown |
locale | string | en_US | Language and region locale from the dropdown |
maxItems | integer | 50 | Hard cap on total records |
maxReviewsPerHotel | integer | 25 | Cap reviews per hotel |
maxConcurrency | integer | 5 | Parallel requests |
proxy | object | Apify Residential | Proxy configuration |
Output Example
Hotel card
{"mode": "search","placeName": "Example Hotel Paris","hotelId": "11111","hotelUrl": "https://www.expedia.com/Example-City-Hotels-Sample-Hotel.h11111.Hotel-Information","hotelOverallRating": 9.2,"hotelRatingLabel": "Wonderful","hotelTotalReviews": 1843,"provider": "expedia","scrapedAt": "2026-04-18T07:30:00.000Z","extra": {"searchDestination": "Paris","starRating": 5,"description": "Recently renovated boutique hotel steps from the city center","priceFrom": 420,"priceFormatted": "$420 nightly","priceStrikeout": "$600","currency": "USD","images": ["https://images.example.com/lodging/sample-1.jpg","https://images.example.com/lodging/sample-2.jpg"],"checkIn": "2026-07-01","checkOut": "2026-07-03","adults": 2}}
Review record
{"mode": "reviews","placeName": "Example Hotel Paris","hotelId": "11111","hotelUrl": "https://www.expedia.com/Example-City-Hotels-Sample-Hotel.h11111.Hotel-Information","hotelOverallRating": 9.2,"hotelRatingLabel": "Wonderful","hotelTotalReviews": 1843,"hotelCategoryRatings": {"Cleanliness": 9.4,"Staff": 9.3},"locale": "en_US","provider": "expedia","reviewId": "abc123def456","reviewTitle": "Memorable stay","reviewText": "Beautiful hotel with great service and a convenient location.","reviewRating": 10,"reviewRatingLabel": "Excellent","reviewDate": "Oct 14, 2025","stayDuration": "Stayed 3 nights in Oct 2025","authorName": "Sarah","sentiment": {"liked": ["Cleanliness", "staff and service", "location"],"disliked": []},"photos": ["https://images.example.com/ugc/review-photo-1.jpg"],"scrapedAt": "2026-04-18T07:30:00.000Z","extra": {}}
Tips
- Pagination is automatic. The Actor walks pages until
maxItemsis reached or the site reports no more results. destinationIdspeeds up search. Pass the numeric ID from any Expedia URL (the segment after.d) to skip the name resolution round trip.- Reviews mode respects
maxItems. If you cap at 500, the Actor stops at 500 total reviews across all hotels. - Run in residential proxy for best results. Expedia rate limits aggressively on datacenter IPs.