HRS Reviews Scraper ⭐ avatar

HRS Reviews Scraper ⭐

Pricing

from $0.99 / 1,000 results

Go to Apify Store
HRS Reviews Scraper ⭐

HRS Reviews Scraper ⭐

Extract HRS hotel reviews, ratings, guest feedback, review dates, traveler insights, and hotel details at scale. Get structured, analysis-ready data for hospitality research, reputation monitoring, sentiment analysis, competitor tracking, and travel intelligence.

Pricing

from $0.99 / 1,000 results

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does HRS Reviews Scraper do?

HRS Reviews Scraper collects structured hotel reviews, detailed category scores, guest comments, hotel replies, traveler details, and property metadata from HRS hotel URLs. Add one or more public HRS detail links, choose a traveler filter, set the number of reviews you need, and receive an analysis-ready dataset.

The Actor is built for hospitality teams, travel researchers, reputation managers, analysts, and data teams that need HRS guest feedback without manual copying. Results can be downloaded as JSON, CSV, Excel, XML, or connected to another workflow through Apify.

Why use HRS Reviews Scraper?

  • Complete guest feedback - Collect positive and negative comments, hotel responses, recommendation signals, and overall scores.
  • Detailed rating breakdowns - Compare room quality, cleanliness, reception, staff service, breakfast, value, beds, wellness, and other published categories.
  • Traveler segmentation - Focus on business travelers, private travelers, couples, groups, or families with older children.
  • Hotel context - Add hotel name, star category, city, country, address, and coordinates to every review.
  • Clean records - Empty and null values are omitted, while meaningful zero and false values are retained.
  • Duplicate protection - Repeated hotel URLs and review records are automatically deduplicated.
  • Automation-ready output - Schedule runs, export datasets, use webhooks, or connect results to dashboards and data pipelines.

What HRS review data can you extract?

FieldTypeDescription
hotel_idNumberNumeric HRS hotel identifier
hotel_nameStringPublished hotel name
hotel_statusStringCurrent hotel status when available
starsNumberHRS star category
cityStringHotel city
districtStringHotel district when published
countryStringHotel country
country_codeStringTwo-letter country code
streetStringStreet address
postal_codeStringPostal code
latitudeNumberHotel latitude
longitudeNumberHotel longitude
source_urlStringOriginal HRS URL supplied in the input
booking_idNumberPublic booking reference attached to the review
reviewer_nameStringGuest display name when published
localeStringReview locale
languageStringReview language code
traveler_typeStringBusiness, private, couple, group, or family classification
traveler_age_groupStringPublished traveler age group
arrival_dateStringStay arrival timestamp
departure_dateStringStay departure timestamp
review_dateStringReview publication timestamp
average_ratingNumberOverall score for the individual review
recommendedBooleanWhether the guest recommends the hotel
comfortStringPublished comfort label
positive_commentStringGuest's positive feedback
negative_commentStringGuest's critical feedback
hotel_positive_responseStringHotel reply to positive feedback
hotel_negative_responseStringHotel reply to critical feedback
rating_votesObjectDetailed category scores for the review
filterStringTraveler filter used for the run
filtered_average_ratingNumberAggregate score for the selected traveler segment
filtered_ratings_countNumberAggregate rating count for the selected segment
filtered_recommendation_rateNumberRecommendation percentage for the selected segment
category_averagesObjectAverage detailed scores for the selected segment
super_category_averagesObjectAverage room, staff, gastronomy, and general hotel scores

Fields that HRS does not publish for a particular review are not added to that dataset item.

How to use HRS Reviews Scraper

  1. Open the Actor in Apify Console.
  2. Add one or more HRS hotel detail URLs in HRS hotel URLs.
  3. Choose a traveler type in Filter by traveler type.
  4. Set Results wanted and Maximum pages per hotel.
  5. Configure a proxy only when your workflow requires one.
  6. Click Start and open the dataset when the run finishes.

Input parameters

ParameterTypeRequiredDefaultDescription
startUrlsArrayNoSample HRS hotel URLOne or more HRS hotel detail URLs containing an hn, hotelId, or numeric hotel identifier. INPUT.json is used only when runtime input is empty.
filter_byStringNoALLHRSTraveler segment: ALLHRS, BUSINESS, PRIVATE, YOUNG_COUPLE, MATURE_COUPLE, GROUP, or FAMILY_OLDER_CHILDREN
results_wantedIntegerNo20Maximum number of review records to save across all URLs
max_pagesIntegerNo5Maximum number of 20-review output pages to process per hotel
proxyConfigurationObjectNoDirect connectionOptional Apify Proxy or custom proxy settings

results_wanted is the global result limit. For example, a value of 50 saves at most 50 reviews even when several hotel URLs are supplied. max_pages is a per-hotel safety cap, with 20 reviews in each logical page.

Usage examples

Collect 20 reviews from one HRS hotel

Use the default traveler filter and collect the newest 20 available review records:

{
"startUrls": [
"https://www.hrs.com/en/detail?hn=699596"
],
"filter_by": "ALLHRS",
"results_wanted": 20,
"max_pages": 5
}

Collect business traveler reviews

Limit the dataset to feedback classified as business travel:

{
"startUrls": [
"https://www.hrs.com/en/detail?hn=699596"
],
"filter_by": "BUSINESS",
"results_wanted": 50,
"max_pages": 3
}

Collect reviews from multiple localized HRS URLs

Combine supported HRS links in one run and stop when the global result limit is reached:

{
"startUrls": [
"https://www.hrs.com/en/detail?hn=699596",
"https://www.hrs.de/de/detail?hotelId=699596"
],
"filter_by": "PRIVATE",
"results_wanted": 30,
"max_pages": 2,
"proxyConfiguration": {
"useApifyProxy": false
}
}

Duplicate hotel IDs in the same run are processed once.

Sample output

{
"hotel_id": 699596,
"hotel_name": "Titanic Chaussee Berlin",
"hotel_status": "OPEN",
"stars": 4,
"city": "Berlin",
"country": "Federal Republic of Germany",
"country_code": "DE",
"street": "Chausseestr. 30",
"postal_code": "10115",
"latitude": 52.5323,
"longitude": 13.38143,
"source_url": "https://www.hrs.com/en/detail?hn=699596",
"booking_id": 301170742,
"locale": "de",
"language": "deu",
"traveler_type": "PRIVATE",
"traveler_age_group": "UP_TO_59",
"arrival_date": "2024-09-20T00:00:00Z",
"departure_date": "2024-09-22T00:00:00Z",
"review_date": "2024-09-23T14:21:19.149Z",
"average_rating": 8.9,
"recommended": true,
"comfort": "NICE",
"positive_comment": "Very good value for money.",
"negative_comment": "Some communication could be improved.",
"rating_votes": {
"FRIENDLINESS_OF_RECEPTION": 9,
"HOTEL_TIDINESS": 9,
"QUALITY_OF_BEDS": 10,
"PRICE_PERFORMANCE_RATIO": 9
},
"filter": "ALLHRS",
"filtered_average_rating": 9.2,
"filtered_ratings_count": 281,
"filtered_recommendation_rate": 96.8
}

Tips for best results

  • Use a full public HRS detail URL with a visible numeric hotel identifier.
  • Start with 20 results while testing a new hotel or filter.
  • Select ALLHRS for the widest review coverage.
  • A narrow traveler filter may return fewer reviews than results_wanted because the hotel may not have more matching feedback.
  • Increase max_pages when requesting more than 100 reviews from one hotel.
  • Check the dataset preview before scheduling a large recurring run.
  • Report a URL that no longer works through the Actor's Issues tab so support can review it.

Integrations and exports

  • Google Sheets - Send review records to a shared analysis sheet.
  • CSV and Excel - Download structured records for reporting and BI work.
  • JSON and XML - Use machine-readable output in data pipelines.
  • Webhooks - Notify another service when a run completes.
  • Make and Zapier - Connect HRS reviews to no-code automations.
  • Apify API - Start runs and retrieve datasets from your own application.
  • Schedules - Refresh hotel feedback daily, weekly, or monthly.

Frequently asked questions

Which HRS URLs are supported?

Public hrs.com and hrs.de hotel URLs are supported when they contain an hn, hotelId, hotelIds, numeric path, or numeric slug identifier. Localized paths, missing https://, copied whitespace or brackets, HTML-encoded ampersands, fragments, and percent-encoded URLs are normalized automatically.

Can I scrape several hotels in one run?

Yes. Add multiple entries to startUrls. The Actor deduplicates repeated hotel IDs and applies results_wanted across the complete run.

Why did a traveler filter return fewer results than requested?

The hotel has fewer published reviews for that segment. Use ALLHRS or another traveler type for broader coverage.

Are empty fields included in the dataset?

No. Null, undefined, and empty-string values are removed from each record. Valid zero scores and boolean values remain available.

Can I export HRS reviews to CSV or Excel?

Yes. Open the run dataset and choose CSV, Excel, JSON, XML, or another supported Apify export format.

Can I schedule recurring HRS review collection?

Yes. Use Apify schedules to run the Actor at your preferred interval and send results through integrations or webhooks.

Collecting public web data can be lawful, but requirements vary by jurisdiction and use case. You are responsible for following applicable laws, HRS terms, privacy rules, and data-use restrictions.

Support

For broken URLs, missing fields, filter questions, or feature requests, use the Issues tab on the Actor page. Include a public HRS hotel URL and a short description of the expected result.

This Actor is intended for legitimate collection and analysis of publicly available hotel review data. Users are responsible for respecting applicable laws, contractual terms, privacy obligations, database rights, and the rights of review authors. Do not use the output for harassment, discrimination, or unlawful profiling.