---
title: "Active Calls"
method: GET
path: "/api/v1/health/active-calls"
tags: ["main"]
---

# Active Calls

`GET /api/v1/health/active-calls`

## Request

- Base URL: `https://app.dograh.com`
- URL: `https://app.dograh.com/api/v1/health/active-calls`
- Auth: none declared

In-flight call count for THIS worker — the drain signal for deploys.

A deploy orchestrator polls this per worker and waits for zero before
sending SIGTERM, because uvicorn force-closes live call WebSockets (close
code 1012) on SIGTERM and would cut calls mid-conversation otherwise. The
count is per-process: one uvicorn per VM port (scripts/rolling_update.sh)
or per Kubernetes pod (preStop hook). See api/services/observability/active_calls.py.

## Headers

- `X-Dograh-Devops-Secret` string, nullable

## Response `200`

Successful Response

- ActiveCallsResponse
  - `active_calls` integer, required
  - `loop_lag_p95_ms` number
  - `loop_lag_max_ms` number

## Other responses

- `404`: Not found
- `422`: Validation Error

## Changes

- **2026-11-03** `faa00cf76fcb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/dograh/apis/dograh-api/changes/api/v1/health/active-calls/get.md)

---

[API](https://skmtc.dev/dograh/apis/dograh-api.md) - [All operations](https://skmtc.dev/dograh/apis/dograh-api/llms.txt) - [OpenAPI document](https://skmtc.dev/dograh/apis/dograh-api/revisions/faa00cf76fcb?raw)
