ParseForge Scrapers

Viator Tours and Experiences Scraper

parseforge/viator-scraper

TravelE-commerceOther

Scrapes Viator tour and activity listings by destination or activity search query. Returns each tour as a flat row with title, price, rating, review count, duration, and direct booking URL.

Run this scraper See the API call
Total users
7
Monthly active
2
Total runs
152
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

Viator Tours and Experiences Scraper

Scrape Viator tours and experiences by destination or activity, up to a million per run. Every listing returns its title, price, rating, review count, duration, and direct booking link. No API key required. Export to CSV, JSON, Excel, or XML.

Viator's official API requires partnership approval and rate limits that slow down market research. This actor reads the public tour and activity search feeds directly, filtered by any destination or activity keyword you provide, and returns each matching listing in one consistent flat schema. It is built for travel analysts, tour operators, and affiliate marketers who need bulk tour data without writing a single line of code.

Who uses it What they scrape Viator for
Travel affiliate marketers Build a searchable database of Viator tours with direct booking links for content sites.
Tour operators Monitor competitor pricing and review scores across a destination.
Destination marketing organizations Catalog every bookable experience in their region to spot gaps in the local tourism offering.
Data journalists Analyze pricing trends and review distributions across popular tourist cities.

What it does

This Actor collects Viator tour and activity listings by destination or activity search query and returns each one as a flat row with its title, price, rating, review count, duration, and booking URL.

  • πŸ” Destination or activity search: enter any term like 'Paris tours', 'Eiffel Tower', or 'Rome food tour' and the actor returns every matching listing.
  • πŸ“Š Flat row output: each tour comes as one row with title, price, rating, review count, duration, and a direct Viator booking link.
  • ⚑ High volume ready: set maxItems up to 1,000,000 to pull every tour in a destination in a single run.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Viator data

πŸ“ˆ Monitor competitor tours in a destination.

A tour operator searches 'Barcelona walking tours' weekly, collects every listing, and tracks which competitors raised prices or gained reviews.

πŸ› οΈ Build a tour search widget for a travel blog.

An affiliate marketer scrapes all 'Thailand island tours', stores the flat rows in a database, and powers an on-site search widget with direct Viator booking links.

πŸ—ΊοΈ Catalog every experience in a region.

A destination marketing organization searches their city name, pulls every tour, and identifies experience categories that are underserved by local operators.

πŸ“° Report on tourism pricing trends.

A data journalist scrapes the same five major cities each quarter, compares average tour prices and review counts, and publishes a seasonal pricing index.

Why choose this scraper

What you get
No API approval needed Reads the public Viator search feeds directly, no partnership application or OAuth flow.
One flat schema Every tour returns the same fields so you can append runs and compare destinations without cleaning.
Direct booking links Each row includes the Viator listing URL so you can drive traffic or check availability manually.
Runs in the cloud Schedule daily or weekly runs on the Apify platform and get fresh data without keeping a machine on.

How it compares

This actor focuses on fast, high-volume tour search scraping with a simple destination or activity query. Here is how it compares to other Viator scrapers on Apify Store based on their public listings.

Feature ParseForge Viator Tours Intelligence Viator Reviews Scraper Viator Tour Search Scraper
Search by destination or activity keyword Yes Yes Not listed Yes
Returns tour price Yes Yes Not listed Yes
Returns rating and review count Yes Yes Yes Yes
Returns tour duration Yes Yes Not listed Not listed
Returns direct booking URL Yes Not listed Not listed Not listed
Filter by minimum rating before output Not listed Yes Not listed Not listed
Scrapes customer reviews Not listed Not listed Yes Not listed

Configure the run

Drive the Actor with a single destination or activity search query, and set a maximum number of tours to collect per run. The Input tab lists every parameter.

A first run with the defaults:

{
 "searchQuery": "Paris tours",
 "maxItems": 10
}

A larger pull:

{
 "searchQuery": "Paris tours",
 "maxItems": 200
}

Pricing

Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $2.10
1,000 results $21.00
10,000 results $210.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Viator Tours and Experiences Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Viator through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/viator-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your search query spelling. Viator search works best with destination names or specific activity phrases like 'Paris tours' or 'Eiffel Tower'. Very broad single-word queries may return zero results. Try a more specific phrase.

The actor returned fewer tours than my maxItems setting.

This is normal. The actor stops when Viator has no more matching listings for your query. If you searched a niche activity in a small town, there may be fewer tours available than your limit.

Some tours are missing prices or ratings.

Viator listings sometimes show 'from' prices or omit ratings for new tours with no reviews yet. The actor returns whatever Viator displays publicly. Missing fields will be empty in your output.

The run timed out.

Large searches with high maxItems values can take time. Increase the run timeout in your actor settings, or reduce maxItems and run multiple smaller searches.

I need reviews, not tour listings.

This actor scrapes tour and activity search results only. For customer reviews, search Apify Store for a dedicated Viator reviews scraper that extracts review text, ratings, and traveler photos.

FAQ

Question Answer
Do I need a Viator API key or login? No. This actor reads the public Viator search pages that anyone can visit in a browser. No API key, no OAuth, and no Viator account are required.
What data does each tour row include? Every row returns the tour title, price, average rating, total review count, duration, and the direct Viator listing URL. The exact fields are shown in the sample output above.
Can I scrape tours from multiple destinations in one run? One run handles one search query. To cover multiple destinations, run the actor once per query, or set up multiple scheduled tasks, one for each destination you track.
How many tours can I collect? You set the maximum with the maxItems field, up to 1,000,000 per run. The actor stops when it hits your limit or when Viator has no more matching listings.
Does this actor scrape reviews? No. This actor collects tour and activity listings from Viator search results. If you need customer reviews, look for a dedicated Viator reviews scraper on Apify Store.
Can I filter by price or rating? The actor returns every listing that matches your search query. Filtering by price, rating, or review count is done after the run, in your spreadsheet, database, or code.
What output formats are supported? You can export your dataset to CSV, JSON, Excel, or XML directly from the Apify platform.
Can I schedule this to run automatically? Yes. Apify supports scheduled runs. Set it to daily or weekly and your dataset updates with the latest Viator listings without any manual work.
Is this an official Viator product? No. This is an unofficial scraper built on Apify that reads publicly available Viator search pages. It is not affiliated with or endorsed by Viator, Inc.
What is the difference between this and the Viator API? The official Viator API requires a partnership application and has rate limits. This actor reads the public search pages directly, so you can start collecting data immediately with no approval process.

Related actors

Browse the full ParseForge collection for more scrapers.

πŸ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Viator, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
searchQuery string Search term for tours and activities (e.g. 'Paris tours', 'Eiffel Tower', 'Rome food tour'). If omitted, a broad destination search is performed. Paris tours
maxItems integer How many tours to collect per run. 10

Pricing

from $19.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.019 to $0.021

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST Β· run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~viator-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Viator Tours and Experiences Scraper on Apify All scrapers