Viator Scraper – Tours, Activities, Prices & Availability avatar

Viator Scraper – Tours, Activities, Prices & Availability

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Viator Scraper – Tours, Activities, Prices & Availability

Viator Scraper – Tours, Activities, Prices & Availability

Collect Viator.com tour and activity results from destinations, categories, search pages, or pasted URLs. Returns product codes, prices, ratings, reviews, images, availability, source context, and optional detail fields.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

AbotAPI

AbotAPI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Viator Tours and Activities Scraper

Collect Viator tour and activity listings from destination/category presets or pasted Viator URLs. The actor saves product codes, prices, ratings, review counts, images, availability, source context, and optional detail status for travel research, catalog monitoring, and price comparison workflows.

What You Get

  • Search mode for major destinations and tour categories.
  • URL mode for Viator category, search-result, destination, or product URLs.
  • Filters for keyword, price range, currency, minimum rating, minimum reviews, and availability.
  • Sort options for price, rating, review count, or original source order.
  • Optional product detail enrichment. Rows are still saved when a product page is unavailable.
  • MCP connector export for sending selected rows into connected apps after the dataset is written.

Input Examples

Search mode:

{
"mode": "search",
"destination": "boston",
"category": "bus_tours",
"keyword": "hop",
"minRating": 4,
"minReviews": 50,
"sortBy": "price_asc",
"maxItems": 20,
"maxPages": 0,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] },
"mcpConnectors": []
}

URL mode:

{
"mode": "url",
"urls": ["https://www.viator.com/Boston-tours/Bus-and-Minivan-Tours/d678-g12-c98"],
"maxItems": 20,
"maxPages": 0,
"fetchDetails": false
}

maxItems is the default cap. It means the maximum matching rows to save, not a guarantee that exactly that many live matches exist. maxPages defaults to 0, which means no page limit; the run stops at maxItems.

Inputs

InputTypeDefaultDescription
modestringsearchSearch filters or URL list.
urlsarraysample Boston URLViator URLs for URL mode.
destinationstringbostonDestination preset for search mode.
categorystringtours_sightseeingCategory preset for search mode.
keywordstringemptyText that must appear in activity/source fields.
minPrice, maxPricenumberemptyPrice range filters.
currencystringAnyKeep only rows in a selected currency.
minRatingnumberemptyMinimum aggregate rating.
minReviewsintegeremptyMinimum review count.
availabilitystringAnyAvailability filter.
sortBystringsourceSource, price, rating, or review-count order.
fetchDetailsbooleanfalseTry product pages for additional fields.
maxItemsinteger20Maximum matching rows to save.
maxPagesinteger0No page limit; stops at Max items.
proxyobjectResidentialProxy configuration.
mcpConnectorsarrayemptyAuthorized MCP connectors to export rows to (Notion, Linear, Airtable, Apify).
notionParentPageUrlstringemptyParent page for Notion connector exports.
maxNotifyListingsinteger50Maximum rows sent to connectors.

Output Fields

FieldDescription
nameActivity or tour name.
productCodeViator product code parsed from the product URL.
urlActivity URL.
imageMain image URL.
locationNameDestination/source location when available.
addressLocalityLocality when available.
addressCountryNameCountry/source breadcrumb when available.
offerPriceListed price.
offerCurrencyPrice currency.
availabilityAvailability status.
priceValidUntilPrice validity date when present.
ratingValue, exactRatingAggregate rating.
bestRating, worstRatingRating bounds.
reviewCountNumber of reviews (full count when fetchDetails is on).
descriptionFull activity description (detail mode).
imagesAll product image URLs (detail mode).
reviewsUp to 10 recent reviews with author, rating, date, and text (detail mode).
itineraryStopCount, itineraryStopsItinerary stop count and stop names (detail mode).
positionPosition on the source page.
sourceUrl, sourcePage, sourceNameSource context.
sourceDescriptionSource description text.
breadcrumbsSource breadcrumb labels.
detailStatusDetail enrichment result.
detailErrorDetail error summary, only when detail enrichment fails.
scrapedAtISO timestamp.

Proxy Guidance

Residential proxy is recommended for this site. If a run returns fewer rows than maxItems, check whether the selected filters have enough live matches and whether the chosen proxy tier is accepted. Cheaper tiers can be blocked or incomplete.

MCP Connector Export

Optionally pipe a capped subset of saved rows into the apps you already use via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify -> Settings -> Integrations, then pick it in the mcpConnectors field. Supported connectors:

ConnectorServer
Notionhttps://mcp.notion.com/mcp
Linearhttps://mcp.linear.app/sse
Airtablehttps://mcp.airtable.com/mcp
Apifyhttps://mcp.apify.com

The dataset remains the source of truth. maxNotifyListings limits connector writes only; it does not change dataset output. For Notion, set notionParentPageUrl to the parent page where tour pages are created.

Notes

Product detail enrichment is optional. Category/search pages normally provide the core product fields used by the dataset. When a product page cannot be opened, the list row is still saved with detailStatus.