What's new, 5 November 2026: Replies sent from WASync or the phone can appear in the Open Channel as your team's messages, so Bitrix24's client-message trigger no longer fires on them.
WASync · Developers

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`).

GET
/reports/agents

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).

AuthorizationBearer <token>

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

from?string

First UTC day, YYYY-MM-DD. Default: 6 days before today.

Formatdate
to?string

Last UTC day, YYYY-MM-DD, inclusive. Default: today. At most 92 days from from.

Formatdate
connectionId?string

Limit 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"}
Was this page helpful?