# Getyourguide Tours Search Scraper (`stealth_mode/getyourguide-tours-search-scraper`) Actor

Scrape structured tour and activity listings from GetYourGuide.com — including titles, prices, reviews, photos, categories, and availability. Perfect for travel aggregators, market researchers, and tour operators benchmarking the competition.

- **URL**: https://apify.com/stealth\_mode/getyourguide-tours-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, Travel
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 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/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 Scraper: Extract Travel Activity Data at Scale

---

### What Is GetYourGuide.com?

GetYourGuide is one of the world's largest online marketplaces for travel experiences, tours, and activities. From skip-the-line museum tickets in Paris to guided hikes in Patagonia, the platform hosts hundreds of thousands of listings across virtually every destination on earth. For travel businesses, researchers, and developers, this represents an enormous dataset — but manually collecting it is impractical.

The **GetYourGuide Tours Scraper** solves this by automatically extracting structured activity data from any GetYourGuide destination or category search page, delivering clean, analysis-ready records at scale.

---

### Overview

The **GetYourGuide Tours Search Scraper** targets destination or category listing pages (e.g., `/paris-l16/`) and extracts detailed records for each tour or activity displayed. It is built for:

- **Travel aggregators** feeding content into comparison or booking platforms
- **Tour operators** benchmarking pricing and offerings against competitors
- **Market researchers** analyzing activity trends by destination or category
- **Developers** building travel recommendation engines or datasets

Key capabilities include configurable item limits per URL, fault-tolerant execution via `ignore_url_failures`, and broad coverage of activity metadata including reviews, pricing, and availability signals.

---

### Input Format

The scraper accepts a simple JSON configuration:

```json
{
  "urls": [
    "https://www.getyourguide.com/paris-l16/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 50
}
````

#### Field Reference

| Field | Type | Default | Description |
|---|---|---|---|
| `urls` | `array` | — | One or more GetYourGuide destination or category listing URLs to scrape. Supports single entry or bulk list. Example: `https://www.getyourguide.com/paris-l16/` |
| `max_items_per_url` | `integer` | `20` | Maximum number of tour listings to collect per URL. Increase for broader coverage, reduce for faster runs. |
| `ignore_url_failures` | `boolean` | `true` | When `true`, the scraper continues processing remaining URLs if one fails, rather than stopping the entire run. Recommended for bulk jobs. |

> **Tip:** To scrape multiple destinations in one run, add each destination URL as a separate entry in the `urls` array (e.g., `https://www.getyourguide.com/rome-l173/`, `https://www.getyourguide.com/barcelona-l45/`). The `max_items_per_url` limit applies independently to each.

***

### Output Format

#### Sample Output Record

```json
{
  "id": 395320,
  "tour_id": 395320,
  "title": "Disneyland® Paris 1-Day Ticket",
  "activity_abstract": "Step into a world of wonder at Disneyland® Paris. Explore magical lands, thrilling rides, and meet beloved Disney characters.",
  "url": "/paris-l16/disneyland-paris-2-parks-ticket-1-2-3-4-5-day-t395320/",
  "review_statistics": {
    "quantity": 53233,
    "rating": 4.6382008
  },
  "price": {
    "base_price": 1655800,
    "booking_fee": null,
    "currency": "VND",
    "currency_symbol": "₫",
    "discount_percentage": "",
    "formatted_base_price": "₫1,655,800",
    "formatted_starting_price": "₫1,655,800",
    "price_category": "individual",
    "price_category_label": "per person",
    "starting_price": 1655800,
    "unformatted_booking_fee": 0,
    "unformatted_discount_percentage": 0
  },
  "photos": [
    {
      "urls": [
        {
          "url": "https://cdn.getyourguide.com/img/tour/fea1f058382affdd2d631301246d665ee1005bb0b412acb3281a06f777f2191a.jpg/53.jpg",
          "size": "thumb"
        },
        {
          "url": "https://cdn.getyourguide.com/img/tour/fea1f058382affdd2d631301246d665ee1005bb0b412acb3281a06f777f2191a.jpg/132.jpg",
          "size": "medium"
        },
        {
          "url": "https://cdn.getyourguide.com/img/tour/fea1f058382affdd2d631301246d665ee1005bb0b412acb3281a06f777f2191a.jpg/68.jpg",
          "size": "mobile"
        }
      ]
    }
  ],
  "category": "entryTicket",
  "attributes": [
    {
      "type": "validity",
      "label": "1 day"
    },
    {
      "type": "certifiedPartner"
    },
    {
      "type": "wheelchairAccessible",
      "label": "Wheelchair accessible"
    },
    {
      "type": "entryTicketIncluded",
      "label": "Entry ticket included"
    },
    {
      "type": "validityPeriod",
      "label": "Valid 1 day"
    },
    {
      "type": "bookedIn24Hours",
      "label": "Booked 232 times yesterday"
    },
    {
      "type": "bookedIn24HoursValue",
      "label": "232"
    }
  ],
  "availability": {
    "message": "Available today and tomorrow",
    "type": "positive",
    "next_available_date_time": "2026-05-22T09:30:00+02:00",
    "metadata": {
      "pattern": "pActivityCardBanner available today_tomorrow",
      "date": "2026-05-22"
    }
  },
  "activity_type": "entryTicket",
  "from_url": "https://www.getyourguide.com/paris-l16/"
}
```

Each scraped tour or activity returns a structured record with the following fields:

#### Core Identification

| Field | Meaning |
|---|---|
| `ID` | Internal scraper-assigned record identifier |
| `Tour ID` | GetYourGuide's unique identifier for the activity listing |
| `Title` | Full display name of the tour or activity as shown on the listing page |
| `URL` | Direct link to the activity's detail page on GetYourGuide |

#### Content & Description

| Field | Meaning |
|---|---|
| `Activity Abstract` | Short summary or teaser description of the activity, typically used in listing cards |
| `Activity Type` | Classification of the experience format (e.g., tour, transfer, class, rental, ticket) |
| `Category` | Thematic grouping of the activity (e.g., Sightseeing, Food & Drink, Outdoor Activities, Museums) |
| `Attributes` | Structured tags and features associated with the listing, such as "Free cancellation", "Skip the line", "Small group", "Guided", "Duration" ranges, or "Language" options |

#### Pricing

| Field | Meaning |
|---|---|
| `Price` | Displayed pricing information, typically including the base price per person, currency, and any promotional or "from" pricing indicators |

#### Social Proof & Ratings

| Field | Meaning |
|---|---|
| `Review Statistics` | Aggregated review data for the activity, which may include overall rating score, total number of reviews, and rating distribution — useful for quality benchmarking and filtering |

#### Media

| Field | Meaning |
|---|---|
| `Photos` | Collection of image URLs associated with the listing, typically including the primary thumbnail and gallery images used on the activity card and detail page |

#### Scheduling

| Field | Meaning |
|---|---|
| `Availability` | Signals about scheduling availability, which may include available dates, time slots, or availability status indicators shown on the listing |

***

### How to Use

1. **Find destination URLs** — Navigate to GetYourGuide.com, search for a destination or category, and copy the resulting listing page URL (e.g., `https://www.getyourguide.com/london-l13/`).
2. **Configure the input** — Paste your URLs into the `urls` array. Adjust `max_items_per_url` based on how many listings you need per destination.
3. **Set fault tolerance** — Keep `ignore_url_failures: true` for multi-URL runs to prevent a single bad URL from stopping the job.
4. **Run the scraper** — Start the actor and monitor progress in the run log.
5. **Export results** — Download the dataset as JSON, CSV, or Excel for use in spreadsheets, databases, or BI tools.

**Best practices:**

- Use destination-level URLs (e.g., `/paris-l16/`) rather than individual tour pages for broad collection.
- For category-specific extraction, use filtered GetYourGuide URLs (e.g., food tours, walking tours) to narrow results before scraping.
- Set `max_items_per_url` to `50` or higher for comprehensive destination coverage.

**Common issues:**

- If results are empty, confirm the URL is a *listing/search* page, not an individual activity detail page.
- Destination slugs vary by region — verify the correct URL format on the GetYourGuide website before adding to your input.

***

### Use Cases & Business Value

- **Price monitoring:** Track how competitor operators price similar tours across shared destinations
- **Content aggregation:** Power travel comparison sites or apps with rich, up-to-date activity data
- **Demand analysis:** Identify which activity categories and attributes correlate with high review volume
- **Inventory research:** Discover gaps in a destination's tour offerings to inform new product development
- **SEO & content strategy:** Understand how top-ranked listings describe and categorize their activities

The GetYourGuide Tours Scraper replaces hours of manual browsing with automated, consistent data collection — enabling teams to focus on analysis and strategy rather than copy-paste work.

***

### Conclusion

The **GetYourGuide Tours Search Scraper** is an efficient, configurable tool for extracting structured travel activity data at scale. With 12 output fields covering pricing, reviews, media, availability, and categorization, it delivers the depth needed for competitive research, platform development, and market analysis. Configure your destination URLs, set your item limit, and start turning GetYourGuide listings into actionable intelligence.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the tours list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.getyourguide.com/paris-l16/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://www.getyourguide.com/paris-l16/"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/getyourguide-tours-search-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 = {
    "urls": ["https://www.getyourguide.com/paris-l16/"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/getyourguide-tours-search-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 '{
  "urls": [
    "https://www.getyourguide.com/paris-l16/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/getyourguide-tours-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Getyourguide Tours Search Scraper",
        "description": "Scrape structured tour and activity listings from GetYourGuide.com — including titles, prices, reviews, photos, categories, and availability. Perfect for travel aggregators, market researchers, and tour operators benchmarking the competition.",
        "version": "0.0",
        "x-build-id": "xlJqVvT4z8ZuwVao5"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~getyourguide-tours-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-getyourguide-tours-search-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/stealth_mode~getyourguide-tours-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-getyourguide-tours-search-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/stealth_mode~getyourguide-tours-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-getyourguide-tours-search-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": {
                    "urls": {
                        "title": "URLs of the tours list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the tours list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
