# GetYourGuide API — tours & activities scraper: search and browse things to do by city or keyword, with activity titles, prices, ratings, review counts, photos and categories, plus full activity detail (description, supplier, rating) and recent traveler reviews from GetYourGuide (getyourguide.com), worldwide, multi-currency, no API key required

> Search GetYourGuide for tours & activities by free-text keyword or destination ('Rome colosseum', 'Paris', 'wine tasting Tuscany'). Returns activity cards with title, activity_id, price, photos, category and a link to the activity.
> ReefAPI engine `getyourguide` · 5 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/getyourguide/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed or blocked calls are free.
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http, `Authorization: Bearer <key>`) and your assistant can call these actions directly.

## Endpoints

### POST /getyourguide/v1/search — 1 credit
Search GetYourGuide for tours & activities by free-text keyword or destination ('Rome colosseum', 'Paris', 'wine tasting Tuscany'). Returns activity cards with title, activity_id, price, photos, category and a link to the activity.

**Parameters:**
- `query` (string, required) — What to look for — a city, attraction, activity type or any combination ('Barcelona', 'Eiffel Tower', 'Tuscany wine tour').
- `currency` (string, optional) — Price currency as an ISO code (EUR, USD, GBP, TRY, AUD…). Sent to GetYourGuide so prices come back in that currency.
- `language` (string, optional) — Content language (locale). Default English. [one of: en, de, fr, es, it, nl, pt]

**Returns:** activities[]{activity_id, title, url, images[], category, price, original_price, currency} (up to ~24)

**Example request body:**
```json
{
  "query": "Rome colosseum"
}
```

### POST /getyourguide/v1/browse — 1 credit
Browse the top tours & activities for a destination's landing page. Returns activities with title, price, rating, review count, photos and a link. Identify the destination by its slug (from search/destinations) or by location_id + city.

**Parameters:**
- `slug` (string, optional) — The destination URL slug — '<city>-l<id>' (e.g. 'rome-l33', 'paris-l16'). Returned by search/destinations.
- `location_id` (string, optional) — GetYourGuide location id (the number after '-l' in the URL). Pair with city; the city slug is cosmetic.
- `city` (string, optional) — City/destination name (used with location_id to build the URL slug).
- `url` (string, optional) — Alternatively a full GetYourGuide destination URL.
- `currency` (string, optional) — Price currency as an ISO code (EUR, USD, GBP, TRY, AUD…). Sent to GetYourGuide so prices come back in that currency.
- `language` (string, optional) — Content language (locale). Default English. [one of: en, de, fr, es, it, nl, pt]

**Returns:** activities[]{activity_id, title, url, images[], rating, review_count, price, currency, location}

**Example request body:**
```json
{
  "slug": "paris-l16"
}
```

### POST /getyourguide/v1/detail — 2 credits
Full record for one tour/activity: title, description, supplier, price, rating, review count and photos. Identify it by its activity url (from search/browse).

**Parameters:**
- `url` (string, optional) — The activity's GetYourGuide URL (from a search/browse result).
- `slug` (string, optional) — Alternatively the activity path ('…-lNN/…-tNN').
- `currency` (string, optional) — Price currency as an ISO code (EUR, USD, GBP, TRY, AUD…). Sent to GetYourGuide so prices come back in that currency.
- `language` (string, optional) — Content language (locale). Default English. [one of: en, de, fr, es, it, nl, pt]

**Returns:** activity{activity_id, title, description, supplier, images[], rating, review_count, best_rating, price, currency}

### POST /getyourguide/v1/reviews — 1 credit
The most-recent public traveler reviews for one activity (rating, text, author, date) plus the overall rating and total review count. GetYourGuide serves the 10 newest reviews server-side; older pages load behind an anti-bot wall, so this returns the 10 newest — use the review_count for the full volume.

**Parameters:**
- `url` (string, optional) — The activity's GetYourGuide URL (from search/browse).
- `slug` (string, optional) — Alternatively the activity path ('…-lNN/…-tNN').
- `language` (string, optional) — Content language (locale). Default English. [one of: en, de, fr, es, it, nl, pt]

**Returns:** reviews[]{rating, text, author, date} + summary{rating, review_count}

### POST /getyourguide/v1/destinations — 1 credit
Destination metadata for a GetYourGuide location: id, name, type, country, the number of bookable activities, and its parent locations (region → country). Useful to confirm a destination and discover its hierarchy before browsing.

**Parameters:**
- `slug` (string, optional) — The destination URL slug ('<city>-l<id>').
- `location_id` (string, optional) — GetYourGuide location id (number after '-l').
- `city` (string, optional) — City/destination name (used with location_id).
- `url` (string, optional) — Alternatively a full destination URL.
- `language` (string, optional) — Content language (locale). Default English. [one of: en, de, fr, es, it, nl, pt]

**Returns:** destination{location_id, name, type, url, abstract, country_id, activity_count, parent_locations[]{id, name, type, url}}

**Example request body:**
```json
{
  "slug": "paris-l16"
}
```

## More
- Try it live, no code: https://reefapi.com/playground?engine=getyourguide
- Human docs page: https://reefapi.com/docs/getyourguide
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
