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
Max calls to return, newest first. Capped at 100.
Max calls to return, newest first. Capped at 100.
Header Parameters
Responses
200
Successful Response
object
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
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
422
Validation Error