Activity availability and pricing
Read the bookable dates, timeslots, and prices for an activity variant before you book it.
Availability is keyed on the productTypeUuid from product-types. Dates and timeslots that have already passed are dropped automatically, compared against the activity's own timezone. Send SessionId as a query parameter.
Bookable dates
Access requires the permission activity_price_lists
The date calendar for a variant, with the price per day. Narrow it with date_start and date_end.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | The productTypeUuid. |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
date_start | string | No | Start of the range, YYYY-MM-DD. |
date_end | string | No | End of the range, YYYY-MM-DD. |
curl "https://api.hermeseus.com/api/Activity/v2/product-types/5f3ff236-40b1-4f0a-a780-1db8649d1f5b/price-lists?date_start=2026-10-15&date_end=2026-10-31&SessionId=8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f"
const uuid = "5f3ff236-40b1-4f0a-a780-1db8649d1f5b";
const params = new URLSearchParams({
date_start: "2026-10-15",
date_end: "2026-10-31",
SessionId: "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f"
});
const res = await fetch(`https://api.hermeseus.com/api/Activity/v2/product-types/${uuid}/price-lists?` + params);
const data = await res.json();import requests
uuid = "5f3ff236-40b1-4f0a-a780-1db8649d1f5b"
res = requests.get(
f"https://api.hermeseus.com/api/Activity/v2/product-types/{uuid}/price-lists",
params={
"date_start": "2026-10-15",
"date_end": "2026-10-31",
"SessionId": "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
},
)
data = res.json()Response
data is an array of dates. Each entry carries a date, its timezone, availability, and the price.
{
"data": [
{
"date": "2026-10-15",
"timezone": "Asia/Singapore",
"available": true,
"price": 22.00,
"currency": "USD"
},
{
"date": "2026-10-16",
"timezone": "Asia/Singapore",
"available": true,
"price": 22.00,
"currency": "USD"
}
],
"timestamp": "2026-10-15T16:24:49.648+08:00"
}One date
Access requires the permission activity_price_lists
Pricing and availability for a single YYYY-MM-DD. data is null if that date has already passed.
Timeslots
Access requires the permission activity_product_types_details
Variant details. When the variant runs at set times, data.timeslots lists them. Pass ?date=YYYY-MM-DD to get the slots for a day. Slots already past for that day are dropped.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
date | string | No | The day to read slots for, YYYY-MM-DD. |
{
"data": {
"uuid": "5f3ff236-40b1-4f0a-a780-1db8649d1f5b",
"timezone": "Asia/Singapore",
"timeslots": [
{ "startTime": "10:00", "endTime": "11:00" },
{ "startTime": "14:00", "endTime": "15:00" }
]
},
"timestamp": "2026-10-15T09:30:00.000+08:00"
}
