Recordings
List All Recordings
Retrieve a paginated list of Vobiz call recordings with filters for recording type, trunk, or extension - for archival, compliance, and quality assurance.
GET
/
api
/
v1
/
Account
/
{auth_id}
/
Recording
/
List recordings
curl --request GET \
--url https://api.vobiz.ai/api/v1/Account/{auth_id}/Recording/ \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>'import requests
url = "https://api.vobiz.ai/api/v1/Account/{auth_id}/Recording/"
headers = {
"X-Auth-ID": "<api-key>",
"X-Auth-Token": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Auth-ID': '<api-key>', 'X-Auth-Token': '<api-key>'}
};
fetch('https://api.vobiz.ai/api/v1/Account/{auth_id}/Recording/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"objects": [
{
"recording_id": "rec_XXXXXXXXXX",
"recording_url": "https://storage.vobiz.ai/recordings/rec_XXXXXXXXXX.mp3",
"duration": 120,
"file_format": "mp3"
}
]
}GET https://api.vobiz.ai/api/v1/Account/{auth_id}/Recording/
limit and offset.
Pagination here is offset-based (
limit + offset), not page-based. This differs from the CDR list, which uses page + per_page. To get the next page, add limit to offset (page 2 of 20 = offset=20), or follow the ready-made meta.next URL in the response.Use Cases: Retrieve recordings for archival, compliance, quality assurance, or to provide playback links to customers. The response includes recording IDs, call IDs for cross-referencing with CDRs, and download URLs.
Case Sensitivity Notice: Note that
Account and Recording are capitalized in the URL path. Some APIs are case-sensitive, so ensure the capitalization matches exactly.Authentication required:
X-Auth-ID- Your account ID (e.g.,MA_XXXXXXXX)X-Auth-Token- Your account Auth TokenContent-Type: application/json
Query Parameters
| Field | Type | Required | Description |
|---|---|---|---|
limit | integer | No | The number of recording records to return in one request (default: 20, max: 100). |
offset | integer | No | Where to start the list for pagination. Set to 20 to see the next page after the first 20 results (default: 0). |
call_uuid | string | No | Filter recordings by a specific call UUID. Returns only recordings associated with the given call. Use this to cross-reference a CDR with its recordings. |
recording_type | string | No | Filter by recording type. Observed values: call (regular call leg), conference, and trunk (trunk-level capture). |
Response
A successful request returns a200 OK status with a JSON array of recording objects.
Success Response - 200 OK
{
"api_id": "319ab584-cfc4-452c-a0ea-2f2f2f506a20",
"meta": {
"limit": 20,
"next": "/v1/Account/MA_XXXXXXXX/Recording/?limit=20&offset=20",
"offset": 0,
"previous": null,
"total_count": 721
},
"objects": [
{
"add_time": "2026-05-07 09:45:35.79276+05:30",
"call_uuid": "11223344-5566-7788-99aa-bbccddeeff00",
"conference_name": null,
"from_number": "+919876543210",
"monthly_recording_storage_amount": 0,
"recording_duration_ms": "7880.00000",
"recording_end_ms": null,
"recording_format": "wav",
"recording_id": "aabbccdd-1234-5678-90ab-cdef12345678",
"recording_start_ms": null,
"recording_storage_duration": 6,
"recording_storage_rate": 0.005,
"recording_type": "trunk",
"recording_url": "https://recordings.vobiz.ai/example/abc123.mp3",
"resource_uri": "/v1/Account/MA_XXXXXXXX/Recording/aabbccdd-1234-5678-90ab-cdef12345678/",
"rounded_recording_duration": 60,
"to_number": "+918012345678"
},
{
"add_time": "2026-05-02 10:12:39.347981+05:30",
"call_uuid": "11223344-5566-7788-99aa-bbccddeeff00",
"conference_name": "",
"from_number": "+919876543210",
"monthly_recording_storage_amount": 0,
"recording_duration_ms": "31040.00000",
"recording_end_ms": "1777696958218.00000",
"recording_format": "mp3",
"recording_id": "aabbccdd-1234-5678-90ab-cdef12345678",
"recording_start_ms": "1777696927178.00000",
"recording_storage_duration": 11,
"recording_storage_rate": 0.005,
"recording_type": "call",
"recording_url": "https://recordings.vobiz.ai/example/abc123.mp3",
"resource_uri": "/v1/Account/MA_XXXXXXXX/Recording/aabbccdd-1234-5678-90ab-cdef12345678/",
"rounded_recording_duration": 60,
"to_number": "+918012345678"
}
]
}
Response Fields
recording_id- Unique identifier for the recording (used for download)call_uuid- Cross-reference with CDR recordsrecording_url- Link to the actual audio file (MP3/WAV)add_time- Timestamp when the recording was addedrecording_duration_ms- Recording length in millisecondsrounded_recording_duration- Recording length rounded up (seconds, billing basis)recording_format- File format (mp3orwav)recording_type- Type of recording (call,conference, ortrunk)from_number/to_number- Caller and callee numbers on the callresource_uri- Canonical API path for the recording resourcemeta- Pagination metadata (limit,offset,next,previous,total_count)
Examples
cURL - List Trunk Recordings
cURL Request
curl -X GET "https://api.vobiz.ai/api/v1/Account/{auth_id}/Recording/?limit=20&offset=0&recording_type=trunk" \
-H "X-Auth-ID: {auth_id}" \
-H "X-Auth-Token: {auth_token}" \
-H "Content-Type: application/json"
cURL - Filter by Call UUID
cURL Request
curl -X GET "https://api.vobiz.ai/api/v1/Account/MA_XXXXXXXX/Recording/?call_uuid=7f8e9d2c-1a3b-4c5d-6e7f-8g9h0i1j2k3l" \
-H "X-Auth-ID: MA_XXXXXXXX" \
-H "X-Auth-Token: your_auth_token" \
-H "Content-Type: application/json"
Generic Template (Use Your Own Values)
cURL Template
curl -X GET "https://api.vobiz.ai/api/v1/Account/{auth_id}/Recording/?limit={LIMIT}&offset={OFFSET}&recording_type={TYPE}" \
-H "X-Auth-ID: {auth_id}" \
-H "X-Auth-Token: {auth_token}" \
-H "Content-Type: application/json"
Parameter Quick Reference
| Parameter | Example | Description |
|---|---|---|
limit | 20 | Number of records to return |
offset | 0 | Starting position (0 for first page, 20 for second, etc.) |
call_uuid | 7f8e9d2c-1a3b-4c5d-6e7f-8g9h0i1j2k3l | Filter recordings for a specific call |
recording_type | call | Filter by type: call, conference, or trunk |
Quick Tips:
- Pagination: Use
offsetto navigate through pages (offset = page × limit), or followmeta.next. - Recording Type: Filter by
call,conference, ortrunkto get specific recording types. - Case Sensitive: Ensure
AccountandRecordingare capitalized in the URL. - Filter by Call: Use
call_uuidto get recordings for a specific call. - Cross-Reference: Match a recording’s
call_uuidagainst a CDR’suuidto tie audio to call metadata.
Edge cases
- Empty account / no matches: returns
200withobjects: []andmeta.total_count: 0- not a404. - Last page:
meta.nextisnullonce you reach the end; stop paging when it isnull. - Timestamp fields:
recording_start_ms/recording_end_mscan benull(e.g. for sometrunkcaptures);recording_duration_msis a string of milliseconds.rounded_recording_durationis the integer-seconds value used for billing. - No cross-account access: this endpoint returns recordings for the
auth_idin the path only.
Next Steps:
Authorizations
Your Vobiz account Auth ID
Your Vobiz account Auth Token
Path Parameters
Your account Auth ID
Example:
"MA_XXXXXX"
Was this page helpful?
⌘I
List recordings
curl --request GET \
--url https://api.vobiz.ai/api/v1/Account/{auth_id}/Recording/ \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>'import requests
url = "https://api.vobiz.ai/api/v1/Account/{auth_id}/Recording/"
headers = {
"X-Auth-ID": "<api-key>",
"X-Auth-Token": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Auth-ID': '<api-key>', 'X-Auth-Token': '<api-key>'}
};
fetch('https://api.vobiz.ai/api/v1/Account/{auth_id}/Recording/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"objects": [
{
"recording_id": "rec_XXXXXXXXXX",
"recording_url": "https://storage.vobiz.ai/recordings/rec_XXXXXXXXXX.mp3",
"duration": 120,
"file_format": "mp3"
}
]
}