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
| Header | Required | Value | Description |
|---|---|---|---|
x-api-key | Yes | your sub-account API key (cfy_…) | Authenticates the request; or use Authorization: Bearer <key>. |
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The call id (UUID) or its call_sid. |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
download | boolean | No | false | When 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.