Viator Tours Scraper avatar

Viator Tours Scraper

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Viator Tours Scraper

Viator Tours Scraper

Viator Tours Scraper extracts tour listings from Viator search results, collecting prices, ratings, reviews, durations, cancellation details, product links, and images. It supports lazy-loaded pages, optional pagination, and exports structured tour data to the Apify dataset.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Jamshaid Arif

Jamshaid Arif

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Viator Tours Scraper (Apify Actor)

Renders Viator search-result pages , scrolls to load product cards, and extracts structured tour data into the actor's dataset.

What it collects

Per tour: name, price, currency, priceText, rating, reviewCount, duration, freeCancellation (bool), likelyToSellOut (bool), tourUrl, productCode, imageUrl, plus sourceUrl and scrapedAt (UTC ISO).

How parsing works

Viator renders each product as a card whose text is one blob, e.g. "New York in One Day Guided Sightseeing Tour 6 hours Free Cancellation 4.8 ( 13,594 ) from $99". Instead of relying on Viator's hashed CSS classes, the parser (src/parser.py) locates the product cards then pulls name / duration / rating / reviews / price out of the card text with regex, and reads the link/image/product-code from the card's elements. This survives Viator's frequent class-name churn.

Input

FieldTypeDefaultNotes
startUrlsarray of URLsNew York searchViator search URLs. Run a search and copy the URL.
maxItemsinteger100Cap across all URLs.
maxPagesinteger1Pages to paginate (needs nextButtonSelector).
nextButtonSelectorstring""Optional CSS selector for the next-page control.
scrollsinteger25Safety cap; auto-stops when no new cards load.
scrollPauseSecsinteger1Pause after each scroll.
cardWaitSecsinteger25Wait for the first cards.
navigationTimeoutSecsinteger60Page-load timeout.
proxyConfigurationproxyApify RESIDENTIALViator runs DataDome — residential is strongly recommended.
headlessbooleantrueUncheck for local debugging.

Example output item

{
"name": "New York in One Day Guided Sightseeing Tour",
"price": "99",
"currency": "$",
"priceText": "$99",
"rating": "4.8",
"reviewCount": 13594,
"duration": "6 hours",
"freeCancellation": true,
"likelyToSellOut": false,
"tourUrl": "https://www.viator.com/tours/New-York-City/.../d687-5827NYC1DAY",
"productCode": "d687-5827NYC1DAY",
"imageUrl": "https://...",
"sourceUrl": "https://www.viator.com/searchResults/all?text=New%20York",
"scrapedAt": "2026-06-28T18:30:00+00:00"
}