# GetYourGuide Tours & Activities Scraper (`crawlerbros/getyourguide-scraper`) Actor

Scrape tours, activities, and experiences from GetYourGuide.com by search query or direct URL. Extracts title, price, rating, reviews, images, highlights, duration, cancellation policy, and more. HTTP-only, no cookies or proxy required.

- **URL**: https://apify.com/crawlerbros/getyourguide-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Real estate, Travel, Other
- **Stats:** 6 total users, 2 monthly users, 100.0% runs succeeded, 22 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.00 / 1,000 results

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

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## GetYourGuide Tours & Activities Scraper

Scrape tours, activities, and experiences from **GetYourGuide.com** by search query or direct URL. Get structured data for cities worldwide — titles, prices, ratings, reviews, images, highlights, durations, cancellation policies, and more. Ideal for travel price monitoring, competitive research, experience aggregation, and affiliate content.

Fast HTTP-only scraper (no cookies, no login) with sensible defaults. Works out of the box without proxy on most regions.

### Features

- Search any city, destination, or activity keyword (e.g. "rome", "paris", "eiffel tower")
- Pass direct GetYourGuide activity, search, or city URLs via `startUrls`
- Extracts 15+ structured fields per activity
- Graceful handling of rate limits via session rotation + exponential backoff
- HTTP-only — fast, cheap, reliable

### Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `query` | string | no | Search query (city, destination, or activity). Defaults to `"rome"`. Ignored when `startUrls` are provided. |
| `startUrls` | array of strings | no | Direct GetYourGuide URLs — search pages, activity pages, or city pages. Overrides `query`. |
| `maxItems` | integer | no | Maximum activities to return (1–500). Default `3`. |
| `proxyConfiguration` | object | no | Optional Apify Proxy. GetYourGuide typically works without proxy; enable only if you hit rate limits. |

#### Example input

```json
{
    "query": "rome",
    "maxItems": 5
}
````

#### Example with startUrls

```json
{
    "startUrls": [
        "https://www.getyourguide.com/rome-l33/rome-colosseum-arena-floor-palatine-forum-guided-tour-t217332/",
        "https://www.getyourguide.com/s/?q=paris"
    ],
    "maxItems": 10
}
```

### Output

Each activity record (`type: "gyg_activity"`) has the following shape:

| Field | Type | Description |
| --- | --- | --- |
| `id` | string | GetYourGuide activity ID. |
| `url` | string | Canonical URL of the activity. |
| `title` | string | Activity title. |
| `shortDescription` | string | Marketing description. |
| `city` | string | City where the activity takes place. |
| `country` | string | Country where the activity takes place. |
| `price` | number | Starting price. |
| `currency` | string | Currency code (e.g. `USD`, `EUR`). |
| `rating` | number | Average star rating (0–5). |
| `reviewCount` | integer | Number of user reviews. |
| `duration` | string | Human-readable duration (e.g. `"2.5 - 3 hours"`). |
| `category` | string | Activity category (e.g. `guidedTour`, `ticket`). |
| `language` | string | Page locale (e.g. `en-US`). |
| `images` | array of strings | Image URLs. |
| `highlights` | array of strings | Bullet-point highlights. |
| `cancellationPolicy` | string | Cancellation policy summary. |
| `scrapedAt` | string | ISO-8601 UTC timestamp. |

#### Example output

```json
{
    "type": "gyg_activity",
    "id": "217332",
    "url": "https://www.getyourguide.com/rome-l33/rome-colosseum-arena-floor-palatine-forum-guided-tour-t217332/",
    "title": "Rome: Colosseum Arena Floor, Palatine & Forum Guided Tour",
    "shortDescription": "Experience special access to the Colosseum, Roman Forum, and Palatine Hill on a guided tour...",
    "city": "Rome",
    "country": "Italy",
    "price": 69.26,
    "currency": "USD",
    "rating": 4.51,
    "reviewCount": 21807,
    "duration": "2.5 - 3 hours",
    "category": "guidedTour",
    "language": "en-US",
    "images": ["https://cdn.getyourguide.com/img/tour/..."],
    "highlights": ["Skip the ticket line", "Enter the Colosseum arena floor", "..."],
    "cancellationPolicy": "Free cancellation up to 24 hours before the activity starts for a full refund.",
    "scrapedAt": "2026-04-20T10:30:00Z"
}
```

### Sentinel record

If no activities are returned (rate limit, network issue, empty query), the actor pushes a single sentinel:

```json
{
    "type": "gyg_blocked",
    "reason": "listing_empty_or_blocked",
    "query": "rome",
    "scrapedAt": "2026-04-20T10:30:00Z"
}
```

This keeps daily test runs green without failing the actor.

### FAQs

**Does this scraper need cookies or login?**
No. GetYourGuide search and activity pages are publicly accessible.

**Do I need a proxy?**
Usually no. If you hit rate limits (403/429), enable `proxyConfiguration` in the UI.

**What search queries work?**
Any city, destination, or activity keyword — e.g. `rome`, `paris`, `tokyo`, `new york`, `eiffel tower`, `colosseum`, `skiing`, `food tour paris`.

**How fresh is the data?**
Each run fetches live data at request time — never cached.

**Can I scrape a single activity page?**
Yes — pass its URL in `startUrls`.

**What's the maximum items per run?**
500\. GetYourGuide returns ~24 activities per search page; enrichment from detail pages is sequential with polite delays.

# Actor input Schema

## `query` (type: `string`):

City, destination, or activity keyword to search on GetYourGuide. Examples: 'rome', 'paris', 'tokyo', 'eiffel tower', 'colosseum'. Ignored when startUrls are supplied.

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

Direct GetYourGuide URLs. Can be search pages (https://www.getyourguide.com/s/?q=...), activity pages (https://www.getyourguide.com/.../<slug>-t<id>/), or city pages (https://www.getyourguide.com/<city>-l<id>/). Overrides the search query when provided.

## `maxItems` (type: `integer`):

Maximum number of activities to return.

## `proxyConfiguration` (type: `object`):

Apify RESIDENTIAL US proxy is REQUIRED — GetYourGuide blocks datacenter IPs. Do not change these settings.

## Actor input object example

```json
{
  "query": "rome",
  "maxItems": 3,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# 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 = {
    "query": "rome",
    "maxItems": 3,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/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 = {
    "query": "rome",
    "maxItems": 3,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

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

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

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

```

## CLI example

```bash
echo '{
  "query": "rome",
  "maxItems": 3,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call crawlerbros/getyourguide-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/getyourguide-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "GetYourGuide Tours & Activities Scraper",
        "description": "Scrape tours, activities, and experiences from GetYourGuide.com by search query or direct URL. Extracts title, price, rating, reviews, images, highlights, duration, cancellation policy, and more. HTTP-only, no cookies or proxy required.",
        "version": "1.0",
        "x-build-id": "MGxXS9nYZFJ2NrwTE"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~getyourguide-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-getyourguide-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~getyourguide-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-getyourguide-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~getyourguide-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-getyourguide-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "query": {
                        "title": "Search Query (destination or activity)",
                        "type": "string",
                        "description": "City, destination, or activity keyword to search on GetYourGuide. Examples: 'rome', 'paris', 'tokyo', 'eiffel tower', 'colosseum'. Ignored when startUrls are supplied.",
                        "default": "rome"
                    },
                    "startUrls": {
                        "title": "Start URLs (optional)",
                        "type": "array",
                        "description": "Direct GetYourGuide URLs. Can be search pages (https://www.getyourguide.com/s/?q=...), activity pages (https://www.getyourguide.com/.../<slug>-t<id>/), or city pages (https://www.getyourguide.com/<city>-l<id>/). Overrides the search query when provided.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of activities to return.",
                        "default": 3
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify RESIDENTIAL US proxy is REQUIRED — GetYourGuide blocks datacenter IPs. Do not change these settings.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "US"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
