Viator Review Scraper
Pricing
from $3.00 / 1,000 reviews
Viator Review Scraper
Scrape public Viator tour and activity reviews by product URL or product code. Export rating, title, text, date, traveler type, helpful votes, and owner reply as JSON. No login.
Pricing
from $3.00 / 1,000 reviews
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
Viator Review Scraper — Tour Reviews
Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by Viator, Inc. or its affiliates. Data is read from publicly accessible tour and activity review pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.
Scrape public Viator tour and activity reviews into one dataset. Each row has the rating, title, text, publication date, traveler type, helpful votes, reviewer name, owner reply, and the product URL.
Tour operators use this Viator scraper to watch guest feedback on a product. OTAs use it as a Viator reviews API alternative without a partner key. Export JSON or CSV from the dataset with Python, Node.js, cURL, or an MCP client.
Travel suite
| Actor | Role |
|---|---|
| GetYourGuide Tours Scraper | Public GetYourGuide tours: price, rating, review count |
| Viator Review Scraper ◄── you are here | Public Viator tour reviews |
When to use
Use this Actor for a public Viator product URL or product code when you need the review text, not only the average rating.
Skip it for bookings, private supplier dashboards, and anything behind a login.
Key features
- Product URL or product code, up to 50 products in one run
- Rating, title, full text, date, traveler type, and helpful votes
- Reviewer name, owner reply, and up to five photo URLs on the same row
- Sort by most recent, most insightful, or highest rating
- One saved review per row
Input
| Field | Default | What it does |
|---|---|---|
| Product URLs | sample tour | Public tour or activity page |
| Product codes | empty | Code such as 3731COLOSSEUM |
| Max reviews per product | 100 | Stop after this many saved reviews |
| Sort | Most insightful | ML_SORTED, DATE, or RATING |
| Proxy | US residential | Required. Datacenter IPs are blocked |
{"startUrls": [{"url": "https://www.viator.com/tours/Rome/Colosseum-and-Ancient-Rome-Tour-with-Roman-Forum-and-Palatine-Hill/d511-3731COLOSSEUM"}],"maxReviews": 20,"sortBy": "ML_SORTED","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
Output
| Field | Meaning |
|---|---|
reviewId | Public review id |
productCode | Viator product code |
productTitle | Tour or activity name |
productUrl | Public product page |
productReviewCount | Total reviews reported for the product |
rating | Stars from 1 to 5 |
title | Review title |
text | Review text |
locale | Language of the text |
publishedAt | Publication time in UTC |
partyType | Travel party, such as COUPLES or FAMILY |
helpfulVotes | Helpful vote count |
reviewerName | Public reviewer name |
isTripadvisor | True when Tripadvisor provided the review |
machineTranslated | True when the text is machine translated |
ownerResponse | Supplier reply, when one is public |
photoCount | Number of traveler photos |
photoUrls | Up to five photo URLs |
scrapedAt | UTC time the row was built |
{"reviewId": "1080010801","productCode": "3731COLOSSEUM","productTitle": "Rome: Colosseum, Roman Forum, and Palatine Hill Guided Tour 2026","productUrl": "https://www.viator.com/tours/Rome/Colosseum-and-Ancient-Rome-Tour-with-Roman-Forum-and-Palatine-Hill/d511-3731COLOSSEUM","productReviewCount": 25913,"rating": 5,"title": "Great guide","text": "Francesca made the history come to life.","locale": "en","publishedAt": "2026-09-30T00:00:00Z","partyType": "FAMILY","helpfulVotes": 2,"reviewerName": "brooke_e","isTripadvisor": false,"machineTranslated": false,"ownerResponse": null,"photoCount": 0,"photoUrls": []}
Use cases
- Track new guest reviews on a tour you operate
- Compare review text across competing Colosseum or Vatican products
- Build a sentiment file with rating, traveler type, and owner replies
- Feed an MCP assistant a product URL and get the latest reviews as JSON
Integration examples
Replace YOUR_TOKEN and run these against the Actor. These calls start a run and do not set a price.
Node.js
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "YOUR_TOKEN" });const run = await client.actor("crawloop/viator-review-scraper").call({startUrls: [{url: "https://www.viator.com/tours/Rome/Colosseum-and-Ancient-Rome-Tour-with-Roman-Forum-and-Palatine-Hill/d511-3731COLOSSEUM",},],maxReviews: 20,sortBy: "ML_SORTED",proxyConfiguration: {useApifyProxy: true,apifyProxyGroups: ["RESIDENTIAL"],apifyProxyCountry: "US",},});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("crawloop/viator-review-scraper").call(run_input={"startUrls": [{"url": "https://www.viator.com/tours/Rome/Colosseum-and-Ancient-Rome-Tour-with-Roman-Forum-and-Palatine-Hill/d511-3731COLOSSEUM",}],"maxReviews": 20,"sortBy": "ML_SORTED","proxyConfiguration": {"useApifyProxy": True,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US",},})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
cURL
curl -X POST "https://api.apify.com/v2/acts/crawloop~viator-review-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d "{\"startUrls\":[{\"url\":\"https://www.viator.com/tours/Rome/Colosseum-and-Ancient-Rome-Tour-with-Roman-Forum-and-Palatine-Hill/d511-3731COLOSSEUM\"}],\"maxReviews\":20,\"sortBy\":\"ML_SORTED\",\"proxyConfiguration\":{\"useApifyProxy\":true,\"apifyProxyGroups\":[\"RESIDENTIAL\"],\"apifyProxyCountry\":\"US\"}}"
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store name.
Example prompts:
- "Run Viator Review Scraper on the Colosseum product URL and return 20 recent reviews as JSON"
- "Summarize the latest Viator reviews for product code 3731COLOSSEUM: rating, traveler type, and complaints"
- "After Viator Review Scraper, run GetYourGuide Tours Scraper for Rome and compare ratings"
Suite next step
For public tour prices and ratings on GetYourGuide, run GetYourGuide Tours Scraper next.
FAQ
Does this need a partner API key or a login?
No. It reads public tour and activity review pages.
Is this a Viator API alternative?
Yes. It collects public reviews from a product URL or product code. It does not use a partner key.
What is one charged result?
One saved review. Photos and the owner reply sit on that same row.
Why are some runs empty?
Datacenter IPs are blocked. Keep the US residential proxy on. A code that is not a public product returns no rows.
Can I scrape several tours at once?
Yes. Add more product URLs or product codes. Each product stops at max reviews.