Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.vobiz.ai/llms.txt

Use this file to discover all available pages before exploring further.

Retrieve detailed call logs, billing data, and per-call telemetry for your account. Vobiz CDRs include caller/callee identifiers, timing, billing, hangup attribution, and quality metrics (MOS, jitter, packet loss). Use them for billing reconciliation, traffic analysis, fraud detection, and compliance reporting.
Authentication: All CDR endpoints use API key authentication. Pass X-Auth-ID and X-Auth-Token in your request headers.

Endpoints Overview

MethodEndpointDescription
GET/api/v1/account/{auth_id}/cdrList CDRs with filters + pagination + summary
GET/api/v1/account/{auth_id}/cdr/{call_id}Fetch a single CDR by call ID
GET/api/v1/account/{auth_id}/cdr/searchSame as list, also echoes active filters in filters
GET/api/v1/account/{auth_id}/cdr/recentGet the most recent CDRs (last 20 by default)
GET/api/v1/account/{auth_id}/cdr/exportExport CDRs as a CSV file

List CDRs

GET https://api.vobiz.ai/api/v1/account/{auth_id}/cdr
Returns CDRs for your account. Supports filtering by phone numbers, date range, call direction, duration, and pagination. Response includes a summary block with aggregate metrics across the filtered set.
curl -X GET \
  "https://api.vobiz.ai/api/v1/account/{auth_id}/cdr?start_date=2026-03-01&end_date=2026-03-17" \
  --header 'X-Auth-ID: {auth_id}' \
  --header 'X-Auth-Token: {auth_token}' \
  --header 'Accept: application/json'

Get Single CDR

GET https://api.vobiz.ai/api/v1/account/{auth_id}/cdr/{call_id}
Retrieve full detail for a specific call by its call_id. Useful when you have a call_id from a webhook callback or previous list response.
cURL
curl --location 'https://api.vobiz.ai/api/v1/account/{auth_id}/cdr/{call_id}' \
  --header 'X-Auth-ID: {auth_id}' \
  --header 'X-Auth-Token: {auth_token}' \
  --header 'Accept: application/json'

Search CDRs

GET https://api.vobiz.ai/api/v1/account/{auth_id}/cdr/search
Identical filters to the list endpoint, but the response also includes a filters object echoing the active filters applied. Useful when building search UIs that need to display current filter state.
cURL
curl -X GET \
  "https://api.vobiz.ai/api/v1/account/{auth_id}/cdr/search?call_direction=outbound&page=1&per_page=50" \
  --header 'X-Auth-ID: {auth_id}' \
  --header 'X-Auth-Token: {auth_token}' \
  --header 'Accept: application/json'

Recent CDRs

GET https://api.vobiz.ai/api/v1/account/{auth_id}/cdr/recent
Returns the most recent CDRs for your account without requiring a date range. Returns 20 records by default. Use limit to retrieve more. Note: the recent endpoint does not return pagination or summary blocks - just data.
cURL
curl -X GET \
  "https://api.vobiz.ai/api/v1/account/{auth_id}/cdr/recent?limit=50" \
  --header 'X-Auth-ID: {auth_id}' \
  --header 'X-Auth-Token: {auth_token}' \
  --header 'Accept: application/json'

Export as CSV

GET https://api.vobiz.ai/api/v1/account/{auth_id}/cdr/export
Returns CDR data as a downloadable CSV file. Supports the same filters as the list endpoint. Use the -o flag in curl to save directly to a file.
cURL
curl -X GET \
  "https://api.vobiz.ai/api/v1/account/{auth_id}/cdr/export?start_date=2026-03-01&end_date=2026-03-17" \
  --header 'X-Auth-ID: {auth_id}' \
  --header 'X-Auth-Token: {auth_token}' \
  -o cdrs.csv
The export endpoint returns text/csv content. Do not send Accept: application/json on this request.

Query Parameters

Filter Parameters (list, search, export)

ParameterTypeDescription
from_numberstringFilter by the originating phone number (caller).
to_numberstringFilter by the destination phone number (callee).
start_datestring (YYYY-MM-DD)Beginning of the search period. Required when using end_date.
end_datestring (YYYY-MM-DD)End of the search period. Required when using start_date.
call_directionstringinbound or outbound.
min_durationintegerMinimum call duration in seconds.
pageintegerPage number for paginated results. Default: 1. (list, search only)
per_pageintegerRecords per page. Default: 20. Max: 100. (list, search only)
limitintegerNumber of records to return. Default: 20. (recent only)

Response Structure

A successful list/search request returns:
200 OK - Response
{
  "account_id": "MA_ZRTEMCF7",
  "count": 20,
  "data": [
    {
      "id": 18623590,
      "uuid": "bcd1c45d-3f27-41ea-bea1-aa5d4e06dca4",
      "account_id": "MA_ZRTEMCF7",
      "call_direction": "outbound",
      "caller_id_name": "919148227303",
      "caller_id_number": "+918065480214",
      "destination_number": "+919876543210",
      "duration": 6,
      "billsec": 1,
      "ring_time": 5,
      "answer_time": "2026-05-11T06:59:31Z",
      "start_time": "2026-05-11T06:59:26Z",
      "end_time": "2026-05-11T06:59:32Z",
      "progress_time": "2026-05-11T06:59:26Z",
      "created_at": "2026-05-11T06:59:32Z",
      "updated_at": "2026-05-11T06:59:32Z",
      "cost": 0.3,
      "total_cost": 0.3,
      "streaming_cost": 0,
      "currency": "INR",
      "hangup_cause": "NORMAL_CLEARING",
      "hangup_cause_code": 4000,
      "hangup_cause_name": "Normal Hangup",
      "hangup_disposition": "send_bye",
      "hangup_source": "Caller",
      "failure_code": null,
      "failure_reason": null,
      "bridge_uuid": "9e9c108c-6e88-4aad-ad62-cee335b8752c",
      "sip_call_id": "15ad2006-1986-451b-87da-43676cfd8266",
      "sip_user_agent": "Vobiz",
      "codec": "PCMU",
      "mos": 4.5,
      "jitter": 0,
      "packet_loss": 0,
      "network_addr": "3.110.99.6",
      "carrier_ip": null,
      "context": "voice-api",
      "region": "ap-south-1",
      "origination_region": "mumbai",
      "campaign_id": null,
      "customer_endpoint": null,
      "trunk_id": null,
      "terminated_to": null
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 20,
    "total": 4500,
    "pages": 225,
    "has_next": true,
    "has_prev": false
  },
  "summary": {
    "totalCalls": 4500,
    "answeredCalls": 2171,
    "answerRate": 48.2,
    "avgCallDuration": "28s",
    "total_duration_seconds": 118234,
    "total_billable_seconds": 61211,
    "total_cost": 1564.51,
    "last_call_at": "2026-05-11T06:59:26Z"
  },
  "success": true
}

Top-level fields

FieldTypeDescription
account_idstringEcho of the account this CDR set belongs to.
countintegerNumber of records in data.
dataarrayArray of CDR objects (see below).
paginationobjectPagination metadata. Present on list and search; absent on recent.
summaryobjectAggregate metrics across the filtered set. Present on list and search.
filtersobject(search only) Echo of the active filter values applied to this request.
successbooleantrue on a successful response.

Pagination object

FieldTypeDescription
pageintegerCurrent page.
per_pageintegerRecords per page.
totalintegerTotal matching records across all pages.
pagesintegerTotal number of pages.
has_nextbooleantrue if a next page exists.
has_prevbooleantrue if a previous page exists.

Summary object

FieldTypeDescription
totalCallsintegerTotal calls in the filtered set.
answeredCallsintegerCalls that were answered (billsec > 0).
answerRatenumberPercentage of calls answered.
avgCallDurationstringAverage duration as a human-readable string (e.g. "28s").
total_duration_secondsintegerSum of all duration values.
total_billable_secondsintegerSum of all billsec values.
total_costnumberSum of all total_cost values in currency.
last_call_atstring (ISO 8601)Timestamp of the most recent call in the set.

CDR object - every field

FieldTypeDescription
idintegerInternal numeric identifier for the call.
uuidstring (UUID)Globally unique identifier for the call.
account_idstringAccount that owns this call.
call_directionstringinbound or outbound.
caller_id_namestringCaller ID display name.
caller_id_numberstringOriginating phone number (E.164 format).
destination_numberstringDestination phone number or destination identifier.
durationintegerTotal call duration in seconds (ring + talk).
billsecintegerBillable seconds (talk time only).
ring_timeintegerTime the call rang before answer or hangup, in seconds.
answer_timestring (ISO 8601) | nullWhen the call was answered. null if not answered.
start_timestring (ISO 8601)When the call was initiated.
end_timestring (ISO 8601)When the call ended.
progress_timestring (ISO 8601)When the call entered the progress state.
created_atstring (ISO 8601)CDR record creation timestamp.
updated_atstring (ISO 8601)CDR record last-updated timestamp.
costnumberPer-leg cost in currency.
total_costnumberTotal cost including streaming, in currency.
streaming_costnumberCost of audio streaming for this call (if used).
currencystringISO currency code, e.g. INR.
hangup_causestringHigh-level hangup reason (e.g. NORMAL_CLEARING). See the full list below.
hangup_cause_codeintegerNumeric hangup code.
hangup_cause_namestringHuman-readable hangup name.
hangup_dispositionstringSIP hangup disposition (e.g. send_bye, recv_bye).
hangup_sourcestringWhich party initiated the hangup (Caller, Callee, etc.).
failure_codestring | nullFailure code if the call did not connect.
failure_reasonstring | nullHuman-readable failure reason.
bridge_uuidstring (UUID) | nullUUID of the call bridge.
sip_call_idstringSIP-level Call-ID header value.
sip_user_agentstringSIP User-Agent header value of the originating leg.
codecstring | nullAudio codec negotiated (e.g. PCMU, PCMA, opus).
mosnumberMean Opinion Score (call audio quality, 1.0–5.0).
jitternumberJitter in milliseconds.
packet_lossnumberPacket loss percentage.
network_addrstringNetwork address of the call leg.
carrier_ipstring | nullCarrier IP address.
contextstringInternal call context (e.g. voice-api).
regionstringVobiz infrastructure region (e.g. ap-south-1).
origination_regionstringRegion the call originated from.
campaign_idstring | nullCampaign ID if the call is part of a campaign.
customer_endpointstring | nullCustomer endpoint identifier.
trunk_idstring | nullSIP trunk ID used for this call.
terminated_tostring | nullTermination target if forwarded.

Hangup Causes

The table below describes common SIP/B2BUA hangup_cause values you may encounter in your call logs.
hangup_causeDescription
NORMAL_CLEARINGOne of the parties hung up normally.
USER_BUSYThe called party is busy (e.g., already on another call or declined).
NO_ANSWERThe called party did not answer within the timeout period.
ORIGINATOR_CANCELThe caller cancelled the call before it was answered.
CALL_REJECTEDThe destination explicitly rejected the call.
REJECTEDGeneral rejection - the SIP endpoint refused the INVITE.
INVALID_NUMBERThe dialed number format is invalid.
UNALLOCATED_NUMBERThe dialed number is valid but not allocated to any subscriber.
SERVICE_UNAVAILABLEThe destination service is temporarily unavailable (SIP 503).
SERVER_ERRORAn internal server error occurred during call setup.
MEDIA_TIMEOUTNo RTP media packets received - likely a firewall or network issue.
PROTOCOL_ERRORA SIP protocol violation or malformed message.
NETWORK_OUT_OF_ORDERA severe network failure prevented routing.
DESTINATION_OUT_OF_ORDERThe destination endpoint cannot accept the call.
NORMAL_TEMPORARY_FAILUREGeneric temporary failure; retrying may succeed.
SWITCH_CONGESTIONThe SIP switch is at capacity.
UNKNOWNAn error not mapped to a standard cause code.

Examples

Filter by date range

curl -X GET \
  "https://api.vobiz.ai/api/v1/account/{auth_id}/cdr?start_date=2026-03-01&end_date=2026-03-17" \
  --header 'X-Auth-ID: {auth_id}' \
  --header 'X-Auth-Token: {auth_token}'

Outbound calls only, minimum 10 seconds

curl -X GET \
  "https://api.vobiz.ai/api/v1/account/{auth_id}/cdr?call_direction=outbound&min_duration=10&page=1&per_page=20" \
  --header 'X-Auth-ID: {auth_id}' \
  --header 'X-Auth-Token: {auth_token}'

Last 50 recent calls

curl -X GET \
  "https://api.vobiz.ai/api/v1/account/{auth_id}/cdr/recent?limit=50" \
  --header 'X-Auth-ID: {auth_id}' \
  --header 'X-Auth-Token: {auth_token}'

Export filtered CDRs to CSV

curl -X GET \
  "https://api.vobiz.ai/api/v1/account/{auth_id}/cdr/export?start_date=2026-03-01&end_date=2026-03-17" \
  --header 'X-Auth-ID: {auth_id}' \
  --header 'X-Auth-Token: {auth_token}' \
  -o cdrs.csv

What to do next

Diagnose a hangup_cause with an AI agent

Paste a CDR or a hangup_cause code - get a plain-English diagnosis and remediation steps.

CursorOpen in Cursor