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 |
|---|---|---|---|---|
entityTypeId |
number | yes | — | Parent CRM entity type. See Entity types |
entityId |
number | yes | — | Parent entry ID |
limit |
number | no | 50 |
How many entries to return (1–5000). Vibecode internally makes several B24 requests of 10 entries each |
offset |
number | no | 0 |
How many to skip from the start. Maps to the B24 parameter start |
orderBy |
string | no | id |
Sort field: id or created (others are ignored) |
order |
string | no | desc |
Direction: asc or desc |
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 |
|---|---|---|
success |
boolean | Always true on success |
data |
array | Array of log entries |
data[].id |
number | Log entry ID |
data[].created |
datetime | Creation date, ISO 8601 with the Bitrix24 account timezone |
data[].authorId |
number | Author ID. User data by ID: GET /v1/users/:id |
data[].title |
string | Title |
data[].text |
string | Entry text |
data[].iconCode |
string | Icon code (or "" if not set) |
total |
number | Total 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 |
|---|---|---|
| 400 | INVALID_PARAMS |
entityTypeId / entityId not provided or invalid |
| 422 | BITRIX_ERROR |
Bitrix24 returned an error (for example, the parent entity does not exist) |
| 403 | SCOPE_DENIED |
The API key does not have the crm scope |
| 401 | TOKEN_MISSING |
The 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.
See also
- Get an entry — a single entry by
id - Create an entry — add to the log
- Delete an entry — mind the cross-app restriction
- Limits and optimization — rate limits accounting for B24 pages of 10