Call centers
The human side: who is staffing, and what they are handling.
Call centers are exposed because the interesting integrations sit across both halves of the platform. A call the AI could not finish is transferred to a person, a ticket raised by an AI call is worked by a person, and a customer's own systems need to see one story rather than two.
Every call here carries `callId`, the platform call id, which is the same id the AI side uses and the one every Call Intelligence endpoint accepts. That is the join.
List call centers
Call centers the key's organization can reach.
/api/v1/call-centersQuery parameters
| Parameter | Type | Description |
|---|---|---|
search | string | Match the name. |
status | string | active, inactive or archived. |
page | number | Page number. Default: |
pageSize | number | Up to 200. Default: |
Responses
{"data": {"callCenters": [{"id": "cc1…","name": "Member services","status": "active","agentCount": 24}]},"meta": {"requestId": "req_…","pagination": {"nextCursor": null,"limit": 50}}}
curl -X GET "https://voice.evryhealth.com/api/v1/call-centers" \-H "Authorization: Bearer YOUR_API_KEY"
Agent states
Who is staffing the call center and what state each is in right now — the read behind a wallboard or a workforce system. Working state, not personnel records.
/api/v1/call-centers/{callCenterId}/agentsPath parameters
| Parameter | Type | Description |
|---|---|---|
callCenterIdrequired | string | Call center id. |
Query parameters
| Parameter | Type | Description |
|---|---|---|
search | string | Match name, email or agent number. |
status | string | available, away, on_call, busy or offline. |
Responses
{"data": {"agents": [{"id": "ag1…","agentNumber": 108,"name": "Dan Whitfield","role": "agent","status": "on_call","statusChangedAt": "2026-09-15T14:01:02.000Z","skills": ["Spanish","Claims"]}]},"meta": {"requestId": "req_…"}}
curl -X GET "https://voice.evryhealth.com/api/v1/call-centers/{callCenterId}/agents" \-H "Authorization: Bearer YOUR_API_KEY"
Calls
Queued, live and finished calls, with the timings that make service level answerable: how long the caller waited, talked, and was on hold.
/api/v1/call-centers/{callCenterId}/callsPath parameters
| Parameter | Type | Description |
|---|---|---|
callCenterIdrequired | string | Call center id. |
Query parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Filter by status. |
agentId | string | Only this agent's calls. |
from | string | ISO date lower bound. |
to | string | ISO date upper bound. |
page | number | Page number. Default: |
pageSize | number | Up to 200. Default: |
Responses
{"data": {"calls": [{"id": "ccc1…","callId": "5f1c…","direction": "inbound","status": "completed","agentName": "Dan Whitfield","waitSeconds": 22,"talkSeconds": 184,"holdSeconds": 0}],"total": 128},"meta": {"requestId": "req_…","pagination": {"nextCursor": "2","limit": 50}}}
curl -X GET "https://voice.evryhealth.com/api/v1/call-centers/{callCenterId}/calls" \-H "Authorization: Bearer YOUR_API_KEY"