Skip to main content
GET
List call records
This is the primary endpoint for call analytics and billing review. It returns CDRs newest-first, with a pagination block for paging and a summary block of aggregate metrics across the filtered set. A CDR is written only after a call completes, so very recent calls may take a few seconds to appear.

Filters

All filters are optional and combine with AND. Apply them as query-string parameters.
The from_number / to_number filters map to the caller_id_number / destination_number fields on the returned CDR object - filter on the former, read the latter. The other filters (sip_call_id, bridge_uuid, hangup_cause, hangup_disposition, context, campaign_id) match the same-named CDR fields directly.

Pagination

The pagination object is { page, per_page, total, pages, has_next, has_prev } - not current_page / total_records. total is the count across all pages and pages = ceil(total / per_page). Loop while has_next is true, incrementing page.

Reading the summary

summary is computed over the filtered set, not your whole account:
  • totalCalls, answeredCalls, answerRate (percent)
  • avgCallDuration is a string like "28s" - parse it, don’t do arithmetic on it. For numeric work use total_duration_seconds and total_billable_seconds.
  • total_cost is in the account currency; last_call_at is ISO 8601.

Edge cases

  • No matches: a valid request that matches nothing returns 200 with data: [], count: 0, and a zeroed summary - not a 404.
  • Quality metrics on unanswered calls: mos, jitter, and packet_loss are often 0 (or null) for calls that never carried media. Treat mos: 0 as “no media”, not “worst quality”.
  • Unanswered calls have answer_time: null and billsec: 0.
  • Casing: Account is capitalized and cdr is lowercase in the path.

Example

Filter by date range
Filter by bridge / SIP call id
See the CDR overview for the complete 43-field glossary and the Hangup Causes reference for decoding hangup_cause / hangup_cause_code.

Authorizations

X-Auth-ID
string
header
required

Your Vobiz account Auth ID

X-Auth-Token
string
header
required

Your Vobiz account Auth Token

Path Parameters

auth_id
string
required

Your account Auth ID

Example:

"MA_XXXXXX"

Query Parameters

from_number
string

Filter by the originating phone number (caller).

Example:

"9876543210"

to_number
string

Filter by the destination phone number (callee).

Example:

"1234567890"

start_date
string<date>

Beginning of the search period (YYYY-MM-DD). Required when using end_date.

Example:

"2026-03-01"

end_date
string<date>

End of the search period (YYYY-MM-DD). Required when using start_date.

Example:

"2026-03-17"

call_direction
enum<string>

Filter by direction.

Available options:
inbound,
outbound
min_duration
integer

Minimum call duration in seconds. Excludes calls shorter than this value.

Example:

10

sip_call_id
string

Filter by the SIP Call-ID of the call (matches the cdr's sip_call_id field).

Example:

"dD1qwu5VZ5iK3ed5u3uspjY5RKL"

bridge_uuid
string

Filter by the UUID of the bridged leg (matches the cdr's bridge_uuid field).

Example:

"4b7ae653-f40d-42f1-b582-6b05dfcd0c0a"

hangup_cause
string

Filter by telephony hangup cause, e.g. NORMAL_CLEARING.

Example:

"NORMAL_CLEARING"

hangup_disposition
string

Filter by how the leg was released, e.g. send_refuse.

Example:

"send_refuse"

context
string

Filter by the call context, e.g. sip-trunking.

Example:

"sip-trunking"

campaign_id
string

Filter by the campaign identifier associated with the call.

Free-text search across CDR fields (numbers, IDs, etc.).

page
integer
default:1

Page number for paginated results.

per_page
integer
default:20

Number of records per page. Max: 100.

Required range: x <= 100

Response

200 - application/json

Paginated list of CDRs

account_id
string
required
count
integer
required
data
object[]
required
pagination
object
required
success
boolean
required
summary
object
required