curl --request GET 'https://api.brightalk.ai/recordings?limit=20' \
--header "Authorization: Bearer $BRIGHTALK_API_KEY" \
--header "Brightalk-Version: 2026-07-16"const response = await fetch("https://api.brightalk.ai/recordings?limit=20", {
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?limit=20",
headers={
"Authorization": f"Bearer {os.environ['BRIGHTALK_API_KEY']}",
"Brightalk-Version": "2026-07-16",
},
)
print(response.status_code, response.json()){
"data": [
{
"object": "recording",
"id": "22222222-2222-5222-9222-222222222222",
"call_id": "11111111-1111-4111-8111-111111111111",
"contact_id": "con_demo_001",
"recorded_at": "2026-07-20T01:00:00Z",
"duration_seconds": 92,
"media_type": "audio/mpeg",
"download_url": "<string>",
"download_url_expires_at": "2026-07-20T01:15:00Z"
}
],
"next_cursor": "<string>"
}List call recordings
Returns organization recordings from both call tables, regardless of how the call was created. Results use newest-first cursor pagination ordered by recording time, then recording ID. 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?limit=20' \
--header "Authorization: Bearer $BRIGHTALK_API_KEY" \
--header "Brightalk-Version: 2026-07-16"const response = await fetch("https://api.brightalk.ai/recordings?limit=20", {
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?limit=20",
headers={
"Authorization": f"Bearer {os.environ['BRIGHTALK_API_KEY']}",
"Brightalk-Version": "2026-07-16",
},
)
print(response.status_code, response.json()){
"data": [
{
"object": "recording",
"id": "22222222-2222-5222-9222-222222222222",
"call_id": "11111111-1111-4111-8111-111111111111",
"contact_id": "con_demo_001",
"recorded_at": "2026-07-20T01:00:00Z",
"duration_seconds": 92,
"media_type": "audio/mpeg",
"download_url": "<string>",
"download_url_expires_at": "2026-07-20T01:15:00Z"
}
],
"next_cursor": "<string>"
}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}$Query Parameters
Number of resources to return. Defaults to 20 and is capped at 100.
1 <= x <= 100An opaque cursor returned by the previous page.
1 - 2048An opaque resource identifier.
1 - 255"con_demo_001"
The only accepted value is download_url, which adds a signed download URL to every returned row. Omit for a lighter metadata-only response.
download_url 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 <= 3600