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

# Get Call

> Status, result, duration, summary and cost of one call

Get one call. Poll this until `status` is `completed` or `failed`, or use the [`call.completed` and `call.failed` events](https://docs.60db.ai/features/agents-tools-and-webhooks#events) instead.

## Request

### Headers

**Authorization** `string` *required*

Bearer token with your API key (scope `agents`)

### Path

**callId** `string` *required*

The call `id` (UUID), from [Place call](https://docs.60db.ai/api-reference/agents/place-call.md)

## Response

**200 OK**

```json theme={null}
{
  "success": true,
  "data": {
    "id": "6b1f0c52-4d7e-4b8a-9d3e-2a1c8e7f0a11",
    "agent_id": "9c2e1d7a-0b3f-4e6a-8f1d-5a7b9c0e2d44",
    "agent_name": "Front desk",
    "phone_line_id": "2d8e4f10-6a3b-4c9d-8e7f-0b1a2c3d4e5f",
    "direction": "outbound",
    "to": "+919999999999",
    "from": "+919876543210",
    "status": "completed",
    "reason": null,
    "duration_secs": 62,
    "started_at": "2026-11-03T10:16:30.000Z",
    "connected_at": "2026-11-03T10:16:38.000Z",
    "ended_at": "2026-11-03T10:17:40.000Z",
    "record": true,
    "has_recording": true,
    "has_transcript": true,
    "summary": { "turns": 6, "tool_calls": 1, "tool_failures": 0 },
    "cost": { "runtime_usd": 0, "runtime_billing_status": "skipped" },
    "source": "api",
    "metadata": { "crm_lead_id": "L-1042" },
    "created_at": "2026-11-03T10:16:30.000Z"
  }
}
```

### Fields

**status** `string`

`queued`, `dialing`, `in_progress`, `completed` or `failed`. See [call lifecycle](https://docs.60db.ai/features/agents.md#call-lifecycle)

**reason** `string | null`

Short code set when the call ends, such as `dial_unconfirmed`, `stale` or `lost`. Treat it as informational

**duration\_secs** `integer | null`

Connected seconds. `null` until the call ends

**connected\_at** `string | null`

When the call connected. `null` if it never did

**has\_recording** `boolean`

`true` when [the recording](https://docs.60db.ai/api-reference/agents/get-recording.md) is available

**has\_transcript** `boolean`

`true` when [the transcript](https://docs.60db.ai/api-reference/agents/get-transcript.md) is available

**summary** `object | null`

Call summary from the runtime (for example `turns`, `tool_calls`, `tool_failures`, `hung_up`, `error`). `null` while running

**cost** `object`

`runtime_usd` is the agent runtime fee as charged. `runtime_billing_status` is `pending`, `billed`, `skipped` or `failed`

**source** `string`

`dashboard`, `api` or `mcp`

## Errors

| Status | Code | Meaning |
| - | - | - |
| 404 | `CALL_NOT_FOUND` | No call with this ID in your workspace (also returned for a non-UUID ID) |

## Example

```bash cURL theme={null}
curl https://api.60db.ai/agents/calls/CALL_ID \
  -H "Authorization: Bearer your-api-key"
```

```javascript JavaScript theme={null}
const call = await client.agents.calls.get(callId);
```

```python Python theme={null}
call = client.agents.calls.get(call_id)
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.