WhatsApp Gateway
API referenceAdmin

List sessions across all organizations (super_admin)

List WhatsApp sessions across **every** organization, for platform oversight. Unlike the org-scoped session list, this is not limited to the caller's organization — it returns sessions for all tenants in one flat list. ### Preconditions - Restricted to a platform **super_admin**. The caller must present a login JWT that carries the `super_admin` platform role. - api-keys (prefixed `wa_`) and ordinary org roles (owner/admin/member) are **rejected** even if otherwise valid. ### Side effects & semantics - Read-only. No state is changed. ### Errors - `forbidden` (403) — the caller is authenticated but is not a platform super_admin (e.g. an api-key, or a person without the super_admin role).

GET
/api/v1/admin/sessions

Authorization

AuthorizationBearer <token>

Send Authorization: Bearer <token>. The router accepts two kinds of token and tries each in turn: a frontend-minted login JWT (verified against the frontend JWKS; the person's org + role are read from it), or an api-key for a script/service (carrying a fixed set of gateway permissions). The bearerFormat: JWT label describes the person-login case.

In: header

Response Body

application/json

application/json

curl -X GET "https://example.com/api/v1/admin/sessions"
{  "data": [    {      "autoRead": false,      "createdAt": 1719662400000,      "createdByUserId": "user_01J9DEF...",      "gatewayId": "gw-sg-1",      "id": "01J9ZX8K2QHV0M3T6R7P4N5W8C",      "isAdminSession": false,      "label": "Support line",      "lastConnectedAt": 1719662400000,      "organizationId": "org_01J9ABC...",      "phoneNumber": "6281234567890",      "presenceTyping": true,      "ratePerHour": 600,      "ratePerMin": 20,      "status": "working",      "updatedAt": 1719662400000,      "waJid": "6281234567890@s.whatsapp.net",      "waLid": "205227043110953@lid"    }  ],  "nextCursor": "string"}
{  "error": {    "code": "not_found",    "details": {      "property1": null,      "property2": null    },    "message": "session not found"  }}