GetYourGuide API: Search activities
Finds GetYourGuide tours, tickets and activities in a city, optionally matching words, available on a day, sorted by popularity, price or rating, with prices, ratings and booking features.
Unofficial. Not affiliated with or endorsed by GetYourGuide.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- City, required
city City to explore, such as Amsterdam.
Amsterdam
- Date optional
date Only activities available on this day (YYYY-MM-DD), such as 2026-10-10.
Not set
- Sort optional
sort Order by popularity, lowest price or rating, such as rating.
popularity (default)
One of
popularity,price_low_to_high,rating.- Query optional
query Activity to look for, such as canal cruise; blank for any.
(default)
- Currency optional
currency Three-letter price currency, such as EUR.
USD (default)
- Max Results optional
max_results Maximum number of activities, such as 20.
25
Whole number from 1 to 50. Default
20.
Input as JSON
{ "city": "Amsterdam", "max_results": 25}Output
{ "activities": [ { "link": "https://www.getyourguide.com/amsterdam-l36/amsterdam-luxury-canal-cruise-with-unlimited-drinks-bite-t396132/" , "title": "Canal Cruise with Unlimited Drinks & Bites Option", "rating": 4.5, "currency": "USD", "duration": "1 hour", "activity_id": "396132", "skip_the_line": false, "free_cancellation": true, "number_of_reviews": 26803, "short_description": "See Amsterdam best way possible on a boat with a live guide and optional unlimited drinks. On sunny days cruise on an open boat. If it rains, enjoy a warm and covered classic saloon boat instead.", "starting_price_per_person": 22 }, { "link": "https://www.getyourguide.com/amsterdam-l36/amsterdam-evening-sunset-canal-cruise-w-optional-drinks-t963935/" , "title": "Amsterdam Evening (Sunset) Canal Cruise w/ optional drinks", "rating": 4.8, "currency": "USD", "duration": "1 hour", "activity_id": "963935", "skip_the_line": true, "free_cancellation": true, "number_of_reviews": 5034, "short_description": "Enjoy the sunset during this 1 hour evening cruise while you sail through the city's canals.\nHear about the sights from your local skipper in English or through a digital guide in 8 languages.", "starting_price_per_person": 22 }, { "link": "https://www.getyourguide.com/amsterdam-l36/e-bike-the-dutch-countryside-windmill-fields-cheese-farm-t57233/" , "title": "Windmill & Dutch Cheese farm electric bike tour", "rating": 4.6, "currency": "USD", "duration": "4 hours", "activity_id": "57233", "skip_the_line": false, "free_cancellation": true, "number_of_reviews": 1539, "short_description": "Experience the charming Dutch countryside on an electric bike tour with a guide or on your own. Explore traditional farms and picturesque villages, and discover how local cheese is made from scratch.", "starting_price_per_person": 48 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"getyourguide.com/search_activities","input":{"city":"Amsterdam","max_results":25}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "getyourguide.com/search_activities" , "input": { "city": "Amsterdam", "max_results": 25 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "getyourguide.com/search_activities" , "input": { "city": "Amsterdam", "max_results": 25 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run getyourguide.com/search_activities# with {"city":"Amsterdam","max_results":25}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "city" ], "properties": { "city": { "type": "string", "minLength": 1, "description": "City to explore, such as Amsterdam." }, "date": { "type": "string", "description": "Only activities available on this day (YYYY-MM-DD), such as 2026-10-10." }, "sort": { "enum": [ "popularity", "price_low_to_high", "rating" ], "type": "string", "default": "popularity", "description": "Order by popularity, lowest price or rating, such as rating." }, "query": { "type": "string", "default": "", "description": "Activity to look for, such as canal cruise; blank for any." }, "currency": { "type": "string", "default": "USD", "description": "Three-letter price currency, such as EUR." }, "max_results": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Maximum number of activities, such as 20." } }}Output schema
{ "type": "object", "required": [ "activities" ], "properties": { "activities": { "type": "array", "items": { "type": "object", "required": [ "title", "rating", "number_of_reviews", "starting_price_per_person", "currency", "duration", "free_cancellation", "skip_the_line", "short_description", "link", "activity_id" ], "properties": { "link": { "type": "string" }, "title": { "type": "string" }, "rating": { "type": [ "number", "null" ], "description": "Rating out of 5." }, "currency": { "type": "string" }, "duration": { "type": [ "string", "null" ] }, "activity_id": { "type": "string" }, "skip_the_line": { "type": "boolean" }, "free_cancellation": { "type": "boolean" }, "number_of_reviews": { "type": [ "integer", "null" ] }, "short_description": { "type": [ "string", "null" ] }, "starting_price_per_person": { "type": [ "number", "null" ] } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
getyourguide.com/search_activities- Returns
- title, rating, reviews, starting price, currency, duration, free cancellation, skip the line, description, link, activity id
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method getyourguide.com/search_activities with the inputs above.
Ask your agent
- Find the top-rated food tours in Lisbon available on 2026-05-14, prices in EUR
- What are the cheapest things to do in Rome on June 3rd, 2026? Show me about 10 options with free cancellation info
- On GetYourGuide, look up skip-the-line Sagrada Familia tickets in Barcelona sorted by rating
- Show me the most popular tours and activities in Kyoto, up to 30 results, priced in JPY
- Search GetYourGuide for sunset boat cruises in Dubrovnik on 2026-08-22, lowest price first, in GBP
See more
Finds Klook activities, tickets, tours and passes in a city, with ratings, booking counts, prices and booking policies. Keyword matches are ranked by Klook and may include related activities.
klook.com/search_activitiesFinds tours and experiences in a city on Viator, with optional keywords, date, currency and sorting. Prices are starting prices.
viator.com/search_toursLists Tripadvisor's ranked things to do in a city from the first results page, for all attractions or one category (tours, museums, sights and landmarks, nature and parks), with rating, review count, category, and the description or neighbourhood when shown.
tripadvisor.com/list_top_attractionsFinds available Agoda stays in a city for your dates, with prices before taxes and fees, star and guest ratings, and free-cancellation status.
agoda.com/search_hotelsFinds available hostels, hotels and guesthouses on Hostelworld in a city for given dates, with per-night dorm and private room prices, ratings, facilities and booking links.
hostelworld.com/search_hostelsFinds hotels in a city on Trip.com for given dates, with prices, guest ratings, reviews and booking links. Only the initial public listing is read, so large limits may return fewer hotels.
trip.com/search_hotelsSearches public Airbnb homes for a destination and travel dates. Each stay comes with its price, rating, room details and listing link. Prices are the displayed trip totals, including fees.
airbnb.com/search_staysLists Tripadvisor's ranked restaurants in a city from the first results page, optionally filtered by cuisine and price category. Sponsored listings are left out; up to 30 restaurants with rating, review count, cuisines, price range and address.
tripadvisor.com/list_top_restaurants