Skip to content
SarvexDocs
Esc
↑↓navigate↵open⌘Jpreview

List all merchants by journey state (the board)

Operator-only. Requires operator role; does not use X-Operate-As.

GET/operator/board
Authorization
AuthorizationBearer token (JWT) · headerrequired

JWT issued by the external IdP via the OAuth 2.0 authorization-code flow (Kinde in production; a simulator in test). The client obtains it and sends it as a Bearer token on every authenticated call. Sarvex's services verify it — issuer, audience, signature (IdP JWKS), expiry — and read identity and tenant from its claims. Sarvex does not issue or revoke these tokens. merchant_id/store_id are read from the verified claims (and the merchant→store mapping), never from the URL. The operator scope is required for /operator/*. Operators acting on a specific merchant pass the X-Operate-As header, which is recorded in the audit log.

Scopes:operator
Query parameters
statejourney_state
Allowed:connectedsyncedreadylive
attentionboolean

Filter to merchants that are blocked or stale.

Responses
200

Board cards.

databoard_card[]required
Show properties
Array of board_card
merchant_idstring
store_idstring

The store whose journey state this card reflects (V1 is one store per merchant).

namestring
statejourney_state
Allowed:connectedsyncedreadylive
days_in_stateinteger
open_task_countsobject
Show properties
merchantinteger
sarvexinteger
externalinteger
blockedboolean
staleboolean
pagepagerequired
Show properties
cursorstring | nullrequired
has_morebooleanrequired
403

Authenticated but not permitted (e.g. non-operator on an operator route).

errorobjectrequired
Show properties
codestringrequired
messagestringrequired
detailsobject | null
Try it
Server
Authorization
Parameters
Request
curl -X GET "https://api.sarvex.example.com/v1/operator/board" \
  -H "Authorization: Bearer YOUR_TOKEN"
Response
{
  "data": [
    {
      "merchant_id": "string",
      "store_id": "string",
      "name": "string",
      "state": "connected",
      "days_in_state": 0,
      "open_task_counts": {
        "merchant": 0,
        "sarvex": 0,
        "external": 0
      },
      "blocked": true,
      "stale": true
    }
  ],
  "page": {
    "cursor": "string",
    "has_more": true
  }
}