Skip to main content
GET
/
v1
/
recordings
/
{id}
/
download
# Follow redirects (-L) to download the file
curl -L https://api.kallglot.com/v1/recordings/rec_01HABC987654321/download \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -o recording.mp3
HTTP/1.1 302 Found
Location: https://storage.kallglot.com/recordings/rec_01HABC987654321.mp3?signature=xxx&expires=1711454400
Content-Type: audio/mpeg
Content-Disposition: attachment; filename="recording-sess_01HXYZ123456789.mp3"
Download the audio file for a recording. This endpoint returns a redirect to a pre-signed download URL.

Path Parameters

id
string
required
The unique recording identifier (e.g., rec_01HABC987654321).

Query Parameters

format
string
default:"mp3"
Desired audio format:
  • mp3 - MP3 format (smaller file size)
  • wav - WAV format (lossless)
  • ogg - OGG Vorbis format
sample_rate
number
Desired sample rate in Hz. If not specified, uses the original sample rate. Supported: 8000, 16000, 22050, 44100, 48000

Response

Returns a 302 Redirect to the pre-signed download URL.

Headers

HeaderDescription
LocationPre-signed URL for downloading the file
Content-TypeMIME type of the audio file
Content-LengthFile size in bytes
Content-DispositionFilename suggestion
# Follow redirects (-L) to download the file
curl -L https://api.kallglot.com/v1/recordings/rec_01HABC987654321/download \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -o recording.mp3
HTTP/1.1 302 Found
Location: https://storage.kallglot.com/recordings/rec_01HABC987654321.mp3?signature=xxx&expires=1711454400
Content-Type: audio/mpeg
Content-Disposition: attachment; filename="recording-sess_01HXYZ123456789.mp3"

Streaming Downloads

For large recordings, you can stream the download instead of buffering the entire file:
import { createWriteStream } from 'fs';
import { pipeline } from 'stream/promises';

const response = await fetch('https://api.kallglot.com/v1/recordings/rec_01HABC987654321/download?format=mp3', {
  headers: {
    'Authorization': 'Bearer sk_live_your_api_key'
  }
});

await pipeline(
  response.body,
  createWriteStream('recording.mp3')
);
import requests

with requests.get(
    'https://api.kallglot.com/v1/recordings/rec_01HABC987654321/download?format=mp3',
    headers={'Authorization': 'Bearer sk_live_your_api_key'},
    stream=True
) as r:
    r.raise_for_status()
    with open('recording.mp3', 'wb') as f:
        for chunk in r.iter_content(chunk_size=8192):
            f.write(chunk)

Notes

Download URLs expire after 1 hour. If you need to download later, retrieve the recording again to get a fresh URL.
Format conversion happens on-the-fly. Converting to a different format or sample rate may take a moment for large files.