For AI agents: markdown of this page — /docs-content-en/entities/pages/list.md documentation index — /llms.txt
List pages
GET /v1/pages
Returns a list of landing and online-store pages with support for filtering and auto-pagination. By default only non-deleted pages are returned.
The domainId (DOMAIN_ID) field is not requested by default. An explicit selection of this field is forwarded to Bitrix24 and can return 422 BITRIX_ERROR with the Bitrix24 code SYSTEM_ERROR.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
Parameterlimit |
Typenumber | Default50 |
DescriptionNumber of records (up to 5000) |
Parameteroffset |
Typenumber | Default0 |
DescriptionSkip N records |
Parametersort |
Typestring | Default— | DescriptionSorting as a string: ?sort=-id or ?sort=-siteId,id. A minus before the field name sorts descending; without it, ascending. An unknown field name returns 422 BITRIX_ERROR |
Parameterorder |
Typeobject | string | Default— | DescriptionThe same sorting in map form: ?order[id]=desc. If sort is also passed, sort takes precedence. A direction other than asc, desc, ASC, or DESC returns 400 INVALID_SORT_DIRECTION. The bracketless form ?order=desc works only together with sort: fields that sort orders ascending switch to descending |
Parameterselect |
Typestring | Default— | DescriptionField selection: ?select=id,title,code,siteId,active. Without select, page fields other than domainId are requested, in camelCase (as in the get-by-ID response) |
Parameterfilter |
Typeobject | Default— | DescriptionFiltering by the page's key fields. Filtering syntax. Example: ?filter[siteId]=3. The boolean active is accepted as true/false, 1/0, or Y/N |
ParameterwithTotal |
Typestring | Default— | DescriptionAccepted but does not affect the response: meta.total is returned for any value and any offset |
Parameterscope |
Typestring | Default— | DescriptionInternal landing area. Allowed values: KNOWLEDGE (knowledge base pages), GROUP (workgroup pages), MAINPAGE (main pages). Without the parameter, pages of regular landing sites are returned. Accepted as ?scope=KNOWLEDGE or ?filter[scope]=KNOWLEDGE — both forms produce the same request to Bitrix24 |
Examples
curl — personal key
curl -g "https://vibecode.bitrix24.com/v1/pages?filter[siteId]=3&limit=10&select=id,title,code,siteId,active,dateCreate,dateModify" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl -g "https://vibecode.bitrix24.com/v1/pages?filter[siteId]=3&limit=10&select=id,title,code,siteId,active,dateCreate,dateModify" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const params = new URLSearchParams({
'filter[siteId]': '3',
limit: '10',
select: 'id,title,code,siteId,active,dateCreate,dateModify',
})
const res = await fetch(`https://vibecode.bitrix24.com/v1/pages?${params}`, {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data, meta } = await res.json()
console.log(`Found ${meta.total} pages`)
JavaScript — OAuth application
const params = new URLSearchParams({
'filter[siteId]': '3',
limit: '10',
select: 'id,title,code,siteId,active,dateCreate,dateModify',
})
const res = await fetch(`https://vibecode.bitrix24.com/v1/pages?${params}`, {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data, meta } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata |
Typearray | DescriptionArray of pages |
Fielddata[].id |
Typenumber | DescriptionPage identifier |
Fielddata[].title |
Typestring | DescriptionPage title |
Fielddata[].code |
Typestring | DescriptionSymbolic code of the page |
Fielddata[].siteId |
Typenumber | DescriptionSite identifier |
Fielddata[].active |
Typeboolean | DescriptionWhether the page is active |
Fielddata[].description |
Typestring | null | DescriptionArbitrary description |
Fielddata[].createdById |
Typenumber | DescriptionIdentifier of the employee who created it |
Fielddata[].dateCreate |
Typedatetime | DescriptionCreation date. A string in the account locale format, not ISO 8601 |
Fielddata[].dateModify |
Typedatetime | DescriptionLast modification date. Same format |
Fieldmeta.total |
Typenumber | DescriptionTotal number of records matching the filter |
Fieldmeta.hasMore |
Typeboolean | DescriptionWhether there are more records beyond limit |
Date format.
dateCreateanddateModifyare strings in the account locale format, not ISO 8601 (30.12.2021 12:30:52in the RU locale,12/30/2021 12:30:52 pmin the EN locale). The format is the same in the list and in the get-by-ID response; do not rely onnew Date()to parse such a value. Details: Field reference.
The URL of any page from the data array is built from its id and siteId:
https://<portal>.bitrix24.com/sites/site/<siteId>/view/<id>/
<siteId> — ID of the site the page belongs to (the siteId field of each item). <portal> — the Bitrix24 portal domain. Access is restricted by the employee's permissions in Bitrix24.
Response example
{
"success": true,
"data": [
{
"id": 9,
"title": "Page migration test",
"code": "change1",
"siteId": 3,
"active": true,
"description": null,
"createdById": 1,
"dateCreate": "26.05.2020 17:24:02",
"dateModify": "10.10.2022 15:25:30"
},
{
"id": 7,
"title": "Test page",
"code": "test",
"siteId": 3,
"active": true,
"description": null,
"createdById": 1,
"dateCreate": "25.05.2020 17:34:17",
"dateModify": "10.10.2022 15:25:30"
}
],
"meta": {
"total": 13,
"hasMore": true
}
}
Error response example
403 — no scope:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'landing' scope"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeINVALID_SORT_DIRECTION |
DescriptionThe direction in order is not asc, desc, ASC, or DESC |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionBitrix24 returned an error — see error.message |
| 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, shared by all API keys of the portal. 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.
Known specifics
Pagination via offset is supported. Vibecode returns the requested [offset, offset + limit) window. The meta.total value is the exact number of records matching the filter, and meta.hasMore shows whether there are records beyond the window.
Default order is by site. Without sort or order, pages are returned in ascending siteId order, and within a site in ascending id order. To order pages by id across all sites, use sort=id.
Knowledge base and other internal areas. The scope parameter switches the source: KNOWLEDGE — knowledge base pages, GROUP — workgroup pages, MAINPAGE — main pages. Without the parameter, pages of regular landing sites are returned (the default source). Example: GET /v1/pages?scope=KNOWLEDGE returns knowledge base pages.