Retrieve call artifacts

Download recordings and call logs from Vapi’s private storage using authenticated, short-lived URLs.

Overview

Call recording storage is now access-controlled. If your integration fetches recordings, logs, PCAP, or video directly, migrate to the authenticated endpoints below to avoid disruption.

Some private storage URLs contain hipaa-recordings in the path. That’s an internal naming detail, it doesn’t mean HIPAA applies to your account.

Call recordings and logs are stored in a private bucket. These URLs aren’t directly downloadable.

To retrieve a recording or log file, call the Vapi API with a Vapi private API key. The API responds with a 302 redirect to a short-lived, authenticated download URL.

Never expose your Private API Key in client-side code or commit it to version control. Store it as a secret in your backend environment.

Get your private API key

Follow the Vapi API key guide to create, view, or copy a private key.

Integration

To download or retrieve a recording or log file, send your Private API Key in the Authorization header:

Authorization: Bearer <PRIVATE_API_KEY>

Each endpoint responds with a 302 redirect to a short-lived signed URL. Most HTTP clients follow redirects by default — for example, curl -L follows the redirect and downloads the artifact in a single command.

Available endpoints

Base URL: https://api.vapi.ai

EndpointReturns
GET /call/{id}/mono-recordingCombined mono recording (WAV/MP3)
GET /call/{id}/stereo-recordingStereo recording, customer + assistant on separate channels (WAV/MP3)
GET /call/{id}/customer-recordingCustomer-only mono recording (WAV/MP3)
GET /call/{id}/assistant-recordingAssistant-only mono recording (WAV/MP3)
GET /call/{id}/video-recordingVideo recording, when enabled (MP4)
GET /call/{id}/call-logsStructured call logs (gzipped JSONL)
GET /call/{id}/pcapPacket capture, when enabled (PCAP)

Example

Download a stereo recording for a given call:

$curl -L \
> -H "Authorization: Bearer $VAPI_PRIVATE_API_KEY" \
> -o recording.wav \
> https://api.vapi.ai/call/<CALL_ID>/stereo-recording

Download call logs:

$curl -L \
> -H "Authorization: Bearer $VAPI_PRIVATE_API_KEY" \
> -o call-logs.jsonl.gz \
> https://api.vapi.ai/call/<CALL_ID>/call-logs

Signed URLs returned by these endpoints expire after a short period. Always request a fresh URL from the API rather than caching the redirect target.