Replies by employee
The Reports page's "Replies by employee" table as JSON, for agent-occupancy dashboards: replies sent, conversations and median first response per employee, plus one unattributed row. Days are UTC calendar days. Scoped like `GET /messages` (the token's connections with an active API add-on). Rate limit: 30 requests per minute per API key / OAuth client (429 `rate_limited` + `Retry-After`).
The Reports page's "Replies by employee" table as JSON, for agent-occupancy dashboards: replies sent, conversations and median first response per employee, plus one unattributed row. Days are UTC calendar days. Scoped like GET /messages (the token's connections with an active API add-on). Rate limit: 30 requests per minute per API key / OAuth client (429 rate_limited + Retry-After).
The default way to authenticate. Create a key at https://developers.wasync.app/keys and send it as Authorization: Bearer wsk_live_….
The key is shown once at creation and stored only as a hash — lose it and you revoke it and create another. Each key carries its own scopes (whatsapp.read, whatsapp.send, whatsapp.events, whatsapp.manage) and an optional IP allowlist.
Errors: an unknown or revoked key returns 401 invalid_key; a key whose IP allowlist does not cover the calling address returns 403 ip_not_allowed (a distinct code on purpose — the key is fine, the address is not). Both carry a WWW-Authenticate: Bearer challenge. Scopes and the connection list are resolved live on every request, so revoking a key or narrowing it takes effect on the next call.
In: header
Query Parameters
First UTC day, YYYY-MM-DD. Default: 6 days before today.
dateLast UTC day, YYYY-MM-DD, inclusive. Default: today. At most 92 days from from.
dateLimit to one connection (must be inside the grant; otherwise the report is empty).
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/reports/agents?from=2026-11-01&to=2026-11-30"{ "range": { "from": "2026-11-01", "to": "2026-11-30" }, "totals": { "conversations": 212, "repliesSent": 540, "customerTurns": 388, "answeredTurns": 351, "medianFirstResponseSec": 290 }, "agents": [ { "userId": "17", "name": "Ana Pop", "unattributed": false, "repliesSent": 301, "conversations": 118, "medianFirstResponseSec": 240 }, { "userId": "22", "name": "Ion Rusu", "unattributed": false, "repliesSent": 221, "conversations": 90, "medianFirstResponseSec": 355 }, { "userId": null, "name": null, "unattributed": true, "repliesSent": 18, "conversations": 11, "medianFirstResponseSec": 610 } ], "attributionSince": "2026-08-14T09:12:00.000Z"}