πŸ”₯ Expedia Hotels & Reviews Scraper Pro avatar
πŸ”₯ Expedia Hotels & Reviews Scraper Pro

Pricing

$29.00/month + usage

Go to Apify Store
πŸ”₯ Expedia Hotels & Reviews Scraper Pro

πŸ”₯ Expedia Hotels & Reviews Scraper Pro

Developed by

ClearPath

ClearPath

Maintained by Community

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

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 scrapeReviews or set to false - no reviews are scraped
  • Limited reviews: Set scrapeReviews: true and maxReviews: 25 (default) - scrapes up to 25 reviews per hotel
  • All reviews: Set scrapeReviews: true and maxReviews: 0 (or null) - 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

ParameterTypeRequiredDescriptionDefault
locationStringYesDestination to search (city, region, or landmark)-
checkInDateNoCheck-in date (ISO format or datepicker)7 days from today
checkOutDateNoCheck-out date (ISO format or datepicker)10 days from today
roomsArrayNoRoom configuration (see below)[{"adults": 2, "children": []}]
siteStringNoExpedia regional site (e.g., "www.expedia.com")"www.expedia.com"
maxResultsIntegerNoMaximum hotels to scrape (0 = unlimited)100
sortByStringNoSort results by price, rating, distance, etc. (see sorting options below)"RECOMMENDED"
propertyNameStringNoFilter hotels by property name (e.g., "Marriot", "Hilton")-
scrapeReviewsBooleanNoFetch detailed reviews for each hotelfalse
maxReviewsIntegerNoMaximum reviews per hotel (0 or null = unlimited, only used if scrapeReviews is true)25
scrapePropertyDetailsBooleanNoFetch comprehensive property details (location, amenities, nearby attractions, etc.)true
proxyConfigurationObjectRecommendedProxy 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 OptionDescriptionBest For
RECOMMENDEDExpedia's algorithm (default)General browsing, balanced results
PRICE_LOW_TO_HIGHCheapest firstBudget travelers, price comparison
PRICE_HIGH_TO_LOWMost expensive firstLuxury travel, premium hotels
DISTANCENearest properties firstLocation-focused searches
REVIEWHighest rated firstQuality-focused searches
PROPERTY_CLASSStar 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:

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:

  1. Enable residential proxy in input settings:
    {
    "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
    }
    }
  2. If using custom proxy, ensure it's residential-grade
  3. 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:

  1. Try broader location names:
    • βœ… "Paris" instead of ❌ "Paris 16th Arrondissement"
    • βœ… "Los Angeles" instead of ❌ "West Hollywood, LA"
  2. Use well-known landmarks: "Eiffel Tower", "Times Square", "Big Ben"
  3. 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:

  1. 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
  2. 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

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.


πŸš€ Start Extracting Expedia Hotels and reviews