Viator Review Scraper avatar
Viator Review Scraper

Pricing

$1.00 / 1,000 results

Go to Apify Store
Viator Review Scraper

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

Louvre LLC

Maintained by Community

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

ParameterTypeRequiredDescription
product_urlString⚠️The Viator product page URL to scrape reviews from. Either product_url or product_urls must be provided.
product_urlsArray[String]⚠️Array of Viator product URLs for batch processing (1-200 URLs). Either product_url or product_urls must be provided.
page_sizeNumberMaximum number of reviews per page (default: 100, range: 1-1000).
pageNumberStart 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:

FieldTypeDescription
idStringUnique review identifier.
product_idStringViator product identifier.
product_urlStringProduct URL used for scraping this review.
ratingNumberReview rating (1–5 stars).
titleStringReview title.
contentStringFull review text/body.
author_nameStringReviewer's name.
user_identifier_valueStringAuthor user identifier.
review_dateStringDate when the review was published (ISO 8601 format).
helpful_votesNumberNumber of helpful votes.
photosArrayArray of photo URLs (if any).
owner_responseStringBusiness owner response text (if any).
owner_response_authorStringResponse author name (if any).
owner_response_dateStringResponse publication date (ISO 8601 format, if any).
sourceStringData source identifier (always "viator").
languageStringReview language code.

🧠 How It Works

  1. Input Validation — Validates the provided Viator product URL.
  2. Review Extraction — Uses web scraping logic to extract review data from the product page.
  3. Data Processing — Cleans and structures the scraped results.
  4. Duplicate Detection — Identifies and filters duplicate reviews.
  5. 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

  1. Install Apify CLI (if not already installed):
$npm install -g apify-cli
  1. Login to Apify:
$apify login

Push Command

Navigate to the actor directory and push:

cd viator-review-scraper
apify 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 latest version
  • 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 Actor
npm run build
# Push to Apify
apify push

Modifying the Version

To change the Actor version before pushing:

  1. 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.

  1. 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.