For AI agents: markdown of this page — /docs-content-en/timeline-logs/logs/list.md documentation index — /llms.txt
List entries
GET /v1/timeline-logs
Returns the log entries of a single CRM entity with auto-pagination. Pass a limit up to 5000 — Vibecode will assemble the result into one response.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
ParameterentityTypeId |
Typenumber | Requiredyes | Default— | DescriptionParent CRM entity type. See Entity types |
ParameterentityId |
Typenumber | Requiredyes | Default— | DescriptionParent entry ID |
Parameterlimit |
Typenumber | Requiredno | Default50 |
DescriptionHow many entries to return (1–5000). Vibecode internally makes several B24 requests of 10 entries each |
Parameteroffset |
Typenumber | Requiredno | Default0 |
DescriptionHow many to skip from the start. Maps to the B24 parameter start |
ParameterorderBy |
Typestring | Requiredno | Defaultid |
DescriptionSort field: id or created (others are ignored) |
Parameterorder |
Typestring | Requiredno | Defaultdesc |
DescriptionDirection: asc or desc |
The generic filter parameter is not applied by this endpoint. By default, the API preserves the previous HTTP 200 response and data, adds Warning: 299 - "filter is not supported on this endpoint and was ignored", and records unsupported-filter use in the server log.
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/timeline-logs?entityTypeId=2&entityId=100&limit=20" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/timeline-logs?entityTypeId=2&entityId=100&limit=20" \
-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/timeline-logs?entityTypeId=2&entityId=100&limit=20',
{ headers: { 'X-Api-Key': 'YOUR_API_KEY' } },
)
const { success, data, total } = await res.json()
console.log(`Entries: ${total}, received: ${data.length}`)
JavaScript — OAuth application
const res = await fetch(
'https://vibecode.bitrix24.com/v1/timeline-logs?entityTypeId=2&entityId=100&limit=20',
{
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
},
)
const { success, data, total } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata |
Typearray | DescriptionArray of log entries |
Fielddata[].id |
Typenumber | DescriptionLog entry ID |
Fielddata[].created |
Typedatetime | DescriptionCreation date, ISO 8601 with the Bitrix24 account timezone |
Fielddata[].authorId |
Typenumber | DescriptionAuthor ID. User data by ID: GET /v1/users/:id |
Fielddata[].title |
Typestring | DescriptionTitle |
Fielddata[].text |
Typestring | DescriptionEntry text |
Fielddata[].iconCode |
Typestring | DescriptionIcon code (or "" if not set) |
Fieldtotal |
Typenumber | DescriptionTotal number of entries for this entity |
Response example
{
"success": true,
"data": [
{
"id": 5012,
"created": "2026-04-27T10:00:00+00:00",
"authorId": 1,
"title": "AI agent processed the request",
"text": "Customer data analyzed. Recommendation: Enterprise plan.",
"iconCode": ""
},
{
"id": 5008,
"created": "2026-04-27T09:45:00+00:00",
"authorId": 1,
"title": "Payment received",
"text": "100,000 USD from Acme LLC",
"iconCode": "info"
}
],
"total": 2
}
Error response example
400 — required parameters not provided:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Required query: entityTypeId (positive int), entityId (positive int)"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP200 | CodeWarning: 299 |
DescriptionThe filter is ignored by default; previous data is preserved and the warning is sent in the Warning header. |
| HTTP400 (strict mode only) | CodeUNSUPPORTED_FILTER |
DescriptionThe server mode is disabled by default; until it is enabled, the endpoint preserves HTTP 200 and the previous data. |
| HTTP400 | CodeINVALID_PARAMS |
DescriptionentityTypeId / entityId not provided or invalid |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionBitrix24 returned an error (for example, the parent entity does not exist) |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe API key does not have the crm scope |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionThe API key has no configured tokens |
Full list of common API errors — Errors.
Known specifics
A large limit costs more rate-limit. Under the hood Vibecode makes several calls to Bitrix24 to assemble the requested volume — for timeline log entries one Vibecode call with limit=50 corresponds to 5 quanta of the rate-limit budget (and limit=100 to 10 quanta). If conserving the rate limit matters, use limit=10.
offset works in entries, not in pages. Pass offset=20, and Vibecode converts it to start=20 for B24 (which computes (N-1) * 10, where N is the page number).
Sorting only by id or created. Vibecode replaces any other orderBy value with id. The default is id desc (newest first).
Entries from all keys in one list. GET returns absolutely all log entries of the parent entity, regardless of which application created them. There is no "only my entries" filter on the B24 side.