For AI agents: markdown of this page — /docs-content-en/entities/pages.md documentation index — /llms.txt

Pages

Managing landing and online-store pages on the Bitrix24 platform: create, get, update, delete. A page always belongs to a site and inherits its type, PAGE or STORE.

Bitrix24 API: landing.landing.* Scope: landing

Create a page

POST /v1/pages

Creates a new page on the specified site. Fields are passed flat at the root of the JSON — without a fields wrapper. Minimum for creation: title + siteId. A new page is created inactive (active: false); you can activate it in your Bitrix24 account, under "Sites".

Request fields (body)

Field Type Req. Description
title string yes Page title, up to 255 characters
siteId number yes Site identifier. Source: GET /v1/sites
code string no Symbolic code of the page in the URL. Must not contain /. If left empty or omitted — generated from title. If the code is already taken on the site — a numeric suffix is added
description string no Arbitrary page description
public string no Public flag (Y/N)
sitemap string no Include in the sitemap (Y/N)
xmlId string no External code
folderId number no ID of the site's section folder
tplId number no Template ID

The full list of fields — GET /v1/pages/fields: the endpoint returns a map of all fields with their type and a readonly flag. You can write fields that have no readonly. The additional fields listed above are applied on creation alongside title/siteId/code/description.

Examples

curl — personal key

Terminal
curl -X POST "https://vibecode.bitrix24.com/v1/pages" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Spring sale",
    "code": "spring-sale",
    "siteId": 3,
    "description": "Seasonal discount sale landing"
  }'

curl — OAuth application

Terminal
curl -X POST "https://vibecode.bitrix24.com/v1/pages" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Spring sale",
    "code": "spring-sale",
    "siteId": 3,
    "description": "Seasonal discount sale landing"
  }'

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/pages', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'Spring sale',
    code: 'spring-sale',
    siteId: 3,
    description: 'Seasonal discount sale landing',
  }),
})

const { success, data } = await res.json()
console.log('Page ID:', data.id)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/pages', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'Spring sale',
    code: 'spring-sale',
    siteId: 3,
    description: 'Seasonal discount sale landing',
  }),
})

const { success, data } = await res.json()

Response fields

The full object of the created page is returned.

Field Type Description
id number Identifier of the created page
title string Page title
code string Actual symbolic code (with an auto-suffix if the requested code was taken)
siteId number Site identifier
active boolean Always false for a just-created page
description string | null Page description
createdById number Identifier of the employee who created it
dateCreate datetime Creation date
dateModify datetime Last modification date

The page URL in Bitrix24 is built from id and siteId:

https://<portal>.bitrix24.com/sites/site/<siteId>/view/<id>/

<siteId> — ID of the site the page belongs to (the siteId field in the response). <portal> — the Bitrix24 account domain. Access is restricted by the employee's permissions in Bitrix24.

Response example

JSON
{
  "success": true,
  "data": {
    "id": 2295,
    "title": "Spring sale",
    "code": "spring-sale",
    "siteId": 3,
    "active": false,
    "description": "Seasonal discount sale landing",
    "createdById": 1,
    "dateCreate": "08.05.2026 11:49:33",
    "dateModify": "08.05.2026 11:49:33"
  }
}

Error response example

422 — the required title field was not passed:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Required field «Page title» is not filled in"
  }
}

Errors

HTTP error.code Marker in error.message Description
422 BITRIX_ERROR Required field is not filled in title or siteId is missing
422 BITRIX_ERROR Slash is forbidden in the landing address A / character was passed in code — slashes are forbidden in the code
422 BITRIX_ERROR Page address cannot be empty An empty string was passed in code without indicating that a folder is being created
422 BITRIX_ERROR Invalid page address A value in the __ format was passed in code, e.g. code_12_34
404 ENTITY_NOT_FOUND Site not found A nonexistent site identifier was passed in siteId
403 BITRIX_ACCESS_DENIED The user does not have the "edit" permission for the specified site
403 SCOPE_DENIED The API key does not have the landing scope
401 TOKEN_MISSING The API key has no configured tokens

Full list of general API errors — Errors.

See also