Where do I find it?
PRODUCTS > TOURS > Create new Tour / Hotel
What does it mean?
This article explains the capacity by rate setting in TourCMS, which is essential for operators distributing to GetYourGuide (GyG) that require availability to be managed by individual ticket categories.
The capacity by rate setting changes how TourCMS manages and tracks available spaces on a departure.
-
Standard Capacity: Availability is managed globally for the entire tour. The system only checks that the total number of people requested is less than or equal to the total available spaces.
Example (Standard Tour): If 4 spaces are left, and a request is made for 2 Adults (r1) and 1 Child (r2) (total 3), the departure is available.
-
Capacity by Rate: Availability is managed independently for each ticket type or rate category (e.g., Adult, Child, Senior). When a booking is requested, the system must confirm there are enough spaces available for each individual rate requested, not just the overall total. This is crucial for distribution partners to correctly display vacancies by ticket category.
Example (Capacity by Rate Tour): If 2 spaces are requested for Rate 1 (r1) but only 1 space is left for r1, the departure is not available, even if the total remaining spaces are sufficient.
What should I do?
You can set up capacity by rate when creating a new tour or by modifying an existing one.
Setting up a new tour
Navigate to the Create a new Tour/Hotel menu.
In the Capacity type field, select Per rate.
By default, the total capacity is assigned to Rate 1. In our example, all 20 spaces go to rate 1.
-
Navigate to the tour setup and then RATE TYPES tab to customise:
Update the capacity for the first rate by clicking the edit icon and entering the name, capacity, and age range for rate 1 (Adult).
Add new rates and set their capacities. Click the ‘Create new rate type’ button, then enter the name, capacity, age category, and age range for each channel.
Changing capacity for an existing tour
You can only change an existing tour to Capacity by rate if all the following conditions are met:
The tour does not utilise quantity-based pricing.
The tour's capacity is not shared with other tours (i.e., Shared tour availability is not in use).
The tour does not have any future departures already created.
If any of these conditions are not met, the capacity type cannot be changed.
Go to the TOUR SETUP section for the relevant tour.
Open the BOOKING SIZES / RESTRICTIONS tab.
Change the Capacity type to Per rate and click ‘Save changes’ at the bottom of the page.
You can then adjust the individual capacity assigned to each rate under the RATE TYPES tab. Click the edit button for each rate and update the capacity.
How the departures page (DATE & PRICES) looks
For normal tours, each departure shows the total bookings, blocked spaces, and available capacity across all rates without specifying each rate.
For capacity by rate tours, each departure shows bookings, capacity, and blocked spaces per rate.
Limitations
API changes and verification
For tours configured with Capacity by rate, the TourCMS Check Availability endpoint will include a new section in its XML response:
It will continue to return the overall remaining spaces (<spaces_remaining>).
Crucially, it will also return a <spaces_remaining_by_rate> section detailing the remaining availability for each specific rate ID (e.g., r1, r2, etc.).
This data structure allows partners to verify availability against specific ticket categories. E.g.
<?xml version="1.0" encoding="utf-8"?>
<response>
<request>
GET /c/tour/datesprices/checkavail.xml?id=140&date=2025-09-30&r1=2&r2=1&r3=1&r4=1</request>
<error>OK</error>
<channel_id>3930</channel_id>
<account_id>4069</account_id>
<tour_id>140</tour_id>
<tour_name>Capacity per rate</tour_name>
<tour_name_long>Capacity per rate</tour_name_long>
<component_key_valid_for>3600</component_key_valid_for>
<sale_quantity_rule>PERSON</sale_quantity_rule>
<available_components>
<component>
<start_date>2025-09-30</start_date>
<end_date>2025-09-30</end_date>
<start_time>20:00</start_time>
<end_time>22:00</end_time>
<start_time_utcseconds>1759255200</start_time_utcseconds>
<end_time_utcseconds>1759262400</end_time_utcseconds>
<public_bookable>true</public_bookable>
<date_code></date_code>
<sale_currency>GBP</sale_currency>
<min_booking_size>1</min_booking_size>
<spaces_remaining>31</spaces_remaining>
<spaces_remaining_by_rate>
<rate>
<rate_id>r1</rate_id>
<agecat>a</agecat>
<spaces_remaining>6</spaces_remaining>
</rate>
<rate>
<rate_id>r2</rate_id>
<agecat>c</agecat>
<spaces_remaining>5</spaces_remaining>
</rate>
<rate>
<rate_id>r3</rate_id>
<agecat>s</agecat>
<spaces_remaining>5</spaces_remaining>
</rate>
<rate>
<rate_id>r4</rate_id>
<agecat>i</agecat>
<spaces_remaining>10</spaces_remaining>
</rate>
</spaces_remaining_by_rate>
</component>
</available_components>
</response>Fields are documented in the Check Tour Availability documentation
Current booking channel limitations
Tours configured with Capacity by rate are currently only bookable through the following channels:
TourCMS API
TourCMS OCTO API
SupplierAPI (for GetYourGuide)
Webhook tester tool
These products are NOT currently bookable through:
TourCMS Backoffice
TourCMS Booking Engine
Viator
Expedia
Changes in GetYourGuide (GyG) endpoint integrations
We've made important updates to how we communicate availability with GetYourGuide, shifting from total availability to a more granular, category-specific view.
The Get Availabilities endpoint
When GetYourGuide calls the get-availabilities endpoint, they will now receive vacancy data at the specific rate/category level, provided your tour is configured accordingly.
This update allows for much more precise inventory control, ensuring that vacancies for specific customer types (e.g., Adult, Child) are accurately reflected.
Example response:
{
"data": {
"availabilities": [
{
"productId": "1_142|TE_1_166|",
"dateTime": "2025-09-27T09:00:00",
"cutoffSeconds": 0,
"vacanciesByCategory": [
{
"category": "ADULT",
"vacancies": 5
},
{
"category": "CHILD",
"vacancies": 5
},
// ... other categories
]
}
]
}
}
In the example above, you can clearly see that each booking category (ADULT, CHILD, SENIOR, INFANT) has its own specific number of vacancies.
Availability Real-Time Updates (RTU)
Following the change above, our Real-Time Updates (RTU) payload will also now send category-specific availability, rather than the tour's total remaining capacity.
This ensures that GetYourGuide’s system is instantly updated with accurate availability for each category as bookings happen, keeping your inventory completely synchronised.
Example payload:
{
"data": {
"productId": "1_142|TE_1_166|",
"availabilities": [
{
"dateTime": "2025-09-27T09:00:00+02:00",
"vacanciesByCategory": [
{
"category": "ADULT",
"vacancies": 5
},
{
"category": "CHILD",
"vacancies": 5
},
// ... other categories
]
}
]
}
}
Please note that for both endpoints, the full list of categories will be included to accurately reflect the available inventory for each. If you have any questions about configuration, please don't hesitate to reach out to our support team.