Children policies
Learn how Booking.com defines and handles child policies, and how to retrieve, display, and interpret them using the Demand API.
Overview
This guide explains how to interpret child and family occupancy data returned by the Accommodations Demand API. It focuses on how child-related policies—such as age-based pricing, occupancy limits, and bed options—are reflected in API responses, based on the configurations set by each property.
You’ll learn how to retrieve and handle this information correctly, structure guest and room allocation in requests, and ensure that child rates and availability are accurately displayed in your implementation.
Why child policies matter
Families are a major guest segment on Booking.com. On average, they:
- Stay longer than other travellers.
- Are more likely to book compared with solo travellers or couples.
Child policies let properties define:
- Whether children are allowed.
- How many children (and adults) may stay per room.
- Special pricing rules for children (child rates).
- Bed and cot options, with or without extra charges.
If no child policies are set by a property:
- All children are treated as adults.
- Adult rates apply.
Child policies are configured per room, not per accommodation. This ensures travellers can choose rooms that best suit their family’s needs.
Child rates
Child rates are discounted or special prices based on property policies. They depend on:
- The number of guests in a group (occupancy).
- The children’s ages (0–17 years).
Rules:
- Rates can be free or paid.
- They only apply when children stay in existing beds (not cots or extra beds).
Rate plan types supported
Pricing type | Description | Example |
---|---|---|
Percentage-based - A child pays a percentage of the adult price. | Child pays 50% of adult rate. | |
Per-child - A set price per child, possibly with a maximum. | Up to 3 children get child rates; additional children pay adult rates. | |
Per age bands:
| Children 0–11 pay child rate; children 12+ pay adult rate. |
Cots and extra beds
Properties can decide whether to:
- Offer cots/extra beds for free.
- Charge an additional fee.
- Not provide them at all.
Retrieve cot and extra bed details using the/accommodations/details endpoint.
Working with the API
To retrieve and display occupancy and pricing information correctly, use:
Endpoint | Use it to... |
---|---|
/accommodations/search | Search for family-friendly accommodation. You must specify:
|
accommodations/availability | Retrieve real-time prices, occupancy rules, and availability. Response includes:
|
/accommodations/details | Check detailed property policies, e.g. cots, extra beds, or minimum age allowed. |
Guest parameters
Always include guest details in accommodations/search and accommodations/availability requests:
guest.number_of_adults
- Number of adults.guest.children
- Ages of all children.guest.number_of_rooms
- Number of rooms.
Example of search request:
{
"booker": {
"country": "es",
"platform": "desktop"
},
"cancellation_type": "free_cancellation",
"checkin": "2025-02-13",
"checkout": "2025-02-14",
"city": -391076,
"currency": "EUR",
"extras": [
"extra_charges",
"products"
],
"guests": {
"number_of_adults": 4,
"children": [0, 2, 5, 10],
"number_of_rooms": 2
},
"meal_plan": "breakfast_included"
}
Room allocation
When booking multiple rooms, use allocation
field, to assign adults/children to each room.
{
"guests": {
"allocation": [
{
"number_of_adults": 2,
"children": [2, 10]
},
{
"number_of_adults": 2,
"children": [0, 5]
}
],
"number_of_adults": 4,
"children": [0, 2, 5, 10],
"number_of_rooms": 2
}
}
See Search guide for more details.
Occupancy rules
When using the availability endpoint to check prices and availability, the response retrieves a maximum_occupancy
object:
Maximum occupancy | |
---|---|
total - Maximum number of guests (adults + children).
| |
adults - Maximum number of adults. | |
children - Maximum number of children eligible for child rates, with details:
|
As children must be always accompanied by at least 1 adult, the number of children cannot exceed the total number of guests -1.
Children allowed but no child rates
If "children": null
- this means children are allowed but pay adult rates.
Example:
{
"maximum_occupancy": {
"adults": 2,
"children": null,
"total": 2
}
}
Free child stays
The free_stay
field signals whether children in a specified age range can stay free of charge.
- Allows you to display clear, user-friendly messages such as “Kids stay free”.
API prices already reflect free child stays. The free_stay
flag is for display only.
Example:
"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
}
]
}
The free_stay
policy is distinct from child rates. It means children within the specified age range may stay without charge, though they may still be included in occupancy counts.
Recommendation
The accommodations/availability endpoint also returns the recommendation
object.
- If allocation is provided - returns the best available option.
- If not provided - returns the cheapest option for the number of rooms.
Example of recommendation:
- For a group of 2 adults and 2 children (aged 2, 4) in 2 rooms
- The recommendation suggests 1 adult and 1 child allocated in 2 different rooms.
{
"recommendation": {
"price": {...},
"total": 2140.4
},
"products": [
{
"id": "1000426_95127794_3_2_0",
"children": [2],
"number_of_adults": 1,
"price": {...}
},
{
"id": "1000434_95127794_1_2_0",
"children": [4],
"number_of_adults": 1,
"price": {...}
}
]
}
}
If recommendation
is null
- no products match the criteria.
What to display in your UI?
If maximum_occupancy.children:null
→ no child rates; show children priced as adults (display price.total
).
If children[] exists:
- For each band with
free_stay: true
show something like “Kids 0–5 stay free (1 child)” — use thetotal
value to indicate limits. - For bands with
free_stay: false
but present, show child pricing information (combine with price breakdown whenextras=extra_charges
).
Use the recommendation
object to present the best allocation / product for the requested group.
Best practices
✅ Always include children’s ages in search/availability requests.
✅ Display clearly whether child stays are free or discounted.
✅ Show occupancy-specific details (e.g. cots, extra beds) at room level.
✅ Use API fields directly—do not recalculate prices or apply your own rules.
- Check the different child rates use cases for a better understanding on how to set requests and interpret responses for family groups.
- Refer to the Accommodation search guide for instructions and best practices using the accommodations/search endpoint.