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

Page fields

GET /v1/pages/fields

Returns a map of all page fields with their type, label and read-only flag, plus a nullable flag on the fields that can arrive empty. Fields without the read-only flag are writable on create and update.

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/pages/fields" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/pages/fields" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/pages/fields', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data } = await res.json()
console.log('Fields:', Object.keys(data.fields).length)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/pages/fields', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

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

Response fields

The data object contains a fields map (field name → { type, readonly, label }, with a description on some fields and nullable on the fields that can arrive empty), a batch list of bulk-mode operations, and a set of aggregatable fields for grouping in aggregation.

Field Bitrix24 Type RO Description
id ID number yes Page identifier
title TITLE string Title, up to 255 characters
code CODE string Symbolic code in the URL. No /, auto-generated from title
siteId SITE_ID number Owner site. Source: GET /v1/sites
active ACTIVE boolean yes Whether the page is published. Bitrix24 does not accept the field on create or on update, and a new page is always created inactive. Publish through POST /v1/pages/:id/publication and unpublish through POST /v1/pages/:id/unpublish
description DESCRIPTION string | null Description. null when unset
xmlId XML_ID string | null External code. null when not set
deleted DELETED string yes Trash flag: "Y" / "N"
public PUBLIC string Public flag: "Y" / "N"
sys SYS string yes Bitrix24 system page: "Y" / "N"
views VIEWS number yes View counter
tplId TPL_ID number | null Template identifier. null when the page uses no template
tplCode TPL_CODE string | null yes Template symbolic code. null when the page uses no template
sitemap SITEMAP string Include in the sitemap: "Y" / "N"
folder FOLDER string Whether the page is a section folder: "Y" / "N"
folderId FOLDER_ID number | null Site section folder identifier. null when the page lies at the root of the site
searchContent SEARCH_CONTENT string | null yes Indexable page content for site search. null while the page has not been indexed yet
version VERSION number yes Internal page structure version
historyStep HISTORY_STEP number yes Change-history service field
modifiedById MODIFIED_BY_ID number yes Last editor. Lookup: GET /v1/users
domainId DOMAIN_ID number yes Site domain identifier
initiatorAppCode INITIATOR_APP_CODE string | null yes Code of the application that created the page. null for a page created in the Bitrix24 interface
rule RULE string | null yes Bitrix24 service field. Usually null
createdById CREATED_BY_ID number yes Creator. Lookup: GET /v1/users
dateCreate DATE_CREATE datetime yes Creation date. A string in the account locale format, not ISO 8601 — see the format block below
dateModify DATE_MODIFY datetime yes Last modification date. Same format as dateCreate
datePublic DATE_PUBLIC datetime | null yes Publication date, same format as dateCreate. Arrives as null when Bitrix24 has no publication date for the page — the usual case even for a published page. Read active or public to tell whether a page is published

Fields that can be empty

A field Bitrix24 does not always fill carries "nullable": true in the endpoint response, and its type is written as … | null in the table above. There are nine such fields: description, xmlId, tplId, tplCode, folderId, searchContent, initiatorAppCode, rule, datePublic. The value arrives as null — not as an empty string and not as 0 — so check it before parsing. Every other field always has a value.

Date format

Dates are strings in the account locale format, NOT ISO 8601. Bitrix24 returns dateCreate, dateModify and datePublic as strings, and the specific template depends on the regional settings of the account: in the RU locale it is DD.MM.YYYY HH:MM:SS (30.12.2021 12:30:52), in the EN locale it is MM/DD/YYYY hh:mm:ss am/pm (12/30/2021 12:30:52 pm). Vibecode returns the value as is, without normalizing to ISO, identically in the list and in the card — there is no divergence between GET /v1/pages and GET /v1/pages/:id. new Date(value) returns Invalid Date or silently swaps day and month: do not parse the date with a fixed template and do not trust new Date(). The filter needs the same format — see Search pages.

Response example

Besides type and readonly, every field carries a label (short name) and a description, in English. Request headers do not switch the language. A field that can arrive empty additionally carries nullable. In the example below, description is shown on active only — it is omitted from the other fields for brevity.

JSON
{
  "success": true,
  "data": {
    "fields": {
      "id": { "type": "number", "readonly": true, "label": "Page ID" },
      "title": { "type": "string", "readonly": false, "label": "Title" },
      "siteId": { "type": "number", "readonly": false, "label": "Site ID" },
      "active": {
        "type": "boolean",
        "readonly": true,
        "label": "Active",
        "description": "Whether the page is published. Read-only: Bitrix24 does not accept the field on create or on update, and a new page is always created inactive. Publish through POST /v1/pages/:id/publication and unpublish through POST /v1/pages/:id/unpublish."
      },
      "xmlId": { "type": "string", "readonly": false, "nullable": true, "label": "External ID" },
      "datePublic": { "type": "datetime", "readonly": true, "nullable": true, "label": "Published at" }
    },
    "aggregatable": ["siteId", "active", "deleted", "public", "folderId", "tplId", "createdById", "modifiedById"],
    "batch": ["create", "update", "delete"]
  }
}

6 of 27 fields are shown. The full list is in the table above.

Error response example

403 — no scope:

JSON
{
  "success": false,
  "error": {
    "code": "SCOPE_DENIED",
    "message": "This endpoint requires 'landing' scope"
  }
}

Errors

HTTP Code Description
403 SCOPE_DENIED API key does not have the landing scope
401 TOKEN_MISSING API key has no configured tokens
429 RATE_LIMITED Rate limit exceeded: 300 requests per minute per portal, all API keys of the portal share one limit. The exact value arrives in the x-ratelimit-limit header (the cap is divided across replicas). Retry after the delay in the Retry-After header

Full list of common API errors — Errors.

See also