π₯ Expedia Hotels & Reviews Scraper Pro
Pricing
$29.00/month + usage
π₯ Expedia Hotels & Reviews Scraper Pro
Scrape Expedia hotels with prices, ratings, reviews & amenities from 30+ global sites. Multi-room booking, flexible dates, unlimited hotels & reviews. Ideal for price monitoring, travel platforms & market analysis. $29/month.
0.0 (0)
Pricing
$29.00/month + usage
0
3
1
Last modified
6 days ago
Expedia Hotels Scraper
A powerful Apify actor for scraping hotel data from Expedia. Get hotel listings with prices, ratings, amenities, and optional reviews.
Features
- Multi-region support - Scrape from 30+ Expedia country sites with local pricing
- Flexible room configuration - Single room, families with children, or multi-room groups
- Complete hotel data - Prices, ratings, amenities, photos, and reviews
- Pagination support - Scrape unlimited hotels or set a maximum limit
- Review scraping - Optional detailed review extraction per hotel
- Residential proxy support - Reliable access with automatic proxy rotation
- Date flexibility - Custom check-in/check-out dates or smart defaults
Pricing
$29/month for unlimited usage - No usage limits, scrape as many hotels as you need with unlimited reviews, pagination, and access to all 30+ regional sites.
Quick Start
Basic Search
Search for hotels in a city with default settings (2 adults, 1 room):
{"location": "Paris","maxResults": 100,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Filter by Hotel Brand
Search for specific hotel chains or property names:
{"location": "New York","propertyName": "Marriot","maxResults": 50,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Tip: Works with any brand name - "Hilton", "Hyatt", "Holiday Inn", "Best Western", etc.
Family Search with Children
Search for family accommodations:
{"location": "Orlando","rooms": [{"adults": 2,"children": [{"age": 5},{"age": 10}]}],"checkIn": "2025-06-15","checkOut": "2025-06-22","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Multi-Room Group Travel
Search for multiple rooms for group travel:
{"location": "Las Vegas","rooms": [{"adults": 2, "children": []},{"adults": 2, "children": [{"age": 8}]},{"adults": 1, "children": []}],"maxResults": 50,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Scraping Hotel Reviews & Property Details
Enable detailed review scraping and comprehensive property information:
{"location": "Tokyo","maxResults": 20,"scrapeReviews": true,"maxReviews": 100,"scrapePropertyDetails": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Review Scraping Options:
- Disabled (default): Omit
scrapeReviewsor set tofalse- no reviews are scraped - Limited reviews: Set
scrapeReviews: trueandmaxReviews: 25(default) - scrapes up to 25 reviews per hotel - All reviews: Set
scrapeReviews: trueandmaxReviews: 0(ornull) - scrapes ALL available reviews per hotel
Property Details Options:
- Enabled (default):
scrapePropertyDetails: true- includes comprehensive property data (exact address, coordinates, detailed amenities, nearby attractions, review summaries, etc.) - Disabled: Set to
false- only basic hotel information from search results
β οΈ Note: Scraping all reviews increases runtime for hotels with thousands of reviews. The scraper can handle it though, no worries!
Input Parameters
| Parameter | Type | Required | Description | Default |
|---|---|---|---|---|
location | String | Yes | Destination to search (city, region, or landmark) | - |
checkIn | Date | No | Check-in date (ISO format or datepicker) | 7 days from today |
checkOut | Date | No | Check-out date (ISO format or datepicker) | 10 days from today |
rooms | Array | No | Room configuration (see below) | [{"adults": 2, "children": []}] |
site | String | No | Expedia regional site (e.g., "www.expedia.com") | "www.expedia.com" |
maxResults | Integer | No | Maximum hotels to scrape (0 = unlimited) | 100 |
sortBy | String | No | Sort results by price, rating, distance, etc. (see sorting options below) | "RECOMMENDED" |
propertyName | String | No | Filter hotels by property name (e.g., "Marriot", "Hilton") | - |
scrapeReviews | Boolean | No | Fetch detailed reviews for each hotel | false |
maxReviews | Integer | No | Maximum reviews per hotel (0 or null = unlimited, only used if scrapeReviews is true) | 25 |
scrapePropertyDetails | Boolean | No | Fetch comprehensive property details (location, amenities, nearby attractions, etc.) | true |
proxyConfiguration | Object | Recommended | Proxy settings (residential proxy strongly recommended) | - |
Rooms Configuration
The rooms parameter allows you to specify room configurations for your search. Each room can have multiple adults and children with specific ages.
Room Object Structure
{"adults": 2, // Number of adults (1-8)"children": [ // Array of children{"age": 5}, // Each child needs an age (0-17){"age": 10}]}
Rules and Limits
- Rooms: 1-8 rooms per search
- Adults: 1-8 adults per room (required)
- Children: 0-6 children per room (optional)
- Child ages: 0-17 years old
Examples
Single Room (Default)
{"rooms": [{"adults": 2, "children": []}]}
Family with Children
{"rooms": [{"adults": 2,"children": [{"age": 5},{"age": 8},{"age": 12}]}]}
Multi-Room Group
{"rooms": [{"adults": 2, "children": []},{"adults": 2, "children": [{"age": 10}, {"age": 16}]},{"adults": 1, "children": [{"age": 3}]}]}
Large Group
{"rooms": [{"adults": 2, "children": []},{"adults": 2, "children": []},{"adults": 2, "children": []},{"adults": 2, "children": []}]}
How Room Configuration Affects Results
- Pricing: Hotels show room-specific pricing based on occupancy
- Availability: Filters out hotels without enough available rooms
- Room Types: Results include appropriate room types for your party size
- Children: Some hotels offer free stays or discounts for children under certain ages
Sorting Options
Control how hotel results are ordered using the sortBy parameter:
| Sort Option | Description | Best For |
|---|---|---|
RECOMMENDED | Expedia's algorithm (default) | General browsing, balanced results |
PRICE_LOW_TO_HIGH | Cheapest first | Budget travelers, price comparison |
PRICE_HIGH_TO_LOW | Most expensive first | Luxury travel, premium hotels |
DISTANCE | Nearest properties first | Location-focused searches |
REVIEW | Highest rated first | Quality-focused searches |
PROPERTY_CLASS | Star rating (5β1 star) | Star rating focused searches |
Example - Find cheapest hotels:
{"location": "Paris","sortBy": "PRICE_LOW_TO_HIGH","maxResults": 50}
Example - Best rated hotels:
{"location": "Tokyo","sortBy": "REVIEW","scrapeReviews": true,"maxReviews": 25}
Supported Expedia Sites
The actor supports 30+ regional Expedia sites:
- πΊπΈ United States (USD) - www.expedia.com
- π¬π§ United Kingdom (GBP) - www.expedia.co.uk
- π©πͺ Germany (EUR) - www.expedia.de
- π«π· France (EUR) - www.expedia.fr
- π¨π¦ Canada (CAD) - www.expedia.ca
- π¦πΊ Australia (AUD) - www.expedia.com.au
- π²π½ Mexico (MXN) - www.expedia.com.mx
- π―π΅ Japan (JPY) - www.expedia.co.jp
- ...and 20+ more regional sites
Each site returns results in local currency with region-specific inventory and pricing.
Output Data
The actor returns comprehensive hotel data with the following structure:
Core Hotel Information
- Basic details: ID, name, URL, star rating
- Pricing: Current price, original price, nightly rate, deal badges
- Ratings: Overall score, review count, description (e.g., "Excellent")
- Media: Property images with descriptions
- Policies: Refund policies, booking conditions
Property Details (propertyDetails object)
When scrapePropertyDetails: true (default), each hotel includes:
- Location: Full address, coordinates (lat/long), parent region, map images
- Amenities: Top amenities, categorized facilities (Internet, Parking, Food & Drink, etc.)
- Basic Info: Property tagline, star rating, mandatory/optional fees
- Description: Property overview, editorial content about the area
- Nearby Attractions: Points of interest with walking/driving distances
- Reviews Summary: Overall scores, review highlights, cleanliness ratings
Reviews (reviews object)
When scrapeReviews: true, includes:
- Summary: Overall rating, total count, superlative (e.g., "Excellent")
- Individual Reviews: Rating, text, author, date, travel type, liked/disliked aspects, management responses, photos
Complete Output Example
Here's a real (slightly shortened) example of hotel data returned by the scraper (with scrapePropertyDetails: true and scrapeReviews: true):
{"id": "64923094","name": "TownePlace Suites by Marriott New York Brooklyn","url": "https://www.expedia.com/New-York-Hotels-TownePlace-Suites-By-Marriott-New-York-Brooklyn...","distance_from_search": "Brooklyn","rating": {"score": 8.8,"score_text": "8.8","description": "Excellent","review_count": 353,"review_count_text": "353 reviews"},"price": {"current": 310.0,"current_formatted": "$310","original": 346.0,"original_formatted": "$346","nightly_rate": 253.0,"nightly_rate_formatted": "$253 nightly","currency": "USD","deal_badge": "We have 2 left at $36 off at","duration": "for 1 night","dates": "Nov 13 - Nov 14"},"images": [{"url": "https://a.travel-assets.com/media/.../8b097323_b.jpg","description": "Reception"}],"badges": {"sponsored": true,"deal_badge": "We have 2 left at $36 off at"},"policies": ["Fully refundable", "Reserve now, pay later"],"propertyDetails": {"basic_info": {"id": "64923094","name": "TownePlace Suites by Marriott New York Brooklyn","tagline": "Hotel with free breakfast, near Barclays Center Brooklyn","star_rating": 3.0,"fees": {"optional": [{"title": "Optional extras","body": "Pet fee: USD 150.00 per pet, per stay\nParking: USD 45 per night"}]}},"location": {"latitude": 40.67794,"longitude": -73.97516,"address": {"street": "70 Nevins Street","city": "Brooklyn","province": "NY","country_code": "USA","full_address": "70 Nevins Street, Brooklyn, NY, 11217"},"parent_region": "New York"},"amenities": {"top": ["Breakfast included","Pet-friendly","Free WiFi","Air conditioning","Gym","Parking available"],"categories": [{"name": "Internet","items": ["Available in all rooms: Free WiFi"]},{"name": "Food and drink","items": ["Buffet breakfast daily 6:30 AM-9:30 AM"]}]},"description": {"editorial": "Located in Downtown Brooklyn near Barclays Center..."},"nearby_pois": [{"name": "Barclays Center","distance": "4 min walk","category": "place"},{"name": "Brooklyn Bridge","distance": "16 min walk","category": "place"}],"reviews_summary": {"overall_score": 8.8,"overall_description": "Excellent","review_count": 353,"highlight_message": "Guests rated this property 9.1/10 for cleanliness."}},"reviews": {"summary": {"overallRating": "8.8/Excellent","totalCount": 353},"items": [{"text": "The hotel was nice and clean. Great location near Barclays center.","rating": "10/10 Excellent","ratingScore": 10,"author": "Sharon","date": "Oct 27, 2025","traveledWith": ["Traveled with family"],"liked": ["Liked: Cleanliness, staff & service, amenities"]}],"pagination": {"fetched": 25,"total": 353,"hasMore": true}}}
Key features shown in this example:
- propertyDetails object: Comprehensive property information including exact location, detailed amenities, nearby attractions
- Location data: Full address with coordinates (lat/long), perfect for mapping and distance calculations
- Categorized amenities: Top amenities plus detailed categories (Internet, Food & Drink, Parking, etc.)
- Nearby POIs: Points of interest with walking/driving distances
- Reviews summary: Overall scores, review counts, and highlight messages
- Deal pricing: Shows both original ($346) and discounted price ($310)
- Review structure: Complete reviews with ratings, text, author info, travel type, and liked/disliked aspects
- Review pagination: Tracks fetched vs total reviews (25 of 353)
Proxy Configuration
β οΈ Residential proxy is STRONGLY RECOMMENDED
Expedia has strict rate limiting and blocks datacenter IPs. Always use residential proxies:
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Without residential proxy, you'll likely encounter HTTP 429 "Too Many Requests" errors.
Common Use Cases
Price Comparison
{"location": "New York","checkIn": "2025-07-01","checkOut": "2025-07-05","sortBy": "PRICE_LOW_TO_HIGH","maxResults": 200,"scrapeReviews": false}
Family Vacation Planning
{"location": "Disney World","rooms": [{"adults": 2,"children": [{"age": 6}, {"age": 9}]}],"sortBy": "REVIEW","scrapeReviews": true}
Group Event (Wedding, Conference)
{"location": "Cabo San Lucas","rooms": [{"adults": 2, "children": []},{"adults": 2, "children": []},{"adults": 2, "children": []},{"adults": 2, "children": []}],"maxResults": 100}
Advanced Use Cases
Market Research & Competitive Analysis
Track hotel pricing trends, analyze competitor positioning, and monitor market dynamics:
{"location": "Miami Beach","checkIn": "2025-12-20","checkOut": "2025-12-27","maxResults": 0,"scrapeReviews": true,"maxReviews": 100,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Use for:
- Price monitoring: Track seasonal pricing patterns and dynamic pricing strategies
- Competitive benchmarking: Compare your hotel's pricing, ratings, and amenities against competitors
- Market analysis: Identify pricing gaps, popular amenities, and guest satisfaction trends
- Portfolio analysis: Monitor multiple properties across different markets
- Investment research: Evaluate hotel performance metrics before acquisition decisions
Travel Agency & Booking Platforms
Build automated hotel recommendation engines or comparison tools:
{"location": "Barcelona","rooms": [{"adults": 2, "children": [{"age": 8}]}],"scrapeReviews": true,"maxReviews": 50,"maxResults": 200}
Use for:
- Automated inventory updates for your booking platform
- Personalized hotel recommendations based on guest preferences
- Real-time price comparison across multiple OTAs
- Review aggregation for better decision-making tools
Data Analytics & Business Intelligence
Extract comprehensive datasets for analysis and visualization:
{"location": "London","site": "www.expedia.co.uk","scrapeReviews": true,"maxReviews": 0,"maxResults": 0}
Use for:
- Sentiment analysis on guest reviews
- Amenity correlation with pricing and ratings
- Geographic pricing analysis and heatmaps
- Seasonal demand forecasting
Troubleshooting
HTTP 429 - Too Many Requests
Symptoms: Actor fails with "Request blocked by Expedia" or HTTP 429 error
Causes:
- No proxy configured
- Using datacenter proxy instead of residential
- Proxy IP already rate-limited
Solutions:
- Enable residential proxy in input settings:
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
- If using custom proxy, ensure it's residential-grade
- The actor automatically retries with new IPs on 429 errors
No Results Found for Location
Symptoms: Actor fails with "No results found for location: [your location]"
Causes:
- Typo in location name
- Location too specific or not recognized by Expedia
- Wrong regional site for the location
Solutions:
- Try broader location names:
- β "Paris" instead of β "Paris 16th Arrondissement"
- β "Los Angeles" instead of β "West Hollywood, LA"
- Use well-known landmarks: "Eiffel Tower", "Times Square", "Big Ben"
- For international locations, use the appropriate regional site (e.g., use www.expedia.de for German cities)
Room Configuration Validation Errors
Symptoms: Actor fails with "Invalid rooms configuration" error
Causes:
- Invalid room parameters (0 adults, child age > 17, too many rooms)
- Incorrect JSON format
Solutions:
- Validate room configuration:
- Adults: 1-8 per room (required)
- Children: 0-6 per room (optional)
- Child ages: 0-17 years old
- Max rooms: 8 per search
- Example valid configuration:
{"rooms": [{"adults": 2, "children": [{"age": 5}, {"age": 10}]}]}
Technical Details
Data Quality
- Real-time pricing and availability
- Official hotel data and images
- Accurate ratings and reviews
Support
- π§ Email: max@mapa.slmail.me
- π Found a bug?: Use the issues tab and describe your issue
- π§ Feature Requests: Contact via email or issues tab
Legal Compliance
This Expedia scraper extracts publicly available hotels data. Users must comply with Expedia's terms of service and applicable data protection regulations for their intended use.
On this page
Share Actor:
