---
title: "List voice calls"
method: GET
path: "/v1/calls"
tags: ["Voice Agents"]
---

# List voice calls

`GET /v1/calls`

List voice calls for this project, most recent first. Transcripts are omitted from the list; fetch a single call to get its transcript.

## Query parameters

- `status` 'queued' | 'ringing' | 'in_progress' | 'completed' | 'failed' | 'busy' | 'no_answer' | 'canceled' — Lifecycle status of a voice call. - `queued`: outbound call created, not yet dialing. - `ringing`: dialing (outbound) or received and ringing (inbound). - `in_progress`: answered, the agent is connected. - `completed`: ended after a conversation. - `failed`: could not be completed. - `busy`: the line was busy. - `no_answer`: rang but was not answered. - `canceled`: canceled before it was answered.
- `direction` 'inbound' | 'outbound' — Whether the call was placed by Zavu (outbound) or received from a caller (inbound).
- `limit` integer
- `cursor` string

## Response `200`

List of voice calls.

- object
  - `items` VoiceCall[], required
    - `id` string, required
    - `direction` 'inbound' | 'outbound', required — Whether the call was placed by Zavu (outbound) or received from a caller (inbound).
    - `from` string, required — Caller phone number in E.164 format. Your sender's number for outbound calls; the caller's number for inbound calls.
    - `to` string, required — Callee phone number in E.164 format.
    - `status` 'queued' | 'ringing' | 'in_progress' | 'completed' | 'failed' | 'busy' | 'no_answer' | 'canceled', required — Lifecycle status of a voice call. - `queued`: outbound call created, not yet dialing. - `ringing`: dialing (outbound) or received and ringing (inbound). - `in_progress`: answered, the agent is connected. - `completed`: ended after a conversation. - `failed`: could not be completed. - `busy`: the line was busy. - `no_answer`: rang but was not answered. - `canceled`: canceled before it was answered.
    - `endReason` string, nullable — Why the call ended (e.g. `agent_ended`, `max_duration`, `transfer`, `hangup`). Present once the call is no longer active.
    - `answeredAt` string, date-time, nullable — When the call was answered.
    - `endedAt` string, date-time, nullable — When the call ended.
    - `durationSeconds` integer, nullable — Billable talk time in seconds, measured from answer to hangup.
    - `turnCount` integer, nullable — Number of conversation turns exchanged during the call.
    - `transcript` VoiceCallTurn[] — Ordered transcript of the call. Included when retrieving a single call; omitted from list responses.
      - `seq` integer, required — Ordinal position of the turn within the call, starting at 0.
      - `role` 'user' | 'assistant' | 'tool', required — Who produced the turn. `tool` records a tool call the agent made during the conversation.
      - `text` string, required — Transcribed speech for `user` and `assistant` turns, or a JSON summary of the tool call for `tool` turns.
      - `startedAt` string, date-time, nullable — When the turn started.
      - `endedAt` string, date-time, nullable — When the turn ended.
    - `cost` number, nullable — Total cost of the call in USD, combining the managed voice pipeline per-minute charge and telephony. Available once the call has ended.
    - `metadata` object — Arbitrary metadata you attached when creating the call.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time
  - `nextCursor` string, nullable

## Other responses

- `401` — Unauthorized.
- `403` — Voice Agents is not enabled for this team.

---

[API](https://skmtc.net/zavudev/apis/zavu-unified-messaging-layer-api.md) · [All operations](https://skmtc.net/zavudev/apis/zavu-unified-messaging-layer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zavudev/zavu-unified-messaging-layer-api/versions/07b87b6ae707/schema)
