Enterprise & Workspaces API
Accounts, members, workspaces, and audit logs.
Base Paths
These endpoints are not prefixed with /enterprise. The actual API routes are:
text
/accounts — account management, members, audit logs
/workspaces — workspace lifecycle, members, tool policiesAuthentication
All endpoints require JWT authentication. Some actions require owner or admin access.
Environment Variables
bash
export BASE_URL="https://api.chainabit.com/api/v1"
export TOKEN="your-access-token"Sections
- Accounts — account details, members, and audit logs.
- Account Invitations — invite an email address to an account and accept an invitation.
- Workspaces — workspace lifecycle and member management.
- Tool Policies — control which AI tools are permitted, require approval, or are blocked within a workspace. Routes are at
/workspaces/:workspaceId/tool-policies. - Files — workspace file uploads, presigned URLs, and downloads.
- Knowledge Namespaces — named knowledge bases with visibility control for RAG retrieval.
- API Keys — account-scoped API keys for M2M and service account authentication.
Notes
- Account deletion is a soft delete with a retention period.
- Workspace listing and creation are scoped from the authenticated account context.
- Roles follow this order:
owner,admin,member,analyst,billing,viewer.ownercan only be assigned through account creation or a dedicated ownership-transfer flow — not through the member or invitation endpoints. - Workspace membership requirement: A user must first be an account member before being added to a workspace. Adding a non-member to a workspace returns
403 Forbidden. - Two ways to bring someone into an account: attach an existing user directly by ID (
POST /accounts/:accountId/members), or invite an email address that may not have a Chainabit account yet (POST /accounts/:accountId/invitations) — the membership is only created once that invitation is accepted. - Seat limits: Adding a member to an account, or accepting an invitation, counts as consuming a seat. If the account is at its seat limit, the request returns
403 Forbiddenwith aSeat limit reachedmessage. A member can optionally hand their seat back on removal.