TopHotels Review Scraper avatar

TopHotels Review Scraper

Pricing

$2.90 / 1,000 results

Go to Apify Store
TopHotels Review Scraper

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

valiant quarter

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

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)

  1. Open the hotel on TopHotels, e.g. https://tophotels.ru/hotel/al24898 (Lago Hotel 5*, Side).
  2. Paste that URL into the Hotel URLs field.
  3. Set Max reviews per hotel (newest first) and, optionally, a date range.
  4. Click Start and download the results from the dataset.

⚙️ Input

FieldTypeDescription
startUrlsarrayTopHotels hotel URLs. Any URL containing the al<id> slug works.
maxReviewsPerHotelintegerStop after this many reviews (newest published first). 0 = all.
includeRawDatabooleanAttach raw parsed payloads under raw.
dateFrom / dateTostring (YYYY-MM-DD)Only reviews published in this range.
proxyConfigurationobjectProxy 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

FieldDescription
hotelId, hotelName, hotelUrlProperty the review belongs to
reviewId, reviewUrlTopHotels' unique review id and permalink
title, text, extraTexts.pros/consReview content (mini reviews may have null title/text)
ratings, generalRating, ratingScaleCategory ratings + overall score, scale is always 5
recommendation, traveledWith"Recommends the hotel" flag and travel-party type
travelDate, stayFrom, stayTo, entryDateStay dates and publish date (ISO 8601)
userReviewer name, city, country, review count, profile URL
mediaReviewer photos
ownerResponseThe 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.