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

# GET /agents/active-calls — Calls in Progress

> Check which calls are in progress across your workspace right now. A simple GET with your API key, useful as a fallback when a completion webhook is missed.

Returns every call currently in progress across your workspace. No agent ID, no phone number, no request body — one request tells you what is live.

```text theme={null}
GET https://<your-region-host>/api/v1/agents/active-calls
```

## Request

| Header | Value |
| - | - |
| `X-API-Key` | Your VoiceInfra API key |

```bash cURL theme={null}
curl -X GET "https://<your-region-host>/api/v1/agents/active-calls" \
  -H "X-API-Key: vk_YOUR_API_KEY"
```

## Response

```json With calls in progress theme={null}
{
  "active_call_count": 2,
  "active_calls": [
    {
      "id": "sip-ob-call-+14155551234-a1b2c3",
      "call_type": "dynamic-outbound",
      "to_number": "+14155551234",
      "from_number": "+18005559876",
      "participant_count": 2
    },
    {
      "id": "sip-ib-call-_+442071234567_d4e5f6",
      "call_type": "inbound",
      "to_number": "+18005559876",
      "from_number": "+442071234567",
      "participant_count": 2
    }
  ]
}
```

```json No calls in progress theme={null}
{
  "active_call_count": 0,
  "active_calls": []
}
```

| Field | Type | Meaning |
| - | - | - |
| `active_call_count` | integer | How many calls are live right now |
| `active_calls` | array | One entry per live call |
| `id` | string | Identifier for the call |
| `call_type` | string | `inbound`, `outbound`, or `dynamic-outbound` |
| `to_number` | string or null | The number being called |
| `from_number` | string or null | The caller's number |
| `participant_count` | integer | Participants on the call |

> [!NOTE]
>
> This reflects calls **in progress**. A call that has ended leaves the list, and its record appears in your call log instead.

## What to use it for

> **Webhook fallback**
>
> If a `call_completed` webhook does not arrive — a client disconnect, a delivery failure — poll this endpoint to find out whether the call actually ended.

> **Sequential calls**
>
> Running a chain of outbound calls? Check here before placing the next one, so two calls never overlap.

> **Capacity planning**
>
> Check how many calls are live before starting a batch, so you stay within your concurrent call allowance.

> **Your own dashboard**
>
> Build a live view in your own tooling showing active calls, their direction, and participants.

### Polling for completion

The most common pattern: place a call, wait for the webhook, and fall back to polling if it doesn't arrive.

```text theme={null}
POST /api/v1/outbound_call { ... }     → store call_id
await call_completed webhook           → done
  ↳ no webhook within your window?
    GET /api/v1/agents/active-calls    → is it still running?
```

## Errors

| Status | Cause |
| - | - |
| `401` | Missing or invalid API key |
| `500` | Server error — retry with backoff |


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