Recordings

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.

get/Accounts/{AccountSid}/Recordings/{Sid}

Path parameters

AccountSidstring uuid required

Universal Unique Identifier.

The unique identifier for the account that is associated with this recording.

Sidstring uuid required

Universal Unique Identifier.

The unique identifier for the recording.

Response

The request has succeeded.

sidstring uuid required

Universal Unique Identifier.

account_sidstring uuid required

Universal Unique Identifier.

api_versionstring required

The version of the SignalWire API.

call_sidstring uuid required

Universal Unique Identifier.

conference_sidstring uuid required

Universal Unique Identifier.

channel'1' | '2' required

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

channels'1' | '2' required

The number of channels in a recording. Returns '1' for mono or '2' for stereo.

date_createdstring required

The date, in RFC 2822 format, this recording was created.

date_updatedstring required

The date, in RFC 2822 format, this recording was updated.

start_timestring nullable required

The time, in RFC 2822 format, this recording started.

end_timestring nullable required

The time, in RFC 2822 format, this recording ended.

durationinteger required

The length, in seconds, of the recording.

pricestring nullable required

The cost for the recording.

price_unitstring required

The currency of the price of the recording.

source'DialVerb' | 'Conference' | 'OutBoundApi' | 'Trunking' | 'RecordVerb' | 'StartCallRecordingApi' | 'StartConferenceRecording' required

Recording source.

status'queued' | 'in-progress' | 'paused' | 'resumed' | 'completed' | 'absent' | 'stopped' required

Recording status.

error_codestring nullable required

Further details about a failed recording.

uristring required

The URI of the recording.

encryption_detailsstring nullable required

Encryption details. Always null.

trimstring required

Whether leading and trailing silence is trimmed from a recording.

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

  • 2916d5e3072e46See the full diff
    • the account_sid response's property type/format changed from string/uuid to / for status 200

      response-property-type-changed

    • the call_sid response's property type/format changed from /uuid to / for status 200

      response-property-type-changed

    • the conference_sid response's property type/format changed from /uuid to / for status 200

      response-property-type-changed

    • the sid response's property type/format changed from string/uuid to / for status 200

      response-property-type-changed

    • added uuid to the account_sid response property allOf list for the response status 200

      response-property-all-of-added

    • added uuid to the sid response property allOf list for the response status 200

      response-property-all-of-added

    • added uuid to the call_sid response property anyOf list for the response status 200

      response-property-any-of-added

    • added uuid to the conference_sid response property anyOf list for the response status 200

      response-property-any-of-added

    • removed subschema #1 from the call_sid response property anyOf list for the response status 200

      response-property-any-of-removed

    • removed subschema #1 from the conference_sid response property anyOf list for the response status 200

      response-property-any-of-removed

    • added 'unevaluatedProperties' constraint to the response body for the status 200

      response-body-unevaluated-properties-added

    • added 'unevaluatedProperties' constraint to the response body for the status 400

      response-body-unevaluated-properties-added

    • added 'unevaluatedProperties' constraint to the response body for the status 401

      response-body-unevaluated-properties-added

    • added 'unevaluatedProperties' constraint to the response body for the status 404

      response-body-unevaluated-properties-added

    • added 'unevaluatedProperties' constraint to the subresource_uris/allOf[RecordingSubresourceUris]/ response property for the status 200

      response-property-unevaluated-properties-added

    • response property call_sid list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property conference_sid list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property encryption_details list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property end_time list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property error_code list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property price list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property start_time list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

  • d5fbaaddfa3e7623See the full diff
    • the response property call_sid became nullable for the status 200

      response-property-became-nullable

    • the response property conference_sid became nullable for the status 200

      response-property-became-nullable

    • the response property end_time became nullable for the status 200

      response-property-became-nullable

    • the response property error_code became nullable for the status 200

      response-property-became-nullable

    • the response property price became nullable for the status 200

      response-property-became-nullable

    • the channels response's property type/format changed from integer/int32 to string/ for status 200

      response-property-type-changed

    • the duration response's property type/format changed from string/ to integer/int32 for status 200

      response-property-type-changed

    • added the new 1 enum value to the channels response property for the response status 200

      response-property-enum-value-added

    • added the new 2 enum value to the channels response property for the response status 200

      response-property-enum-value-added

    • added the new absent enum value to the status/allOf[RecordingStatus]/ response property for the response status 200

      response-property-enum-value-added

    • added the new completed enum value to the status/allOf[RecordingStatus]/ response property for the response status 200

      response-property-enum-value-added

    • added the new queued enum value to the status/allOf[RecordingStatus]/ response property for the response status 200

      response-property-enum-value-added

    • added the new resumed enum value to the status/allOf[RecordingStatus]/ response property for the response status 200

      response-property-enum-value-added

    • added the non-success response with the status 400

      response-non-success-status-added

    • the response property account_sid became required for the status 200

      response-property-became-required

    • the response property api_version became required for the status 200

      response-property-became-required

    • the response property call_sid became required for the status 200

      response-property-became-required

    • the response property channels became required for the status 200

      response-property-became-required

    • the response property conference_sid became required for the status 200

      response-property-became-required

    • the response property date_created became required for the status 200

      response-property-became-required

    • the response property date_updated became required for the status 200

      response-property-became-required

    • the response property duration became required for the status 200

      response-property-became-required

    • the response property end_time became required for the status 200

      response-property-became-required

    • the response property error_code became required for the status 200

      response-property-became-required

    • the response property price became required for the status 200

      response-property-became-required

    • the response property price_unit became required for the status 200

      response-property-became-required

    • the response property sid became required for the status 200

      response-property-became-required

    • the response property source became required for the status 200

      response-property-became-required

    • the response property status became required for the status 200

      response-property-became-required

    • the response property subresource_uris became required for the status 200

      response-property-became-required

    • the response property subresource_uris/allOf[RecordingSubresourceUris]/transcriptions became required for the status 200

      response-property-became-required

    • the response property uri became required for the status 200

      response-property-became-required

    • added the required property channel to the response with the 200 status

      response-required-property-added

    • added the required property encryption_details to the response with the 200 status

      response-required-property-added

    • added the required property start_time to the response with the 200 status

      response-required-property-added

    • added the required property trim to the response with the 200 status

      response-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_code became nullable for the status 200

      response-property-became-nullable

  • 3c88f14db21e5117See the full diff
    • added the new path request parameter AccountSid

      new-request-path-parameter

    • added the new path request parameter Sid

      new-request-path-parameter

    • the source response's property type/format changed from string/ to / for status 200

      response-property-type-changed

    • the status response's property type/format changed from string/ to / for status 200

      response-property-type-changed

    • the subresource_uris response's property type/format changed from object/ to / for status 200

      response-property-type-changed

    • removed the optional property subresource_uris/transcriptions from the response with the 200 status

      response-optional-property-removed

    • added the non-success response with the status 401

      response-non-success-status-added

    • added the non-success response with the status 404

      response-non-success-status-added

    • added RecordingSource to the source response property allOf list for the response status 200

      response-property-all-of-added

    • added RecordingStatus to the status response property allOf list for the response status 200

      response-property-all-of-added

    • added RecordingSubresourceUris to the subresource_uris response property allOf list for the response status 200

      response-property-all-of-added

    • removed the 1.00 enum value from the channels response property for the response status 200

      response-property-enum-value-removed

    • removed the 2.00 enum value from the channels response property for the response status 200

      response-property-enum-value-removed

    • removed the Conference enum value from the source response property for the response status 200

      response-property-enum-value-removed

    • removed the DialVerb enum value from the source response property for the response status 200

      response-property-enum-value-removed

    • removed the OutBoundApi enum value from the source response property for the response status 200

      response-property-enum-value-removed

    • removed the RecordVerb enum value from the source response property for the response status 200

      response-property-enum-value-removed

    • removed the StartCallRecordingApi enum value from the source response property for the response status 200

      response-property-enum-value-removed

    • removed the StartConferenceRecording enum value from the source response property for the response status 200

      response-property-enum-value-removed

    • removed the Trunking enum value from the source response property for the response status 200

      response-property-enum-value-removed

    • removed the in-progress enum value from the status response property for the response status 200

      response-property-enum-value-removed

    • removed the paused enum value from the status response property for the response status 200

      response-property-enum-value-removed

    • removed the stopped enum value from the status response property for the response status 200

      response-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