Table of Contents

API : PBX : Recording Transcribe

Request

This request will transcribe a recording to text and optionally generate an AI summary of the call.

The recording is transcribed with multichannel speech to text: the caller is on the left audio channel (speaker caller) and the callee is on the right audio channel (speaker callee), so every transcription segment is reliably attributed to a speaker. The language spoken is detected automatically. The transcription (and summary) is stored on the recording, so subsequent requests return the stored result without transcribing again.

The AI summary is written in the language of the employee who owns the recording (the PBX default language for common recordings) and covers agreements, to-do's, meetings/deadlines, decisions and follow up points, followed by a JSON metadata block with calendar events and a sensitivity classification.

URL https://api.telecomx.dk/pbx/recording/RECORDING_ID/transcribe?summary=BOOLEAN
Method GET
Access level PERSONAL, VIEWER, MANAGER, OWNER, RESELLER or ADMIN if the recording belongs to the user. Users below MANAGER also require the transcribe permission (and the summarize permission when summary is true) from the PBX recording settings.
MANAGER and up for common recordings.
Param RECORDING_ID Id of the recording (24 hex-char string)
Query summary [optional] True to also generate an AI summary of the recording, default false.

Query examples

https://api.telecomx.dk/pbx/recording/12345678901234567890AAAA/transcribe
https://api.telecomx.dk/pbx/recording/12345678901234567890AAAA/transcribe?summary=true

Response

JSON object
success Boolean True on success
language String ISO 639-1 code of the detected language
transcription Array The transcription as interleaved full-sentence segments sorted by start time
transcription[].speaker String Who is speaking: caller or callee - references the recordings caller/callee objects
transcription[].start Number Start time of the segment in fractional seconds
transcription[].text String The sentence spoken
ai Object AI summary of the recording. Null when no summary has been generated and summary was not true.
ai.summary String The AI-generated summary of the call as plain text.
ai.sensitivityLevel String Sensitivity of the recording: NORMAL, CONFIDENTIAL or SENSITIVE.
ai.sensitivityReasons Array Short texts explaining why the sensitivity level was set.
ai.events Array Calendar events extracted from the call - see Get.

Example

{
  "success": true,
  "language": "da",
  "transcription": [
    { "speaker": "caller", "start": 0.12, "text": "Hej, det er Hans fra Northwind." },
    { "speaker": "callee", "start": 3.45, "text": "Hej Hans, hvad kan jeg hjælpe med?" }
  ],
  "ai": {
    "summary": "1. Resumé\nHans ringede vedrørende...",
    "events": [
      { "title": "Møde i Roskilde", "start": "2026-08-14T15:00:00.000Z", "end": "2026-08-14T16:00:00.000Z", "location": "Roskilde", "notes": null }
    ],
    "sensitivityLevel": "NORMAL",
    "sensitivityReasons": []
  }
}

Errors

Error code Message Description
404 not_found Recording not found
403 common Minimum manager is required to access common recordings
403 employee You may only access your own recordings
403 recording.transcribe Transcription of recordings is not permitted
403 recording.summarize Summarization of recordings is not permitted
500 internal_error <Unspecified>