Skip to navigation

Retrieve a Recording

View as MarkdownOpen in Claude

Retrieves one voice recording’s metadata, such as duration, cost, and status. Use this account-level route for saved call or conference media; Video Room recordings are separate resources.

Request the recording URI with a .json extension to get the metadata.

GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.json

Access

Access to the recording URI, for metadata and audio alike, follows the project’s Protect Recording Media URLs setting. New projects have it turned on. See Media URL protection.

  • On: authenticate with your Project ID and an API token that has the Management scope. A request without valid credentials, or with a token that lacks the scope, gets a 401.
  • Off: anyone with the URI can retrieve the recording without authenticating, which lets external applications embed recording URLs without exposing your API credentials. Recording URIs contain long random IDs, which makes them difficult to guess unless you reveal them.

Learn more about API scopes.

Recording audio

The same recording URI also returns the recording audio, depending on the extension. Without an extension, the response follows the request’s Accept header: application/json returns the metadata, and a generic value such as */* returns the audio.

The audio URLs respond with a 302 redirect to the audio file, so your client must follow redirects. When the recording has no audio to return, for example because its status isn’t completed, they respond with 404 and an empty body.

Retrieve WAV file

When a recording URI has a .wav extension, or no extension and a generic Accept header, the request redirects to a WAV version of the recording file.

GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.wav

GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}

Retrieve MP3 file

Setting an extension of “.mp3” on the URI redirects to an MP3 version of the recording. For example:

GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.mp3

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"
The unique identifier for the account that is associated with this recording.
SidstringRequiredformat: "uuid"
The unique identifier for the recording.

Response

The request has succeeded.
sidstringformat: "uuid"
The unique identifier for the recording.
account_sidstringformat: "uuid"
The unique identifier for the account that is associated with this recording.
api_versionstring
The version of the SignalWire API.
call_sidstring or nullformat: "uuid"
The unique identifier for the call that is associated with this recording. Null if this is a conference recording.
conference_sidstring or nullformat: "uuid"
The unique identifier for the conference that is associated with this recording. Null if this is a call recording.
channelenum

The number of channels in a recording (singular key). Returns ‘1’ for mono or ‘2’ for stereo.

Allowed values:
channelsenum
The number of channels in a recording. Returns '1' for mono or '2' for stereo.
Allowed values:
date_createdstring
The date, in RFC 2822 format, this recording was created.
date_updatedstring
The date, in RFC 2822 format, this recording was updated.
start_timestring or null
The time, in RFC 2822 format, this recording started.
end_timestring or null
The time, in RFC 2822 format, this recording ended.
durationinteger>=0
The length, in seconds, of the recording.
pricedouble
The cost of the recording.
price_unitstring
The currency of the price of the recording.
sourceenum or null

How the recording was started. Null for a recording made because a call was created through the REST API with Record set to true.

Allowed values:
statusenum
The status of the recording.
error_codestring or null
Further details about a failed recording.
uristring
The URI of the recording.
subresource_urisobject
Subresource URIs.
encryption_detailsstring or null
Encryption details. Always null.
trimstring or null

Whether leading and trailing silence is trimmed from a recording: trim-silence or do-not-trim. Can be null, for example on conference recordings.

Errors

400
Bad Request Error
404
Not Found Error