GetYourGuide Tours Scraper & Price Monitor - Ratings & Bookings avatar

GetYourGuide Tours Scraper & Price Monitor - Ratings & Bookings

Pricing

from $3.20 / 1,000 tour returneds

Go to Apify Store
GetYourGuide Tours Scraper & Price Monitor - Ratings & Bookings

GetYourGuide Tours Scraper & Price Monitor - Ratings & Bookings

For tour operators and travel agencies watching competitors: price, discount, rating, review count, duration, free cancellation and bookings yesterday for every tour on a GetYourGuide city page (Paris had 2,708 on 2026-10-10). Monitoring returns only new tours, price and rating moves. CSV or Excel.

Pricing

from $3.20 / 1,000 tour returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

GetYourGuide Tours Scraper & Price Monitor

Track competitor tour prices on GetYourGuide: give this Actor a city or area page (for example https://www.getyourguide.com/paris-l16/) and it returns every tour listed there with its price, discount, rating, review count, duration, free cancellation and bookings yesterday. Turn on monitoring and scheduled runs return only what changed: new tours, price moves, rating changes and tours that gained many reviews.

Built for tour operators, activity providers, travel agencies and destination marketers who want to see how the tours around theirs are priced and rated, without copying numbers by hand.

No GetYourGuide account or API key needed. Prices in the currency you choose (USD, EUR, JPY and more). Export as JSON, CSV or Excel, or push changes to Slack, email or a sheet with an Apify integration.

What you get

  • One row per tour for each location, in GetYourGuide's order: title, short summary, starting price (price) and the struck-through price before a discount (priceBeforeDiscount, discountPercent), whether the price is per person or per group (priceIsPer, priceUnitText), rating (rating, and ratingShown exactly as the card shows it), review count, duration or validity, free cancellation, skip the line, "likely to sell out", new activity, bookings yesterday (bookedYesterday), booking cut-off, features (private option, pickup, small group, audio guide...), highlights, badges, category, image and the tour link.
  • Any currency GetYourGuide offers. Choose currency (37 options, USD when empty). Every row carries the currency GetYourGuide actually used.
  • Four orders: popularity (what a visitor sees first), price low to high, price high to low, rating high to low. position follows the order.
  • Monitoring mode (monitoringMode): only tours that are new to the watch, whose price moved by minPriceChangePercent or more, whose shown rating moved (for example 4.6 to 4.7), or that gained minNewReviews reviews since the row last returned for them. Each changed row carries the previous values.
  • No failed runs for "nothing found". An unknown location, a refused request or a spending limit each come back as a free row that says why.

For new tours without reviews, rating is null, reviewCount is 0, and GetYourGuide's rating for the tour's provider is in providerRating / providerReviewCount.

Input

FieldWhat it does
locationsGetYourGuide city, region or country pages, one per entry: https://www.getyourguide.com/paris-l16/, rome-l33 or just the number 33. Pages in other languages (/de-de/paris-l16/) work too. Single tour pages are refused. Required.
sortBypopularity (empty = this), price-low-to-high, price-high-to-low or rating-high-to-low.
currencyUSD, EUR, GBP, JPY and the other currencies in GetYourGuide's menu. Empty = USD.
maxToursTours to read per location, 1-1000, 24 per page. Empty = 100. In monitoring mode this is the range being watched.
monitoringModeReturn only tours that are new to this watch or whose price, shown rating or review count moved. The first run returns every tour as new.
minPriceChangePercentMonitoring only. Smallest price move that counts, in percent of the price last returned. Empty = 2.
minNewReviewsMonitoring only. Return a tour again when it gained at least this many reviews. 0 = do not watch review counts. Empty = 20.
resetMonitoringStateForget what this watch remembered; this run returns every tour as new.

Output

{
"status": "ok",
"locationQuery": "https://www.getyourguide.com/paris-l16/",
"locationId": 16,
"position": 1,
"page": 1,
"tourId": "1282311",
"title": "Paris: Evening Lights Cruise with Legendary Bateaux-Mouches®",
"summary": "Experience the magic of Paris after dark on an evening cruise with Bateaux-Mouches. Glide along the Seine and admire the city's most famous landmarks beautifully illuminated.",
"price": 19.06,
"priceBeforeDiscount": 23.54,
"discountPercent": 19.04,
"discountText": "Save up to 19%",
"currency": "USD",
"priceIsPer": "person",
"priceUnitText": "per person",
"rating": 4.34,
"ratingShown": 4.3,
"reviewCount": 5931,
"duration": "70 minutes - 1.5 hours",
"validity": null,
"freeCancellation": false,
"skipTheLine": false,
"likelyToSellOut": false,
"newActivity": false,
"bookedYesterday": 306,
"bookingCutoff": null,
"features": [],
"highlights": [],
"badges": ["Best match"],
"category": "entryTicket",
"activityType": "waterActivity",
"providerRating": null,
"providerReviewCount": null,
"imageUrl": "https://cdn.getyourguide.com/img/tour/115954509470854c4b5876061d932af25b3db3397d3dcd3b63c6a94855f52a90.jpeg/132.jpg",
"tourUrl": "https://www.getyourguide.com/paris-l16/paris-bateaux-mouches-evening-cruise-souvenir-postcard-t1282311/",
"totalToursInLocation": 2708,
"sortBy": "popularity",
"currencyRequested": "USD",
"scrapedAt": "2026-10-10T09:00:00.529Z"
}

A value GetYourGuide does not show for a tour is null (for example priceBeforeDiscount when there is no struck-through price, or bookedYesterday when the card does not say). freeCancellation is true when the card shows "Free cancellation" and false when it does not; in our checks, tours without that label were non-refundable on their own page. The provider's company name is only on each tour's own page, so it is not in the rows.

In monitoring mode each row also has change (new, price-down, price-up, price-shown, rating-up, rating-down or reviews-added), previousPrice, previousCurrency, previousRatingShown, previousReviewCount and previousReturnedAt.

Free rows (never charged)

statusWhen
location-not-foundGetYourGuide answered that the location does not exist.
no-resultsThe location has no tours.
currency-not-as-requestedGetYourGuide returned another currency than the one asked for (the rows say which).
blockedGetYourGuide kept refusing the list. The Actor does not answer check pages; it says which locations were not searched.
unreadableA page could not be read, or the answer was for another location. Nothing is guessed.
bad-inputThe input could not be used (for example a single tour page or a city name without its page). Nothing was requested.
robots-disallowedGetYourGuide's robots.txt disallows the address the Actor reads. Nothing was requested.
no-changeMonitoring: nothing new and nothing moved since the last returned rows.
budget-reachedThe run reached the maximum total charge you set; the rest was not returned and not charged.

Monitoring competitors on a schedule

  1. Run once with monitoringMode on: every tour comes back as new and becomes the starting point.
  2. Schedule the same input (for example daily). Each run returns only tours that changed since the row last returned for them.
  3. A run with no change returns one free no-change row; only a small watch check fee is charged for that run.

The memory is kept per location, sort order and currency (changing maxTours keeps the same watch). Tours not returned because of a spending limit are not remembered, so the next run returns them. popularity is GetYourGuide's own ranking and can change from day to day; tours that move into your top maxTours come back as new (in a 2026-10-10 check, two Paris runs a few minutes apart returned 48 new, then no change).

How it works

Unofficial and not affiliated with GetYourGuide. The Actor reads the same tour list that GetYourGuide's location page loads when a visitor presses "Show more", 24 tours per request, and checks that each answer is for the location you asked for. It reads GetYourGuide's robots.txt at the start of every run and does not request addresses it disallows (it does not use GetYourGuide's search or date filters). It never logs in and never answers a check page; if GetYourGuide keeps refusing, the run stops with a free blocked row instead of guessing.

Pricing

You pay per tour row returned. Free rows are never charged. In monitoring mode, a run that finds no change is charged one watch check instead of rows.

FAQ

How do I find the page for my city? Open GetYourGuide, go to the city or region (for example "Things to do in Rome") and copy the address: it ends in -l and a number, like https://www.getyourguide.com/rome-l33/.

Is the price per person? Usually. priceIsPer says person or group, and priceUnitText repeats the card's own words (for example "per group up to 6"). The price is the "From" price on the card, before dates are chosen.

Can I watch a competitor's price every day? Yes. Turn on monitoringMode and schedule the run; you get a row only when that tour's price, shown rating or review count changes, with the old value next to the new one.

Does it collect reviews or reviewer names? No. It returns the rating and the number of reviews only.

Can I get prices for a specific date? Not yet: the list shows the "From" price. Tell us in the Issues tab if you need dated prices.

Thanks for using this Actor

We build these tools for people who run them every day, and we improve them from what users tell us.

  • Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
  • Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.

If this Actor saved you time, a short review helps other people find it.