# GetYourGuide Scraper - Activities & Attractions (`aboo.script/getyourguide-scraper`) Actor

\[💰$4 / 1K] ⚡ Fast, cheap GetYourGuide scraper that works on Cloudflare-protected pages. No login, no API key. Tours, tickets and activities by city, category, attraction, keyword or URL with prices, discounts, ratings, duration, photos, plus highlights, includes and itinerary.

- **URL**: https://apify.com/aboo.script/getyourguide-scraper.md
- **Developed by:** [Aboo Script](https://apify.com/aboo.script) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.80 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## GetYourGuide Scraper

![GetYourGuide Scraper](https://i.ibb.co/8g0zMsWP/getyourguide-banner.png)

**GetYourGuide Scraper** extracts tours, activities, attraction tickets and day trips from [GetYourGuide](https://www.getyourguide.com/) into clean, structured data you can download as JSON, CSV, Excel, or HTML. Paste any GetYourGuide city, category, attraction, search or activity URL, or just type a keyword, and get the title, price, discount, rating, number of reviews, duration, photos and, if you want, the full activity details for every result. No account or login required, and it works on Cloudflare-protected pages.

### Introduction

[GetYourGuide](https://www.getyourguide.com/) is one of the largest marketplaces for travel experiences, with hundreds of thousands of tours, tickets and activities in cities all over the world. Its prices, ratings and review counts are a reliable picture of what travelers book and how much they pay.

This actor collects the same public information you see in your browser and turns it into a ready-to-use dataset, a simple GetYourGuide API alternative. You can run it once, schedule it to run daily, or connect it to your own tools.

### What data can you extract from GetYourGuide?

- 🏷️ Activity title, short description, category and activity type
- 💲 Starting price, original price, discount percentage, price unit and currency (22 currencies)
- ⭐ Rating, number of reviews and rating per category (guide, transportation, value for money)
- ⏱️ Duration, next available date, free cancellation and pickup availability
- 🔥 Features and badges (skip the line, small group, bestseller) and how many times it was booked yesterday
- 📍 City, country and location ID
- 🖼️ Main photo and the full photo gallery
- 📋 With full details: highlights, full description, what is included and excluded, cancellation policy, guide and audio guide languages, pickup info, not suitable for, what to bring, not allowed, good to know, activity provider and itinerary stops with coordinates
- 🔗 Direct URL and ID of each activity

### Use Cases

- 📈 **Market research**: compare prices, discounts and ratings of tours and tickets across cities and categories.
- 🕵️ **Competitor monitoring**: track how tour operators price and position their activities, and how often they are booked.
- 🤝 **Lead generation**: build a list of activity providers in a destination to contact.
- 🗂️ **Database building**: create your own catalog of things to do for a travel site, app or guide.
- 🤖 **AI and automation**: feed clean, structured data into spreadsheets, dashboards, or AI workflows.

### How to scrape GetYourGuide step by step

1. Paste one or more GetYourGuide URLs into **Start URLs**, or type keywords into **Search queries**.
2. Set **Maximum number of results** to how many activities you want per URL or per query.
3. Turn on **Include full details** if you need highlights, includes, itinerary and the other activity details.
4. Click **Start** and wait for the run to finish.
5. Download your data in JSON, CSV, Excel, or HTML from the **Output** tab.

### Input

- **Start URLs**: GetYourGuide URLs to scrape. Supported pages: city, region and country pages (for example `https://www.getyourguide.com/dubai-l173/`), category pages (`.../dubai-l173/desert-safaris-tc37/`), attraction pages (`.../eiffel-tower-l2600/`), search pages (`.../s/?q=rome`) and single activity pages. Any filters you apply on the website (dates, price, duration, language, interests, features, rating, start time) are kept in the results.
- **Search queries**: keywords to search on GetYourGuide, such as a city, attraction or activity, one per line. Each query is scraped separately.
- **Maximum number of results**: how many activities to collect for each start URL or search query. Use 0 for no limit.
- **Include full details**: also collect highlights, full description, includes and excludes, cancellation policy, guides, provider, itinerary, rating categories and all photos. Activity URLs always include details.
- **Currency**: the currency of all prices, and of the price filter.
- **Search filters** (for search queries only): **Date from** and **Date to**, **Minimum price** and **Maximum price**, **Duration**, **Languages** (two-letter codes such as `en` or `de`), **Features** (hotel pickup, private tour, wheelchair accessible, small group, skip the line, Originals by GetYourGuide), **Minimum rating** and **Start time**.

You can use start URLs, search queries, or both in the same run.

### Input Examples

Scrape a city page from GetYourGuide:

```json
{
  "startUrls": [{ "url": "https://www.getyourguide.com/dubai-l173/" }],
  "maxResults": 5,
  "includeDetails": false,
  "currency": "USD"
}
```

Search by keywords:

```json
{
  "searchQueries": ["Eiffel Tower"],
  "maxResults": 5,
  "includeDetails": false,
  "currency": "USD"
}
```

### Output

Each activity is saved as one item in the dataset. Here is an example of a single item with full details:

```json
{
  "url": "https://www.getyourguide.com/dubai-l173/dubai-burj-khalifa-levels-124-125-entry-ticket-options-t49019/",
  "id": 49019,
  "title": "Dubai: Burj Khalifa Levels 124 & 125 Entry Ticket + Options",
  "description": "Ascend the iconic Burj Khalifa to Levels 124 and 125 for breathtaking 360-degree views. Enhance your visit with a café treat or a special souvenir.",
  "city": "Dubai",
  "country": "United Arab Emirates",
  "locationId": 173,
  "rating": 4.31,
  "reviewCount": 92742,
  "price": 51.46,
  "originalPrice": 51.46,
  "discountPercentage": 0,
  "currency": "USD",
  "priceUnit": "per person",
  "formattedPrice": "$51",
  "duration": null,
  "category": "Entry Ticket",
  "activityType": "Entry Ticket",
  "freeCancellation": true,
  "pickupAvailable": false,
  "features": ["Certified Partner", "Bestseller", "Must Book Online", "Free cancellation"],
  "bookedYesterday": 55,
  "badges": [],
  "nextAvailableDate": "2026-10-17T10:00:00+04:00",
  "image": "https://cdn.getyourguide.com/img/tour/efd3408a1c1cfb70521ee85f3169cd7b74262dcfcf1617f96d615343b90ace3c.jpg/145.jpg",
  "images": [
    "https://cdn.getyourguide.com/img/tour/efd3408a1c1cfb70521ee85f3169cd7b74262dcfcf1617f96d615343b90ace3c.jpg/145.jpg",
    "https://cdn.getyourguide.com/img/tour/412b3ffb479d918702cc74d6f42a312a154d01fdd25e30ac63f65ee918a864e7.jpg/145.jpg"
  ],
  "highlights": [
    "Admire Dubai from the tallest skyscraper on the planet",
    "Feel the thrill of riding the world’s fastest elevator to the 125th floor"
  ],
  "fullDescription": "Experience the awe-inspiring heights of the Burj Khalifa, the world's tallest building, as you ascend to its 124th and 125th floors...",
  "includes": ["Entry to Levels 124 and 125", "Free Wi-Fi", "Use of viewing telescopes"],
  "excludes": ["Souvenir photography", "Audio guide"],
  "cancellationPolicy": "Free cancellation: Cancel up to 24 hours in advance for a full refund",
  "guides": [],
  "pickup": null,
  "notSuitableFor": [],
  "whatToBring": ["Passport or ID card"],
  "notAllowed": [],
  "goodToKnow": [
    "Entry ticket is valid only for the booked time slot.",
    "There may be a line at the observation deck exhibits."
  ],
  "provider": "Distributor: GetYourGuide Tours & Tickets GmbH",
  "ratingCategories": [
    { "name": "Guide", "rating": 5 },
    { "name": "Transportation", "rating": 4.88 },
    { "name": "Value for money", "rating": 3.79 }
  ],
  "itinerary": []
}
```

Tours with a guide list each guide type with its languages (for example `{ "type": "Live tour guide", "languages": ["English"] }`), and tours with stops list each stop with its name, description, latitude and longitude. Without **Include full details**, the detail fields (highlights, includes, guides, itinerary and so on) are empty, and `country` is `null`.

You can download the dataset in JSON, CSV, Excel, XML, or HTML, or access it through the Apify API.

### Notes

- Only GetYourGuide city, region, country, category, attraction, search and activity pages are supported. Other URLs are skipped.
- GetYourGuide repeats some activities on several pages of the same list, and its result count includes these repeats. Each activity is saved only once per start URL or query, so you may get fewer results than the count shown on the website.
- When only a few activities match your filters, GetYourGuide shows extra suggestions that do not match. These suggestions are skipped.
- A keyword that matches nothing still returns GetYourGuide's popular activities, the same as on the website.
- The search filters only apply to search queries. For start URLs, set the filters on the website and paste the URL.
- Prices follow the selected dates when you filter by date, and are shown in the currency you choose.
- Entry tickets often have no duration (they show how long the ticket is valid instead), and some activities have no pickup, itinerary or guide information, so those fields are empty.
- Texts are in English.

### Why use the GetYourGuide Scraper?

- ✅ **No login needed**: works with public data only, so there is no account to manage.
- 🛡️ **Works on Cloudflare-protected pages**: no blocked runs and no proxy setup.
- 🎯 **Keeps your filters**: paste any GetYourGuide URL from your browser and get exactly what you see there.
- 📋 **Full details in one run**: switch on full details to get highlights, includes, itinerary and more for every activity.
- 🧹 **Clean data**: numbers are real numbers, dates use one standard format, and text is free of HTML.
- 💸 **Pay for what you need**: set a result limit per URL or query and keep every run small and cheap.
- 🔄 **Ready for automation**: schedule runs, export to Google Sheets, or connect to Make, Zapier, and n8n.

### FAQ

#### How many results can I scrape?

You can set any number in **Maximum number of results**, or 0 for no limit. The actor keeps going until it reaches your limit or runs out of results.

#### Do I need a GetYourGuide account?

No. The actor only collects publicly available data. You do not need to log in or provide any account details.

#### Can I get prices in my own currency?

Yes. Choose one of 22 currencies in **Currency**. All prices, and the price filter, use that currency.

#### Can I scrape data on a schedule?

Yes. Use Apify Schedules to run the actor every hour, day, or week, and get fresh data automatically.

#### Can I request a new feature or filter?

Yes. Right now the actor supports start URLs, search queries and the search filters listed above. If you need something else, such as reviews or prices per ticket option, get in touch and it can be added.

#### Can I get a custom or private version?

Yes. The actor can be customized for your workflow, delivered as a private version, or a new scraper can be built for a different website. Use the contact details below.

### Need to scrape other travel and experience platforms?

- [Fever Scraper](https://apify.com/aboo.script/feverup-scraper): events and experiences by city, category or keyword, with venues, ratings and prices.
- [Ticketmaster Scraper](https://apify.com/aboo.script/ticketmaster-scraper): concerts, sports and theater events with dates, venues and prices.
- [Agoda Reviews Scraper](https://apify.com/aboo.script/agoda-reviews-scraper): hotel reviews from Agoda and Booking.com.
- [Agoda Flights Scraper](https://apify.com/aboo.script/agoda-flights-scraper): flight prices for any route and date.

***

**Need help or want a custom solution?**

- 📧 Email: aboo.script@gmail.com
- 🧩 More scrapers: [Apify profile](https://apify.com/aboo.script)

### Image Credit

Image credit: [GetYourGuide](https://www.getyourguide.com/)

# Actor input Schema

## `startUrls` (type: `array`):

GetYourGuide city, region, country, category, attraction, search or activity URLs. Filters in the URL (dates, price, duration, language, interests, rating) are kept.

## `searchQueries` (type: `array`):

Keywords to search on GetYourGuide, such as a city, attraction or activity. Each query is scraped separately.

## `maxResults` (type: `integer`):

Maximum number of activities to scrape per start URL or search query. Use 0 for no limit.

## `includeDetails` (type: `boolean`):

Also open each activity page for highlights, full description, includes and excludes, cancellation policy, guide languages, provider, itinerary with coordinates, rating categories and all photos. Activity URLs always include details.

## `currency` (type: `string`):

Currency of all prices. Also the currency of the price filter.

## `dateFrom` (type: `string`):

Only activities available from this date. Prices follow the selected dates. Applies to search queries only; start URLs keep their own filters.

## `dateTo` (type: `string`):

Last date of the date range. Defaults to "Date from". Applies to search queries only.

## `minPrice` (type: `integer`):

Minimum starting price per activity, in the selected currency. Applies to search queries only.

## `maxPrice` (type: `integer`):

Maximum starting price per activity, in the selected currency. Applies to search queries only.

## `durations` (type: `array`):

Only activities with one of these durations. Applies to search queries only.

## `languages` (type: `array`):

Only activities offered in these languages, as two-letter codes (for example en, de, fr, es). Applies to search queries only.

## `features` (type: `array`):

Only activities with all of these features. Applies to search queries only.

## `minRating` (type: `string`):

Only activities rated at least this. Applies to search queries only.

## `startTimes` (type: `array`):

Only activities starting in these parts of the day. Applies to search queries only.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.getyourguide.com/dubai-l173/"
    }
  ],
  "searchQueries": [
    "Eiffel Tower"
  ],
  "maxResults": 5,
  "includeDetails": false,
  "currency": "USD"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.getyourguide.com/dubai-l173/"
        }
    ],
    "searchQueries": [
        "Eiffel Tower"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("aboo.script/getyourguide-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.getyourguide.com/dubai-l173/" }],
    "searchQueries": ["Eiffel Tower"],
}

# Run the Actor and wait for it to finish
run = client.actor("aboo.script/getyourguide-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.getyourguide.com/dubai-l173/"
    }
  ],
  "searchQueries": [
    "Eiffel Tower"
  ]
}' |
apify call aboo.script/getyourguide-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aboo.script/getyourguide-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/IltLkrvz6VxRqUwL9/builds/t5X2Yf3sCX5cgVWM4/openapi.json
