> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voicy.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Call

> The Call object represents a voice call in the Voicy platform

The full Call object contains all information about a voice call, including status, transcript, recording, and variables. Returned by [Get Call](/api-reference/call-get).

<Note>
  [List Calls](/api-reference/call-list) returns a **lightweight** version of this object that omits `transcript`, `summary`, `recording_url`, `detected_gender`, `vars_provided`, `vars_extracted`, and `vars_collected` for performance. Use Get Call to retrieve the full object.
</Note>

## Properties

<ResponseField name="call_id" type="string" required>
  Unique identifier for the call (UUID).
</ResponseField>

<ResponseField name="call_type" type="string" required>
  Type of call: `phone_call` or `web_call`.
</ResponseField>

<ResponseField name="call_status" type="string" required>
  Current status of the call.

  **In Progress:**

  | Status      | Description                        |
  | ----------- | ---------------------------------- |
  | `initiated` | Call placed, waiting for recipient |
  | `ringing`   | Recipient's phone is ringing       |
  | `ongoing`   | Call connected and active          |

  **Completed:**

  | Status             | Description                      |
  | ------------------ | -------------------------------- |
  | `user_hangup`      | Caller hung up                   |
  | `agent_hangup`     | Agent ended the call             |
  | `inactivity`       | Timeout due to inactivity        |
  | `error_inactivity` | Error during inactivity handling |

  **Failed:**

  | Status      | Description                     |
  | ----------- | ------------------------------- |
  | `busy`      | Line was busy                   |
  | `no_answer` | No answer after timeout         |
  | `error`     | Technical failure               |
  | `canceled`  | Call canceled before connecting |
</ResponseField>

<ResponseField name="agent" type="object">
  Agent that handled the call. `null` if no agent assigned.

  <Expandable title="Agent properties">
    <ResponseField name="name" type="string">Agent name</ResponseField>
    <ResponseField name="version" type="integer">Agent version used for this call</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="from_number" type="string">
  The caller's phone number in E.164 format.
</ResponseField>

<ResponseField name="to_number" type="string">
  The called phone number in E.164 format.
</ResponseField>

<ResponseField name="direction" type="string" required>
  Call direction relative to the agent:

  * `incoming` - Call initiated TO the agent (inbound calls, web calls)
  * `outgoing` - Call initiated BY the agent (outbound calls via API)
</ResponseField>

<ResponseField name="start_timestamp" type="integer">
  Unix timestamp (milliseconds) when the call started.
</ResponseField>

<ResponseField name="duration_ms" type="integer">
  Call duration in milliseconds. `null` if call hasn't ended.
</ResponseField>

<ResponseField name="transcript" type="array">
  Structured transcript with speaker roles and timestamps. `null` if no transcript.

  <Expandable title="Transcript entry properties">
    <ResponseField name="role" type="string">`agent`, `caller`, or `system` (flow-agent automation events)</ResponseField>
    <ResponseField name="content" type="string">What was said</ResponseField>
    <ResponseField name="timestamp_ms" type="integer">Milliseconds from call start</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="detected_gender" type="string">
  Detected gender of the caller: `male` or `female`. `null` if not detected.
</ResponseField>

<ResponseField name="recording_url" type="string">
  Signed URL to the call recording. Expires in 1 hour. `null` if no recording.
</ResponseField>

<ResponseField name="summary" type="string">
  AI-generated summary of the call. `null` if not yet generated.
</ResponseField>

<ResponseField name="vars_provided" type="object">
  Variables provided when the call was created. Keys are variable names, values are strings.
</ResponseField>

<ResponseField name="vars_extracted" type="object">
  Variables extracted after the call by AI processing. Keys are variable names, values are strings.
</ResponseField>

<ResponseField name="vars_collected" type="object">
  Variables collected during the call in real-time by the agent (e.g., via Collection nodes). Keys are variable names, values are strings.

  Variable names beginning with `_` (e.g. `_temp`) are **call-local**: they are usable during the call but stripped before persistence and never returned in this field.
</ResponseField>

## Example

```json theme={null}
{
  "call_id": "550e8400-e29b-41d4-a716-446655440000",
  "call_type": "phone_call",
  "call_status": "user_hangup",
  "agent": {
    "name": "Customer Support Agent",
    "version": 2
  },
  "from_number": "+15551234567",
  "to_number": "+15559876543",
  "direction": "outgoing",
  "start_timestamp": 1704067200000,
  "duration_ms": 120000,
  "transcript": [
    {
      "role": "agent",
      "content": "Hello, how can I help you?",
      "timestamp_ms": 0
    },
    {
      "role": "caller",
      "content": "I need help with my order",
      "timestamp_ms": 2500
    }
  ],
  "detected_gender": "male",
  "recording_url": "https://storage.voicy.co/recordings/...",
  "summary": "Customer inquiry about order status.",
  "vars_provided": {
    "customer_name": "John"
  },
  "vars_extracted": {
    "appointment_date": "2026-01-15"
  },
  "vars_collected": {
    "preferred_time": "morning"
  }
}
```
