For AI agents: markdown of this page — /docs-content-en/timeline-logs/bindings/list.md documentation index — /llms.txt

List bindings

GET /v1/timeline-logs/:id/bindings

Returns all CRM entities a log entry is bound to. Handy for checking which timelines the event currently appears in.

Parameters

Parameter Type Required Description
id (path) number yes Log entry ID

Examples

curl — personal key

Terminal
curl https://vibecode.bitrix24.com/v1/timeline-logs/5012/bindings \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth app

Terminal
curl https://vibecode.bitrix24.com/v1/timeline-logs/5012/bindings \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/timeline-logs/5012/bindings', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { data, total } = await res.json()
data.forEach(b => console.log(`${b.entityType} #${b.entityId}`))

JavaScript — OAuth app

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/timeline-logs/5012/bindings', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { data, total } = await res.json()

Response fields

Field Type Description
success boolean Always true on success
data array Array of bindings
data[].ownerId number ID of the log entry itself (equals :id from the path, duplicated for convenience)
data[].entityId number ID of the bound CRM entity
data[].entityType string String type: "deal", "contact", "dynamic_174", etc.
data[].entityTypeId number Numeric type. Present if the string maps into the type table; for arbitrary smart processes it is extracted from dynamic_<id>
total number Number of bindings

Response example

JSON
{
  "success": true,
  "data": [
    { "ownerId": 5012, "entityId": 100, "entityType": "deal", "entityTypeId": 2 },
    { "ownerId": 5012, "entityId": 50, "entityType": "contact", "entityTypeId": 3 },
    { "ownerId": 5012, "entityId": 10, "entityType": "company", "entityTypeId": 4 },
    { "ownerId": 5012, "entityId": 1, "entityType": "dynamic_174", "entityTypeId": 174 }
  ],
  "total": 4
}

Error response example

400 — id is invalid:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "Path parameter :id must be a positive integer"
  }
}

Errors

HTTP Code Description
400 INVALID_PARAMS id is not a positive integer
422 BITRIX_ERROR Bitrix24 rejected the request
403 SCOPE_DENIED The API key lacks the crm scope
401 TOKEN_MISSING The API key has no configured tokens

Full list of common API errors — Errors.

Known specifics

The parent entity is in the list. When an entry is created via POST /v1/timeline-logs, the entityTypeId+entityId pair is automatically added to bindings. So even without explicit bind calls, total ≥ 1.

Both type formats in one object. Vibecode returns both entityType (the string from B24) and entityTypeId (the number) — for the client's convenience. If the string value does not map (a nonstandard smart process with entityTypeId < 128 and no clear name), entityTypeId may be absent from the object.

A nonexistent id — an empty array, not a 404. If you request bindings for a nonexistent log entry, Bitrix24 returns total: 0, data: [] with no error. To check whether an entry exists, use GET /v1/timeline-logs/:id.

Sorting is not set by a parameter. The list usually comes back by entityId ascending, but the order is not guaranteed. If you need a predictable order, sort on the client.

See also