In short
- Every
/v1/...call runs in the workspace of your API key - The first workspace is created on
POST /v1/platform/verify(registration) - Additional workspaces:
POST /v1/workspaceswithworkspace:create - Login with
workspaceId+createApiKey: truefor a key in another workspace
One or many?
API (/v1/workspaces)
Scopes: workspace:read, workspace:create, workspace:update, workspace:delete.
List with session (all workspaces)
With loginsessionToken (not messaging API key):
GET /v1/platform/workspaces — all account workspaces with role (OWNER, ADMIN, MEMBER). ?include=billing requires billing:read.
Workspace billing
Plan, balance, and cards use Platform routes with the sameworkspaceId:
GET /v1/platform/workspaces/:id/subscriptionGET /v1/platform/workspaces/:id/balanceGET /v1/platform/workspaces/:id/payment-methodsGET /v1/platform/workspaces/:id/credits/usage— credit ledger withcorrelationId, channel, and key used (billing:read)
Team (members and invites)
Manage workspace access via Platform API — scopesworkspace:members:read / workspace:members:manage:
Same routes exist at
/v1/workspaces/:id/* with a messaging API key.

