Voxbi Cockpit APIs
All endpoints

Download a call recording (user, pbx)

Streams the audio recording for a call. By default the recording for the given call id is returned. To fetch a specific recording variant (caller leg, callee leg, or the combined file), pass its path (obtained from the recording_file* references on the call-detail or, in the list, when extras=true).

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.

HTTP: bearerAuth

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>
id query · integer · int64 *
The `cdr_id` of the call whose recording to download.
path query · string
Specific recording-file path to download (the `path` value from a `recording_file`, `recording_file_path_caller`, or `recording_file_path_callee` reference). Omit to download the default recording for the call.

Responses

The recording audio stream.
Response schema
No response body.
Authorization Token Missing. This error is returned when the authorization token is missing.
Response schema
errorstring
Error message
example: Authorization Token is missing
The presented PBX API key does not carry the required `call-history` ability/scope.
Response schema
No response body.
No recording exists for the given call or path.
Response schema
No response body.
Too many requests. Rate-limited to 120 requests per minute per principal.
Response schema
No response body.
get https://cockpit.voxbi.com/api/v1/call-recording
Base URL
Request sample
curl -X GET 'https://cockpit.voxbi.com/api/v1/call-recording' \
  -H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/call-recording', {
  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/call-recording',
    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/call-recording', false, $context);
$data = json_decode($response, true);
print_r($data);
No example for this status.
{}
"error": "Authorization Token is missing"
}
Cache-Control string
example: private, must-revalidate
Connection string
example: keep-alive
Content-Type string
example: application/json
Vary string
example: Origin
X-RateLimit-Limit integer
Max requests allowed in the current rate-limit window.
example: 60
X-RateLimit-Remaining integer
Requests remaining in the current rate-limit window.
example: 57
No example for this status.
No example for this status.
No example for this status.