HolidayCheck Scraper [$0.9💰] | Reviews | Owner Replies avatar

HolidayCheck Scraper [$0.9💰] | Reviews | Owner Replies

Pricing

from $0.90 / 1,000 results

Go to Apify Store
HolidayCheck Scraper [$0.9💰] | Reviews | Owner Replies

HolidayCheck Scraper [$0.9💰] | Reviews | Owner Replies

Extract HolidayCheck hotel reviews, per-criteria ratings, owner replies and hotel summaries for reputation monitoring and market research. German-language review data from holidaycheck.de, .at and .ch - no API key required.

Pricing

from $0.90 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Categories

Share

HolidayCheck Scraper — Hotel Reviews, Ratings & Owner Reply Data

HolidayCheck Scraper extracts full guest review histories, per-criteria ratings, owner replies, photos and hotel summaries from holidaycheck.de (.de, .at, .ch) — the largest German-speaking hotel review platform, with 10+ million hotel ratings — for hotel reputation monitoring, DACH market research and guest feedback analysis. No API key and no browser needed: reviews are parsed directly from the public page data.

Hotel Reputation Monitoring, Market Research & Guest Feedback Analysis

  • Hotel reputation monitoring — track new reviews, rating changes and owner replies for your property, chain or client portfolio on a daily basis.
  • DACH hotel market research & competitive benchmarking — compare per-criteria scores (service, location, food, room, sport) across competing hotels in Germany, Austria and Switzerland.
  • Guest feedback & sentiment analysis — every review row includes topic-level sentiment (positive/neutral/negative) with the exact guest quotes behind it, ready for NLP pipelines.
  • Hotel review datasets for analytics SaaS & dashboards — build structured review databases (titles, full texts, ratings, travel dates) that feed BI tools, review widgets and hospitality software.
  • Travel agency & tour operator supplier monitoring — keep an eye on the hotels you sell, by season and traveller type (couple, family, single, friends).
  • Hospitality research & tourism studies — collect German-language review corpora with reviewer age groups and rating distributions for academic analysis.

Why Scrape HolidayCheck Reviews Instead of Using an API?

HolidayCheck offers a partner XML API, but it is only available to approved partners with a partner token and covers a limited field set. This actor needs no official API key and no partner agreement: it reads the data HolidayCheck already serves publicly on each hotel page and returns much richer fields — full review texts, per-criteria ratings, owner replies, topic sentiment with quotes, photo URLs and aggregated rating facets.

How HolidayCheck Scraper Works

HolidayCheck is an isomorphic React app that embeds its complete server-side state (window.__FLUXIBLE_STATE__) in every served HTML page. This actor fetches the hotel review page, parses that state blob (no browser rendering, no CAPTCHA solving, no login) and maps the three data stores into clean rows:

  1. HotelStore → hotel profile, aggregate rating, per-aspect-group ratings, contact data, geo coordinates.
  2. HotelReviewStore → up to 10 reviews per page with titles, texts, criteria ratings, reviewer meta, owner comments and media.
  3. ReviewFacetsStore → aggregated breakdowns by traveller type, age group, season, rating distribution and room type.

Pagination (?p=2, ?p=3, ...) runs automatically until your review limit is reached. got-scraping sends a browser-like TLS fingerprint that passes HolidayCheck's Akamai bot protection on most runs — no proxy needed for typical jobs.

Configure Hotel URLs and Review Limits

FieldTypeRequiredDefaultNotes
startUrlsarray✅ YesHolidayCheck hotel URLs: review pages (/hr/bewertungen-{slug}/{uuid}), hotel info pages (/hi/{slug}/{uuid}), short review URLs (/hr/{uuid}) or bare hotel UUIDs.
maxReviewsPerHotelintegerNo100Max reviews per hotel. 0 = all available reviews for the hotel.
maxItemsintegerNo1000Max dataset rows (reviews + hotel summaries). 0 = unlimited, bounded by the crawl request cap.
includeHotelSummarybooleanNotruePush one summary row per hotel (aggregate ratings, contact info, facets) to the separate summaries dataset.
maxConcurrencyintegerNo3Pages fetched in parallel (1–20). Raise to 10–20 when proxy is enabled.
requestDelayMsintegerNo1200Base delay between requests. Effective rate ≈ concurrency ÷ delay.
proxyobjectNooffApify proxy configuration. Off by default; residential proxy recommended for large production runs.

Extracted HolidayCheck Review Data

Output is split into two datasets:

Default dataset — one row per guest review:

FieldDescription
rating01Internal HolidayCheck quality score (0–1 scale)
rating16Computed public-facing rating (1–6 scale)
criteriaRatingsPer-criteria scores (GENERAL_SERVICE, GENERAL_LOCATION, GASTRONOMY, PRICE_PERFORMANCE, ROOM_CONDITION, ...)
recommendation / proofedReservationRecommends the hotel / verified booking flags
entryDate / travelDateReview publication and travel dates
traveledWith / originalLocaleTraveller type and review language
reviewerFirst name, age group, review count (public reviewer meta)
ownerReplyHotel owner reply text and date, when present
topicsTopic-level sentiment (1 positive / 0 neutral / -1 negative) with extracted quotes
photosUploaded photo IDs, titles and CDN URLs
text / titleFull review text (when provided by the reviewer) and title

Summaries dataset — one row per hotel: hotelId, name, stars, rating, recommendation, reviewCount, pictureCount, videoCount, address, phone, email, geo, location, ratingPerAspectGroup, reviewCalculations, facilities, descriptions, latestAward, reviewFacets, scrapedAt.

Example Scrape Configuration

{
"startUrls": [
{
"url": "https://www.holidaycheck.de/hr/bewertungen-welcome-hotel-marburg/6b587da3-8bf9-36e1-9fa1-1166d588f4ec"
}
],
"maxReviewsPerHotel": 100,
"maxItems": 1000,
"includeHotelSummary": true
}

Example Review Output

{
"recordType": "REVIEW",
"reviewId": "c615a24d-...",
"hotelId": "6b587da3-8bf9-36e1-9fa1-1166d588f4ec",
"hotelName": "Welcome Hotel Marburg",
"title": "Empfehlenswert",
"text": "Ich hatte ein schönes Zimmer mit Klimaanlage...",
"rating01": 0.8,
"rating16": 4.8,
"criteriaRatings": {
"GENERAL_LOCATION": 1,
"GENERAL_SERVICE": 0.8,
"GASTRONOMY": 1
},
"traveledWith": "SINGLE",
"recommendation": true,
"proofedReservation": true,
"entryDate": "2026-08-04T10:11:12.000Z",
"travelDate": "2026-07-01T00:00:00.000Z",
"reviewer": {
"firstName": "Brigitte",
"ageGroup": "FROM_61_TO_65",
"hotelReviewCount": 1
},
"ownerReply": {
"text": "Liebe Brigitte, vielen Dank...",
"date": "2026-08-21T00:00:00.000Z"
},
"topics": [
{ "id": "SERVICE", "name": "Service", "sentiment": 1, "quotes": ["..."] }
],
"photos": [
{
"id": "0590791d-...",
"title": "Sonstiges",
"url": "https://media-cdn.holidaycheck.com/w_768,h_432,c_fill,q_auto,f_auto/ugc/images/0590791d-..."
}
],
"reviewUrl": "https://www.holidaycheck.de/hr/...",
"scrapedAt": "2026-09-01T08:00:00.000Z"
}

Integrations & Automation

  • Apify API — run the actor from any codebase (apify-client for JS/TS and Python, or the REST API) and stream results to your own systems.
  • Webhooks — get notified the moment a run finishes so new reviews flow straight into your reputation workflow.
  • Apify MCP server — call this actor from AI agents (Claude, GPT, any MCP client) to fetch review data on demand.
  • Scheduling — for daily reputation monitoring, schedule a run each morning with a small maxReviewsPerHotel on your own hotels; for weekly market research, re-run competitor sets and diff the ratings. Recurring runs also improve the actor's visibility in the Apify Store recommender.

Competitive Positioning

CapabilityThis actorone_house / holidaycheck-reviews-scrapershahidirfan / Holidaycheck-de-Reviews-Scraper
Accepts bare hotel UUIDs✅ (review URL, info URL, short URL or UUID)✅ (separate hotelIds input)❌ (URLs only)
Downloadable hotel-summary dataset✅ separate summaries dataset via API❌ summary stored in key-value store
Runs without a proxy on typical jobs✅ (TLS fingerprint; proxy optional)⚠️ residential recommended against 403sproxy config available

Comparison based on the public input schemas and READMEs of these actors at research time. Verify before choosing.

FAQ

Why use this actor instead of the official HolidayCheck API?

The official HolidayCheck API is a partner XML API: it requires an approved partner account and partner token, and it exposes a limited field set. This actor needs no API key and no partner agreement, returns data HolidayCheck publishes publicly on hotel pages, and adds fields the partner API does not cover for typical consumers — full review texts, per-criteria ratings, owner replies, topic sentiment with quotes, photos and rating facets.

What are the alternatives to this actor?

Platform-side alternatives are HolidayCheck's partner XML API (partner-gated) and manual CSV export (not offered by HolidayCheck). Other Apify actors cover HolidayCheck reviews (e.g. one_house, shahidirfan) or other German-relevant platforms such as Booking.com. For multi-platform hotel reputation data, combine this actor with the Hotel Review Aggregator.

Can I get ALL reviews of a hotel, not just a sample?

Yes. Set maxReviewsPerHotel: 0 to fetch every review HolidayCheck has for the hotel (still bounded by maxItems and the platform's crawl cap).

Does it work for holidaycheck.at and holidaycheck.ch?

Yes. The actor works for the German-speaking HolidayCheck portals (.de, .at, .ch). Past the review URL or a hotel UUID on any of these, and the result is the same structured data.

Does the actor need a proxy?

Usually not. got-scraping's browser-like TLS fingerprint passes HolidayCheck's Akamai Bot Manager on most runs. For large production runs from shared platform IPs, enable the Apify proxy — residential is recommended.

How are HolidayCheck ratings scaled?

HolidayCheck stores a quality score on a 0–1 internal scale. This actor returns both rating01 (internal 0–1) and rating16 (the public-facing 1–6 scale), plus per-criteria ratings on the 0–1 scale — no manual conversion needed.

Why are two datasets returned?

Reviews and hotel summaries have different shapes, so they live in separate datasets: the default dataset holds one row per guest review, and the summaries dataset holds one aggregated row per hotel (rating, per-criteria scores, contact info, review facets). Read both to pair review-level and hotel-level data.

How do hotels use owner replies in reputation management?

Responding to reviews is a core part of hotel reputation management. This actor includes the owner reply text and date on each review row, so you can monitor which reviews have been answered, spot unanswered negative feedback, and track reply coverage over time.

SEO Keywords

holidaycheck scraper, holidaycheck api, holidaycheck reviews data, holidaycheck.de reviews, hotel review scraper, hotel reviews dataset, hotel reputation monitoring, hotel guest feedback analysis, hotel sentiment analysis, german hotel reviews, hotel market research dach, hotel competitive benchmarking, hotelbewertungen scrapen, hotelbewertungen auswerten, hotelbewertungen exportieren, hotel owner review responses, hospitality review analytics, hotel rating data, holidaycheck alternative, hotel quality score data

For AI Agents & LLM Apps

Purpose: One run returns structured rows for any HolidayCheck hotel — every guest review as a dataset row, plus one aggregated hotel-summary row per hotel (separate summaries dataset).

Minimal working input (only the required field):

{
"startUrls": [
{ "url": "https://www.holidaycheck.de/hr/bewertungen-welcome-hotel-marburg/6b587da3-8bf9-36e1-9fa1-1166d588f4ec" }
]
}

Full-history variant (all reviews + hotel summary):

{
"startUrls": [
{ "url": "https://www.holidaycheck.de/hr/bewertungen-welcome-hotel-marburg/6b587da3-8bf9-36e1-9fa1-1166d588f4ec" }
],
"maxReviewsPerHotel": 0,
"maxItems": 5000,
"includeHotelSummary": true
}

Output fields (review rows): reviewId, hotelId, hotelName, title, text, rating01, rating16, criteriaRatings, traveledWith, recommendation, proofedReservation, entryDate, travelDate, originalLocale, reviewer (firstName, ageGroup, hotelReviewCount, hasPublicProfile), ownerReply (text, date), topics (id, name, sentiment, quotes), additional, photos (id, title, description, url), reviewUrl, scrapedAt.

Output fields (summary rows, separate dataset): hotelId, name, stars, rating, recommendation, reviewCount, pictureCount, videoCount, address, phone, email, geo, location, ratingPerAspectGroup, reviewCalculations, facilities, descriptions, latestAward, reviewFacets, scrapedAt.

Behaviors an agent should know:

  • startUrls is required and accepts review URLs (/hr/...), hotel info URLs (/hi/...), short URLs (/hr/{uuid}) or a bare hotel UUID.
  • maxReviewsPerHotel (default 100) — set 0 to fetch the hotel's full review history.
  • maxItems (default 1000) caps total dataset rows (reviews + summaries); 0 allows more but the crawl is capped at 1000 page requests.
  • With includeHotelSummary: true (default), one SUMMARY row per hotel lands in the separate summaries dataset — read both storages.
  • Rating scales: rating01 is HolidayCheck's internal 0–1 score; rating16 is the computed public 1–6 scale; per-criteria ratings in criteriaRatings are 0–1.
  • Free (non-paying) runs are limited to 10 review rows; hotel summary rows are free.
  • Use the Apify proxy (proxy.useApifyProxy: true, residential groups) for large multi-hotel runs to reduce blocking.

Billing: pay-per-result — $0.0009 per review row plus a small per-start event (BRONZE tier); hotel summary rows free; free tier covers 10 review rows per run.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by HolidayCheck AG. It accesses only publicly available HolidayCheck pages — no login, no CAPTCHA solving, no bypass of access controls. Users are responsible for complying with HolidayCheck's Terms of Service and applicable data-protection law (GDPR for EU data). The output can include reviewer first names and age groups and hotel business contact details that are published publicly; such personal data must not be used for unsolicited commercial outreach in violation of applicable law (e.g. GDPR, CAN-SPAM, TCPA).