Skip to main content
GET
/
api
/
calls
/
{callId}
/
recording
Get a call recording (audio + transcription)
curl --request GET \
  --url https://your-instance.example.com/api/calls/{callId}/recording \
  --header 'Authorization: Bearer <token>'
{
  "success": true,
  "audioUrl": "https://example-r2.signed/.../recording.mp3?X-Amz-Expires=600",
  "duration": 154,
  "recordingId": "rec_abc123",
  "transcriptionText": "Agent: Hi, this is Alex from Example Corp...",
  "transcriptionData": [
    {
      "role": "agent",
      "message": "Hi, this is Alex from Example Corp.",
      "timestamp": 0.5
    },
    {
      "role": "user",
      "message": "Hey Alex.",
      "timestamp": 2.8
    }
  ],
  "direction": "outbound",
  "from": "+14165550100",
  "to": "+14165550199"
}

Documentation Index

Fetch the complete documentation index at: https://docs.tetherai.ca/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

callId
string
required

The provider-agnostic callId minted by Tether (also used as providerCallId for SDK calls).

Response

Recording payload

Shape depends on provider. Twilio returns base64 audioData; Sinch / ElevenLabs / external return a signed audioUrl.

success
enum<boolean>
required
Available options:
true
audioData
string

data URI (Twilio only).

audioUrl
string

Signed S3 (Sinch) or R2 (ElevenLabs/external) URL.

duration
number
recordingId
string
transcriptionText
string | null
transcriptionData
object
direction
enum<string>
Available options:
inbound,
outbound
from
string
to
string