Skip to content

Get the post-call merged transcript

GET /calls/{call_id}/transcript-merged

https://api.voygr.tech/calls/{call_id}/transcript-merged

Open in playground

Overview

The post-call merged transcript contains both sides of the call on one timeline. It can include speech absent from the current transcript_full, such as phone menus and hold announcements. Read it after the call ends.

Authentication

  • API key in header X-API-Key: Your customer API key (pk_live_...), sent on every request. Self-serve at https://api.voygr.tech/checkout.

Parameters

NameLocationRequiredTypeDescription and constraints
call_idpathrequiredstring

Responses

200

Successful Response

application/json

Schema: MergedTranscript

merged

{
  "version": 1,
  "duration_ms": 17240,
  "turns": [
    {
      "speaker": "hostess",
      "start_ms": 300,
      "end_ms": 6100,
      "text": "Thank you for calling. If you know your party's extension, you may dial it at any time."
    },
    {
      "speaker": "bot",
      "start_ms": 6800,
      "end_ms": 9200,
      "text": "Hi, this is an AI assistant calling to ask about your opening hours."
    }
  ]
}

202

Merged transcript not yet available. Retry after transcript_ready, or poll this GET. A 202 is not a guarantee it will become available: if it persists after the call ends, request one rebuild with POST /calls/{call_id}/transcript-merged/rebuild.

application/json

mergerpending

{
  "status": "merger_pending"
}

401

Missing or invalid X-API-Key.

application/json

X-API-Key header absent

{
  "detail": {
    "error": "API key required"
  }
}

X-API-Key doesn't resolve to an active key

{
  "detail": {
    "error": "invalid API key"
  }
}

404

Call not found or isn't yours - also returned for calls where the callee declined recording (no verbatim transcript may be served; the summary + outcome on GET /calls/{call_id} remain available).

application/json

notfound

{
  "detail": "Transcript not available"
}

Schemas

MergedTranscript

Type: object

The post-call merged transcript contains both sides of the call on one timeline. It can include speech absent from the current transcript_full, such as phone menus and hold announcements. Read it after the call ends.

FieldTypeRequiredDescription and constraints
versionintegerrequiredExample: 1
duration_msintegerrequired
turnsarray of MergedTranscriptTurnrequired

MergedTranscriptTurn

Type: object

One turn of the post-call merged transcript.

FieldTypeRequiredDescription and constraints
speakerstringrequiredbot = the agent; hostess = the other party - staff, receptionist or IVR (the name is historical and covers every callee-side voice).
one of bot, hostess
start_msintegerrequired
end_msintegerrequired
textstringrequired
wordsarray of objectoptionalPer-word timings, when the source provides them.

Item fields

FieldTypeRequiredDescription and constraints
start_msintegeroptional
end_msintegeroptional
textstringoptional
overlap_with_nextbooleanoptionalThis turn overlapped the next one in time (cross-talk). When true, end_ms has been trimmed to the next turn's start_ms; the untrimmed value is in original_end_ms.
original_end_msintegeroptionalThe pre-trim end_ms, present only when overlap_with_next is true.
timing_estimatedbooleanoptionalThe text is real but the milliseconds are a reading order, not a measurement - don't plot such turns on a timeline.