Viator Review Scraper avatar

Viator Review Scraper

Pricing

from $3.00 / 1,000 reviews

Go to Apify Store
Viator Review Scraper

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

Andrej Kiva

Maintained by Community

Actor 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

ActorRole
GetYourGuide Tours ScraperPublic GetYourGuide tours: price, rating, review count
Viator Review Scraper ◄── you are herePublic 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

FieldDefaultWhat it does
Product URLssample tourPublic tour or activity page
Product codesemptyCode such as 3731COLOSSEUM
Max reviews per product100Stop after this many saved reviews
SortMost insightfulML_SORTED, DATE, or RATING
ProxyUS residentialRequired. 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

FieldMeaning
reviewIdPublic review id
productCodeViator product code
productTitleTour or activity name
productUrlPublic product page
productReviewCountTotal reviews reported for the product
ratingStars from 1 to 5
titleReview title
textReview text
localeLanguage of the text
publishedAtPublication time in UTC
partyTypeTravel party, such as COUPLES or FAMILY
helpfulVotesHelpful vote count
reviewerNamePublic reviewer name
isTripadvisorTrue when Tripadvisor provided the review
machineTranslatedTrue when the text is machine translated
ownerResponseSupplier reply, when one is public
photoCountNumber of traveler photos
photoUrlsUp to five photo URLs
scrapedAtUTC 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 ApifyClient
client = 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().items
print(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.