Viator Review Scraper
Pricing
$1.00 / 1,000 results
Viator Review Scraper
The Viator Review Scraper is a powerful and easy-to-use actor designed to collect structured review data from Viator product pages. Whether you’re analyzing customer sentiment, monitoring competitor feedback, or enriching your travel content.
Pricing
$1.00 / 1,000 results
Rating
5.0
(1)
Developer
Louvre LLC
Actor stats
0
Bookmarked
17
Total users
7
Monthly active users
16 hours
Issues response
2 days ago
Last modified
Categories
Share
🛫🌍 Viator Review Scraper
📌 Introduction
Viator Review Scraper is a powerful and easy-to-use Apify Actor designed to collect structured review data from Viator product pages. It lets you extract review ratings, text, author details, photos, travel info, and more — perfect for sentiment analysis, competitor research, travel insights, and content enrichment.
🎯 What is this Review Scraper?
This Actor automatically scrapes customer reviews from a specified Viator product URL and outputs them as structured JSON. It supports flexible pagination and outputs clean data ready for analysis or integration into data pipelines.
🔍 Features
- ⭐ Comprehensive Review Data — Extracts ratings, review text, author name & location, photos, and helpful votes.
- 🔁 Flexible Pagination — Supports custom starting page and maximum review limits.
- 🔀 Multiple Sorting Options — Sorts reviews by date, rating, or helpfulness.
- 🚀 High Performance — Efficiently handles large volumes of reviews.
- 🧹 Reliable Output — Includes duplicate detection and data validation.
- 🔌 Easy Integration — Simple input parameters and structured JSON output.
🧰 Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
product_url | String | ⚠️ | The Viator product page URL to scrape reviews from. Either product_url or product_urls must be provided. |
product_urls | Array[String] | ⚠️ | Array of Viator product URLs for batch processing (1-200 URLs). Either product_url or product_urls must be provided. |
page_size | Number | ❌ | Maximum number of reviews per page (default: 100, range: 1-1000). |
page | Number | ❌ | Start page number (default: 1). |
📥 Example Input
Single URL
{"product_url": "https://www.viator.com/tours/Paris/Eiffel-Tower-Tour/d479-12345","page_size": 100,"page": 1}
Batch Processing (Multiple URLs)
{"product_urls": ["https://www.viator.com/tours/Paris/Eiffel-Tower-Tour/d479-12345","https://www.viator.com/tours/Rome/Colosseum-Tour/d511-67890"],"page_size": 100,"page": 1}
This configuration will scrape up to 100 reviews starting from the first page of the specified Viator product(s).
🗃️ Output Data
Each review returned by this Actor includes the following structured fields:
| Field | Type | Description |
|---|---|---|
id | String | Unique review identifier. |
product_id | String | Viator product identifier. |
product_url | String | Product URL used for scraping this review. |
rating | Number | Review rating (1–5 stars). |
title | String | Review title. |
content | String | Full review text/body. |
author_name | String | Reviewer's name. |
user_identifier_value | String | Author user identifier. |
review_date | String | Date when the review was published (ISO 8601 format). |
helpful_votes | Number | Number of helpful votes. |
photos | Array | Array of photo URLs (if any). |
owner_response | String | Business owner response text (if any). |
owner_response_author | String | Response author name (if any). |
owner_response_date | String | Response publication date (ISO 8601 format, if any). |
source | String | Data source identifier (always "viator"). |
language | String | Review language code. |
🧠 How It Works
- Input Validation — Validates the provided Viator product URL.
- Review Extraction — Uses web scraping logic to extract review data from the product page.
- Data Processing — Cleans and structures the scraped results.
- Duplicate Detection — Identifies and filters duplicate reviews.
- Data Storage — Saves structured review data to the Apify dataset for retrieval.
⚙️ Usage Examples
📦 Basic Usage (Single URL)
{"product_url": "https://www.viator.com/tours/Paris/Eiffel-Tower-Tour/d479-12345"}
📈 With Pagination
{"product_url": "https://www.viator.com/tours/Paris/Eiffel-Tower-Tour/d479-12345","page_size": 200,"page": 2}
🔄 Batch Processing (Multiple URLs)
{"product_urls": ["https://www.viator.com/tours/Paris/Eiffel-Tower-Tour/d479-12345","https://www.viator.com/tours/Rome/Colosseum-Tour/d511-67890","https://www.viator.com/tours/London/London-Eye-Tour/d737-11111"],"page_size": 100,"page": 1}
💰 Pricing & Limits
This Actor costs $1.00 per 1,000 results and includes a free trial option.
🚀 Deploying to Apify
To push this Actor to the Apify platform, use the Apify CLI:
Prerequisites
- Install Apify CLI (if not already installed):
$npm install -g apify-cli
- Login to Apify:
$apify login
Push Command
Navigate to the actor directory and push:
cd viator-review-scraperapify push
This will:
- Build the Actor code
- Upload it to your Apify account
- Make it available in the Apify platform
Push and Set as Latest Version
To push and automatically set the version as latest:
$apify push -b latest --force
This command will:
- Build and push the Actor
- Set the pushed version as the
latestversion - Make it the default version when running the Actor
Alternative: Push with Specific Actor ID
If you want to push to a specific Actor ID:
$apify push --actor-id <YOUR_ACTOR_ID>
Or push with Actor ID and set as latest:
$apify push --actor-id <YOUR_ACTOR_ID> -b latest --force
Build and Push Separately
You can also build and push separately:
# Build the Actornpm run build# Push to Apifyapify push
Modifying the Version
To change the Actor version before pushing:
- Edit the version in
.actor/actor.json:
{"version": "1.3"}
Note: Apify requires version format to be MAJOR.MINOR (e.g., 1.3), where MAJOR and MINOR are numbers from 0 to 99. Three-part versions like 1.3.1 are not supported.
- Push with the new version:
$apify push
Or push with a specific version directly:
$apify push --version 1.3
Note: The version in actor.json will be used by default. If you specify --version latest, it will set the pushed version as latest regardless of the version in actor.json.
📡 API / CLI Integration
You can run this Actor via the Apify API or CLI. Example using curl:
curl "https://api.apify.com/v2/acts/louvre~viator-review-scraper/runs?token=<YOUR_API_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d @input.json
Replace <YOUR_API_TOKEN> with your Apify API token and input.json with your configured input.