curl --request GET 'https://api.brightalk.ai/recordings/22222222-2222-5222-9222-222222222222' \
--header "Authorization: Bearer $BRIGHTALK_API_KEY" \
--header "Brightalk-Version: 2026-07-16"const response = await fetch("https://api.brightalk.ai/recordings/22222222-2222-5222-9222-222222222222", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.BRIGHTALK_API_KEY}`,
"Brightalk-Version": "2026-07-16",
},
});
console.log(response.status, await response.json());import os
import requests
response = requests.request(
"GET",
"https://api.brightalk.ai/recordings/22222222-2222-5222-9222-222222222222",
headers={
"Authorization": f"Bearer {os.environ['BRIGHTALK_API_KEY']}",
"Brightalk-Version": "2026-07-16",
},
)
print(response.status_code, response.json())Retrieve a call recording
Returns one recording’s metadata and a freshly minted signed download URL. The download URL is short-lived; request it again instead of caching it for later use. Every response includes Brightalk-Version and X-Request-Id; rate-limited responses also expose the effective bucket counters.
curl --request GET 'https://api.brightalk.ai/recordings/22222222-2222-5222-9222-222222222222' \
--header "Authorization: Bearer $BRIGHTALK_API_KEY" \
--header "Brightalk-Version: 2026-07-16"const response = await fetch("https://api.brightalk.ai/recordings/22222222-2222-5222-9222-222222222222", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.BRIGHTALK_API_KEY}`,
"Brightalk-Version": "2026-07-16",
},
});
console.log(response.status, await response.json());import os
import requests
response = requests.request(
"GET",
"https://api.brightalk.ai/recordings/22222222-2222-5222-9222-222222222222",
headers={
"Authorization": f"Bearer {os.environ['BRIGHTALK_API_KEY']}",
"Brightalk-Version": "2026-07-16",
},
)
print(response.status_code, response.json())Authorizations
Use a server-side Brightalk API key in the Authorization header.
Headers
Selects the date-based API version. Omission uses the organization’s pinned default.
"2026-07-16"A caller-generated correlation value matching [A-Za-z0-9._:-]{1,64}. Invalid values are replaced.
64^[A-Za-z0-9._:-]{1,64}$Path Parameters
The opaque Recording identifier. An opaque resource identifier.
1 - 255"22222222-2222-5222-9222-222222222222"
Query Parameters
TTL override in seconds for the signed download URL. Defaults to 900 and must be between 60 and 3600. On the list operation this is only meaningful together with include=download_url; supplying it without include=download_url returns 400 validation_error rather than being silently ignored. It is always meaningful on the single-recording get.
60 <= x <= 3600Response
Recording returned.
A Recording as returned by the single-recording get, where download_url and download_url_expires_at are guaranteed rather than conditional on include=download_url. Composed rather than duplicated so the two operations cannot drift apart on the other seven fields.
"recording""recording"
An opaque resource identifier, derived from the source row. Stable for the same call recording.
1 - 255"22222222-2222-5222-9222-222222222222"
The Call resource id this recording belongs to. Null when the call was not created through the Public API (dashboard, non-API Automation, or manual dial).
1 - 255"11111111-1111-4111-8111-111111111111"
An opaque resource identifier. Null when no contact is linked to this recording.
1 - 255"con_demo_001"
When the call occurred. The sort key for pagination.
"2026-07-20T01:00:00Z"
x >= 092
"audio/mpeg""audio/mpeg"
A freshly minted, short-lived signed URL for the recording's MP3 bytes. Present when requested with include=download_url on the list operation, and always present on the single-recording get. Treat it as opaque; do not construct, parse, or cache it past its expiry.
2048When download_url expires. Absent whenever download_url is absent.
"2026-07-20T01:15:00Z"