Hotels.com Reviews Scraper 🏨 Ratings, Text & Sentiment
Pricing
from $0.002 / review
Hotels.com Reviews Scraper 🏨 Ratings, Text & Sentiment
Scrape Hotels.com hotel reviews at scale - guest ratings, full review text, sub-ratings, stay dates, traveler type, language & owner responses, plus LLM-ready markdown. Also accepts Expedia, Travelocity, Orbitz, Wotif, CheapTickets & ebookers URLs. Filter by date/rating; export JSON/CSV.
Pricing
from $0.002 / review
Rating
5.0
(3)
Developer
Factden
Maintained by CommunityActor stats
4
Bookmarked
8
Total users
6
Monthly active users
an hour ago
Last modified
Categories
Share
Hotels.com Reviews Scraper
Hotels.com Reviews Scraper extracts every public guest review from Hotels.com at scale — ratings out of 10, full review text, category sub-ratings, stay dates, traveler type, language, and hotel owner/management responses — plus a per-review LLM-ready markdown block. Export clean CSV, JSON, Excel, or pull it via API. No login, no Hotels.com API key, pay per review with no start fee. Use it for guest-feedback and sentiment analysis, hotel reputation monitoring, competitor benchmarking, or to build a hotel-review dataset for RAG / LLM pipelines.
⭐ Found this useful? Please rate & bookmark the actor — it helps other travelers and hotel teams find it.
One scraper, all seven Expedia Group hotel brands — Hotels.com, Expedia, Travelocity, Orbitz, Wotif, CheapTickets & ebookers. They share one backend, so any brand's hotel URL returns the same fields, same schema. A single actor replaces seven separate review scrapers — something no single-site Hotels.com scraper can do.
Runs on the Apify platform: scheduling, a REST API, webhooks & integrations, proxy rotation, and run monitoring out of the box — plus incremental / since-date runs so you only pull what's new.

What data can I extract from Hotels.com reviews?
Per review — one clean row, with the hotel context merged onto every row so each stands alone:
| Field | Description |
|---|---|
overallRating, ratingLabel | Guest score on the /10 scale + label ("Exceptional", "Good", "Fair"…). |
reviewText, verified | Full written review + verified-stay flag. |
subRatings | Per-review category scores — cleanliness, service, room comfort, hotel condition, amenities, value. |
submittedAt, checkInDate, checkOutDate | Submission date + stay dates. |
travelCompanions, travelerCategories | Who they travelled as (Family, Couple, Business…). |
language, isMachineTranslated | Original language + machine-translation flag. |
reviewPhotos, helpfulVotes, ownerResponse | Guest photo URLs, helpful votes, hotel owner reply {text, date, responder}. |
brandType | The brand the review was originally posted on (shown as Review source). |
markdownContent | Self-contained LLM-ready markdown block for RAG / vector-DB ingestion. |
Alongside the reviews you get a per-hotel aggregate: average rating, recency-weighted rating, total review count, the full 1–5 rating distribution, category sub-scores, traveler-type & language counts, and coordinates.
Why use it? Hotels.com Reviews Scraper vs the alternatives
| This actor | Official Hotels.com API | Manual copy-paste / DIY script | |
|---|---|---|---|
| Hotels.com guest reviews | ✅ All, paginated | ❌ No public reviews API | ⚠️ A few, then blocked |
| Sub-ratings + /10 score + owner responses | ✅ | ❌ | ⚠️ Manual |
| LLM-ready markdown per review | ✅ | ❌ | ❌ |
| 6 sibling brands (Expedia, Travelocity…) | ✅ One input | ❌ | ❌ |
| Export CSV / JSON / Excel / API | ✅ | — | ⚠️ |
| Cost | Pay per review, no start fee | — | Engineering time + proxies |
- Reputation monitoring & sentiment analysis — track guest feedback for your own or competitor hotels; every review carries structured sub-ratings and a sentiment-ready text block.
- Competitor benchmarking — pull rating distributions, category sub-scores and review volume per property.
- Market research & reviewer demographics — analyze traveler types, languages, and what guests praise or complain about across a whole market.
- AI / RAG pipelines & review datasets — the
markdownContentblock is ready for vector-DB ingestion, so you can build a clean hotel-review dataset for an LLM with no post-processing.
How to scrape Hotels.com reviews
- Open a hotel on Hotels.com and copy its URL — it contains a
/ho<number>/segment, e.g.https://www.hotels.com/ho119566/bellagio-las-vegas-united-states-of-america/. - Paste one or more such URLs, bare Hotels.com property IDs, or any Expedia Group brand URL into Hotel URLs.
- (Optional) Set Max reviews per hotel, a date range, a rating range, a sort order, or Review sources.
- Click Start, then export to CSV, JSON, Excel, or pull the results from the API.

Input
| Field | Description |
|---|---|
Hotel URLs or property IDs (hotelUrls) | Hotels.com /ho<id>/ URLs, bare Hotels.com IDs (242128), or URLs from any of the 6 sibling brands. One per line. |
Max reviews per hotel (maxReviewsPerHotel) | Cap per hotel (default 200). |
Sort reviews by (sortBy) | newest (default), oldest, highestRating, lowestRating. |
From / To date (fromDate / toDate) | Keep only reviews in a YYYY-MM-DD range — ideal for incremental monitoring. |
Min / Max rating (minRating / maxRating) | Keep only reviews within a 1–5 rating range. |
Review sources (reviewSources) | Which Expedia Group brands' reviews to return. Empty = all (cross-brand union). |
Proxy (proxyConfiguration) | Datacenter is enough; residential for very large runs. |
Output — export Hotels.com reviews to CSV, JSON & Excel
The actor writes two datasets: Reviews (default) — one row per guest review — and Hotels — one row
per hotel with the aggregate. The reviews dataset also exposes an AI ingest view (the LLM-ready
markdownContent column). Download any of them as JSON, CSV, Excel or XML, or fetch from the API.
The Hotels dataset gives you one aggregate row per property — average & recency-weighted rating, total review count, rating distribution, category sub-scores, and coordinates:

A real review row from a run on the Bellagio (Las Vegas), pasted as a Hotels.com URL:
{"hotelId": 140596,"hotelName": "Bellagio","hotelUrl": "https://www.hotels.com/ho119566/bellagio/","source": "hotels","reviewId": "6a5163ef5acf8d54499c0073","submittedAt": "2026-07-10T21:29:04Z","overallRating": 10,"ratingLabel": "Exceptional","reviewText": "Great as usual!","subRatings": ["Cleanliness: 10", "Service: 10", "Hotel condition: 8", "Amenities: 10"],"verified": true,"reviewerName": "Alexey","checkInDate": "2026-07-05T00:00:00Z","checkOutDate": "2026-07-10T00:00:00Z","travelCompanions": ["Family"],"travelerCategories": ["Families"],"language": "en","isMachineTranslated": false,"helpfulVotes": 0,"reviewPhotos": [],"ownerResponse": null,"brandType": "Hotels.com","markdownContent": "# Bellagio review (Hotels.com)\n\n**Rating:** 10/10 ★★★★★\n**Travelling as:** Family\n**Sub-ratings:** Cleanliness: 10; Service: 10; Hotel condition: 8; Amenities: 10\n\n## Review\nGreat as usual!"}
Ratings are on the /10 scale to match Hotels.com's public display (the source stores /5; we present ×2).
The AI ingest (LLM-ready) view surfaces the self-contained markdownContent column for every review — load it
straight into a vector database or LLM with no reshaping:

How much does it cost to scrape Hotels.com reviews?
Pay-per-event with no start fee — you pay only for the reviews you actually get, and nothing if a run returns zero reviews:
| Plan | Price per 1,000 reviews |
|---|---|
| Free | $2.50 |
| Bronze | $2.30 |
| Silver | $2.15 |
| Gold+ | $2.00 |
Examples: 500 reviews ≈ $1.25 · 5,000 reviews ≈ $12.50 (Free) / $10.00 (Gold). Lower Max reviews per hotel to cap spend; your first runs are covered by Apify's free tier. There is no per-run start fee.
Works with all 7 Expedia Group brands
One engine, one output schema, seven sites — paste a Hotels.com, Expedia, Travelocity, Orbitz, Wotif,
CheapTickets or ebookers hotel URL and it just works. Hotels.com /ho<id>/ links and bare IDs are resolved
automatically; the other brands carry the id in a .h<id>. path. Use Review sources to keep only certain
brands' reviews, or leave it empty for the cross-brand union.
Other FactDen scrapers
Building a review-intelligence pipeline? Pair this with:
- Expedia Reviews Scraper — the same engine, Expedia-branded.
- Trip.com & Ctrip Reviews Scraper — hotel reviews across Trip.com / Ctrip.
- G2 Reviews Scraper — B2B software reviews & battlecards.
- Indeed Jobs Scraper — job listings & company data.
FAQ
How do I scrape Hotels.com reviews?
Copy a hotel's Hotels.com URL (it contains a /ho<number>/ segment) or its numeric ID, paste it into Hotel
URLs, and click Start. The actor pulls every public guest review newest-first and returns one structured row
per review — rating, text, sub-ratings, stay dates and owner responses — which you export as CSV, JSON or Excel.
Set Max reviews per hotel and a From date to control volume and cost.
Does Hotels.com have a reviews API?
Hotels.com does not offer a public reviews API for guest reviews — the review data is only on the website. This actor is the practical alternative: it collects the same public reviews and hotel-rating aggregates and delivers them as structured JSON/CSV, so you get API-style access to Hotels.com review data without an official endpoint.
Is it legal to scrape Hotels.com reviews?
This actor collects only publicly available review content. You are responsible for complying with Hotels.com's Terms of Service and applicable laws (including data-protection rules) when you use the data. It does not collect private or personal account data. See Apify's guide on whether web scraping is legal.
What data fields does each review include?
Each review row includes the overall rating (out of 10), a rating label, the full review text, per-category
sub-ratings (cleanliness, service, room comfort, condition, amenities, value), stay dates, traveler type, language,
guest photos, helpful votes, any owner/management response, the originating brand, and a self-contained LLM-ready
markdownContent block. A separate hotel row adds the aggregate ratings, review count and rating distribution.
Can I use the Hotels.com Reviews Scraper with the Apify API?
Yes. Every run is fully API-accessible — start runs, pass input, and fetch the dataset programmatically. For a
one-shot call, POST to the actor's run-sync-get-dataset-items endpoint with your hotelUrls and
maxReviewsPerHotel and the reviews come back in the response. Append ?view=aiIngest for the LLM-ready markdown
columns.
Can I use this actor through an MCP Server?
Yes. The actor works with the Apify MCP Server, so AI agents (Claude, and any MCP-compatible client) can discover and run it as a tool and receive the structured review data directly. The input schema carries descriptions and sane defaults so an agent can run it without hand-holding — useful for building hotel-review agents and RAG pipelines.
Can I build a hotel-review dataset for sentiment analysis or a RAG pipeline?
Yes — this is a common use. Each of the 27 review fields is structured, and every row also ships a self-contained
markdownContent block, so you can export thousands of reviews as JSON or CSV and load them straight into a
vector database, a sentiment-analysis model, or an LLM/RAG pipeline with no post-processing. The per-hotel
aggregate (average rating, rating distribution, category sub-scores) gives you ready-made labels for training or
reputation dashboards. Use the AI ingest dataset view to pull just the LLM-ready columns.
Can I integrate it with Make, Zapier, n8n or Google Sheets?
Yes. Results push straight into Google Sheets, Make, Zapier, n8n, a webhook, or your own app via the Apify API. Schedule the actor hourly or daily and combine it with a From date for continuous, incremental review monitoring that only pays for new reviews.
How is this different from a TripAdvisor or Booking.com scraper?
This actor is purpose-built for the Expedia Group ecosystem — Hotels.com plus six sibling brands that share one backend — so a single run covers reviews other single-site scrapers miss. It returns Hotels.com's granular per-category sub-ratings, the /10 rating scale, owner responses, and an LLM-ready markdown block, billed per review with no start fee.
Changelog
- 2026-07-12 — Initial release. Hotels.com guest reviews + hotel aggregates across all 7 Expedia Group brands;
/ho<id>/and bare-ID resolution; per-review pay-per-event pricing; LLM-readymarkdownContentview.
⭐ Find this useful? Bookmark the actor and leave a review on its Apify Store page — it helps others find it and tells us which features to build next. Found a bug or need a field we don't return? Open the Issues tab on this actor's Apify page.