calls

Get a call

One call by id. While the call is active, cost_so_far is set (counted from started_at, so it includes ring time until answered_at is recorded), and max_duration_seconds with credits:read. With expand[]=transcript (transcripts:read and the account setting "Allow connected apps to read call summaries"), transcript is the redacted summary-level transcript; when the setting is off the answer is 403 not_enabled with settings_url. A call that is not yours is not found. Requires calls:read.

get/calls/{id}

Request

  • Base URL: https://api.voixcall.com/v1
  • URL: https://api.voixcall.com/v1/calls/{id}
  • Auth: one of:
    • OAuth 2 (authorization code, authorization URL https://api.voixcall.com/oauth/authorize, token URL https://api.voixcall.com/oauth/token, scopes: calls:read)
    • HTTP bearer

Path parameters

idstring required

Call id (call_ prefix).

Query parameters

expand[]string[] nullable

expand[]=transcript adds the call's redacted summary-level transcript. Needs transcripts:read (else 403 insufficient_scope) and the account setting "Allow connected apps to read call summaries" (else 403 not_enabled with settings_url).

Response

OK

answered_atstring date-time nullable required

Not recorded for app calls today: null.

coststring nullable required

The recorded charge, decimal string with two decimals; null unless status is completed.

cost_so_farstring nullable required

Charge accrued so far, decimal string, only while status is active; null otherwise (including initiating and connecting). Counted from started_at, so it includes ring time until answered_at is recorded.

counterparty_namestring nullable required

Name of the contact whose stored phone number exactly matches the other party (to_number outbound, from_number inbound); a contact saved in another format, such as with spaces, does not match. Requires contacts:read, else null.

currency'USD' required
direction'outbound' | 'inbound' required
duration_secondsinteger nullable required

Billable seconds once the call has ended.

ended_atstring date-time nullable required
from_numberstring required

E.164 caller ID used.

idstring required
is_recordedboolean required
livemodeboolean required
max_duration_secondsinteger nullable required

Time limit the balance allowed when the call was set up, while status is active. Derived from the balance, so it needs credits:read; null without it. Not recorded for app-placed personal calls today, so null for them.

object'call' required

Always "call".

origin'app' | 'api' | 'mcp' required

Which surface placed the call.

placement'webrtc' | 'callback' | 'inbound' required

How the call was set up: from the app or browser (webrtc), by ringing your phone first (callback), or received on your number (inbound).

rate_per_minutestring required

The per-minute rate fixed at call setup and charged for this call, decimal string with four decimals.

started_atstring date-time required
statusstring required

initiating, connecting, active, completed, failed, no-answer, busy, canceled; callback calls add ringing_you and ringing_them. New values may appear.

to_numberstring required

E.164.

transcript_status'pending' | 'processing' | 'completed' | 'failed' | 'null' nullable required

null when no transcript was requested.

Changes

No recorded changes to this operation across all 1 revision of this API.