API reference
Recordings API
Fetch recordings and their transcripts. Recordings are created automatically when a call uses <Record>, <Dial record=…>, or a conference recording.
Recording resource
{
"sid": "RE…",
"account_sid": "AC…",
"call_sid": "CA…",
"conference_sid": null,
"channels": 2,
"source": "DialVerb",
"status": "completed",
"track": "both",
"duration": "42",
"transcription_status": "completed",
"transcription_text": "Hello.\nHow can I help?",
"transcription_provider": "whisperx",
"transcription_language": "en",
"transcription_segments": [
{ "speaker": "customer", "text": "Hello.", "start_time": 0.0, "end_time": 1.8 },
{ "speaker": "agent", "text": "How can I help?", "start_time": 2.1, "end_time": 4.0 }
],
"media_url": "https://voice.ruut.chat/…/Recordings/RE….wav",
"uri": "/2010-04-01/Accounts/AC…/Recordings/RE…"
}
List recordings
GET/2010-04-01/Accounts/{AccountSid}/Recordings
List recordings for the account. Scoped to a call with /Calls/{CallSid}/Recordings.
| Parameter | Type | Description |
|---|---|---|
Page optional | integer | 0-indexed page. |
PageSize optional | integer | Records per page (max 1000). |
Fetch a recording
GET/2010-04-01/Accounts/{AccountSid}/Recordings/{RecordingSid}.json
Return the recording resource (including transcription fields when present).
| Parameter | Type | Description |
|---|---|---|
RecordingSid required | string | The recording SID (e.g. RE…). |
Fetch recording audio
GET/2010-04-01/Accounts/{AccountSid}/Recordings/{RecordingSid}.wav
Download the recording as WAV. Use .mp3 for a compressed copy. Redirects to the media file.
| Parameter | Type | Description |
|---|---|---|
RecordingSid required | string | The recording SID. |
format optional | string | wav (default) or mp3. |
Recordings can be listed account-wide or scoped to a call:
GET /Recordings— all recordings for the account.GET /Calls/{CallSid}/Recordings— recordings for one call.
With the SDK
import { RuutVoice } from "@ruut/voice-sdk";
const client = new RuutVoice({ accountSid, authToken, baseUrl });
const list = await client.recordings.list({ callSid: "CA…", pageSize: 10 });
const rec = await client.recordings.get("RE…");
console.log(rec.transcription_status);
for (const seg of rec.transcription_segments ?? []) {
console.log(seg.speaker, seg.text);
}
const wavUrl = client.recordings.mediaUrl("RE…", { format: "wav" });
const mp3Url = client.recordings.mediaUrl("RE…", { format: "mp3" });
Webhooks
- Recording webhooks — when audio is ready.
- Transcription webhooks — when the transcript (with speaker segments) is done.