For AI agents: markdown of this page — /docs-content-en/entities/sites/fields.md documentation index — /llms.txt
Site fields
GET /v1/sites/fields
Returns a map of all site fields with their type, read-only flag, label and description. Fields without that flag are writable on create and update.
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/sites/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/sites/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/sites/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/sites/fields', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata.fields |
Typeobject | DescriptionMap of site fields: the key is the field name, the value describes the field. The fields are listed in the table below |
Fielddata.fields.<field>.type |
Typestring | DescriptionValue type: number, string, boolean or datetime |
Fielddata.fields.<field>.readonly |
Typeboolean | Descriptiontrue — the field is read-only and is not sent on create or update |
Fielddata.fields.<field>.required |
Typeboolean | DescriptionPresent and set to true on the fields required on create: title and code |
Fielddata.fields.<field>.nullable |
Typeboolean | DescriptionPresent and set to true on the fields whose value may be absent |
Fielddata.fields.<field>.label |
Typestring | DescriptionField label |
Fielddata.fields.<field>.description |
Typestring | DescriptionField description |
Fielddata.fields.type.enum |
Typearray | DescriptionAllowed values of the type field. Each value is an object with the value and label keys |
Fielddata.aggregatable |
Typearray | DescriptionFields you can group by in aggregation |
Fielddata.batch |
Typearray | DescriptionOperations available in batch mode |
All 22 fields carry a label and a description. The nullable: true key is present on eight fields: description, xmlId, landingIdIndex, landingId404, landingId503, tplCode, smnSiteId, lang. What an absent value looks like for each of them is shown in the table below.
The label and description values are returned in English. Request headers do not switch the language.
Site fields in the data.fields map:
| Field | Type | RO | Description |
|---|---|---|---|
Fieldid |
Typenumber | ROyes | DescriptionSite identifier |
Fieldtitle |
Typestring | RO | DescriptionName, up to 255 characters |
Fieldcode |
Typestring | RO | DescriptionSymbolic code in the URL |
Fieldtype |
Typestring | RO | DescriptionSite type: PAGE, STORE, KNOWLEDGE — created via the API. Responses may also contain VIBE and SMN |
Fieldactive |
Typeboolean | ROyes | DescriptionWhether the site is active. Read-only: Bitrix24 does not store the value on create or on update, so sending the field is refused with 400 READONLY_FIELD. A site is activated by POST /v1/sites/:id/publication or by publishing it in the interface |
FielddomainId |
Typenumber | RO | DescriptionDomain identifier |
Fielddescription |
Typestring | null | RO | DescriptionDescription, up to 255 characters. null if not set |
FieldxmlId |
Typestring | null | RO | DescriptionExternal identifier. null if not set |
FieldlandingIdIndex |
Typenumber | null | RO | DescriptionHome page. Set on update, after the pages are created |
FieldlandingId404 |
Typenumber | null | RO | Description404 error page. If not assigned — 0 or null |
FieldlandingId503 |
Typenumber | null | RO | Description503 error page. If not assigned — 0 or null |
Fielddeleted |
Typestring | ROyes | DescriptionRecycle bin flag: "Y" / "N" |
FieldcreatedById |
Typenumber | ROyes | DescriptionCreator. Lookup: GET /v1/users |
FieldmodifiedById |
Typenumber | ROyes | DescriptionLast editor. Lookup: GET /v1/users |
FielddateCreate |
Typedatetime | ROyes | DescriptionCreation date. Bitrix24 locale format, not ISO 8601 |
FielddateModify |
Typedatetime | ROyes | DescriptionLast modification date. Bitrix24 locale format |
FieldtplId |
Typenumber | ROyes | DescriptionSite template identifier |
FieldtplCode |
Typestring | null | ROyes | DescriptionTemplate symbolic code. null if the template has no code |
FieldsmnSiteId |
Typestring | null | ROyes | DescriptionLinked "Site Management" site of type SMN. null for regular sites |
Fieldlang |
Typestring | null | ROyes | DescriptionLanguage code, for example en. null if not set |
Fieldspecial |
Typestring | ROyes | DescriptionBitrix24 service flag: "Y" / "N" |
Fieldversion |
Typenumber | ROyes | DescriptionVersion of the site's internal structure |
Response example
{
"success": true,
"data": {
"fields": {
"id": {
"type": "number",
"readonly": true,
"label": "Site ID",
"description": "Unique numeric identifier of the site."
},
"title": {
"type": "string",
"readonly": false,
"required": true,
"label": "Title",
"description": "Site name, up to 255 characters. Required on create."
},
"type": {
"type": "string",
"readonly": false,
"label": "Site type",
"description": "Site type. PAGE/STORE/KNOWLEDGE are creatable via the API (KNOWLEDGE needs scope: \"KNOWLEDGE\" on create and update). VIBE (a site built in the constructor) and SMN (a link with the \"Site Management\" module) appear in responses only and are read-only.",
"enum": [
{ "value": "PAGE", "label": "Landing" },
{ "value": "STORE", "label": "Online store" },
{ "value": "KNOWLEDGE", "label": "Knowledge base 2.0" },
{ "value": "VIBE", "label": "Constructor site (read-only)" },
{ "value": "SMN", "label": "Site Management link (read-only)" }
]
},
"active": {
"type": "boolean",
"readonly": true,
"label": "Active",
"description": "Whether the site is active. Read-only: Bitrix24 stores the value neither on create nor on update — landing.site.add and landing.site.update do not declare the field, a new site is always created inactive, and a live round-trip on both verbs answered with a success while the flag stayed off. A site is activated by POST /v1/sites/:id/publication or by publishing it in the Bitrix24 interface."
},
"description": {
"type": "string",
"readonly": false,
"nullable": true,
"label": "Description",
"description": "Site description, up to 255 characters. Comes back as null when not set."
}
},
"aggregatable": ["type", "active", "deleted", "lang", "tplId", "domainId", "createdById", "modifiedById"],
"batch": ["create", "update", "delete"]
}
}
5 of 22 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 |
DescriptionThe API key does not have the landing scope |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionThe API 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.