For AI agents: markdown of this page — /docs-content-en/entities/activities/transcript.md documentation index — /llms.txt

CRM call transcripts

GET /v1/activities/:activityId/transcript

Returns the ready-made AI transcript of a client call logged in CRM as a Call activity and processed in your Bitrix24 account by CoPilot. The method only reads an existing transcript — it does not trigger generation.

Bitrix24 API: crm.activity.call.getTranscript Scope: crm

Parameters

Parameter Type Required Description
activityId (path) number yes ID of the call activity. List: GET /v1/activities

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/activities/12345/transcript" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/activities/12345/transcript" \
  -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/activities/12345/transcript', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { data } = await res.json()
if (data.transcription === null) {
  // no transcript yet — this is not an error
} else {
  console.log(data.transcription)
}

JavaScript — OAuth application

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

const { data } = await res.json()

Response fields

Field Type Description
transcription string | null The full transcript text. A null value comes back with status 200 when there is no transcript for the call yet — the call was not processed or processing did not finish. Check data.transcription === null

Response example

Transcript is ready:

JSON
{
  "success": true,
  "data": {
    "transcription": "Hello, how can I help you?"
  }
}

No transcript yet — transcription is null, the status stays 200:

JSON
{
  "success": true,
  "data": {
    "transcription": null
  }
}

Error response example

403 — no access to the transcript:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ACCESS_DENIED",
    "message": "Access denied",
    "hint": "Access denied to this call transcript. Two possible causes: (1) the API key owner lacks read access to a CRM entity bound to this call activity, or (2) AI call processing is not enabled on this portal. Verify the user's CRM permissions, and confirm AI call processing (transcription) is turned on."
  }
}

Errors

HTTP Code Description
403 BITRIX_ACCESS_DENIED One code for two causes: no rights to the CRM entity the call is bound to, or AI call processing is disabled on the portal. The hint field names both
403 SCOPE_DENIED The API key has no crm scope
400 INVALID_PARAMS activityId is not a positive integer
401 TOKEN_MISSING The API key has no tokens configured
404 ENTITY_NOT_FOUND No activity with this activityId, or it has no CRM bindings

Full list of common API errors — Errors.

Known specifics

  • The transcript is available only if the key has read access to at least one CRM entity — a deal, lead, contact or company — the call is bound to. AI call processing (CoPilot) must also be enabled in your Bitrix24 account.
  • The transcript does not appear instantly: Bitrix24 builds it after the call ends. While processing is not finished, transcription is null with status 200. Retry the request later.

See also