Expedia Hotels Scraper
Pricing
from $1.99 / 1,000 results
Expedia Hotels Scraper
Scrape Expedia hotel listings by city with amenity filters (hot tub, pool, gym, etc.). Extracts hotel name, star rating, guest score, review count, nightly price, address, GPS coordinates, and direct booking URL. No Expedia account needed.
Pricing
from $1.99 / 1,000 results
Rating
0.0
(0)
Developer
Syed Rupom
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape Expedia hotel listings by city with amenity filters, star ratings, guest scores, prices, images, and coordinates. Powered by stealth browser automation that intercepts Expedia's internal GraphQL API — returning real-time data exactly as shown to users.
Why this actor?
| Feature | This actor | Typical competitors |
|---|---|---|
| Results per city | 50–200+ | 20 max |
| Amenity filter (hot tub, pool, spa…) | Yes | No |
| Property star rating (1–5 stars) | Yes | Rarely |
| Guest rating + review count | Yes | Sometimes |
| Nightly price + total price | Yes | Sometimes |
| Hotel image URL | Yes | Sometimes |
| GPS coordinates | Yes | No |
| Sort by price / rating / stars | Yes | No |
| Exclude vacation rentals | Yes | No |
| Minimum star filter | Yes | No |
| Minimum guest rating filter | Yes | No |
Output fields
| Field | Description |
|---|---|
hotel_id | Unique Expedia hotel ID |
name | Hotel name |
star_rating | Property star class (1–5, e.g. 3.0 = 3-star property) |
guest_rating | Guest score out of 10 (e.g. 8.8) |
review_count | Number of verified guest reviews |
nightly_price | Price per night (USD) |
total_price | Total price for stay duration |
free_cancellation | Whether free cancellation is available |
property_url | Direct Expedia booking URL |
city | City name |
neighborhood | Neighborhood / area name |
latitude / longitude | GPS coordinates |
amenities | Array of amenity labels (e.g. ["Free WiFi", "Pool", "Hot tub"]) |
amenity_ids | Raw amenity IDs for programmatic filtering |
image_url | Primary hotel photo URL |
location_searched | Location query used |
check_in / check_out | Dates used for the search |
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
location | Array | required | City names (e.g. ["Atlanta, Georgia", "Miami, Florida"]) |
checkIn | String | required | Check-in date YYYY-MM-DD |
checkOut | String | required | Check-out date YYYY-MM-DD |
resultsWanted | Integer | 50 | Max hotels per location (1–500) |
amenities | Array | none | Amenity filters: hot_tub, pool, gym, spa, parking, free_parking, pet_friendly, restaurant, breakfast, wifi, airport_shuttle, kitchen, indoor_pool |
sort | Select | RECOMMENDED | Sort: PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW, GUEST_RATING, STAR_RATING_HIGH_TO_LOW |
minRating | Number | 0 | Minimum guest rating out of 10 (e.g. 7.0) |
minStars | Integer | 0 | Minimum property star class (e.g. 3 for 3-star and above) |
rooms | Integer | 1 | Number of rooms |
adults | Integer | 2 | Adults per room |
children | Integer | 0 | Number of children |
excludeVacationRentals | Boolean | true | Skip Vrbo/Airbnb-style rentals |
proxyConfiguration | Proxy | — | Residential proxy required (see below) |
Proxy requirement
Residential proxy is required. Expedia blocks all datacenter IPs with a 429 Too Many Requests error.
Set proxyConfiguration to use Apify Residential proxy:
{"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}
Apify Residential proxy is available on all paid Apify plans. This is standard for any serious Expedia scraper — actors that claim to work without residential proxy will fail silently or return empty results.
Example input
{"location": ["Atlanta, Georgia", "Miami, Florida"],"checkIn": "2026-08-01","checkOut": "2026-08-03","resultsWanted": 100,"amenities": ["hot_tub"],"sort": "GUEST_RATING","minStars": 3,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
Example output
{"hotel_id": "12345678","name": "Hilton Atlanta","star_rating": 4,"guest_rating": 8.6,"review_count": 3241,"nightly_price": 159,"total_price": 318,"free_cancellation": true,"property_url": "https://www.expedia.com/Atlanta-Hotels-Hilton-Atlanta.h12345678.Hotel-Information","city": "Atlanta","neighborhood": "Downtown Atlanta","latitude": 33.7588,"longitude": -84.3877,"amenities": ["Free WiFi", "Pool", "Fitness Center", "Restaurant"],"amenity_ids": ["free_wifi", "pool", "gym", "restaurant"],"image_url": "https://images.trvl-media.com/...","location_searched": "Atlanta, Georgia","check_in": "2026-08-01","check_out": "2026-08-03"}
How it works
Uses Puppeteer with stealth mode (puppeteer-extra-plugin-stealth) running in headful mode via Xvfb on Apify's infrastructure. Navigates Expedia's hotel search page, clicks amenity filter buttons in the actual UI, then intercepts PropertyListingQuery GraphQL responses directly. Property star ratings are extracted from the rendered DOM. Supports automatic scroll-based pagination to retrieve up to 200+ hotels per city.
Use cases
- Hotel market research and competitive analysis
- Travel price monitoring and aggregation
- Lead generation for hospitality businesses
- Building hotel databases with ratings, amenities, and pricing
- Filtering hotels by specific amenities (hot tubs, pools, gyms) for niche travel sites