List call history (CDRs) (user, pbx)
Returns the paginated call history (call detail records) for the authenticated principal, newest first. Results are scoped server-side to the caller's PBX (and, for a user token, to the caller's own extension), so the company scope can never be supplied or overridden by the client.
With a PBX-owned API key the request spans the whole PBX by default. Pass
extension_id or extension to narrow it to the calls made or received by a
single user's extension. The value is validated against the authenticated PBX
before use, and the pair is always re-derived server-side, so a mismatched
extension / extension_id combination cannot widen the scope. With a user
personal access token both parameters are ignored: the query is always locked
to the caller's own extension.
Authentication accepts either a user personal access token or a PBX-owned
API key. A PBX API key must carry the call-history ability/scope.
Rate-limited to 120 requests per minute per principal (user, PBX or IP);
exceeding the limit returns 429 Too Many Requests.
User bearer token. Default authentication for customer-facing endpoints.
Obtain a token by calling POST /login with your credentials, then send it
on every subsequent request as Authorization: Bearer <token>. The token
inherits the permissions and PBX scope of the authenticated user.
- HTTP Authorization Scheme
bearer- Bearer format
Bearer <token>
application/jsonResponses
dataarray<object>
24904193550e8400-e29b-41d4-a716-446655440010INCOMING OUTGOINGINCOMING1550e8400-e29b-41d4-a716-446655440020Customer Support+12125550100550e8400-e29b-41d4-a716-446655440030Main Line+121255501112026-01-122026-01-12 15:50:192026-01-12 15:50:25600extras*array<object>
[]object
paginationobject
1https://cockpit.voxbi.com/api/v1/cdrs-utility/cdrs?page=1https://cockpit.voxbi.com/api/v1/cdrs-utility/cdrs?page=2https://cockpit.voxbi.com/api/v1/cdrs-utility/cdrs?page=1031035515https://cockpit.voxbi.com/api/v1/cdrs-utility/cdrs1CDRs retrieved successfully.Authorization Token is missinghttps://cockpit.voxbi.com/api/v1/cdrs
curl -X GET 'https://cockpit.voxbi.com/api/v1/cdrs' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/cdrs', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${YOUR_TOKEN}`,
},
});
const data = await response.json();
console.log(data);
import requests
response = requests.get('https://cockpit.voxbi.com/api/v1/cdrs',
headers={'Authorization': f'Bearer {YOUR_TOKEN}'}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
'http' => [
'method' => 'GET',
'header' => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
],
]);
$response = file_get_contents('https://cockpit.voxbi.com/api/v1/cdrs', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
"data": [ … ],
{ … },
{ … }
"pagination": { … },
{ … }
private, must-revalidatekeep-aliveapplication/jsonOrigin6057