Learn how to retrieve and interpret child-related policies, including age restrictions, child rates, free stays, cots, and extra beds.
Properties can define policies that affect whether children can stay and how their stay is priced.
Use the Demand API to:
- Check property-level age restrictions.
- Retrieve child-rate information for available products.
- Identify age ranges where children stay free of charge.
- Retrieve cot and extra-bed policies and room-level limits.
Children are guests aged from 0 to 17. When searching for accommodation, always provide each child's actual age so that the API can return the applicable availability and pricing.
Child pricing and room occupancy are separate concepts.
The child-rate information returned by /accommodations/availability describes pricing for an available product. It does not, by itself, determine whether a particular combination of adults and children fits the room.
See the Occupancy & allocation guide for room occupancy rules and guest allocation.
Use different endpoints depending on the information you need.
| Endpoint | Use it to... |
|---|---|
| /accommodations/search | Search for accommodations using the complete guest group, including the ages of all children. |
| /accommodations/availability | Retrieve current products and prices, including applicable child-rate information and free-stay rules. |
| /accommodations/details | Retrieve static property and room information, including minimum guest age, cot and extra-bed policies, and room occupancy limits. |
Include the complete guest group when calling /accommodations/search or /accommodations/availability.
Use:
guests.number_of_adults— Total number of adults.guests.children— Ages of all children.guests.number_of_rooms— Number of rooms required.guests.allocation— Requested distribution of adults and children across rooms, when applicable.
For example:
{
"guests": {
"number_of_adults": 2,
"children": [2, 10],
"number_of_rooms": 1
}
}Always preserve children's actual ages throughout the booking flow.
Do not convert children to adults to obtain a different price or make a guest allocation fit.
For information about allocating guests across rooms, see the Occupancy & allocation guide.
Properties can restrict the ages of guests who are allowed to stay.
Use policies.minimum_guest_age from /accommodations/details to determine the minimum age allowed at the property.
For example:
{
"policies": {
"minimum_guest_age": 6
}
}In this example, guests younger than 6 are not allowed to stay.
Interpret minimum_guest_age as follows:
| Value | Meaning |
|---|---|
0 | Guests of any age are allowed. |
1–17 | Guests younger than the specified age are not allowed. |
18 or higher | Children aged 0–17 are not allowed. |
A property with minimum_guest_age set to 18 or higher does not allow children aged 0–17.
Do not use maximum_occupancy.children from /accommodations/availability to determine whether a property is adults-only.
In particular, maximum_occupancy.children: null is not a reliable indicator that children are prohibited.
minimum_guest_age is different from minimum_checkin_age.
minimum_guest_agedefines the minimum age of guests who may stay at the property.minimum_checkin_agedefines the minimum age required to check in.
For practical examples covering adults-only properties and other minimum guest ages, see the Occupancy and allocation use cases.
Child rates are pricing rules that apply to children based on criteria such as their age and the product configuration.
Call /accommodations/availability with the complete guest group to retrieve current products and prices.
An available product can return child-rate information in maximum_occupancy.children:
{
"maximum_occupancy": {
"adults": 2,
"children": [
{
"total": 1,
"from_age": 0,
"to_age": 5,
"free_stay": true
},
{
"total": 1,
"from_age": 6,
"to_age": 12,
"free_stay": false
}
],
"total": 4
}
}For each children entry:
| Field | Description |
|---|---|
from_age | Youngest child age to which the child-rate rule applies. |
to_age | Oldest child age to which the child-rate rule applies. |
total | Maximum number of children to which the child-rate rule applies. |
free_stay | Whether children covered by the rule stay free of charge. |
Both from_age and to_age are inclusive.
maximum_occupancy.children from /accommodations/availability describes child-rate information for the product.
Do not use these entries alone to determine whether children of those ages can physically be accommodated in the room. Use /accommodations/details to check the room occupancy limits.
An available product can return:
{
"maximum_occupancy": {
"adults": 2,
"children": null,
"total": 4
}
}children: null means that no applicable child-rate information is returned for the product.
This value alone does not indicate:
- Whether children are allowed at the property.
- Whether the requested children can be accommodated in the room.
- That you should convert the children to adults in subsequent requests.
If you need to determine whether the requested children can be accommodated, use the product's room ID to retrieve the corresponding room from /accommodations/details and check its occupancy limits.
In version 3.3, use the age-specific child occupancy rules in rooms[].maximum_occupancy.
For the complete 3.2 and 3.3 fitting logic, see the Occupancy & allocation guide.
free_stay indicates whether children covered by a child-rate rule stay free of charge.
For example:
{
"maximum_occupancy": {
"children": [
{
"total": 1,
"from_age": 0,
"to_age": 5,
"free_stay": true
}
]
}
}In this example:
- The rule applies to children aged 0–5, inclusive.
- Up to one child can use the rule.
free_stay: trueindicates that a child covered by the rule stays free of charge.
The returned product price already accounts for the applicable child pricing. Do not subtract the child's price or recalculate the product total yourself.
free_stay describes pricing, not room capacity.
A child who stays free may still count towards the room's occupancy limits. Check /accommodations/details when you need to determine whether the child can be accommodated.
Cots and extra beds have separate policy and room-level information.
Use /accommodations/details to retrieve:
- Property-level age and pricing rules through
policies.cots_and_extra_beds. - Room-level limits through
rooms[].cots_and_extra_beds.
Request both policies and rooms:
{
"accommodations": [27635],
"extras": [
"policies",
"rooms"
]
}policies.cots_and_extra_beds describes the age and pricing rules that apply to cots and extra beds.
For example:
{
"policies": {
"cots_and_extra_beds": [
{
"age": {
"from": 0,
"to": 2
},
"mode": "per_night",
"price": 0,
"type": "cot"
}
]
}
}Use:
| Field | Description |
|---|---|
age.from | Youngest guest age to which the rule applies. |
age.to | Oldest guest age to which the rule applies. |
mode | How the price is applied per cot or extra bed, such as per_night or per_stay. |
price | Price of the cot or extra bed. A value of 0 indicates that it is free of charge. |
type | Whether the rule applies to a cot or extra_bed. |
The age interval is inclusive.
rooms[].cots_and_extra_beds describes how many cots and extra beds can be added to a particular room.
For example:
{
"rooms": [
{
"id": "2763504",
"cots_and_extra_beds": {
"are_allowed_together": false,
"maximum_number_of_cots": 1,
"maximum_number_of_extra_beds": 0
}
}
]
}Use:
maximum_number_of_cots— Maximum number of cots that can be added to the room.maximum_number_of_extra_beds— Maximum number of extra beds that can be added to the room.are_allowed_together— Whether cots and extra beds can be placed in the room at the same time, up to their respective limits.
Use policies.cots_and_extra_beds and rooms[].cots_and_extra_beds together.
The policy describes the applicable age and pricing rules, while the room information describes how many cots or extra beds can be added.
Cot and extra-bed information is separate from the room's standard occupancy configuration.
When determining whether a guest group can be accommodated:
- Check the room's
maximum_occupancy. - Check the applicable cot or extra-bed policy.
- Check the room-level cot and extra-bed limits.
- Validate the selected product and exact guest allocation using /orders/preview before creating the order.
For worked examples, see Handle cots and extra beds.
Use the child-policy information returned by the API to provide travellers with relevant information about their stay.
Depending on the returned data, you can display:
- Applicable child age ranges.
- Whether children within an age range stay free.
- Cot and extra-bed availability.
- Cot and extra-bed charges.
- Property minimum guest age or other relevant age restrictions.
Always display the product price returned by the API. Child-rate and free-stay rules are already reflected in the returned price.
Do not infer or display that children are charged as adults solely because maximum_occupancy.children is null.
Do not calculate child prices independently from the product price returned by the API.
When handling a search that includes children:
- Send each child's actual age in /accommodations/search.
- Check
minimum_guest_agefrom /accommodations/details when property age restrictions are relevant to your integration. - Call /accommodations/availability for the selected accommodation using the complete guest group.
- Use
maximum_occupancy.childrento interpret the applicable child-rate information for each product. - Use
free_stayto identify child-rate bands where children stay free of charge. - When you need to determine whether the guest group fits a particular room, use the room occupancy information from /accommodations/details.
- Retrieve
policies.cots_and_extra_bedsandrooms[].cots_and_extra_bedswhen cot or extra-bed information is relevant. - Use /orders/preview to validate the exact product and guest allocation before creating the order.
- Always provide children's actual ages in search, availability and preview requests.
- Keep child pricing rules separate from room occupancy rules.
- Do not use
maximum_occupancy.childrenfrom /accommodations/availability alone to determine whether children fit the room. - Do not interpret
children: nullas confirmation that children are prohibited or should be treated as adults. - Use
minimum_guest_ageto determine property-level age restrictions. - Use the product prices returned by the API rather than calculating child prices yourself.
- Treat cot and extra-bed policies separately from standard room occupancy.
- Validate the final product and guest allocation using /orders/preview.
- See the Occupancy & allocation guide for guest allocation, room occupancy rules,
recommendation, andoccupancy_mismatch. - See the Occupancy and allocation use cases for worked family-booking examples covering versions 3.2 and 3.3.
- Refer to the Accommodation search guide for instructions and best practices when using /accommodations/search and /accommodations/availability.