TopHotels Review Scraper
Pricing
$2.90 / 1,000 results
TopHotels Review Scraper
Scrape TopHotels.ru hotel reviews: full review text, pros & cons, category ratings (placement/service/food), recommendation, traveled-with type, stay & publish dates, reviewer info, photos and the hotelier's owner response — as structured JSON.
Pricing
$2.90 / 1,000 results
Rating
0.0
(0)
Developer
valiant quarter
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
TopHotels Reviews Scraper 🏨⭐
Scrape TopHotels.ru hotel reviews at scale — full review text, category ratings, pros & cons, and the hotel's own reply to each review. No login, no API key, no browser.
Just paste a TopHotels hotel URL and export clean, structured review data (JSON, CSV, Excel) for reputation monitoring, sentiment analysis and competitive research.
✨ What this TopHotels scraper does
- ⭐ Scrapes hotel reviews from TopHotels.ru by hotel URL
- 📝 Extracts full review text, pros & cons, title, language
- 🔢 Reads category ratings (placement / service / food, 0–5 scale) and the overall score
- 💬 Captures the hotelier's owner response to each review (text + date + responder)
- 📅 Reports both the stay date and the publish date for every review
- 🧑 Includes reviewer info (name, city, country, review count, profile link) and review photos
- 🗓️ Optional date range filter (
dateFrom/dateTo) applied cheaply during pagination — no wasted requests on reviews outside your range - 📦 Outputs structured JSON / CSV / Excel via the Apify dataset
- 🚀 Plain HTTP under the hood (no browser) — fast and cheap to run
💡 Use cases
- Hotel reputation monitoring — track new guest reviews and hotelier replies over time
- Sentiment analysis — feed review text into an NLP/LLM pipeline
- Competitive analysis — compare guest feedback and management responsiveness across hotels
- Market research — understand what travelers to Turkey/Russia-market resorts praise or complain about
- Review aggregation — combine TopHotels data with other OTA/review-platform sources
🚀 How to scrape TopHotels reviews (step by step)
- Open the hotel on TopHotels, e.g.
https://tophotels.ru/hotel/al24898(Lago Hotel 5*, Side). - Paste that URL into the Hotel URLs field.
- Set Max reviews per hotel (newest first) and, optionally, a date range.
- Click Start and download the results from the dataset.
⚙️ Input
| Field | Type | Description |
|---|---|---|
startUrls | array | TopHotels hotel URLs. Any URL containing the al<id> slug works. |
maxReviewsPerHotel | integer | Stop after this many reviews (newest published first). 0 = all. |
includeRawData | boolean | Attach raw parsed payloads under raw. |
dateFrom / dateTo | string (YYYY-MM-DD) | Only reviews published in this range. |
proxyConfiguration | object | Proxy settings (optional — the site has no bot protection). |
Example input
{"startUrls": [{ "url": "https://tophotels.ru/hotel/al24898" }],"maxReviewsPerHotel": 100,"dateFrom": "2025-01-01"}
📤 Output
Each dataset item is a single review:
{"hotelId": "24898","hotelName": "Lago Hotel 5*","hotelUrl": "https://tophotels.ru/hotel/al24898","reviewId": "2763401","reviewUrl": "https://tophotels.ru/review/2763401","title": "Рекомендую","text": "Достаточно хороший отель, отдыхали семьей...","ratings": { "placement": 5, "service": 4, "food": 4 },"generalRating": 4.3,"ratingScale": 5,"recommendation": true,"traveledWith": "FAMILY","travelDate": "2025-05-08T00:00:00.000Z","entryDate": "2026-03-17T00:00:00.000Z","ownerResponse": {"text": "Уважаемый Евгений, благодарим вас за выбор нашего отеля...","respondedAt": "2026-03-17T11:37:00.000Z","authorName": "lago Hotel"}}
Output fields
| Field | Description |
|---|---|
hotelId, hotelName, hotelUrl | Property the review belongs to |
reviewId, reviewUrl | TopHotels' unique review id and permalink |
title, text, extraTexts.pros/cons | Review content (mini reviews may have null title/text) |
ratings, generalRating, ratingScale | Category ratings + overall score, scale is always 5 |
recommendation, traveledWith | "Recommends the hotel" flag and travel-party type |
travelDate, stayFrom, stayTo, entryDate | Stay dates and publish date (ISO 8601) |
user | Reviewer name, city, country, review count, profile URL |
media | Reviewer photos |
ownerResponse | The hotel's reply — null if the hotelier hasn't responded |
A per-hotel run summary (reviews, withOwnerResponse, totalOnSite, dateFiltered) is stored
in the key-value store under SUMMARY.
❓ FAQ
Does this need a proxy? No — TopHotels served every page tested (including with zero request headers) with HTTP 200 and no challenge. Apify proxy is optional.
What does ownerResponse look like when the hotel hasn't replied? null. Roughly 6% of
reviews have a hotelier reply on the sites checked so far — set a larger maxReviewsPerHotel
to increase your chances of capturing more.
How is the date range filter applied? On entryDate (the review's publish date), which is
available directly on the listing page — so out-of-range reviews never trigger a detail-page
request, keeping filtered runs cheap.
Keywords: tophotels scraper, tophotels.ru reviews, hotel review scraper, hotel reputation monitoring, hotel owner response scraper, Russian OTA review scraper, Turkey hotel reviews.