Get started →
Documentation

Recording webhooks

Ruut Voice notifies your recordingStatusCallback URL when a recording's state changes, so you can download or process the audio as soon as it's ready.

Configure

Set the callback on the <Record> verb, on <Dial record=…>, or on a call/number via the API:

TwiMLxml


  

Events

EventWhen it fires
in-progressRecording started.
completedRecording finished and is available (default).
absentRecording was requested but no audio was captured.

Payload

ParameterTypeDescription
RecordingSid optionalstringUnique identifier for the recording.
RecordingStatus optionalstringin-progress, completed, or absent.
RecordingUrl optionalstringURL to fetch the recording audio.
RecordingSource optionalstringRecordVerb, DialVerb, Conference, etc.
CallSid optionalstringThe call that was recorded.
AccountSid optionalstringYour account SID.
RecordingChannels optionalstringNumber of channels (1 mono, 2 dual/stereo).
RecordingTrack optionalstringinbound, outbound, or both.

Example

Exampletext

RecordingSid=RE2e9f6b3c&RecordingStatus=completed
&RecordingUrl=https%3A%2F%2Fvoice.ruut.chat%2F2010-04-01%2FAccounts%2FAC…%2FRecordings%2FRE2e9f6b3c.mp3
&RecordingSource=DialVerb&CallSid=CA…&RecordingChannels=2

Handle it with the SDK

Examplets

const payload = parseWebhook(req.body);
if (payload.RecordingStatus === "completed") {
  console.log(`Recording ready: ${payload.RecordingSid}`);
  console.log(`Download: ${payload.RecordingUrl}`);
}

See Record & transcribe calls for the full recording workflow, including how to read back the transcript from the Recording resource.