Hotels.com Reviews Scraper 🏨 Ratings, Text & Sentiment avatar

Hotels.com Reviews Scraper 🏨 Ratings, Text & Sentiment

Pricing

from $0.002 / review

Go to Apify Store
Hotels.com Reviews Scraper 🏨 Ratings, Text & Sentiment

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

Factden

Maintained by Community

Actor stats

4

Bookmarked

8

Total users

6

Monthly active users

an hour ago

Last modified

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 brandsHotels.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.

Hotels.com hotel reviews - one row per review

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:

FieldDescription
overallRating, ratingLabelGuest score on the /10 scale + label ("Exceptional", "Good", "Fair"…).
reviewText, verifiedFull written review + verified-stay flag.
subRatingsPer-review category scores — cleanliness, service, room comfort, hotel condition, amenities, value.
submittedAt, checkInDate, checkOutDateSubmission date + stay dates.
travelCompanions, travelerCategoriesWho they travelled as (Family, Couple, Business…).
language, isMachineTranslatedOriginal language + machine-translation flag.
reviewPhotos, helpfulVotes, ownerResponseGuest photo URLs, helpful votes, hotel owner reply {text, date, responder}.
brandTypeThe brand the review was originally posted on (shown as Review source).
markdownContentSelf-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 actorOfficial Hotels.com APIManual 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⚠️
CostPay per review, no start feeEngineering 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 markdownContent block 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

  1. 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/.
  2. Paste one or more such URLs, bare Hotels.com property IDs, or any Expedia Group brand URL into Hotel URLs.
  3. (Optional) Set Max reviews per hotel, a date range, a rating range, a sort order, or Review sources.
  4. Click Start, then export to CSV, JSON, Excel, or pull the results from the API.

Input tab - hotel URLs plus filters & limits

Input

FieldDescription
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:

Hotels dataset - one aggregate row per hotel with average rating, rating distribution and category sub-scores

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:

Reviews AI ingest view - LLM-ready markdown column for each Hotels.com review

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:

PlanPrice 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:

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.

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-ready markdownContent view.

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.