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
curl "https://vibecode.bitrix24.com/v1/pages/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/pages/fields" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
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
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 |
|---|---|---|---|---|
Fieldid |
Bitrix24ID |
Typenumber | ROyes | DescriptionPage identifier |
Fieldtitle |
Bitrix24TITLE |
Typestring | RO | DescriptionTitle, up to 255 characters |
Fieldcode |
Bitrix24CODE |
Typestring | RO | DescriptionSymbolic code in the URL. No /, auto-generated from title |
FieldsiteId |
Bitrix24SITE_ID |
Typenumber | RO | DescriptionOwner site. Source: GET /v1/sites |
Fieldactive |
Bitrix24ACTIVE |
Typeboolean | ROyes | DescriptionWhether 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 |
Fielddescription |
Bitrix24DESCRIPTION |
Typestring | null | RO | DescriptionDescription. null when unset |
FieldxmlId |
Bitrix24XML_ID |
Typestring | null | RO | DescriptionExternal code. null when not set |
Fielddeleted |
Bitrix24DELETED |
Typestring | ROyes | DescriptionTrash flag: "Y" / "N" |
Fieldpublic |
Bitrix24PUBLIC |
Typestring | RO | DescriptionPublic flag: "Y" / "N" |
Fieldsys |
Bitrix24SYS |
Typestring | ROyes | DescriptionBitrix24 system page: "Y" / "N" |
Fieldviews |
Bitrix24VIEWS |
Typenumber | ROyes | DescriptionView counter |
FieldtplId |
Bitrix24TPL_ID |
Typenumber | null | RO | DescriptionTemplate identifier. null when the page uses no template |
FieldtplCode |
Bitrix24TPL_CODE |
Typestring | null | ROyes | DescriptionTemplate symbolic code. null when the page uses no template |
Fieldsitemap |
Bitrix24SITEMAP |
Typestring | RO | DescriptionInclude in the sitemap: "Y" / "N" |
Fieldfolder |
Bitrix24FOLDER |
Typestring | RO | DescriptionWhether the page is a section folder: "Y" / "N" |
FieldfolderId |
Bitrix24FOLDER_ID |
Typenumber | null | RO | DescriptionSite section folder identifier. null when the page lies at the root of the site |
FieldsearchContent |
Bitrix24SEARCH_CONTENT |
Typestring | null | ROyes | DescriptionIndexable page content for site search. null while the page has not been indexed yet |
Fieldversion |
Bitrix24VERSION |
Typenumber | ROyes | DescriptionInternal page structure version |
FieldhistoryStep |
Bitrix24HISTORY_STEP |
Typenumber | ROyes | DescriptionInternal change-history field |
FieldmodifiedById |
Bitrix24MODIFIED_BY_ID |
Typenumber | ROyes | DescriptionLast editor. Lookup: GET /v1/users |
FielddomainId |
Bitrix24DOMAIN_ID |
Typenumber | ROyes | DescriptionSite domain identifier. Not requested by default. In the list (GET /v1/pages) and search (POST /v1/pages/search), an explicit select=domainId is forwarded to Bitrix24 and can return 422 BITRIX_ERROR with the Bitrix24 code SYSTEM_ERROR. In the get-by-ID endpoint (GET /v1/pages/:id), the field is not returned even with an explicit select; id is always returned |
FieldinitiatorAppCode |
Bitrix24INITIATOR_APP_CODE |
Typestring | null | ROyes | DescriptionCode of the application that created the page. null for a page created in the Bitrix24 interface |
Fieldrule |
Bitrix24RULE |
Typestring | null | ROyes | DescriptionInternal Bitrix24 field. Usually null |
FieldcreatedById |
Bitrix24CREATED_BY_ID |
Typenumber | ROyes | DescriptionCreator. Lookup: GET /v1/users |
FielddateCreate |
Bitrix24DATE_CREATE |
Typedatetime | ROyes | DescriptionCreation date. A string in the account locale format, not ISO 8601 — see the format block below |
FielddateModify |
Bitrix24DATE_MODIFY |
Typedatetime | ROyes | DescriptionLast modification date. Same format as dateCreate |
FielddatePublic |
Bitrix24DATE_PUBLIC |
Typedatetime | null | ROyes | DescriptionPublication 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, in the same format in list and get-by-ID responses — 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.
{
"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:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'landing' scope"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP403 | CodeSCOPE_DENIED |
DescriptionAPI key does not have the landing scope |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionAPI key has no configured tokens |
| HTTP429 | CodeRATE_LIMITED |
DescriptionRate limit exceeded: 300 requests per minute per portal. All API keys of the portal share one limit. The current limit is returned in the x-ratelimit-limit header. Retry after the delay in the Retry-After header |
For the full list of common API errors, see Errors.