REST API reference

GetYourGuide API

11 endpoints for GetYourGuide. Each one is a POST with a JSON body, called with your API key.

Base URL
https://cotlet.dev/api/v1/getyourguide
Connects with
Your own GetYourGuide Supplier Portal account
Integration page
GetYourGuide
GetYourGuide Endpoints
Endpoint Access Description
list_bookings read Bookings for your products, by activity date, with travelers, option and status.
get_booking read One booking: reference, option, date and time, participants by category, price and lead traveler.
list_products read Your products with their options, status and price categories.
get_availability read Start times and free spots of an option for the dates you ask for.
list_messages read Traveler conversations from Messages, each with its booking reference.
list_reviews read Reviews of your products with rating, text, date and your reply, if any.
get_performance read The figures shown in the Supplier Portal performance view, for a date range.
update_availability write Set free spots for start times of an option on one date, or close them with 0.
update_pricing write Change the retail price per category of an option, from a date on.
reply_to_message write Send a reply to a traveler in a Messages conversation.
reply_to_review write Post your public reply under a review of your product.

POST https://cotlet.dev/api/v1/getyourguide/list_bookings

Returns bookings whose activity date falls in the range, ordered by date and start time. Cancelled bookings are left out unless status is cancelled or all. Results come in pages; pass next_cursor as cursor for the next one.

Parameters

Parameters: list_bookings
NameTypeDescription
from date First activity date. Default: today.
to date Last activity date. Default: 7 days from today.
product_id string Only bookings for this product.
status enum confirmed, cancelled or all. Default: confirmed.
cursor string Next page cursor from the previous call.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/getyourguide/list_bookings \
  -H "Authorization: Bearer $COTLET_API_KEY"
Python
result = client.call("getyourguide", "list_bookings")
Node.js
const result = await cotlet.call('getyourguide', 'list_bookings');
CLI
cotlet call getyourguide list_bookings

Example response

{
  "bookings": [
    {
      "booking_reference": "GYGZ4K2M9T1X",
      "product_id": "88213",
      "option_id": "412087",
      "date": "2026-10-18",
      "time": "17:30",
      "status": "confirmed",
      "travelers": {
        "adult": 2,
        "child": 1
      }
    },
    {
      "booking_reference": "GYGB7Q5N3R8D",
      "product_id": "88213",
      "option_id": "412087",
      "date": "2026-10-18",
      "time": "18:30",
      "status": "confirmed",
      "travelers": {
        "adult": 4,
        "child": 0
      }
    }
  ],
  "next_cursor": null
}

POST https://cotlet.dev/api/v1/getyourguide/get_booking

Returns one booking with the option, date, start time, travelers per category, the price and the lead traveler's name and language. The reference is on the booking in list_bookings.

Parameters

Parameters: get_booking
NameTypeDescription
booking_reference required string GetYourGuide booking reference from list_bookings, e.g. GYGZ4K2M9T1X.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/getyourguide/get_booking \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"booking_reference":"booking reference"}'
Python
result = client.call("getyourguide", "get_booking", {"booking_reference":"booking reference"})
Node.js
const result = await cotlet.call('getyourguide', 'get_booking', {"booking_reference":"booking reference"});
CLI
cotlet call getyourguide get_booking --data '{"booking_reference":"booking reference"}'

Example response

{
  "booking_reference": "GYGZ4K2M9T1X",
  "product": "Sunset Harbor Walking Tour",
  "option_id": "412087",
  "date": "2026-10-18",
  "time": "17:30",
  "status": "confirmed",
  "travelers": {
    "adult": 2,
    "child": 1
  },
  "price": {
    "amount": 110,
    "currency": "EUR"
  },
  "lead_traveler": {
    "name": "Sam Rivera",
    "language": "en"
  }
}

POST https://cotlet.dev/api/v1/getyourguide/list_products

Returns your products and, under each, its options with the option ID that the availability and pricing tools need. Each option lists its price categories and current retail prices. Inactive products are left out unless you ask.

Parameters

Parameters: list_products
NameTypeDescription
status enum active, inactive or all. Default: active.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/getyourguide/list_products \
  -H "Authorization: Bearer $COTLET_API_KEY"
Python
result = client.call("getyourguide", "list_products")
Node.js
const result = await cotlet.call('getyourguide', 'list_products');
CLI
cotlet call getyourguide list_products

Example response

{
  "products": [
    {
      "product_id": "88213",
      "title": "Sunset Harbor Walking Tour",
      "status": "active",
      "options": [
        {
          "option_id": "412087",
          "name": "English, small group",
          "price_categories": {
            "adult": 40,
            "child": 20
          },
          "currency": "EUR"
        }
      ]
    }
  ]
}

POST https://cotlet.dev/api/v1/getyourguide/get_availability

Returns each date in the range with its start times, free spots and how many are booked. Use it before closing a slot to see who is already booked.

Parameters

Parameters: get_availability
NameTypeDescription
option_id required string Option ID from list_products.
from required date First date.
to required date Last date.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/getyourguide/get_availability \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"option_id":"option_8c41d2","from":"2026-10-01","to":"2026-10-01"}'
Python
result = client.call("getyourguide", "get_availability", {"option_id":"option_8c41d2","from":"2026-10-01","to":"2026-10-01"})
Node.js
const result = await cotlet.call('getyourguide', 'get_availability', {"option_id":"option_8c41d2","from":"2026-10-01","to":"2026-10-01"});
CLI
cotlet call getyourguide get_availability --data '{"option_id":"option_8c41d2","from":"2026-10-01","to":"2026-10-01"}'

Example response

{
  "option_id": "412087",
  "days": [
    {
      "date": "2026-10-18",
      "slots": [
        {
          "time": "17:30",
          "vacancies": 8,
          "booked": 3
        },
        {
          "time": "18:30",
          "vacancies": 12,
          "booked": 0
        }
      ]
    }
  ]
}

POST https://cotlet.dev/api/v1/getyourguide/list_messages

Returns your Messages conversations, most recent first, with the traveler, the booking reference, the unread count and the last message. Set unread_only to see only what needs an answer.

Parameters

Parameters: list_messages
NameTypeDescription
unread_only boolean Only conversations with unread messages. Default: false.
limit integer 1 to 50. Default: 20.
cursor string Next page cursor from the previous call.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/getyourguide/list_messages \
  -H "Authorization: Bearer $COTLET_API_KEY"
Python
result = client.call("getyourguide", "list_messages")
Node.js
const result = await cotlet.call('getyourguide', 'list_messages');
CLI
cotlet call getyourguide list_messages

Example response

{
  "conversations": [
    {
      "conversation_id": "cv_7a21",
      "booking_reference": "GYGZ4K2M9T1X",
      "traveler": "Sam Rivera",
      "unread": 1,
      "last_message": "Where exactly do we meet?",
      "updated_at": "2026-10-16T08:12:00Z"
    }
  ],
  "next_cursor": null
}

POST https://cotlet.dev/api/v1/getyourguide/list_reviews

Returns reviews of your products, newest first, with rating, text, date and your reply when there is one. Filter to unanswered reviews to build a reply queue.

Parameters

Parameters: list_reviews
NameTypeDescription
product_id string Only reviews of this product.
since date Only reviews on or after this date.
unanswered_only boolean Skip reviews you already replied to.
cursor string Next page cursor from the previous call.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/getyourguide/list_reviews \
  -H "Authorization: Bearer $COTLET_API_KEY"
Python
result = client.call("getyourguide", "list_reviews")
Node.js
const result = await cotlet.call('getyourguide', 'list_reviews');
CLI
cotlet call getyourguide list_reviews

Example response

{
  "reviews": [
    {
      "review_id": "rv_30482",
      "product_id": "88213",
      "rating": 5,
      "text": "Great guide, loved the harbor stories.",
      "date": "2026-10-12",
      "reply": null
    }
  ],
  "next_cursor": null
}

POST https://cotlet.dev/api/v1/getyourguide/get_performance

Returns the figures shown in the Supplier Portal performance view for the range. Without product_id every product is included.

Parameters

Parameters: get_performance
NameTypeDescription
from required date Start of the period.
to required date End of the period.
product_id string Only this product. Default: all products.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/getyourguide/get_performance \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"from":"2026-10-01","to":"2026-10-01"}'
Python
result = client.call("getyourguide", "get_performance", {"from":"2026-10-01","to":"2026-10-01"})
Node.js
const result = await cotlet.call('getyourguide', 'get_performance', {"from":"2026-10-01","to":"2026-10-01"});
CLI
cotlet call getyourguide get_performance --data '{"from":"2026-10-01","to":"2026-10-01"}'

Example response

{
  "from": "2026-10-05",
  "to": "2026-10-11",
  "products": [
    {
      "product_id": "88213",
      "title": "Sunset Harbor Walking Tour",
      "figures": {
        "bookings": 37
      }
    }
  ]
}

POST https://cotlet.dev/api/v1/getyourguide/update_availability

Sets free spots per start time for one option and one date; 0 closes the slot. Existing bookings are not touched. It reaches no one and one call reopens the slot, so it runs without asking for your OK. Returns the slots as the app now shows them.

Parameters

Parameters: update_availability
NameTypeDescription
option_id required string Option ID from list_products.
date required date Activity date.
slots required object Map of start time (HH:MM) to free spots, e.g. {"17:30": 0}.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/getyourguide/update_availability \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"option_id":"412087","date":"2026-10-18","slots":{"17:30":0,"18:30":0}}'
Python
result = client.call("getyourguide", "update_availability", {"option_id":"412087","date":"2026-10-18","slots":{"17:30":0,"18:30":0}})
Node.js
const result = await cotlet.call('getyourguide', 'update_availability', {"option_id":"412087","date":"2026-10-18","slots":{"17:30":0,"18:30":0}});
CLI
cotlet call getyourguide update_availability --data '{"option_id":"412087","date":"2026-10-18","slots":{"17:30":0,"18:30":0}}'

Example response

{
  "option_id": "412087",
  "date": "2026-10-18",
  "slots": [
    {
      "time": "17:30",
      "vacancies": 0,
      "status": "closed"
    },
    {
      "time": "18:30",
      "vacancies": 0,
      "status": "closed"
    }
  ],
  "bookings_on_date": 3
}

Update pricing

write Confirm

POST https://cotlet.dev/api/v1/getyourguide/update_pricing

Sets the retail price per price category of one option from a date on. Travelers see the new price on the activity page, so a wrong price costs money. A booking system that pushes rates can overwrite it. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: update_pricing
NameTypeDescription
option_id required string Option ID from list_products.
prices required object Map of price category (adult, child) to price in your currency.
valid_from date First date with the new price. Default: today.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/getyourguide/update_pricing \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"option_id":"412087","prices":{"adult":43,"child":22},"valid_from":"2027-04-01"}'
Python
result = client.call("getyourguide", "update_pricing", {"option_id":"412087","prices":{"adult":43,"child":22},"valid_from":"2027-04-01"})
Node.js
const result = await cotlet.call('getyourguide', 'update_pricing', {"option_id":"412087","prices":{"adult":43,"child":22},"valid_from":"2027-04-01"});
CLI
cotlet call getyourguide update_pricing --data '{"option_id":"412087","prices":{"adult":43,"child":22},"valid_from":"2027-04-01"}'

Example response

{
  "option_id": "412087",
  "valid_from": "2026-11-01",
  "currency": "EUR",
  "prices": {
    "adult": 44,
    "child": 22
  },
  "previous": {
    "adult": 40,
    "child": 20
  }
}

Reply to message

write Confirm

POST https://cotlet.dev/api/v1/getyourguide/reply_to_message

Sends your reply to the traveler in the conversation; it appears in their GetYourGuide app. Messages cannot be recalled. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: reply_to_message
NameTypeDescription
conversation_id required string Conversation ID from list_messages.
body required string Reply text.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/getyourguide/reply_to_message \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"conversation_id":"cv_7a21","body":"Hi Sam, we meet at the fountain on Harbor Square 10 minutes before 17:30. Kids are welcome on the whole route."}'
Python
result = client.call("getyourguide", "reply_to_message", {"conversation_id":"cv_7a21","body":"Hi Sam, we meet at the fountain on Harbor Square 10 minutes before 17:30. Kids are welcome on the whole route."})
Node.js
const result = await cotlet.call('getyourguide', 'reply_to_message', {"conversation_id":"cv_7a21","body":"Hi Sam, we meet at the fountain on Harbor Square 10 minutes before 17:30. Kids are welcome on the whole route."});
CLI
cotlet call getyourguide reply_to_message --data '{"conversation_id":"cv_7a21","body":"Hi Sam, we meet at the fountain on Harbor Square 10 minutes before 17:30. Kids are welcome on the whole route."}'

Example response

{
  "conversation_id": "cv_7a21",
  "status": "sent",
  "sent_at": "2026-10-16T08:40:00Z"
}

Reply to review

write Confirm

POST https://cotlet.dev/api/v1/getyourguide/reply_to_review

Posts your reply under one review. It is public on the activity page and attached to your provider name. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: reply_to_review
NameTypeDescription
review_id required string Review ID from list_reviews.
body required string Reply text, shown publicly on the activity page.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/getyourguide/reply_to_review \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"review_id":"rv_30482","body":"Thank you, Maria! We are so glad the harbor stories and the sunset from the old pier made your evening. Hope to see you again."}'
Python
result = client.call("getyourguide", "reply_to_review", {"review_id":"rv_30482","body":"Thank you, Maria! We are so glad the harbor stories and the sunset from the old pier made your evening. Hope to see you again."})
Node.js
const result = await cotlet.call('getyourguide', 'reply_to_review', {"review_id":"rv_30482","body":"Thank you, Maria! We are so glad the harbor stories and the sunset from the old pier made your evening. Hope to see you again."});
CLI
cotlet call getyourguide reply_to_review --data '{"review_id":"rv_30482","body":"Thank you, Maria! We are so glad the harbor stories and the sunset from the old pier made your evening. Hope to see you again."}'

Example response

{
  "review_id": "rv_30482",
  "status": "published",
  "replied_at": "2026-10-16T09:05:00Z"
}