Switching from Booking Reviews Scraper to Hotel Reviews Scraper
Hotel Reviews Scraper (arcadium/hotel-reputation) reads input written for voyager/booking-reviews-scraper: 3 of its 5 input fields work as they are. Field list from its public input schema (build 0.0.184, 2026-10-31); prices and run results from the public Apify API, 2026-10-31.
Their fields that work as they are
| Their field | Type | Note |
|---|---|---|
startUrls | array | As is |
maxReviewsPerHotel | integer | As is |
cutoffDate | string | As is |
Their fields this actor does not read
sortReviewsBy, reviewScores. Leave them out of the input; the actor’s own options are in the guide.
Side by side: their input, our rows
Input written for voyager/booking-reviews-scraper, pasted unchanged:
{
"startUrls": [
{
"url": "https://www.booking.com/hotel/cz/jeromehouse.en-gb.html"
}
],
"maxReviewsPerHotel": 150,
"cutoffDate": "2026-01-01"
}One row from arcadium/hotel-reputation (README example; long text shortened):
{
"platform": "booking",
"reviewId": "Booking___c6397d1e2a854aa3",
"productName": "The Savoy",
"date": "2026-09-30",
"title": "Wonderful stay",
"pros": "Staff and location.",
"cons": "Breakfast queue.",
"ratingOverall": 4.5,
"language": "en",
"country": "US",
"extras": {
"rawRating": 9,
"rawScale": 10,
"score10": 9,
"travelerType": "COUPLES"
}
}Output fields: rowType, platform, productName, productUrl, entityId, reviewId, reviewIdSource, reviewUrl, title, text, pros, cons, ratingOverall, ratings, date, reviewerRole, reviewerIndustry, reviewerCompanySize, reviewerTimeUsed, switchedFrom, alternativesConsidered, reasonForChoosing, reasonForSwitching, adviceToOthers, incentivized, incentive, reviewerVerified, vendorResponse, helpfulVotes, language, country, product, extras, scrapedAt, stated, delivered, skippedSeen, duplicates, stopReason, capSource, shortfall, input, code, message, hotelName, tripadvisor, booking, google, agoda, tripcom, combined. The rows use these names, not the other actor’s.
Price
| Actor | Pricing model | Charged per | Per 1,000, Free plan | Per 1,000, lowest plan |
|---|---|---|---|---|
| arcadium/hotel-reputation | Pay per event | Review | $4.50 | $0.80 |
| voyager/booking-reviews-scraper | Pay per event | Scraped review | $2.00 | $0.30 |
Live Apify prices on 2026-10-31, in USD, for each actor’s main charged event. Start fees and platform usage are not included. Units differ: compare what one charged row contains. The Store page of each actor is the current source.
Common issues: failed or timed-out runs
- Booking Reviews Scraper timed out: 0.0% of 250,806 runs timed out.
- Booking Reviews Scraper failed: 0.0% of 250,806 runs ended as failed.
| Actor | Runs, last 30 days | Failed | Timed out |
|---|---|---|---|
| arcadium/hotel-reputation | under 50 runs (8 runs) | - | - |
| voyager/booking-reviews-scraper | 250,806 | 0.0% | 0.0% |
Apify’s public run statistics for each actor, last 30 days to 2026-10-31: FAILED and TIMED-OUT runs as a share of all runs. Shown from 50 runs. A failed run can also come from a bad input. Here an input that cannot be read comes back as a free error row with a code, and the other inputs still arrive.
How to switch
In the Apify Store
- Open arcadium/hotel-reputation and sign in to Apify.
- On the Input tab, switch the editor to JSON and paste the input you used for voyager/booking-reviews-scraper, without the fields listed above as not read.
- Start the run. Set a maximum cost per run in the run options if you want a hard cap.
Over the API
Change the actor ID in the URL from voyager~booking-reviews-scraper to arcadium~hotel-reputation; the body stays the same apart from the fields this actor does not read.
curl -X POST "https://api.apify.com/v2/acts/arcadium~hotel-reputation/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://www.booking.com/hotel/cz/jeromehouse.en-gb.html"}],"maxReviewsPerHotel":150,"cutoffDate":"2026-01-01"}'
In n8n
In the Apify node, change the actor to arcadium/hotel-reputation and keep the input JSON. With an HTTP Request node:
{
"nodes": [
{
"name": "Run arcadium/hotel-reputation",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [
0,
0
],
"parameters": {
"method": "POST",
"url": "https://api.apify.com/v2/acts/arcadium~hotel-reputation/run-sync-get-dataset-items",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\"startUrls\":[{\"url\":\"https://www.booking.com/hotel/cz/jeromehouse.en-gb.html\"}],\"maxReviewsPerHotel\":150,\"cutoffDate\":\"2026-01-01\"}",
"options": {
"timeout": 300000
}
}
}
],
"connections": {}
}
From an AI assistant (MCP)
Add the actor as a tool on Apify’s MCP server; an agent can pass the same input fields.
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=arcadium/hotel-reputation",
"headers": {
"Authorization": "Bearer <APIFY_TOKEN>"
}
}
}
}