لوكلاء AI: ملف markdown لهذه الصفحة — /docs-content-en/calls.md فهرس التوثيق — /llms.txt

مقالات التوثيق متاحة حاليًا باللغة الإنجليزية فقط.

Calls

Programmatic access to Bitrix24 calls: AI Follow-up of completed calls, the personal call journal, call recordings and CRM card lookup by phone number.

Scope: call | Base URL: https://vibecode.bitrix24.com/v1 | Authorization: X-Api-Key

Documentation sections

  • Call follow-up — AI review of completed calls: transcript, meeting overview, agreements, tasks
  • Call journal — the personal call journal of the key's user
  • Call recording — attach an audio recording to a completed external telephony call
  • CRM cards by phone — CRM cards and the responsible employee for a phone number

External telephony

The following operations require the telephony scope:

What a Follow-up is

A Follow-up is an AI review of an internal call or a meeting between employees: the conversation transcript, the meeting topic, agreements, assigned tasks, participant analysis and an efficiency score. Bitrix24 generates it automatically after the call ends. The methods in this section only read the finished result and create nothing.

A Follow-up is not generated for every call. The blocks that are ready are listed in the outcomes field of the response; the ones that have not been generated come back as null.

This is not the transcript of a call with a client. A conversation with a client logged as a CRM activity is transcribed by a separate mechanism — its text is returned by GET /v1/activities/:activityId/transcript. If the task sounds like "get the text of a conversation with a client for a deal or a lead" — use that endpoint, not this section.

Quick start

List the calls from January that already have a Follow-up:

Terminal
curl -X POST https://vibecode.bitrix24.com/v1/calls/followups/list \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filter": { "startDate": { "from": "2026-01-01T00:00:00Z", "to": "2026-01-31T23:59:59Z" } },
    "pagination": { "limit": 5 }
  }'

The response contains an array of calls in data.items and the next-page cursor in data.afterCursor:

JSON
{
  "success": true,
  "data": {
    "items": [
      {
        "callId": 12345,
        "callType": 1,
        "initiatorId": 7,
        "startDate": "2026-01-15T10:00:00+00:00",
        "endDate": "2026-01-15T10:42:00+00:00",
        "durationSeconds": 2520
      }
    ],
    "hasMore": false,
    "afterCursor": null
  }
}

Full example

Review the outcome of a meeting: find a call for the period, read the overview and agreements, retrieve the tasks.

Terminal
BASE='https://vibecode.bitrix24.com/v1'

# 1. Calls with a Follow-up for the period → take the identifier of the first one
CALL_ID=$(curl -s -X POST "$BASE/calls/followups/list" \
  -H "X-Api-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{"filter": {"startDate": {"from": "2026-01-01T00:00:00Z", "to": "2026-01-31T23:59:59Z"}},
       "order": {"startDate": "desc"}, "pagination": {"limit": 1}}' | jq -r '.data.items[0].callId')

# 2. Meeting overview and agreements
curl -s "$BASE/calls/followups/$CALL_ID?select=overview&mentionFormat=none" \
  -H "X-Api-Key: YOUR_API_KEY" | jq '.data.item.overview.topic, .data.item.overview.agreements'

# 3. Tasks assigned during the meeting
curl -s "$BASE/calls/followups/$CALL_ID?select=overview.actionItems&mentionFormat=none" \
  -H "X-Api-Key: YOUR_API_KEY" | jq '.data.item.overview.actionItems'

mentionFormat=none removes @-mention markup: the text comes back without the internal tags, ready to pass to an AI model or save to a task.

Endpoint reference

Method Path Bitrix24 method Description
MethodPOST Path/v1/calls/followups/list Bitrix24 methodcall.followup.list DescriptionList of Follow-ups for a period with filtering, sorting and cursor navigation
MethodGET Path/v1/calls/followups/:callId Bitrix24 methodcall.followup.get DescriptionFull Follow-up data for a single call
MethodGET Path/v1/calls/log Bitrix24 methodcall.CallLog.list DescriptionPersonal call journal
MethodDELETE Path/v1/calls/log/:callId Bitrix24 methodcall.CallLog.delete DescriptionDelete a journal entry
MethodGET Path/v1/calls/log/chat Bitrix24 methodcall.CallLog.getChat DescriptionID of the personal chat with the other party
MethodPOST Path/v1/calls/:callId/record Bitrix24 methodtelephony.externalCall.attachRecord DescriptionAttach a conversation recording to a call
MethodGET Path/v1/calls/crm-entities Bitrix24 methodtelephony.externalCall.searchCrmEntities DescriptionCRM cards by phone number

Error codes

Section errors

HTTP Code When
HTTP400 CodeMISSING_PARAMS WhenThe request body has no filter object
HTTP400 CodeINVALID_PARAMS WhencallId in the path is not a positive integer
HTTP400 CodeINVALID_PARAMS WhenBitrix24 rejected the parameter value. The response additionally contains an error.validation array with the field name
HTTP400 CodeMISSING_REQUIRED_FIELDS WhenA required parameter is missing: phone in the CRM lookup by phone, fileContent or fileName when uploading a recording
HTTP403 CodeBITRIX_ACCESS_DENIED WhenBitrix24 denied access. A common cause is that the set of scopes the key uses to reach the portal does not include call. The full list of causes and what to do per key type — Authorization, keys and permissions
HTTP413 CodePAYLOAD_TOO_LARGE WhenThe recording file exceeds 2 MiB after decoding, or the request body exceeds 3 MiB
HTTP422 CodeBITRIX_ERROR WhenThe request was rejected: invalid date range, unsupported field in select, invalid pagination or order, no access to the call data
HTTP422 CodeBITRIX_ERROR WhenThe call for the recording is not found or has not ended yet

System errors

HTTP Code When Retry
HTTP401 CodeMISSING_API_KEY WhenThe X-Api-Key header is missing Retryno
HTTP401 CodeTOKEN_MISSING WhenThe key has no portal tokens. An OAuth application key requires the Authorization: Bearer header Retryno
HTTP403 CodeSCOPE_DENIED WhenThe key has no call scope, or the telephony scope for external telephony operations Retryno
HTTP429 CodeRATE_LIMITED WhenRequest rate exceeded on the Bitrix24 side Retryyes, after a delay
HTTP429 CodeQUEUE_OVERFLOW, QUEUE_TIMEOUT WhenThe portal request queue is full or the request did not get through the queue in time. The Retry-After header indicates the delay Retryyes, after Retry-After
HTTP503 CodeBITRIX_TIMEOUT WhenBitrix24 accepted the request but did not respond within 60 seconds Retryyes for read operations. Before retrying a recording upload or a deletion, check the result: the request may have been executed
HTTP502 CodeBITRIX_UNAVAILABLE WhenBitrix24 is unavailable Retryyes, after a delay

The full list of common API errors — Error codes.

See also