***
id: 7886c844-91fc-4222-aa78-c619cea31031
slug: /sdks/reference/recordings/retrieve
title: Retrieve
sidebar-title: Retrieve
max-toc-depth: 3
----------------
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`
***
## Request examples
```javascript title="Node.js"
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();
```
```csharp
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 { ["signalwireSpaceUrl"] = "{SPACE}.signalwire.com" });
var recording = RecordingResource.Fetch(
pathSid: "Sid"
);
Console.WriteLine(recording.CallSid);
}
}
```
```python
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)
```
```ruby
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
```