HolidayCheck Reviews Scraper
Pricing
from $4.90 / 1,000 results
HolidayCheck Reviews Scraper
Scrape HolidayCheck hotel reviews: full review text, hotelier owner response, category ratings (1-6), review & travel dates, recommendation, traveler type, topics with sentiment, reviewer photos, user info and tour operator — as structured JSON. Works with holidaycheck.de/.at/.ch.
Pricing
from $4.90 / 1,000 results
Rating
0.0
(0)
Developer
valiant quarter
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrapes hotel reviews from HolidayCheck with the fields the existing Apify actors are missing: full review text, category ratings (1–6 scale) and the hotelier owner response.
How it works
The scraper combines two public sources per hotel and merges them by review id:
- JSON API —
GET /api/hotel-reviews;filter=hotel.id:<uuid>;...;sort=entryDate:desc(100 reviews/page). Provides the review body (texts.GENERAL),textAdvice, categoryratings, travel/entry dates, locale and user info. This endpoint does not expose the hotelier reply (every reply-like field inselectis rejected with HTTP 400). - Review listing pages —
/hr/bewertungen-<slug>/<uuid>?sort=entrydate&p=<n>(10 reviews/page). The server-renderedwindow.__FLUXIBLE_STATE__payload carriesownerComment(reply text + date),recommendationandtraveledWith.
Both sources are requested in the same newest-first order, so limiting maxReviewsPerHotel keeps the run proportionally cheap. No browser is used — plain HTTP only.
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | — | HolidayCheck hotel URLs. Any URL containing the hotel UUID works. |
maxReviewsPerHotel | integer | 0 | Max reviews per hotel, newest first. 0 = all. |
includeOwnerResponses | boolean | true | Crawl listing pages to attach the hotelier reply. Disable for a faster, API-only run. |
includeRawData | boolean | false | Attach raw API/page payloads under raw. |
proxyConfiguration | object | Apify proxy | Proxy settings. |
Output
One dataset item per review:
{"hotelId": "2e44d958-7e5e-4423-92b2-84bb298826b0","hotelName": "Lago Hotel","hotelUrl": "https://www.holidaycheck.de/hr/bewertungen-lago-hotel/2e44d958-...","reviewId": "d6aa73e9-74a0-4318-94a4-b12ca3741f43","reviewUrl": "https://www.holidaycheck.de/hrd/x/d6aa73e9-74a0-4318-94a4-b12ca3741f43","title": "Super empfehlenswert und immer wieder gerne","text": "Sehr gut gelegen. Nettes Personal. ...","textAdvice": null,"extraTexts": { "ROOM_OPINION": "...", "BEACH_OPINION": "...", "TRANSPORTATION_OPINION": "..." },"ratings": { "GENERAL": { "GENERAL": 6 }, "FOOD": { "GENERAL": 6 }, "...": {} },"generalRating": 6,"recommendation": true,"traveledWith": "FAMILY","proofedReservation": true,"travelDate": "2026-06-01T00:00:00.000Z","entryDate": "2026-06-24T09:47:54.000Z","originalLocale": "de","returnedLocale": "de","tourOperator": { "id": "770085e5-...", "name": "ITS" },"costPerformance": "GOOD","roomName": "Family room Deluxe Sea View","topics": [ { "id": "FOOD", "name": "Restaurants & Bars", "sentiment": 1 } ],"ranking": 0.76,"media": [ { "id": "...", "type": "PICTURE", "title": "Pool", "url": "https://media-cdn.holidaycheck.com/ugc/images/..." } ],"user": {"id": "...", "firstName": "Zafer", "ageGroup": "FROM_36_TO_40","hotelReviewCount": 1, "hasPublicProfile": true, "profilePictureUrl": null},"ownerResponse": {"text": "Sehr geehrter Gast, vielen herzlichen Dank für Ihre ...","respondedAt": "2026-06-25T00:00:00.000Z"}}
Field notes:
ownerResponseisnullwhen the hotel has not replied (common for reviews only a few days old).reviewUrl301-redirects to the canonical review permalink.extraTextsare the reviewer's free-text answers to sub-questions (room, beach, transportation, service, sustainability...), keyed by question id.topicsare HolidayCheck's automatic topic tags with sentiment (-1/0/1, sometimesnull).rankingis HolidayCheck's internal relevance/helpfulness score (0-1).recommendation,traveledWith,proofedReservation,extraTexts,tourOperator,costPerformance,roomName,topics,rankingandmediacome from the listing pages, so they arenullwhenincludeOwnerResponsesis off.
A per-hotel run summary (counts, errors) is stored in the key-value store under SUMMARY.
Notes
- Ratings use HolidayCheck's 1–6 scale (6 = best).
- Works with holidaycheck.de/.at/.ch URLs (origin is taken from the input URL).
- Listing-page failures are non-fatal: the affected reviews are still output, just without
ownerResponse. - When
includeOwnerResponsesis on, the scraper automatically switches to residential proxies if HolidayCheck blocks datacenter IPs (HTTP 403). Residential proxy traffic is billed as platform usage — roughly 6 MB per 100 reviews. DisableincludeOwnerResponsesfor the cheapest possible run.