Skip to content

List dialer calls (filter by contact, SDR, or session)

GET
/voice/dialer/calls

Return up to limit recent dialer call summaries.

At least ONE of (contact_id, user_email, parallel_session_id) MUST be supplied - org id alone is not a valid filter (would firehose the entire org’s call history). 422 otherwise.

Summary rows do NOT include the transcript blob (5-50 KB each). Use has_transcript to decide whether to fetch the full transcript via GET /voice/dialer/calls/{room_name}/transcript.

Org isolation is enforced server-side by the voice route: the org id on the API key is forwarded as a required query param, so a call row from another tenant cannot leak into the response.

Authorizations

Parameters

Query Parameters

contact_id
Any of:
string

CDP contact id (string form of mashup_contacts.id). If you only have a CRM-overlay id (cb_contact_extensions.id), resolve it via the contacts endpoint first. Optional - supply at least one of contact_id, user_email, or parallel_session_id.

user_email
Any of:
string

SDR email. Returns dialer calls where the parent ParallelDialSession.user_email matches. Use for incremental ingestion of one SDR’s call history.

parallel_session_id
Any of:
string

Filter to a single ParallelDialSession.session_id.

created_after
Any of:
string

ISO-8601 timestamp. Only return calls with created_at >= this value. Use for incremental polling (pass the max created_at from the previous page on the next call).

limit

Max calls to return, newest first. Capped at 100.

integer
default: 20 >= 1 <= 100

Max calls to return, newest first. Capped at 100.

Header Parameters

X-Target-Org-Id
Any of:
string

Responses

200

Successful Response

object
data
required

List wrapper for dialer call history.

Used by GET /voice/dialer/calls for ALL filter variants (contact_id, user_email, parallel_session_id, created_after). Echoes the applied filter values back so callers can sanity-check what the server actually applied (the proxy may pin org_id, normalize CRM overlay IDs, etc).

object
calls
Array<object>

Light-weight dialer call summary returned in the dialer-call list.

Deliberately omits the transcript blob - transcripts are 5-50 KB each and including them in a list would blow caller context budget. Use has_transcript to decide whether a follow-up GET to /voice/dialer/calls/{room_name}/transcript is worthwhile.

contact_id, from_, and to are included so client-side polling consumers (SDR ingestion pipelines) can filter without an extra round-trip for each row.

object
call_duration
Any of:
integer
contact_id
Any of:
string
created_at
Any of:
disposition
Any of:
string
from_
Any of:
string
has_transcript
boolean
parallel_session_id
Any of:
string
recording_url
Any of:
string
room_name
required
string
summary
Any of:
string
to
Any of:
string
contact_id
Any of:
string
count
integer
parallel_session_id
Any of:
string
user_email
Any of:
string
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string