# Page templates

Ready-made templates used to create a site page: a blank page, a page from a set, or a template from an application. The list depends on the site type, and the template code is passed when you create a page from a template.

Bitrix24 API: `landing.demos.getPageList`
Scope: `landing`

## Operations

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

## Key fields

| Field | Description |
|------|----------|
| `code` | Template code. Passed in the `templateCode` field when [creating a page from a template](/docs/entities/pages/from-template) |
| `title` | Template name in the language of the Bitrix24 account |
| `siteType` | Site type the template is intended for: `PAGE`, `KNOWLEDGE`, `GROUP` |
| `available` | Whether a page can be created from this template |
| `appCode` | Code of the application that added the template. Absent for templates without an application |

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

## What to know before you start

1. **The list depends on the site type.** The `siteType` parameter selects the template set: `page` — landing page, `knowledge` — knowledge base, `group` — group knowledge base. Without the parameter, landing page templates are returned.
2. **A template code works only for a site of its own type.** A template returned for `knowledge` does not create a page on a landing page site. The site type is in the `type` field of the [site](/docs/entities/sites/get).
3. **The template kind is visible from the code.** A code without `/` or `@` is a standalone template, for example `empty` or `search-result`. A code with `/` is a page from a set, for example `wiki-dark/main`. A code with `@` is a template from an application, where the part before `@` matches `appCode`.
4. **A page template is not a layout template.** A page template provides a ready-made design with blocks. The areas around the content — header, footer, side columns — are defined by [layout templates](/docs/entities/site-templates).

## Typical scenario

1. Find the site and its type: [`GET /v1/sites`](/docs/entities/sites/list).
2. Get the templates for that type: [`GET /v1/page-templates?siteType=page`](./page-templates/list.md).
3. Create a page from the template code: [`POST /v1/pages/from-template`](/docs/entities/pages/from-template) with `siteId` and `templateCode`.

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

- [Create a page from a template](/docs/entities/pages/from-template)
- [Pages](/docs/entities/pages)
- [Sites](/docs/entities/sites)
- [Layout templates](/docs/entities/site-templates)
