Expedia & Hotels.com Reviews Scraper - Ratings & Replies avatar

Expedia & Hotels.com Reviews Scraper - Ratings & Replies

Pricing

from $0.99 / 1,000 reviews

Go to Apify Store
Expedia & Hotels.com Reviews Scraper - Ratings & Replies

Expedia & Hotels.com Reviews Scraper - Ratings & Replies

Scrape guest reviews from Expedia, Hotels.com, Orbitz, Travelocity and Vrbo. Paste hotel links or IDs from any of them: review text, rating, stay length, liked and disliked themes, photos, verified status and the hotel's reply. One row per review.

Pricing

from $0.99 / 1,000 reviews

Rating

0.0

(0)

Developer

ClearPath

ClearPath

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Expedia & Hotels.com Reviews Scraper | Guest Reviews, Ratings & Replies

Thousands of reviews. From a single hotel. Stay details. Likes & dislikes. Hotel responses.

From Clearpath, creators of Expedia Hotels, Booking.com Reviews and Tripadvisor Reviews. The same team behind Hotel Review Aggregator.

Why choose this actor?

Collect thousands of reviews from a single hotel. Work through the available review history to find recurring praise and complaints across stays. Separate liked and disliked categories and hotel responses add context to what guests experienced.

Keep the stay details behind the score. Get scores out of 10, stay length, travel-party details and the source’s verified-review label. The output has 27 fields per review, including photos where available, ready for filtering and analysis.

Use links from five familiar booking sites. Paste hotel links from Expedia, Hotels.com, Orbitz, Travelocity or Vrbo. They access the same hotel review collection. A separate hotel summary includes location, overall score and reviews collected, making it easy to compare properties.

Collect your hotel reviews

Quick start

Try 20 reviews first. Replace the link with your hotel page from any supported brand, or use its numeric hotel ID.

{
"hotels": [
"https://www.expedia.com/Paris-Hotels-Grand-Hotel-Leveque.h5951861.Hotel-Information"
],
"maxReviews": 20
}

Want more? Set maxReviews to 0 for every review the source makes available. The source can stop short of its displayed total; the hotel summary flags partial collections. Open actor input to choose your hotels. Export CSV or Excel for analysis, or JSON to preserve themes, photos and replies. Reviews are billed per result.

Clearpath · Hotel & Review Research
 Expedia Reviews
You are here
 Expedia
Rates & rooms
 Booking.com
Guest reviews
 Tripadvisor
Hotels & dining
 Hotel Reviews
5 platforms

Copy to your AI assistant

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

clearpath/expedia-hotels-com-reviews-scraper on Apify. Scrapes guest reviews for a hotel from Expedia Group: Expedia, Hotels.com, Orbitz, Travelocity and Vrbo share one review corpus per property, so a link from any of them works and the rows are the same. Call: ApifyClient("TOKEN").actor("clearpath/expedia-hotels-com-reviews-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for one row per review. A SECOND dataset holds one row per hotel (identity, location, overall score, reviews available vs collected): read run["output"]["hotels"], or open the "summary" dataset in Storage. Inputs: hotels (array, required - hotel page links or numeric hotel IDs, mixed freely; the ID is the number after ".h" in a link), maxReviews (integer, default 100, per hotel, 0 = every review the source serves). No date, rating or language filters: filter the rows yourself. Reviews only - this actor returns no prices, rates or availability. Full actor spec (input schema, dataset fields, README): GET https://api.apify.com/v2/acts/clearpath~expedia-hotels-com-reviews-scraper/builds/default (Bearer TOKEN) returns inputSchema, actorDefinition.storages.datasets, readme. Pricing: pay-per-event, $0.009 per run start plus $1.99 per 1,000 reviews. Get token: https://console.apify.com/account/integrations

Key Features

  • Five brands, one actor: Expedia, Hotels.com, Orbitz, Travelocity and Vrbo links all resolve to the same property and the same reviews
  • 27 fields per review: text, score out of 10, rating label, liked and disliked themes, author, stay length, verified status, helpful votes, photos and the hotel's reply
  • The hotel's side of the story: managementResponse carries the reply text, who wrote it and when — present on 36 of 40 reviews in our test sample
  • Two inputs: hotel links or IDs, and how many reviews per hotel. Nothing else to configure
  • Everything or a sample: maxReviews: 0 collects every review the source serves; a small number gives you a quick look first
  • Honest completion: every hotel gets a summary row saying how many reviews exist, how many were collected and whether the source ran out early

Pricing: Pay Per Event (PPE)

$1.99 per 1,000 reviews, no subscription.

EventPrice
Review scraped$0.00199

Example: 100 reviews costs about $0.20. A 1,000-review sweep of one hotel costs about $2.00.

Apify also charges $0.009 when a run starts, which covers the hotel lookup a run performs before any review is read.

Quick Start

One hotel, first 100 reviews

{
"hotels": ["https://www.expedia.com/Paris-Hotels-Grand-Hotel-Leveque.h5951861.Hotel-Information"],
"maxReviews": 100
}

Only the .h<id> part of a link is read, so paste whatever your browser gives you:

{
"hotels": ["https://www.hotels.com/Hotel.h5951861.Hotel-Information"],
"maxReviews": 100
}

Several hotels, by ID

The ID is the number after .h in any hotel link. Mix IDs and links freely; duplicates are collapsed.

{
"hotels": ["5951861", "9619719", "https://www.orbitz.com/Hotel.h868.Hotel-Information"],
"maxReviews": 50
}

Every review a hotel has

{
"hotels": ["5951861"],
"maxReviews": 0
}

0 means everything the source will serve. On a 1,527-review property this returned 1,475 rows and reported the shortfall rather than pretending it was complete.

Input Parameters

ParameterTypeDefaultDescription
hotelsarray—Hotel page links or numeric hotel IDs, mixed freely. Required.
maxReviewsinteger100Reviews per hotel, not per run. 0 collects every review available.

Output Data

Two datasets. Reviews go to the default dataset, one row per review. A second dataset named summary holds one row per hotel.

Review row (27 fields)

GroupFields
The reviewid text title highlightedText date dateRaw
The scorerating ratingScore ratingScaleMax ratingLabel
Themesliked disliked
The guestauthor authorLocation traveledWith stayDuration verified verificationLabel
SignalshelpfulVotes photos originalLanguage language brandType
The hotel's replymanagementResponse (text, author, date, header)
IdentityhotelId hotelName hotelUrl

Hotel row (summary dataset)

hotelId hotelName hotelUrl address city countryCode latitude longitude totalScore reviewsCount reviewsFetched reviewStatus status

reviewsCount is how many reviews the hotel has; reviewsFetched is how many this run delivered. reviewStatus tells you why they differ: limit_reached means your maxReviews stopped it, exhausted means the source ran out, partial means it stopped early and the row says so.

Complete Output Example

One real review, every field as returned:

{
"id": "6a7fa1f71832b92a621e4d54",
"title": null,
"text": "No place to put luggage .",
"highlightedText": null,
"originalLanguage": null,
"language": null,
"brandType": null,
"rating": "8/10 Good",
"ratingScore": 8,
"ratingScaleMax": 10,
"ratingLabel": "Good",
"author": "Saverio",
"authorLocation": null,
"date": "Aug 14, 2026",
"dateRaw": "Aug 14, 2026",
"stayDuration": "Stayed 3 nights in Aug 2026",
"traveledWith": [],
"verified": true,
"verificationLabel": "Verified review",
"liked": [
"Cleanliness",
"staff & service",
"amenities",
"property conditions & facilities"
],
"disliked": [],
"managementResponse": {
"text": "Thank you for your feedback. We understand that you found the luggage space limited. We do offer larger room categories with more space, which may be more suitable for guests travelling with larger luggage. We hope to welcome you again soon!",
"author": "Nicolas",
"respondedOn": "Sep 17, 2026",
"header": "Response from Nicolas on Sep 17, 2026"
},
"helpfulVotes": 0,
"photos": [],
"hotelId": "5951861",
"hotelName": "Grand Hotel Leveque",
"hotelUrl": "https://www.expedia.com/Hotel.h5951861.Hotel-Information"
}

And the hotel it belongs to, from the summary dataset:

{
"hotelId": "5951861",
"hotelName": "Grand Hotel Leveque",
"hotelUrl": "https://www.expedia.com/Hotel.h5951861.Hotel-Information",
"address": "29 rue Cler, Paris, Paris, 75007",
"city": "Paris",
"countryCode": "FRA",
"latitude": 48.857416,
"longitude": 2.306071,
"reviewsCount": 1002,
"totalScore": 9.4,
"reviewStatus": "limit_reached",
"reviewsFetched": 40
}

What You Can Do With It

  • Reputation tracking: watch what guests praise and complain about, hotel by hotel, over time
  • Competitive sets: pull the same review depth for a block of hotels in one district and compare the liked and disliked themes
  • Response auditing: managementResponse shows which complaints a hotel answers and how fast
  • Training and sentiment data: review text with a numeric score and the guest's own theme labels already attached

FAQ

Does a Hotels.com link work? Yes. A property's reviews are identical on Expedia, Hotels.com, Orbitz, Travelocity and Vrbo — we measured it across all four domains and every Expedia Group site ID, and the response was the same every time. Paste whichever link you have.

Where do I find the hotel ID? It is the number after .h in a hotel link. In .../Paris-Hotels-Grand-Hotel-Leveque.h5951861.Hotel-Information the ID is 5951861.

How many reviews can I get for one hotel? Set maxReviews: 0 for everything the source serves. It does occasionally stop short of the published count — on a 1,527-review property it returned 1,475 — and the summary row reports that as partial instead of hiding it.

Does it include the hotel's reply? Yes, in managementResponse, with the responder's name and date. Most reviewed hotels reply to a large share of reviews; 36 of the 40 reviews in our sample carried one.

Can I filter by date, rating or language? Not in the input. Every review comes back with date, ratingScore and originalLanguage, so filter the rows after export.

Does it return prices or availability? No. This actor is reviews only. For rates, room types and availability use the Expedia Hotels Scraper.

What happens if a hotel ID is wrong? The run continues. That hotel gets a summary row with status: "unresolved" and the other hotels still deliver their reviews.

ActorWhat it does
Expedia Hotels ScraperPrices, rooms and live rates, property details, search by city
Booking.com Reviews ScraperGuest reviews, scores and replies from Booking.com
Agoda Reviews ScraperAgoda guest reviews plus the Booking.com and partner reviews it shows
Agoda Hotel ScraperAgoda prices, room offers and hotel details by city
Tripadvisor Reviews ScraperReviews for hotels, restaurants and attractions
Yelp Reviews ScraperBusiness reviews in every language, with owner replies

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 scraper extracts publicly available hotel review data. Users must comply with the source's terms of service and applicable data protection regulations for their intended use.


🚀 Start Scraping Expedia and Hotels.com Reviews