# Layout templates

Layout templates for sites and pages: sets of areas for the header, footer and side columns around the content. The template ID appears in the `tplId` field of a site or a page that uses this layout.

Bitrix24 API: `landing.template.getlist`
Scope: `landing`

## Operations

- [List layout templates](./site-templates/list.md) — `GET /v1/site-templates`

## Key fields

| Field | Description |
|------|----------|
| `id` | Template ID. The same value appears in the `tplId` field of [sites](/docs/entities/sites/list) and [pages](/docs/entities/pages/list) |
| `code` | Permanent symbolic code of the template, for example `header_footer` |
| `title` | Template name in the language of the Bitrix24 account |
| `areaCount` | Number of layout areas. `0` — a layout without areas |
| `sort` | Sort index of the template |

All response fields are described on the [List layout templates](./site-templates/list.md) page.

## What to know before you start

1. **A layout template is not a page template.** A layout defines only the areas around the content. A ready-made page design with blocks is chosen by code from [page templates](/docs/entities/page-templates).
2. **`0` and `null` in `tplId` are not template IDs.** The list has no template with such an `id`. Pages can have either value, and sites have `0`. Check for both before looking up a template by `tplId`.
3. **The site layout cannot be changed through the API, but the page layout can.** The site `tplId` field is read-only. The page layout is changed by [`PATCH /v1/pages/:id`](/docs/entities/pages/update) with the `tplId` field.
4. **Areas are filled by separate methods.** Which page goes into the header, footer or a column is set by [site template areas](/docs/entities/sites/template-areas) and [page template areas](/docs/entities/pages/template-areas). The `areaCount` value shows how many areas the layout has.

## Typical scenario

1. Get the templates and pick a layout by `areaCount`: [`GET /v1/site-templates`](./site-templates/list.md).
2. Assign the layout to a page: [`PATCH /v1/pages/:id`](/docs/entities/pages/update) with `tplId` set to the template `id`.
3. Put pages into the layout areas: [`PATCH /v1/pages/:id/template-areas`](/docs/entities/pages/template-areas-update).

## Limits

| Limit | Value |
|-------|----------|
| Records per call | the full list of templates, without pagination |
| Rate limit | shared across the Vibecode API — see [Limits and optimization](/docs/optimization) |

## See also

- [Site template areas](/docs/entities/sites/template-areas)
- [Page template areas](/docs/entities/pages/template-areas)
- [Page templates](/docs/entities/page-templates)
- [Sites](/docs/entities/sites)
- [Pages](/docs/entities/pages)
