Expedia Hotels & Reviews Scraper - 30+ Global Sites avatar

Expedia Hotels & Reviews Scraper - 30+ Global Sites

Pricing

$29.00/month + usage

Go to Apify Store
Expedia Hotels & Reviews Scraper - 30+ Global Sites

Expedia Hotels & Reviews Scraper - 30+ Global Sites

Scrape Expedia hotels by city: prices, guest ratings, star ratings, reviews, amenities, photos, and full address. Filter by date, price, and property name across 30+ regional sites. Export to JSON or CSV. Pay per result, no subscription.

Pricing

$29.00/month + usage

Rating

0.0

(0)

Developer

ClearPath

ClearPath

Maintained by Community

Actor stats

1

Bookmarked

30

Total users

2

Monthly active users

4.2 days

Issues response

4 days ago

Last modified

Share

Expedia Hotels Scraper | Prices, Ratings, Reviews & Property Data

50+ fields per hotel, search any city: prices, guest & category ratings, AI review summary, rooms & live rates, reviews, amenities, and photos.

Expedia hotels scraper: address, prices, category ratings, AI review summary, rooms and rates, and reviews as structured JSON

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

clearpath/expedia-hotels-scraper-pro on Apify. Call: ApifyClient("TOKEN").actor("clearpath/expedia-hotels-scraper-pro").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: location (string, required), maxResults (integer, default 100), site (string, default "www.expedia.com"). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/clearpath~expedia-hotels-scraper-pro/builds/default (Bearer TOKEN) returns inputSchema, actorDefinition.storages.dataset, readme. Pricing: pay-per-event, $2.99 per 1,000 fully-enriched hotels (guest rating, star rating, amenities, address, photos), plus $1.99 per 1,000 reviews when review scraping is enabled. Get token: https://console.apify.com/account/integrations

Key Features

  • Search by city: enter a location and get every hotel Expedia lists, no URLs required
  • 50+ fields per hotel: prices, guest rating, star rating, amenities, address, coordinates, photos, and description, always included
  • Guest reviews: optional per-hotel reviews with sentiment, traveled-with, and management responses
  • 30+ regional sites: local pricing and currency across Expedia's country domains
  • Flexible search: custom dates, multi-room and family setups, price and property-name filters

Pricing: Pay Per Event (PPE)

$2.99 per 1,000 hotels, no subscription. Every hotel comes fully enriched (guest rating, star rating, amenities, address, photos). Reviews are billed only when you enable them.

EventPer hotel/reviewPer 1,000
Hotel scraped (fully enriched)$0.00299$2.99
Review scraped$0.00199$1.99

Example: 500 hotels with reviews off costs about $1.50. 100 hotels with 20 reviews each costs about $0.30 + $3.98 = $4.28.

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,
"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: Every hotel comes fully enriched, comprehensive property data (guest rating, star rating, exact address, coordinates, detailed amenities, nearby attractions, review summaries, and more) is always included.

⚠️ 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
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)

Always included with every hotel:

  • 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

Extra Hotel Details (on by default)

Included for every hotel unless you switch these add-ons off:

  • category_ratings: rating breakdown by category (cleanliness, staff & service, amenities, property conditions) with an overall score and review count.
  • ai_review_summary: an AI-written summary of guest reviews, grouped into highlight sections.
  • gallery: the full photo gallery — every image with caption and thumbnail, plus category groups (Rooms, Bathroom, Dining, and more).
  • property_content: about the property, policies (check-in/out, pets, payment types), important info (fees, "you need to know" notes), and the complete amenities list (every property and in-room amenity).

Rooms & Live Rates (rooms object, on by default)

Available room types for a sample stay, each with its features and live nightly rate plans (current total plus any strikethrough "was" price, how many rooms are left at that rate, and the payment terms).

Complete Output Example

A real, fully-enriched hotel returned by the scraper (reviews and all add-ons on). Large arrays — the full photo gallery, every room type, all reviews — are shortened here with a … +N more marker; the actual dataset contains every item, nothing is dropped.

{
"id": "30039177",
"name": "The Times Square EDITION",
"url": "https://www.expedia.com/New-York-Hotels-The-Times-Square-EDITION.h30039177.Hotel-Informa…",
"area": "Theater District",
"distance_from_search": null,
"primary_image_url": "https://a.travel-assets.com/media/meso_cm/PAPI/Images/lodging/31000000/30040000/30039200…",
"rating": {
"score": 9.2,
"score_text": "9.2",
"description": "Wonderful",
"review_count": 1002,
"review_count_text": ""
},
"price": {
"current": 1306.0,
"current_formatted": "$1,306",
"original": null,
"original_formatted": "",
"savings": null,
"nightly_rate": 1095.0,
"nightly_rate_formatted": "$1,095 nightly",
"price_messages": [
"$1,095 nightly",
"Total with taxes and fees"
],
"currency": "USD",
"total_qualifier": "Total with taxes and fees",
"price_includes_taxes": true,
"deal_badge": "",
"deal_theme": "",
"deal_icon": "",
"duration": "for 1 night",
"dates": "Jul 18 - Jul 19"
},
"amenities": [],
"images": [
{
"url": "https://a.travel-assets.com/media/meso_cm/PAPI/Images/lodging/31000000/30040000/30039200…",
"description": "A long dining table with chairs, surrounded by lush greenery and hanging lanterns, creat…"
},
{
"url": "https://images.trvl-media.com/lodging/31000000/30040000/30039200/30039177/3d9fba87.jpg?i…",
"description": "An indoor dining area with tables set for a meal, surrounded by lush greenery and decora…"
},
"… +1 more"
],
"badges": {
"sponsored": true,
"media_badge": "Ad",
"program_badge": "",
"deal_badge": ""
},
"messages": [
"Theater District"
],
"star_rating": 5.0,
"policies": [],
"location": {
"neighborhood_id": "6157019",
"room_type_id": "216920195",
"rate_plan_id": "266080300",
"latitude": 40.712843,
"longitude": -74.005966,
"destination": "New York, New York, United States of America",
"dest_type": "MARKET",
"region_id": "2621",
"search_rank": 1
},
"search_context": {
"check_in": "2026-07-18",
"check_out": "2026-07-19",
"region_id": "2621",
"adults": 2,
"children_ages": []
},
"propertyDetails": {
"basic_info": {
"id": "30039177",
"name": "The Times Square EDITION",
"latin_alphabet_name": null,
"phone": "",
"tagline": null,
"star_rating": 5.0,
"property_type": null,
"featured_messages": [],
"fees": {
"mandatory": [
{
"title": "Fees",
"body": "You'll be asked to pay the following charges at the property. Fees may include applicabl…"
}
],
"optional": [
{
"title": "Optional extras",
"body": "Pet fee: USD 250 per accommodation, per stay\nService animals are exempt from fees\nRollaw…"
}
]
}
},
"location": {
"latitude": 40.75923,
"longitude": -73.984097,
"address": {
"street": "701 7TH AVENUE",
"additional": "",
"city": "New York",
"province": "NY",
"postal_code": "10036",
"country_code": "USA",
"full_address": "701 7TH AVENUE, New York, NY, 10036"
},
"parent_region": "New York",
"multi_city_region_id": "178293",
"map_image": "https://maps.googleapis.com/maps/api/staticmap?size=375x250&zoom=13&markers=icon%3Ahttps…",
"static_map_image": "https://maps.googleapis.com/maps/api/staticmap?size=600x120&zoom=13&markers=icon%3Ahttps…",
"map_bounds": null,
"map_markers": [
{
"id": "30039177",
"name": "The Times Square EDITION",
"position": {
"latitude": 40.75923,
"longitude": -73.984097
},
"status": "AVAILABLE",
"type": "PROPERTY",
"qualifiers": [
"focal",
"lob_hotels"
]
}
]
},
"amenities": {
"top": [
"Pet friendly",
"Free WiFi",
"… +4 more"
],
"highlights": [
{
"name": "Top family friendly amenities",
"items": [
"Extra beds/cribs"
]
},
{
"name": "Popular amenities",
"items": [
"Pet friendly",
"… +9 more"
]
}
],
"categories": [
{
"name": "Internet",
"items": [
"Available in all rooms: Free wired internet",
"… +1 more"
]
},
{
"name": "Parking and transportation",
"items": [
"No onsite parking available"
]
},
{
"name": "Food and drink",
"items": [
"2 bars/lounges",
"… +1 more"
]
},
{
"name": "Restaurants on site",
"items": [
"Lobby Bar",
"… +2 more"
]
},
{
"name": "Things to do",
"items": [
"24-hour gym",
"… +1 more"
]
},
{
"name": "Family friendly",
"items": [
"In-room crib",
"… +1 more"
]
},
"… +5 more"
]
},
"description": {
"overview": "",
"editorial": "Located in Manhattan, a neighborhood in New York, The Times Square EDITION is in a shopp…"
},
"nearby_pois": [
{
"name": "Times Square",
"distance": "1 min walk",
"category": "nearby",
"image_url": "https://images.trvl-media.com/place/502080/ba1463c8-9bb1-4699-95b4-495107edd8f3.jpg",
"description": "New York’s infamous neon wonderland is hustle and bustle at its best, and an essential s…",
"place_id": "502080"
},
{
"name": "Rockefeller Center",
"distance": "2 min walk",
"category": "nearby",
"image_url": "https://images.trvl-media.com/place/502076/95920105-ade5-4842-982e-64df4898f074.jpg",
"description": "One of Manhattan’s most iconic developments, this hub of business and entertainment was …",
"place_id": "502076"
},
"… +13 more"
],
"reviews_summary": {
"overall_score": 9.2,
"overall_score_text": "9.2",
"overall_description": "Wonderful",
"full_score_text": "9.2/10 Wonderful",
"review_count": 1002,
"highlight_message": "Guests rated this property 9.6/10 for cleanliness."
},
"cleanliness": {
"protocols": []
}
},
"reviews": {
"summary": {
"overallRating": null,
"totalCount": 1002,
"superlative": null
},
"items": [
{
"id": "6a259ebf59680126203b10d3",
"title": null,
"text": "The rooms was very clean!",
"highlightedText": null,
"originalLanguage": null,
"rating": "10/10 Excellent",
"ratingScore": 10,
"ratingLabel": "Excellent",
"author": "Katrina",
"authorLocation": null,
"date": "Jun 7, 2026",
"stayDuration": "Stayed 1 night in May 2026",
"traveledWith": [],
"verified": true,
"liked": [
"Cleanliness",
"staff & service",
"… +2 more"
],
"disliked": [],
"managementResponse": {
"text": "Thank you for your review! We’re happy to hear you enjoyed your stay at The Times Square…",
"author": "EH",
"respondedOn": "Jun 12, 2026",
"header": "Response from EH on Jun 12, 2026"
},
"helpfulVotes": 0,
"photos": []
},
"… +9 more"
],
"pagination": {
"fetched": 10,
"total": 1002,
"hasMore": true
}
},
"category_ratings": {
"overall": "9.2/10 Wonderful",
"average_score": "9.2",
"superlative": "Wonderful",
"review_count": "1,002 reviews",
"disclaimer": "All reviews shown are from real guest experiences. Only travelers who have booked a stay…",
"categories": [
{
"label": "Cleanliness",
"percentage": 96,
"score": "9.6/10"
},
{
"label": "Staff & service",
"percentage": 94,
"score": "9.4/10"
},
{
"label": "Amenities",
"percentage": 92,
"score": "9.2/10"
},
{
"label": "Property conditions & facilities",
"percentage": 94,
"score": "9.4/10"
}
]
},
"ai_review_summary": {
"disclaimer": "From real guest reviews summarized by AI.",
"sections": [
{
"section_id": "ProductAmenitiesSection",
"title": "What guests liked",
"items": [
{
"text": "Breakfast was consistently described as delicious, fantastic, and excellent by multiple …",
"subText": null
}
]
}
]
},
"gallery": {
"images": [
{
"id": "722092802",
"url": "https://images.trvl-media.com/lodging/31000000/30040000/30039200/30039177/338b255c.jpg?i…",
"caption": "Restaurant, image",
"thumbnail_url": "https://images.trvl-media.com/lodging/31000000/30040000/30039200/30039177/338b255c.jpg?i…",
"aspect_ratio": null
},
{
"id": "722092823",
"url": "https://images.trvl-media.com/lodging/31000000/30040000/30039200/30039177/3d9fba87.jpg?i…",
"caption": "Restaurant, image",
"thumbnail_url": "https://images.trvl-media.com/lodging/31000000/30040000/30039200/30039177/3d9fba87.jpg?i…",
"aspect_ratio": null
},
"… +66 more"
],
"image_groups": [
{
"name": "Rooms",
"image_ids": [
"953918755",
"953918752",
"… +16 more"
]
},
{
"name": "Bathroom",
"image_ids": [
"659572513",
"859916499",
"… +3 more"
]
},
"… +4 more"
]
},
"property_content": {
"about": [
"About this property",
"The Times Square EDITION",
"Luxury hotel near Times Square",
"… +9 more"
],
"policies": [
"Policies",
"Check-in",
"Check-in start time: 4 PM; Check-in end time: midnight",
"Late check-in subject to availability",
"… +29 more"
],
"important_info": [
"Important information",
"Fees",
"<p>You'll be asked to pay the following charges at the property. Fees may include applic…",
"<ul><li>Destination fee: USD 45.90 per accommodation, per night</li></ul>",
"… +17 more"
],
"amenities": [
"Property amenities",
"Internet",
"… +95 more"
]
},
"rooms": {
"sold_out": false,
"rooms": [
{
"unit_id": "216920197",
"name": "Deluxe Room, 1 King Bed",
"sub_text": null,
"description": null,
"features": [
"240 sq ft",
"1 bedroom",
"… +3 more"
],
"amenities": [
"Room amenities",
"Accessibility",
"… +53 more"
],
"highlights": null,
"photos": [
"https://images.trvl-media.com/lodging/31000000/30040000/30039200/30039177/df194528.jpg?i…",
"https://images.trvl-media.com/lodging/31000000/30040000/30039200/30039177/b2e0690d.jpg?i…",
"… +3 more"
],
"footer": "Cancellation options available",
"booking_options": [
{
"group": "Cancellation policy",
"choices": [
{
"label": "Non-Refundable",
"price": "+ $0",
"sub_text": null,
"selected": true
},
{
"label": "Fully refundable before Jul 31",
"price": "+ $57",
"sub_text": "Reserve now, pay later",
"selected": false
}
]
},
{
"group": "Extras",
"choices": [
{
"label": "No extras",
"price": "+ $0",
"sub_text": null,
"selected": true
},
{
"label": "Breakfast for 2",
"price": "+ $46",
"sub_text": null,
"selected": false
}
]
}
],
"rate_plans": [
{
"name": null,
"description": null,
"badge": null,
"badge_theme": null,
"nightly_price": "$446 nightly",
"total_price": {
"amount": 514.71,
"formatted": "$515"
},
"was_price": null,
"cancellation": null,
"deposit": null,
"fees": null,
"payment_policy": null,
"payment_note": "You will not be charged yet",
"rooms_left": "We have 5 left",
"no_credit_card": false,
"room_type_id": null
},
{
"name": null,
"description": null,
"badge": null,
"badge_theme": null,
"nightly_price": "$495 nightly",
"total_price": {
"amount": 571.5,
"formatted": "$572"
},
"was_price": null,
"cancellation": [
"Fully refundable before Fri, Jul 31"
],
"deposit": null,
"fees": null,
"payment_policy": [
"Pay the total now",
"You can use a valid Expedia coupon",
"… +4 more"
],
"payment_note": "You will not be charged yet",
"rooms_left": "We have 5 left",
"no_credit_card": false,
"room_type_id": null
},
"… +3 more"
]
},
{
"unit_id": "216920193",
"name": "Deluxe Room, 1 King Bed, City View",
"sub_text": null,
"description": null,
"features": [
"City view",
"240 sq ft",
"… +4 more"
],
"amenities": [
"Room amenities",
"Accessibility",
"… +54 more"
],
"highlights": null,
"photos": [
"https://images.trvl-media.com/lodging/31000000/30040000/30039200/30039177/24a85100.jpg?i…",
"https://images.trvl-media.com/lodging/31000000/30040000/30039200/30039177/aa36787f.jpg?i…",
"… +3 more"
],
"footer": "Cancellation options available",
"booking_options": [
{
"group": "Cancellation policy",
"choices": [
{
"label": "Non-Refundable",
"price": "+ $0",
"sub_text": null,
"selected": true
},
{
"label": "Fully refundable before Jul 31",
"price": "+ $61",
"sub_text": "Reserve now, pay later",
"selected": false
}
]
},
{
"group": "Extras",
"choices": [
{
"label": "No extras",
"price": "+ $0",
"sub_text": null,
"selected": true
},
{
"label": "Breakfast for 2",
"price": "+ $46",
"sub_text": null,
"selected": false
}
]
}
],
"rate_plans": [
{
"name": null,
"description": null,
"badge": null,
"badge_theme": null,
"nightly_price": "$482 nightly",
"total_price": {
"amount": 556.02,
"formatted": "$556"
},
"was_price": null,
"cancellation": null,
"deposit": null,
"fees": null,
"payment_policy": null,
"payment_note": "You will not be charged yet",
"rooms_left": "We have 5 left",
"no_credit_card": false,
"room_type_id": null
},
{
"name": null,
"description": null,
"badge": null,
"badge_theme": null,
"nightly_price": "$535 nightly",
"total_price": {
"amount": 617.42,
"formatted": "$617"
},
"was_price": null,
"cancellation": [
"Fully refundable before Fri, Jul 31"
],
"deposit": null,
"fees": null,
"payment_policy": [
"Pay the total now",
"You can use a valid Expedia coupon",
"… +4 more"
],
"payment_note": "You will not be charged yet",
"rooms_left": "We have 5 left",
"no_credit_card": false,
"room_type_id": null
},
"… +3 more"
]
},
"… +12 more"
]
}
}

What's in this record:

  • Core: name, URL, star + guest rating, live price (nightly plus the all-in total with taxes in price_messages), any property program badge (e.g. "VIP Access") in badges, and the search_context (dates/occupancy the price was quoted for)
  • category_ratings: per-category scores (cleanliness, staff & service, amenities, property condition) plus overall
  • ai_review_summary: AI-summarized guest highlights
  • gallery: all 68 photos with captions and thumbnails, grouped by category
  • property_content: about text, policies, fees, and the complete amenities list (97 property and in-room amenities)
  • rooms: all 14 room types with live rate plans — nightly + total price, how many rooms are left at each rate, and payment terms
  • propertyDetails: full address + coordinates, categorized amenities, 15 nearby points of interest, reviews summary, and map images (Google API keys stripped)
  • reviews: individual guest reviews with ratings, text, and management responses, plus pagination (10 of 1,002 fetched here)

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