Retrieve a Recording
Use this endpoint for the Recordings method to retrieve a single recording media or its metadata.
Direct external access to recording files is useful for many external applications, so they are public and do not require Basic Auth to access. This allows external applications to embed recording URLs without exposing their SignalWire API credentials. SignalWire recording URLs are long and random, making them difficult to guess or exploit unless you reveal the URL.
Recording File Types
WAV
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}
MP3
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
Metadata
A recording's metadata, such as duration, cost, time, can be returned by setting the Recording URI's extension to .json
. For example:
GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.json
Parameters
Parameter |
---|
No Parameters |
Request
Retrieve a Recording's meta data
- cURL
- Node.js
- C#
- Python
- Ruby
curl -L https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.json \
-X GET \
-u "YourProjectID:YourAuthToken"
const { RestClient } = require('@signalwire/compatibility-api')
const client = RestClient('YourProjectID', 'YourAuthToken', { signalwireSpaceUrl: 'example.signalwire.com' })
client.recordings('Sid')
.fetch()
.then(recording => console.log(recording.callSid))
.done();
using System;
using System.Collections.Generic;
using Twilio;
using Twilio.Rest.Api.V2010.Account;
class Program
{
static void Main(string[] args)
{
TwilioClient.Init("YourProjectID", "YourAuthToken", new Dictionary<string, object> { ["signalwireSpaceUrl"] = "{SPACE}.signalwire.com" });
var recording = RecordingResource.Fetch(
pathSid: "Sid"
);
Console.WriteLine(recording.CallSid);
}
}
from signalwire.rest import Client as signalwire_client
client = signalwire_client("YourProjectID", "YourAuthToken", signalwire_space_url = 'example.signalwire.com')
recording = client.recordings('Sid').fetch()
print(recording.call_sid)
require 'signalwire/sdk'
@client = Signalwire::REST::Client.new 'YourProjectID', 'YourAuthToken', signalwire_space_url: "example.signalwire.com"
recording = @client.recordings('Sid').fetch
puts recording.call_sid
Responses
200 OK
{
"account_sid": "720796a0-8ee9-4350-83bd-2d07a3121f1e",
"api_version": "2010-04-01",
"call_sid": "43bb71ee-553f-4074-bb20-8e2747647cce",
"conference_sid": "2071320d-ee82-4578-84e0-379fb227eb77",
"channels": 1,
"date_created": "Tue, 25 Sept 2018 23:00:00 +0000",
"date_updated": "Wed, 26 Sept 2018 23:00:04 +0000",
"start_time": "Tue, 25 Sept 2018 23:00:00 +0000",
"end_time": "Wed, 26 Sept 2018 23:00:04 +0000",
"price": "-0.0025",
"price_unit": "USD",
"duration": "4",
"sid": "19e436af-5688-4307-b03b-bdb2b42b8142",
"source": "StartConferenceRecordingAPI",
"status": "completed",
"error_code": null,
"uri": "/api/laml/2010-04-01/Accounts/720796a0-8ee9-4350-83bd-2d07a3121f1e/Conferences/2071320d-ee82-4578-84e0-379fb227eb77/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"
}
}