Hotels.com Reviews Scraper avatar

Hotels.com Reviews Scraper

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Hotels.com Reviews Scraper

Hotels.com Reviews Scraper

Extract hotel reviews from Hotels.com, including guest ratings, review text, traveler feedback, stay dates, hotel names, and locations. Perfect for hotel reputation monitoring, sentiment analysis, hospitality market research, competitor insights, and AI training datasets.

Pricing

from $0.80 / 1,000 results

Rating

5.0

(1)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Categories

Share

What does Hotels.com Reviews Scraper do?

Hotels.com Reviews Scraper collects publicly available hotel reviews from Hotels.com and saves them as a structured dataset. Add one or more hotel URLs, choose a review order, and set how many reviews you want. The Actor returns review text, ratings, reviewer names, review dates, themes, management responses, photos, and direct hotel links.

Use it for hotel reputation research, competitor review tracking, destination analysis, guest sentiment datasets, and AI or RAG workflows that need real review text.

Why use Hotels.com Reviews Scraper?

  • Structured review datasets - Get clean fields instead of copying review pages by hand.
  • Multiple hotels in one run - Add several hotel URLs and collect them together.
  • Flexible review order - Sort by newest, highest rated, lowest rated, or relevance.
  • Useful context - Capture management responses, traveler types, themes, and photos when Hotels.com publishes them.
  • Dataset exports - Download JSON, CSV, Excel, or XML, or connect the dataset to other tools.
  • Scheduled monitoring - Refresh hotel review data daily, weekly, or monthly with Apify schedules.

What data can you extract from Hotels.com?

FieldDescription
review_idHotels.com review identifier
hotel_idHotel identifier from the supplied hotel URL when available
property_idHotels.com property identifier used for the review request
hotel_nameHotel name returned by Hotels.com
hotel_urlHotel URL supplied in the input
review_urlHotel URL with a review anchor
titleReview title when the reviewer added one
textFull review text
ratingNumeric rating parsed from the review score
rating_textRating as displayed by Hotels.com
authorReviewer display name
dateReview submission date as displayed by Hotels.com
localeReview language locale
traveler_typesTraveler types when available
themesReview themes such as cleanliness or location
management_responseHotel management response text
management_response_dateManagement response date label
photosReviewer photo URLs and descriptions
sort_byReview order used for the run
scraped_atISO timestamp for when the review was collected
sourceSource website, always hotels.com

How to use Hotels.com Reviews Scraper

  1. Open the Actor on Apify Store.
  2. Paste one or more Hotels.com hotel URLs into Hotel URLs.
  3. Choose a review order.
  4. Set the maximum reviews and maximum pages per hotel.
  5. Run the Actor.
  6. Open the dataset to preview, filter, or download the reviews.

You can use full hotel URLs, hotel URLs without a slug, compact hotel IDs, or global property URLs. Examples:

  • https://www.hotels.com/ho218450/hyatt-regency-london-blackfriars-london-united-kingdom/
  • https://www.hotels.com/ho218450/
  • ho218450
  • 218450
  • https://www.hotels.com/h1038731.Hotel-Information

Tracking parameters, HTML entities such as &, escaped slashes, and extra whitespace are cleaned automatically.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlsArrayNoh1038731.Hotel-InformationHotel URLs or IDs to collect reviews from
sortByStringNoNEWEST_TO_OLDEST_BY_LANGUAGEReview order: newest by language, highest rated, lowest rated, newest, or most relevant
results_wantedIntegerNo100Maximum reviews to save across all hotels. Use 0 for all available reviews
max_pagesIntegerNo20Maximum review pages requested per hotel
proxyConfigurationObjectNoResidential Apify ProxyApify Proxy or custom proxy settings. Residential proxies are enabled by default because Hotels.com limits shared datacenter IPs

Output Data

FieldTypeDescription
review_idStringReview identifier
hotel_idStringHotel ID from the input URL
property_idStringProperty ID used by Hotels.com
hotel_nameStringHotel name
hotel_urlStringHotel URL from the input
review_urlStringHotel URL with a review anchor
titleStringReview title
textStringReview body
ratingNumberNumeric rating
rating_textStringRating label
authorStringReviewer name
dateStringReview date
localeStringReview locale
traveler_typesArrayTraveler types
themesArrayReview themes
management_responseStringManagement response
management_response_dateStringManagement response date
photosArrayReviewer photos
sort_byStringReview order used
scraped_atStringCollection timestamp
sourceStringSource website

Fields that are not published for a review are removed from the record instead of being saved as null.

Usage Examples

Collect recent reviews from one hotel

Use one hotel URL and keep the default newest-first order.

{
"startUrls": ["https://www.hotels.com/ho218450/hyatt-regency-london-blackfriars-london-united-kingdom/"],
"sortBy": "NEWEST_TO_OLDEST_BY_LANGUAGE",
"results_wanted": 100,
"max_pages": 5
}

Collect highly rated reviews from several hotels

Add multiple hotel URLs and sort by rating.

{
"startUrls": [
"https://www.hotels.com/ho218450/hyatt-regency-london-blackfriars-london-united-kingdom/",
"https://www.hotels.com/ho113320/the-royal-horseguards-london-united-kingdom/"
],
"sortBy": "HIGHEST_TO_LOWEST_RATED",
"results_wanted": 250,
"max_pages": 10
}

Collect all available reviews with a residential proxy

Set the review limit to 0 and keep the default residential proxy for a larger run. The example sets it explicitly.

{
"startUrls": ["https://www.hotels.com/ho218450/hyatt-regency-london-blackfriars-london-united-kingdom/"],
"sortBy": "NEWEST_TO_OLDEST",
"results_wanted": 0,
"max_pages": 20,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Sample Output

{
"review_id": "6a4a6bd40e56584730850ea9",
"hotel_id": "218450",
"property_id": "1038731",
"hotel_name": "Hyatt Regency London Blackfriars",
"hotel_url": "https://www.hotels.com/ho218450/hyatt-regency-london-blackfriars-london-united-kingdom/",
"review_url": "https://www.hotels.com/ho218450/hyatt-regency-london-blackfriars-london-united-kingdom/#review-6a4a6bd40e56584730850ea9",
"text": "Great location, clean room",
"rating": 10,
"rating_text": "10/10 Exceptional",
"author": "Chiawen",
"date": "Jul 5, 2026",
"locale": "en_US",
"management_response": "Thank you for taking the time to share your wonderful feedback.",
"management_response_date": "Response from Management on Jul 17, 2026",
"sort_by": "NEWEST_TO_OLDEST_BY_LANGUAGE",
"scraped_at": "2026-10-23T10:30:00.000Z",
"source": "hotels.com"
}

The management response is shortened for readability.

Tips for Best Results

  • Use complete hotel URLs when possible. They are easier to verify and keep in your records.
  • Start with a small results_wanted value to check the output before running a large job.
  • Use max_pages as a safety limit. One page contains up to 50 reviews.
  • Residential Apify Proxy is enabled by default. Keep it for large runs or repeated schedules because Hotels.com limits shared datacenter IPs.
  • If a hotel has no published reviews, the run can finish with an empty dataset for that hotel. Check the hotel page before assuming the Actor failed.
  • Review text and management responses can be long. Use the dataset table for a quick preview and download CSV or JSON for full analysis.

Integrations

  • Google Sheets - Send review datasets to a spreadsheet for filtering and reporting.
  • Webhooks - Trigger a workflow after a run finishes.
  • Make or Zapier - Connect review data to no-code automations.
  • Apify API - Fetch datasets programmatically from your own application.
  • CSV, Excel, JSON, XML - Download results in the format your team already uses.

Frequently Asked Questions

Can I export Hotels.com reviews to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, and other supported formats from the run page.

Can I collect reviews from more than one hotel?

Yes. Add multiple hotel URLs to startUrls. The Actor processes them in one run and combines the reviews in the default dataset.

Can I run this Actor on a schedule?

Yes. Create an Apify schedule for daily, weekly, or monthly runs. Keep the residential proxy enabled for recurring jobs.

How many reviews can I collect?

The Actor can collect up to the total number of reviews Hotels.com publishes for a hotel. Use results_wanted to cap the dataset and max_pages to cap requests per hotel.

Why are some review fields missing?

Hotels.com does not publish every field for every review. Empty titles, missing themes, missing photos, and missing management responses are normal. The Actor removes fields that have no value.

Why did a hotel return no reviews?

The hotel may have no published reviews, the URL may point to a different property, or Hotels.com may have limited the request. Check the hotel page and run logs, then retry with a new residential proxy session.

Does this Actor support hotel IDs?

Yes. You can use full hotel URLs, URLs without a slug, compact IDs such as ho218450, or global property URLs such as h1038731.Hotel-Information.

Scraping public web data can be legal, but rules vary by location and use case. You are responsible for complying with applicable laws, website terms, and privacy rules.

Support

For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.

This Actor is designed for legitimate collection of publicly available review data. Users are responsible for using the data responsibly and complying with applicable laws and website terms.