HRS Reviews Scraper ⭐
Pricing
from $0.99 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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?
| Field | Type | Description |
|---|---|---|
hotel_id | Number | Numeric HRS hotel identifier |
hotel_name | String | Published hotel name |
hotel_status | String | Current hotel status when available |
stars | Number | HRS star category |
city | String | Hotel city |
district | String | Hotel district when published |
country | String | Hotel country |
country_code | String | Two-letter country code |
street | String | Street address |
postal_code | String | Postal code |
latitude | Number | Hotel latitude |
longitude | Number | Hotel longitude |
source_url | String | Original HRS URL supplied in the input |
booking_id | Number | Public booking reference attached to the review |
reviewer_name | String | Guest display name when published |
locale | String | Review locale |
language | String | Review language code |
traveler_type | String | Business, private, couple, group, or family classification |
traveler_age_group | String | Published traveler age group |
arrival_date | String | Stay arrival timestamp |
departure_date | String | Stay departure timestamp |
review_date | String | Review publication timestamp |
average_rating | Number | Overall score for the individual review |
recommended | Boolean | Whether the guest recommends the hotel |
comfort | String | Published comfort label |
positive_comment | String | Guest's positive feedback |
negative_comment | String | Guest's critical feedback |
hotel_positive_response | String | Hotel reply to positive feedback |
hotel_negative_response | String | Hotel reply to critical feedback |
rating_votes | Object | Detailed category scores for the review |
filter | String | Traveler filter used for the run |
filtered_average_rating | Number | Aggregate score for the selected traveler segment |
filtered_ratings_count | Number | Aggregate rating count for the selected segment |
filtered_recommendation_rate | Number | Recommendation percentage for the selected segment |
category_averages | Object | Average detailed scores for the selected segment |
super_category_averages | Object | Average 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
- Open the Actor in Apify Console.
- Add one or more HRS hotel detail URLs in HRS hotel URLs.
- Choose a traveler type in Filter by traveler type.
- Set Results wanted and Maximum pages per hotel.
- Configure a proxy only when your workflow requires one.
- Click Start and open the dataset when the run finishes.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | Array | No | Sample HRS hotel URL | One 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_by | String | No | ALLHRS | Traveler segment: ALLHRS, BUSINESS, PRIVATE, YOUNG_COUPLE, MATURE_COUPLE, GROUP, or FAMILY_OLDER_CHILDREN |
results_wanted | Integer | No | 20 | Maximum number of review records to save across all URLs |
max_pages | Integer | No | 5 | Maximum number of 20-review output pages to process per hotel |
proxyConfiguration | Object | No | Direct connection | Optional 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
ALLHRSfor the widest review coverage. - A narrow traveler filter may return fewer reviews than
results_wantedbecause the hotel may not have more matching feedback. - Increase
max_pageswhen 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.
Is it legal to collect HRS reviews?
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.
Related Actors
- Booking Reviews Scraper
- Expedia Reviews Scraper
- Tiket Hotel Reviews Scraper
- Tripadvisor Reviews Scraper
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.
Legal notice
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.