# Children policies

**Learn how to retrieve and interpret child-related policies, including age restrictions, child rates, free stays, cots, and extra beds.**

## Overview

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](/demand/docs/accommodations/occupancy-allocation) for room occupancy rules and guest allocation.

## Child policy information across the API

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. |


## Provide children's ages

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:

```json
{
  "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](/demand/docs/accommodations/occupancy-allocation).

## Check property age restrictions

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:

```json
{
  "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. |


### Adults-only properties

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_age` defines the minimum age of guests who may stay at the property.
* `minimum_checkin_age` defines 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](/demand/docs/accommodations/occupancy-use-cases#handle-adults-only-properties).

## Understand child rates

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`:

```json
{
  "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.

### When `children` is `null`

An available product can return:

```json
{
  "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](/demand/docs/accommodations/occupancy-allocation#check-room-occupancy-limits).

## Free child stays

`free_stay` indicates whether children covered by a child-rate rule stay free of charge.

For example:

```json
{
  "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: true` indicates 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

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`:

```json
{
  "accommodations": [27635],
  "extras": [
    "policies",
    "rooms"
  ]
}
```

### Cot and extra-bed policies

`policies.cots_and_extra_beds` describes the age and pricing rules that apply to cots and extra beds.

For example:

```json
{
  "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.

### Room-level limits

`rooms[].cots_and_extra_beds` describes how many cots and extra beds can be added to a particular room.

For example:

```json
{
  "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.

### Cots, extra beds and room occupancy

Cot and extra-bed information is separate from the room's standard occupancy configuration.

When determining whether a guest group can be accommodated:

1. Check the room's `maximum_occupancy`.
2. Check the applicable cot or extra-bed policy.
3. Check the room-level cot and extra-bed limits.
4. Validate the selected product and exact guest allocation using /orders/preview before creating the order.


For worked examples, see [Handle cots and extra beds](/demand/docs/accommodations/occupancy-use-cases#handle-cots-and-extra-beds).

## What to display

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.

## Recommended flow

When handling a search that includes children:

1. Send each child's actual age in /accommodations/search.
2. Check `minimum_guest_age` from /accommodations/details when property age restrictions are relevant to your integration.
3. Call /accommodations/availability for the selected accommodation using the complete guest group.
4. Use `maximum_occupancy.children` to interpret the applicable child-rate information for each product.
5. Use `free_stay` to identify child-rate bands where children stay free of charge.
6. When you need to determine whether the guest group fits a particular room, use the room occupancy information from /accommodations/details.
7. Retrieve `policies.cots_and_extra_beds` and `rooms[].cots_and_extra_beds` when cot or extra-bed information is relevant.
8. Use /orders/preview to validate the exact product and guest allocation before creating the order.


## Best practices

* 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.children` from /accommodations/availability alone to determine whether children fit the room.
* Do not interpret `children: null` as confirmation that children are prohibited or should be treated as adults.
* Use `minimum_guest_age` to 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.


## References

* See the [Occupancy & allocation guide](/demand/docs/accommodations/occupancy-allocation) for guest allocation, room occupancy rules, `recommendation`, and `occupancy_mismatch`.
* See the [Occupancy and allocation use cases](/demand/docs/accommodations/occupancy-use-cases) for worked family-booking examples covering versions 3.2 and 3.3.
* Refer to the [Accommodation search guide](/demand/docs/accommodations/search-for-available-properties) for instructions and best practices when using /accommodations/search and /accommodations/availability.