Get a recording URL

Get a short-lived signed URL to play or download a call's recording.

GET https://api.centerfy.ai/webhooks/inbound/calls/:id/recording

Headers

HeaderRequiredValueDescription
x-api-keyYesyour sub-account API key (cfy_…)Authenticates the request; or use Authorization: Bearer <key>.

Path parameters

NameTypeRequiredDescription
idstringYesThe call id (UUID) or its call_sid.

Query parameters

NameTypeRequiredDefaultDescription
downloadbooleanNofalseWhen true, the URL makes the browser download the file (call-recording-<call_sid>.<ext>) instead of playing it.

Example

curl -X GET "https://api.centerfy.ai/webhooks/inbound/calls/{id}/recording?download=false" \
  -H "x-api-key: $CENTERFY_API_KEY" \
  --output preview.mp3
import { CenterfyClient } from "@centerfy/sdk";

const centerfy = new CenterfyClient({ apiKey: process.env.CENTERFY_API_KEY! });

const result = await centerfy.callRecordings.getRecording("<callId>", {
  "download": "false"
});
console.log(result);
centerfy callRecordings get <callId> '{"download":"false"}'

MCP tool: centerfy_call_recordings_get (see MCP server)

Response

{
  "status": "success",
  "recording": {
    "call_id": "6f7a8b9c-0d1e-4f2a-8b3c-4d5e6f7a8b9c",
    "call_sid": "CA0123456789abcdef0123456789abcdef",
    "duration": 184,
    "started_at": "2026-10-05T16:17:00.000Z",
    "hipaa_mode": false,
    "url": "https://centerfy-media-storage.s3.us-east-1.amazonaws.com/call-recordings/example.mp3?X-Amz-Expires=3600&X-Amz-Signature=...",
    "content_type": "audio/mpeg",
    "expires_in_seconds": 3600,
    "expires_at": "2026-10-05T17:20:00.000Z"
  }
}

Errors

  • 400 — if the id is empty or longer than 200 characters; 404 if the call is not in this sub-account or has no recording; 500 if the URL can’t be generated.

Notes

The URL expires after 1 hour, or 5 minutes when the sub-account has HIPAA mode on — request a fresh one each time; don’t store it. Responses are sent with Cache-Control: no-store. content_type is audio/mpeg, audio/mp4, audio/wav or audio/ogg. Some older recordings return their original URL with content_type, expires_in_seconds and expires_at set to null.

© 2026 Centerfy AI. All rights reserved.