List agents
Returns all agents for the tenant. No pagination — agent counts are typically under 200 per deployment.agents:read | Status: 200 OK
Response fields
| Field | Type | Description |
|---|---|---|
id | string | Agent UUID |
user_id | string | Supabase user ID |
extension | string | SIP extension number |
display_name | string | null | Agent display name |
status | string | Current state: "available", "on_call", "wrap_up", "paused", "offline" |
current_call_uuid | string | null | Active call UUID (null if idle) |
last_status_at | string | null | ISO 8601 timestamp of last status change |
Get an agent
agents:read | Status: 200 OK
Get agent statistics
Returns rolling statistics for an agent over a configurable time window.agents:read | Status: 200 OK
Query parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
window_hours | integer | 24 | Rolling window size in hours (1–720) |
Response
| Field | Type | Description |
|---|---|---|
agent_id | string | Agent UUID |
window_hours | integer | Requested window size |
calls_total | integer | Total calls attempted |
calls_connected | integer | Calls that were answered and bridged |
calls_failed | integer | Calls that failed (busy, no answer, error) |
avg_talk_time_s | number | Average talk duration in seconds (1 decimal) |
connect_rate | number | calls_connected / calls_total (0.0 if no calls) |
Errors
| Status | Condition |
|---|---|
400 | window_hours out of range (must be 1–720) |
404 | Agent not found or belongs to another tenant |

