Retrieve a Recording
Retrieves one voice recording as audio or metadata, depending on the requested extension. Use this account-level route for saved call or conference media; Video Room recordings are separate resources.
This endpoint supports two different access methods with different authentication requirements:
Public Access (No Authentication Required)
Recording audio files can be accessed directly without authentication. This is useful for external applications to embed recording URLs without exposing SignalWire API credentials. SignalWire recording URLs are long and random, making them difficult to guess or exploit unless you reveal the URL.
Retrieve WAV file
When a recording URI has no extension or a .wav extension, the request will return a binary WAV version of the recording file.
GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}
GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.wav
Retrieve MP3 file
Setting an extension of ".mp3" on the URI returns a binary MP3 version of the recording. For example:
GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.mp3
Authenticated Access (Voice Scope Required)
Retrieve Metadata
A recording's metadata, such as duration, cost, time, can be returned by setting the Recording URI's extension to .json. This requires authentication with a Voice-scoped API token.
GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.json
Permissions
The API token used to authenticate must have the following scopes enabled to make a successful request: Voice.
This permission is only required for authenticated requests to retrieve recording metadata (.json extension).
Learn more about API scopes.
Path parameters
Universal Unique Identifier.
The unique identifier for the account that is associated with this recording.
Universal Unique Identifier.
The unique identifier for the recording.
Response
The request has succeeded.
Example response
{
"api_version": "2010-04-01",
"channel": "1",
"channels": "1",
"date_created": "Tue, 25 Sep 2018 23:00:00 +0000",
"date_updated": "Wed, 26 Sep 2018 23:00:04 +0000",
"start_time": "Tue, 25 Sep 2018 23:00:00 +0000",
"end_time": "Wed, 26 Sep 2018 23:00:04 +0000",
"duration": 4,
"price": "-0.0025",
"price_unit": "USD",
"uri": "/api/laml/2010-04-01/Accounts/720796a0-8ee9-4350-83bd-2d07a3121f1e/Recordings/19e436af-5688-4307-b03b-bdb2b42b8142.json",
"subresource_uris": {
"transcriptions": "/api/laml/2010-04-01/Accounts/720796a0-8ee9-4350-83bd-2d07a3121f1e/Recordings/19e436af-5688-4307-b03b-bdb2b42b8142/Transcriptions.json"
},
"trim": "do-not-trim"
}Changes
Changed in 6 of the 40 revisions of this API.24751
- ▲
the
account_sidresponse's property type/format changed fromstring/uuidto/for status200response-property-type-changed
- ▲
the
call_sidresponse's property type/format changed from/uuidto/for status200response-property-type-changed
- ▲
the
conference_sidresponse's property type/format changed from/uuidto/for status200response-property-type-changed
- ▲
the
sidresponse's property type/format changed fromstring/uuidto/for status200response-property-type-changed
- ○
added
uuidto theaccount_sidresponse propertyallOflist for the response status200response-property-all-of-added
- ○
added
uuidto thesidresponse propertyallOflist for the response status200response-property-all-of-added
- ○
added
uuidto thecall_sidresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
uuidto theconference_sidresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
removed
subschema #1from thecall_sidresponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
removed
subschema #1from theconference_sidresponse propertyanyOflist for the response status200response-property-any-of-removed
- ▲
- ○
added 'unevaluatedProperties' constraint to the response body for the status
200response-body-unevaluated-properties-added
- ○
added 'unevaluatedProperties' constraint to the response body for the status
400response-body-unevaluated-properties-added
- ○
added 'unevaluatedProperties' constraint to the response body for the status
401response-body-unevaluated-properties-added
- ○
added 'unevaluatedProperties' constraint to the response body for the status
404response-body-unevaluated-properties-added
- ○
added 'unevaluatedProperties' constraint to the
subresource_uris/allOf[RecordingSubresourceUris]/response property for the status200response-property-unevaluated-properties-added
- ○
- ▲
response property
call_sidlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
conference_sidlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
encryption_detailslist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
end_timelist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
error_codelist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
pricelist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
start_timelist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
- ▲
the response property
call_sidbecame nullable for the status200response-property-became-nullable
- ▲
the response property
conference_sidbecame nullable for the status200response-property-became-nullable
- ▲
the response property
end_timebecame nullable for the status200response-property-became-nullable
- ▲
the response property
error_codebecame nullable for the status200response-property-became-nullable
- ▲
the response property
pricebecame nullable for the status200response-property-became-nullable
- ▲
the
channelsresponse's property type/format changed frominteger/int32tostring/for status200response-property-type-changed
- ▲
the
durationresponse's property type/format changed fromstring/tointeger/int32for status200response-property-type-changed
- ●
added the new
1enum value to thechannelsresponse property for the response status200response-property-enum-value-added
- ●
added the new
2enum value to thechannelsresponse property for the response status200response-property-enum-value-added
- ●
added the new
absentenum value to thestatus/allOf[RecordingStatus]/response property for the response status200response-property-enum-value-added
- ●
added the new
completedenum value to thestatus/allOf[RecordingStatus]/response property for the response status200response-property-enum-value-added
- ●
added the new
queuedenum value to thestatus/allOf[RecordingStatus]/response property for the response status200response-property-enum-value-added
- ●
added the new
resumedenum value to thestatus/allOf[RecordingStatus]/response property for the response status200response-property-enum-value-added
- ○
added the non-success response with the status
400response-non-success-status-added
- ○
the response property
account_sidbecame required for the status200response-property-became-required
- ○
the response property
api_versionbecame required for the status200response-property-became-required
- ○
the response property
call_sidbecame required for the status200response-property-became-required
- ○
the response property
channelsbecame required for the status200response-property-became-required
- ○
the response property
conference_sidbecame required for the status200response-property-became-required
- ○
the response property
date_createdbecame required for the status200response-property-became-required
- ○
the response property
date_updatedbecame required for the status200response-property-became-required
- ○
the response property
durationbecame required for the status200response-property-became-required
- ○
the response property
end_timebecame required for the status200response-property-became-required
- ○
the response property
error_codebecame required for the status200response-property-became-required
- ○
the response property
pricebecame required for the status200response-property-became-required
- ○
the response property
price_unitbecame required for the status200response-property-became-required
- ○
the response property
sidbecame required for the status200response-property-became-required
- ○
the response property
sourcebecame required for the status200response-property-became-required
- ○
the response property
statusbecame required for the status200response-property-became-required
- ○
the response property
subresource_urisbecame required for the status200response-property-became-required
- ○
the response property
subresource_uris/allOf[RecordingSubresourceUris]/transcriptionsbecame required for the status200response-property-became-required
- ○
the response property
uribecame required for the status200response-property-became-required
- ○
added the required property
channelto the response with the200statusresponse-required-property-added
- ○
added the required property
encryption_detailsto the response with the200statusresponse-required-property-added
- ○
added the required property
start_timeto the response with the200statusresponse-required-property-added
- ○
added the required property
trimto the response with the200statusresponse-required-property-added
This revision also has 11 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ▲
- ▲
the response property
error_codebecame nullable for the status200response-property-became-nullable
- ▲
- ▲
added the new path request parameter
AccountSidnew-request-path-parameter
- ▲
added the new path request parameter
Sidnew-request-path-parameter
- ▲
the
sourceresponse's property type/format changed fromstring/to/for status200response-property-type-changed
- ▲
the
statusresponse's property type/format changed fromstring/to/for status200response-property-type-changed
- ▲
the
subresource_urisresponse's property type/format changed fromobject/to/for status200response-property-type-changed
- ●
removed the optional property
subresource_uris/transcriptionsfrom the response with the200statusresponse-optional-property-removed
- ○
added the non-success response with the status
401response-non-success-status-added
- ○
added the non-success response with the status
404response-non-success-status-added
- ○
added
RecordingSourceto thesourceresponse propertyallOflist for the response status200response-property-all-of-added
- ○
added
RecordingStatusto thestatusresponse propertyallOflist for the response status200response-property-all-of-added
- ○
added
RecordingSubresourceUristo thesubresource_urisresponse propertyallOflist for the response status200response-property-all-of-added
- ○
removed the
1.00enum value from thechannelsresponse property for the response status200response-property-enum-value-removed
- ○
removed the
2.00enum value from thechannelsresponse property for the response status200response-property-enum-value-removed
- ○
removed the
Conferenceenum value from thesourceresponse property for the response status200response-property-enum-value-removed
- ○
removed the
DialVerbenum value from thesourceresponse property for the response status200response-property-enum-value-removed
- ○
removed the
OutBoundApienum value from thesourceresponse property for the response status200response-property-enum-value-removed
- ○
removed the
RecordVerbenum value from thesourceresponse property for the response status200response-property-enum-value-removed
- ○
removed the
StartCallRecordingApienum value from thesourceresponse property for the response status200response-property-enum-value-removed
- ○
removed the
StartConferenceRecordingenum value from thesourceresponse property for the response status200response-property-enum-value-removed
- ○
removed the
Trunkingenum value from thesourceresponse property for the response status200response-property-enum-value-removed
- ○
removed the
in-progressenum value from thestatusresponse property for the response status200response-property-enum-value-removed
- ○
removed the
pausedenum value from thestatusresponse property for the response status200response-property-enum-value-removed
- ○
removed the
stoppedenum value from thestatusresponse property for the response status200response-property-enum-value-removed
This revision also has 14 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ▲