Viator.com Tours Scraper avatar

Viator.com Tours Scraper

Pricing

Pay per usage

Go to Apify Store
Viator.com Tours Scraper

Viator.com Tours Scraper

Extract tours, activities, attractions, prices, ratings, reviews, durations, destinations, availability, images, itineraries, inclusions, and more from Viator.com. Ideal for travel research, market analysis, price monitoring, lead generation, and tourism data collection.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Viator Tours Scraper

Extract tour and activity listings from Viator destination pages with clean, structured output. Collect listing data such as titles, prices, ratings, review counts, durations, destinations, images, languages, cancellation details, and product URLs for travel research, pricing analysis, and catalog monitoring.

Features

  • Destination listing support - Paste a Viator listing URL such as a city tours page and collect available activities.
  • Pagination control - Move through multiple listing pages until your result target or page limit is reached.
  • Clean dataset - Empty and always-null values are removed from saved records.

Use Cases

Travel Market Research

Compare Viator tours across destinations to understand what experiences are available, how they are priced, and which activities receive strong traveler interest. Ratings, review counts, and duration fields help you sort high-performing listings quickly.

Price Monitoring

Track starting prices for tours and activities in specific cities. Use repeated runs to monitor pricing changes for popular destinations, attractions, and competitor offerings.

Catalog Building

Create a structured catalog of tours with product codes, destination details, images, short descriptions, and direct URLs. This is useful for travel apps, internal research databases, and editorial planning.

Supplier and Product Analysis

Review listing-level signals such as cancellation policy, private tour availability, likely-to-sell-out flags, language availability, and badges. These fields help compare product positioning across similar experiences.


Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlStringNoRome tours URLViator destination listing URL to extract listings from.
results_wantedIntegerNo20Maximum number of listings to save.
max_pagesIntegerNo5Maximum listing pages to request.
proxyConfigurationObjectNoApify proxy disabledProxy settings for reliable runs.

Output Data

Each item in the dataset can contain:

FieldTypeDescription
product_codeStringViator product code.
titleStringTour or activity title.
canonical_nameStringCanonical product name.
urlStringViator product URL.
source_urlStringListing page where the item was found.
source_pageNumberListing page number.
destination_idStringViator destination id.
destination_nameStringPrimary destination name.
destination_parent_nameStringParent destination, such as country or region.
descriptionStringListing description.
brief_descriptionStringShort product summary.
price_fromNumberStarting price.
currencyStringPrice currency code.
ratingNumberAverage traveler rating.
exact_ratingNumberExact rating when available.
review_countNumberNumber of reviews.
durationStringHuman-readable duration.
free_cancellationBooleanWhether free cancellation is available.
likely_to_sell_outBooleanWhether Viator marks the listing as likely to sell out.
new_productBooleanWhether the listing is marked as new.
private_tourBooleanWhether the activity is a private tour.
language_codesArrayOffered language codes.
image_urlStringMain listing image.
badgesArrayListing badges when available.

Usage Examples

Destination URL

Collect listings from a Viator Rome tours page:

{
"startUrl": "https://www.viator.com/Rome/d511-ttd",
"results_wanted": 20,
"max_pages": 2
}

Larger Collection

Collect more listings from the same destination:

{
"startUrl": "https://www.viator.com/Rome/d511-ttd",
"results_wanted": 50,
"max_pages": 5
}

Sample Output

{
"product_code": "62972P2",
"title": "Colosseum Arena Floor, Roman Forum and Palatine Hill Tour",
"canonical_name": "Colosseum Arena Floor, Roman Forum and Palatine Hill Guided Tour",
"url": "https://www.viator.com/tours/Rome/Colosseum-Arena-Floor-Roman-Forum-and-Palatine-Hill-Guided-Tour/d511-62972P2",
"source_url": "https://www.viator.com/Rome/d511-ttd",
"source_page": 1,
"destination_id": "511",
"destination_name": "Rome",
"destination_parent_name": "Italy",
"price_from": 33.73,
"currency": "USD",
"rating": 4.5,
"review_count": 9545,
"duration": "150 minutes",
"free_cancellation": true,
"language_codes": ["de", "en", "es", "fr", "pt"],
"image_url": "https://dynamic-media.tacdn.com/media/photo-o/2e/a6/46/1f/caption.jpg?w=1200&h=800&s=1"
}

Tips for Best Results

Use Listing URLs

  • Use destination pages that end with patterns like /Rome/d511-ttd.
  • For page-specific testing, URLs such as /Rome/d511-ttd/2 are supported.

Start With Small Runs

  • Use results_wanted between 20 and 50 for tests.
  • Increase max_pages when you need broader coverage.

Check Pagination

  • Increase max_pages when the first page does not contain enough listings.
  • Use the dataset source_page field to see where each listing was found.

Integrations

Connect your data with:

  • Google Sheets - Review listings and pricing in spreadsheets.
  • Airtable - Build a searchable travel product catalog.
  • Slack - Send notifications when runs finish.
  • Webhooks - Forward datasets to your own systems.
  • Make - Automate reporting and enrichment workflows.
  • Zapier - Trigger downstream actions from completed runs.

Export Formats

  • JSON - For applications and data pipelines.
  • CSV - For spreadsheet analysis.
  • Excel - For business reporting.
  • XML - For system imports.

Frequently Asked Questions

Can I scrape any Viator listing URL?

Yes, you can scrape Viator destination listing URLs that expose tour and activity listings, such as /Rome/d511-ttd.

Can I collect listings from multiple pages?

Yes, the actor follows listing page pagination until it reaches results_wanted, max_pages, or the available page count.

What happens when a field is missing?

Missing, empty, and always-null values are skipped so the dataset stays clean.

Do I need a proxy?

A proxy is optional for small runs. For larger or repeated runs, proxy configuration can improve reliability.


Support

For issues or feature requests, contact support through the Apify Console.

Resources


This actor is designed for legitimate data collection purposes. Users are responsible for ensuring their use of collected data complies with Viator terms, Tripadvisor rules, and applicable laws. Use data responsibly and respect platform limits.