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
| 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. |
List bookings
readPOST 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
| Name | Type | Description |
|---|---|---|
| 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 -X POST https://cotlet.dev/api/v1/getyourguide/list_bookings \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("getyourguide", "list_bookings") const result = await cotlet.call('getyourguide', 'list_bookings'); 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
} Get booking
readPOST 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
| Name | Type | Description |
|---|---|---|
| booking_reference required | string | GetYourGuide booking reference from list_bookings, e.g. GYGZ4K2M9T1X. |
Request
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"}' result = client.call("getyourguide", "get_booking", {"booking_reference":"booking reference"}) const result = await cotlet.call('getyourguide', 'get_booking', {"booking_reference":"booking reference"}); 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"
}
} List products
readPOST 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
| Name | Type | Description |
|---|---|---|
| status | enum | active, inactive or all. Default: active. |
Request
curl -X POST https://cotlet.dev/api/v1/getyourguide/list_products \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("getyourguide", "list_products") const result = await cotlet.call('getyourguide', 'list_products'); 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"
}
]
}
]
} Get availability
readPOST 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
| Name | Type | Description |
|---|---|---|
| option_id required | string | Option ID from list_products. |
| from required | date | First date. |
| to required | date | Last date. |
Request
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"}' result = client.call("getyourguide", "get_availability", {"option_id":"option_8c41d2","from":"2026-10-01","to":"2026-10-01"}) const result = await cotlet.call('getyourguide', 'get_availability', {"option_id":"option_8c41d2","from":"2026-10-01","to":"2026-10-01"}); 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
}
]
}
]
} List messages
readPOST 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
| Name | Type | Description |
|---|---|---|
| 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 -X POST https://cotlet.dev/api/v1/getyourguide/list_messages \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("getyourguide", "list_messages") const result = await cotlet.call('getyourguide', 'list_messages'); 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
} List reviews
readPOST 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
| Name | Type | Description |
|---|---|---|
| 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 -X POST https://cotlet.dev/api/v1/getyourguide/list_reviews \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("getyourguide", "list_reviews") const result = await cotlet.call('getyourguide', 'list_reviews'); 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
} Get performance
readPOST 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
| Name | Type | Description |
|---|---|---|
| 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 -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"}' result = client.call("getyourguide", "get_performance", {"from":"2026-10-01","to":"2026-10-01"}) const result = await cotlet.call('getyourguide', 'get_performance', {"from":"2026-10-01","to":"2026-10-01"}); 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
}
}
]
} Update availability
writePOST 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
| Name | Type | Description |
|---|---|---|
| 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 -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}}' result = client.call("getyourguide", "update_availability", {"option_id":"412087","date":"2026-10-18","slots":{"17:30":0,"18:30":0}}) const result = await cotlet.call('getyourguide', 'update_availability', {"option_id":"412087","date":"2026-10-18","slots":{"17:30":0,"18:30":0}}); 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
} 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
| Name | Type | Description |
|---|---|---|
| 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 -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"}' result = client.call("getyourguide", "update_pricing", {"option_id":"412087","prices":{"adult":43,"child":22},"valid_from":"2027-04-01"}) const result = await cotlet.call('getyourguide', 'update_pricing', {"option_id":"412087","prices":{"adult":43,"child":22},"valid_from":"2027-04-01"}); 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
}
} 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
| Name | Type | Description |
|---|---|---|
| conversation_id required | string | Conversation ID from list_messages. |
| body required | string | Reply text. |
Request
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."}' 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."}) 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."}); 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"
} 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
| Name | Type | Description |
|---|---|---|
| review_id required | string | Review ID from list_reviews. |
| body required | string | Reply text, shown publicly on the activity page. |
Request
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."}' 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."}) 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."}); 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"
}