List agent rankings
Returns a leaderboard of agents with, for each, conversion, rejections, sentiment, frustration, duration, response latency, interruption rate, talk share, cost and the voice provider’s success score. It compares agents on how they converse, not only on whether they closed.
Calls are attributed to the agent that served them, so manual calls without a campaign count, and a campaign reassigned to another agent does not move its history. Older calls that predate that attribution fall back to the campaign’s agent. Only agents with at least one call in the window appear; deleted agents never do.
Filters. days sets the window (rolling, ending now; missing or out-of-range values
become 30). direction, campaignId and agentId narrow the calls counted; with
agentId you get a single row (or none), which is the per-agent scorecard. timezone
is accepted but not used (a value longer than 50 characters is still a 400).
Ordering. successes descending, then totalCalls descending; at most 50 rows.
No data. An empty array when no agent had calls. Within a row, counts and rates are
0, while averages, interruptionRate, agentTalkShare and the cost fields are null
when no call carried the measurement (see sentimentCallCount and latencyCallCount).
Idempotency. Safe to retry: this is a read.
Consistency. Cached for 5 minutes, then served stale for up to 30 minutes while a
background refresh runs. The response carries a weak ETag for If-None-Match.
Access
- Required scope:
read. Signed-in users need the owner, admin, member or viewer role. - Rate limit: Analytics — 30 requests/min per workspace, in addition to the general API budget of your plan. See Rate limits.
- Plan: Available on every plan. Requires an active subscription (
active,trialingorpast_due); without one the request is refused with403 BILLING_ERROR(metadata.kind: subscription_required).
Authentication
Workspace API key: jl_ followed by 64 lowercase hex characters, created by the workspace owner in the
dashboard (Settings → API Keys) and sent as Authorization: Bearer jl_.... The plaintext is shown once,
at creation; Jelliu stores only a SHA-256 hash. A workspace can hold up to 25 active keys.
Operations restricted to admins or owners reject keys without the full scope with 403, and say so in
their description. No key, whatever its scope, can mint or revoke API keys or rotate a webhook secret —
that requires a signed-in owner session. A revoked key stops authenticating within about 10 seconds.
See Authentication.
Query parameters
Size of the reporting window in days, ending now. On most analytics routes a missing or out-of-range value falls back to 30 instead of being rejected; the operation says when it is strict.
Which calls to count: inbound (calls the agent answered), outbound (calls the agent placed) or all (both).
Scope every number to one agent — the agent that served each call, so manual (campaign-less) calls count. Omit it to aggregate across agents.
Response headers
Weak entity tag of the body. Send it in If-None-Match on the next request.

