GetYourGuide Reviews Scraper avatar

GetYourGuide Reviews Scraper

Pricing

from $0.49 / 1,000 results

Go to Apify Store
GetYourGuide Reviews Scraper

GetYourGuide Reviews Scraper

Extracts the aggregate rating and latest guest reviews for any GetYourGuide tour/activity page by activity URL.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

Ibnu Adzim

Ibnu Adzim

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Extracts the aggregate rating and latest guest reviews for any GetYourGuide tour/activity page — just give it the activity URL.

Why use this actor

  • No account, no login, no API key — works on public activity pages only.
  • Returns the activity's aggregate rating (score, best-possible score, total review count) plus the platform's most recent guest reviews, each with rating, full text, reviewer name, and publish date.
  • Every activity you submit gets at least one output row — including a clear diagnostic reason on the rare rows that couldn't be fetched, so nothing silently disappears from your results.
  • Automatically retries once on a fresh IP if a bot-mitigation challenge is hit — confirmed on real runs to recover most challenges without any action from you.

How it works

  1. You give the actor one or more GetYourGuide activity page URLs.
  2. For each activity, it reads the rating and reviews directly out of the page's own structured data (the same data GetYourGuide publishes for Google's rich snippets) — no separate API call, no pagination to manage.
  3. Results are streamed to your dataset as they finish.
  4. You export the finished dataset as JSON, CSV, or Excel straight from the Apify Console.

Input

{
"activityUrls": [
"https://www.getyourguide.com/geneva-l54/best-of-geneva-guided-city-tour-with-scenic-lake-cruise-t4873/"
],
"maxConcurrency": 5,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}
FieldTypeDescription
activityUrlsarray of stringsGetYourGuide activity/tour page URLs.
maxConcurrencyintegerHow many activities to process at the same time. Default 5.
proxyConfigurationobjectProxy settings. Residential is on by default — a datacenter IP gets bot-mitigation-challenged noticeably more often on this site.

Output

Each activity produces one summary row plus one review row per guest review. Real examples from a live run:

Summary row (recordType: "SUMMARY"):

{
"_input": "https://www.getyourguide.com/geneva-l54/best-of-geneva-guided-city-tour-with-scenic-lake-cruise-t4873/",
"_source": "S1-activity-page-jsonld",
"_scrapedAt": "2026-08-10T12:04:00Z",
"recordType": "SUMMARY",
"activityId": "4873",
"activityUrl": "https://www.getyourguide.com/geneva-l54/best-of-geneva-guided-city-tour-with-scenic-lake-cruise-t4873/",
"name": "Best of Geneva City Tour: UN Area, Old Town & Boat Cruise",
"description": "Explore the Old Town and the international district of Geneva on this guided tour...",
"aggregateRating": { "ratingValue": 4.29, "bestRating": 5, "reviewCount": 437 },
"offers": { "priceCurrency": "USD", "...": "price fields" },
"_reviewsInDataset": 10,
"_reviewsTotalOnPlatform": 437,
"_note": "GetYourGuide's activity page publishes only its 10 most recent reviews as structured data; 437 exist on the platform in total."
}

Review row (recordType: "REVIEW"):

{
"_input": "https://www.getyourguide.com/geneva-l54/best-of-geneva-guided-city-tour-with-scenic-lake-cruise-t4873/",
"_source": "S1-activity-page-jsonld",
"_scrapedAt": "2026-08-10T12:04:00Z",
"recordType": "REVIEW",
"activityId": "4873",
"activityName": "Best of Geneva City Tour: UN Area, Old Town & Boat Cruise",
"reviewRating": { "ratingValue": 5, "bestRating": 5 },
"reviewBody": "Gabriel was so nice. His accent was so good, we understood everything! :) We loved the whole experience and we totally recommend it !",
"author": { "name": "Alexandra" },
"datePublished": "2026-08-05T06:02:04+02:00"
}

When an activity can't be found or the input isn't a GetYourGuide URL, the actor still emits one row for that input with a clear reason:

{
"_input": "https://www.getyourguide.com/this-activity-does-not-exist-t999999999/",
"_source": "none",
"_scrapedAt": "2026-08-10T12:04:00Z",
"recordType": "ERROR",
"_error": "not_found",
"_errorDetail": "No Product structured data on ... -- likely a removed/invalid activity page."
}
FieldTypeDescription
_inputstringThe activity URL you submitted.
_sourcestringWhich internal strategy produced this row. "none" on a failed row.
_scrapedAtstringUTC timestamp of when this row was produced.
recordTypestring"SUMMARY", "REVIEW", or "ERROR".
activityIdstringGetYourGuide's numeric activity ID (present on successful rows).
_reviewsInDataset / _reviewsTotalOnPlatform / _notePresent on a SUMMARY row only when the platform has more reviews than are published in this dataset — see Notes / limits below.
_errorstringPresent only on rows that couldn't be fetched, e.g. not_found, invalid_input, waf_challenge.
_errorDetailstringHuman-readable detail for the error, present only alongside _error.
(all other fields)On a successful row, every field GetYourGuide's own structured data provides is passed through unchanged.

Notes / limits

  • Reviews are a snapshot, not full history. GetYourGuide's activity pages publish only their most recent reviews as structured data (up to 10 per activity, confirmed across activities with 5 to 1,095 total reviews) — there is no pagination available for this data source. aggregateRating.reviewCount always reflects the true total; the review rows in this dataset are the latest slice of it, flagged explicitly on the SUMMARY row whenever the total exceeds what's included.
  • An activity with zero reviews still gets a SUMMARY row (not an error) — it just has no accompanying REVIEW rows.

Other actors in this collection

ActorWhat it returns
Agoda Reviews ScraperGuest reviews for hotels listed on Agoda.com
Orbitz Hotel Reviews ScraperGuest reviews for hotels listed on Orbitz.com