Viator Scraper – Tours, Activities, Prices & Availability
Pricing
from $1.50 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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
| Input | Type | Default | Description |
|---|---|---|---|
mode | string | search | Search filters or URL list. |
urls | array | sample Boston URL | Viator URLs for URL mode. |
destination | string | boston | Destination preset for search mode. |
category | string | tours_sightseeing | Category preset for search mode. |
keyword | string | empty | Text that must appear in activity/source fields. |
minPrice, maxPrice | number | empty | Price range filters. |
currency | string | Any | Keep only rows in a selected currency. |
minRating | number | empty | Minimum aggregate rating. |
minReviews | integer | empty | Minimum review count. |
availability | string | Any | Availability filter. |
sortBy | string | source | Source, price, rating, or review-count order. |
fetchDetails | boolean | false | Try product pages for additional fields. |
maxItems | integer | 20 | Maximum matching rows to save. |
maxPages | integer | 0 | No page limit; stops at Max items. |
proxy | object | Residential | Proxy configuration. |
mcpConnectors | array | empty | Authorized MCP connectors to export rows to (Notion, Linear, Airtable, Apify). |
notionParentPageUrl | string | empty | Parent page for Notion connector exports. |
maxNotifyListings | integer | 50 | Maximum rows sent to connectors. |
Output Fields
| Field | Description |
|---|---|
name | Activity or tour name. |
productCode | Viator product code parsed from the product URL. |
url | Activity URL. |
image | Main image URL. |
locationName | Destination/source location when available. |
addressLocality | Locality when available. |
addressCountryName | Country/source breadcrumb when available. |
offerPrice | Listed price. |
offerCurrency | Price currency. |
availability | Availability status. |
priceValidUntil | Price validity date when present. |
ratingValue, exactRating | Aggregate rating. |
bestRating, worstRating | Rating bounds. |
reviewCount | Number of reviews (full count when fetchDetails is on). |
description | Full activity description (detail mode). |
images | All product image URLs (detail mode). |
reviews | Up to 10 recent reviews with author, rating, date, and text (detail mode). |
itineraryStopCount, itineraryStops | Itinerary stop count and stop names (detail mode). |
position | Position on the source page. |
sourceUrl, sourcePage, sourceName | Source context. |
sourceDescription | Source description text. |
breadcrumbs | Source breadcrumb labels. |
detailStatus | Detail enrichment result. |
detailError | Detail error summary, only when detail enrichment fails. |
scrapedAt | ISO 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:
| Connector | Server |
|---|---|
| Notion | https://mcp.notion.com/mcp |
| Linear | https://mcp.linear.app/sse |
| Airtable | https://mcp.airtable.com/mcp |
| Apify | https://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.