GetYourGuide Scraper at a glance
GetYourGuide Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes type, change type (incremental mode), title, activity id and url, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.20 per 1,000 results on the Apify Free plan and from $1.80 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Other
- Pricing
- $2.20 per 1,000 results (Free plan), from $1.80 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 33 options
Scrape GetYourGuide tours and activities by keyword, city or link. Get prices, discounts, ratings, review counts, duration, languages, activity provider, categories, badges, highlights, meeting-point coordinates, images and traveler reviews with provider replies and photos.
What GetYourGuide Scraper can do
- Three ways in. Search by plain keyword or city name, paste any GetYourGuide link (activity, search, destination, category, any language), or collect traveler reviews. No ids or URLs to build by hand.
- Real prices in your currency. The "from" price, the original price and the discount percentage, in the currency you pick.
- Provider and languages. Every activity can carry its provider name, the guide languages, group size, cancellation terms and Reserve now, pay later flag.
- Deep detail on demand. Highlights, inclusions, exclusions, what to bring, meeting point, itinerary stops, full description and the complete image gallery.
- Filters that really narrow. Sort order, minimum rating, price range, tour languages and duration are applied by the site itself, plus free cancellation and skip-the-line toggles. Reviews can be narrowed by star rating, language, traveler type and written text.
- Coordinates and demand signals. Meeting-point coordinates and address, every map pin of the itinerary, the best-seller flag and the daily "booked yesterday" counter.
Choose what to collect
These inputs let you configure GetYourGuide Scraper - Tours, Activities, Prices & Reviews. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Choose 'search' to find activities by keyword, city or place with filters, 'url' to paste activity, search or destination links, or 'reviews' to collect traveler reviews. |
queriesarray | Cities, places or activity keywords, for example 'paris', 'colosseum tickets' or 'food tour rome'. Each query is searched separately. Used in search mode, and in reviews mode to pick the top activities. |
sortBystring | Order of results. |
minRatingstring | Only activities rated at least this many stars. |
minPriceinteger | Lowest 'from' price per person, in the selected currency. Leave empty for no minimum. |
maxPriceinteger | Highest 'from' price per person, in the selected currency. Leave empty for no maximum. |
languagesarray | Only activities offered in at least one of these languages. Leave empty for all. |
Show 26 more inputs
| Input | What it controls |
|---|---|
durationsarray | Only activities with one of these durations. Leave empty for all. |
freeCancellationOnlyboolean | Keep only activities with free cancellation. |
skipTheLineOnlyboolean | Keep only activities with skip-the-line or fast-track entry. |
urlsarray | Used when mode is url (and in reviews mode). Paste any GetYourGuide link: an activity link (full record), a search link with a q parameter, a destination link (city, area, country or attraction page) or a category link. Links in other languages or on country domains work too, and a bare activity id is accepted. Destination and category links are walked like a search. Other pages (home, help, partner pages) are skipped with a note. Filter fields are ignored for links. |
fetchDetailsboolean | Adds the provider, languages, highlights, inclusions, meeting point, itinerary, full description and image gallery to every activity. Turn off for a lighter run with list fields only. |
maxPagesinteger | Optional page limit per search. Leave empty (or 0) for no page limit. This is not the run's cap and has no finite default: the run is capped by Max items (default 20), so raise or clear Max items to collect more. |
maxItemsinteger | Maximum number of rows returned across the whole run. This is the single default cap (20); Max pages per search does not cap and defers to this field. Use 0 for unlimited. |
maxReviewsPerActivityinteger | Reviews mode only: how many reviews to collect for each activity (default 20, up to 1000). Each review is one result row. |
minReviewRatingstring | Reviews mode only: keep only reviews with at least this many stars. 'Any rating' keeps everything. |
reviewLanguagesarray | Reviews mode only: keep only reviews written in these languages, for example 'en', 'de' or 'fr' (two-letter codes). Leave empty for every language. |
reviewTravelerTypesarray | Reviews mode only: keep only reviews from these kinds of travelers. Leave empty for all. |
reviewsWithTextOnlyboolean | Reviews mode only: skip star-only reviews that have no comment. |
currencystring | Currency for prices. |
languagestring | Language of titles and descriptions. |
resumeFromRunIdstring | Paste a previous run ID or dataset ID to continue a large collection without returning or charging for items already collected there. Use this after an interrupted run. For recurring monitoring of the same search, use Incremental mode instead. |
incrementalModeboolean | Turn this on for recurring monitoring. The first run returns everything as NEW. Later runs return only NEW, UPDATED and REAPPEARED items. Change detection compares price, discount, title, provider, languages and the other fields; it ignores scrape time, list position, duration and highlight wording, availability messages, rating and review counters and image links, so those alone never mark an item UPDATED. State is kept separately for each search or link set; use State key to name or share a campaign. Use 'What counts as a change' to narrow detection to prices. |
stateKeystring | Optional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to derive a key automatically from the search or links and the filter settings. |
emitUnchangedboolean | Off by default. Turn on to also return items that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have. |
emitExpiredboolean | On by default. Also returns items that were present in a previous run but are no longer found, marked EXPIRED. EXPIRED means the activity dropped out of the search results; it does not prove the activity is unavailable. Only produced once a run has fully scanned the tracked search, not when Max items capped it or when Resume was used. Turn off to skip these rows. |
changeScopestring | 'All fields' marks an item UPDATED when any tracked field changes. 'Price and discount only' marks it UPDATED only when its from-price, original price, discount, currency or price unit moves, so wording or provider edits never create a billable row. |
compactUpdatesboolean | Off by default. When on, UPDATED and EXPIRED rows carry only the identity, link, current price and a priceChanges object with the old and new values, not the full record. NEW rows stay complete. A slim row does not include the detail fields, so it is not charged the detail enrichment. |
expireAfterMissedScansinteger | An item is marked EXPIRED only after it was missing from this many consecutive complete scans (default 1). Raise it to ride out results that rotate in and out of a search. |
ignoreFieldsForChangesarray | Optional. Top-level field names to exclude from UPDATED change detection, in addition to the built-in handling. The fields stay in the output; they just do not count as a change. |
mcpConnectorsarray | Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip; never changes the dataset output. |
notionParentPageUrlstring | URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
typeTypechangeTypeChange type (incremental mode)titleTitleactivityIdActivity IDurlURL (link)priceFromFrom pricepriceCurrencyCurrencydiscountPercentDiscount %ratingRatingreviewCountReviewsdurationTextDurationfreeCancellationFree cancellation (boolean)Show 40 more fields
supplierProvidercityCitycountryCountryimageUrlImage (image)activityTitleReview: activityactivityUrlReview: activity link (link)authorReview: authordateReview: datetextReview: textchangedFieldsChanged fields (incremental mode) (array)originalPriceoriginalPriceskipTheLineSkip the line (boolean)badgesBadges (array)categoriesCategories (array)languagesLanguages (array)areaareapointOfInterestpointOfInterestmeetingPointmeetingPointhighlightsHighlights (array)searchQuerysearchQuerylatitudeLatitudelongitudeLongitudeisBestsellerBest seller (boolean)bookedIn24HoursBooked yesterdaymeetingPointAddressMeeting point addresspriceUnitPrice unitauthorCountryauthorCountrylanguagelanguagetravelerTypetravelerTypereviewIdreviewIdphotosPhotosownerResponseProvider replyownerResponseDateReply dateactivityRatingActivity ratingactivityReviewCountActivity reviewsverifiedBookingVerified booking (boolean)priceChangesPrice changes (old / new)firstSeenAtFirst seenlastSeenAtLast seencompactSlim row (boolean)Example output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"type": "activity",
"source": "getyourguide.com",
"activityId": 100000,
"title": "City: Guided Walking Tour",
"url": "https://www.getyourguide.com/city-l1/city-guided-walking-tour-t100000/",
"description": "Explore the old town with a local guide.",
"priceFrom": 43.45,
"originalPrice": null,
"discountPercent": 0,
"priceCurrency": "USD",
"priceUnit": "per person",
"rating": 4.9,
"reviewCount": 686,
"durationText": "3 hours",
"freeCancellation": true,
"skipTheLine": false,
"badges": [
"Top rated"
],
"categories": [
"dayTrip"
],
"languages": [
"English"
],
"supplier": "Sample Tours Ltd",
"highlights": [
"Walk through the old town"
],
"meetingPoint": "1 Sample Street, City",
"city": "City",
"country": "Country",
"images": [
"https://cdn.getyourguide.com/image/sample.jpg"
],
"searchQuery": "city"
}Ways to use this data
- Travel price monitoring: track "from" prices and discounts for the same destination every day.
- Competitive research for tour operators: compare ratings, review counts, durations and providers across a city.
- Travel apps and aggregators: feed activity cards, galleries and highlights into your own product.
- Reputation analysis: collect traveler reviews with rating, country, traveler type and language for sentiment work.
- Market sizing: count and classify what is on offer per destination, category and price band.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does GetYourGuide Scraper return?
The documented output for GetYourGuide Scraper includes type, change type (incremental mode), title, activity id, url, from price, currency and discount %. Availability of each field depends on the source page and the selected mode.
How much does GetYourGuide Scraper cost?
It costs $2.20 per 1,000 results on the Apify Free plan and from $1.80 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I get only new or changed activities on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new and updated rows, and unchanged ones are not billed.
Why do titles and order differ between two runs?
The site ranks and words some results differently per visitor. The actor keeps one stable visitor identity per search so scheduled runs stay comparable.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
