- Primitives — which capabilities are enabled, split into Identity (verification, formation, email, domains) and Tools (cards, social, vault, logs).
- Third-party connections — which apps a user may connect, plus per-tool filters and white-label auth.
CLI First
Tools
| Tool | Type | Description |
|---|---|---|
account_kits_list | Core | List all kits in the workspace |
account_kits_create | Core | Create a policy template |
account_kits_get | Core | Fetch a single kit |
account_kits_update | Core | Edit primitives, connections, or governance |
account_kits_delete | Management | Delete a kit (users must be reassigned first) |
account_kits_assign_user | Management | Assign a tenant user to a kit |
Creating a Kit
Connection modes
| Mode | Behavior |
|---|---|
open | No filter — every third-party app available (the default). |
allowlist | Only the listed toolkits can be connected. |
blocklist | Every app except the listed ones. |
tools.<app>.enable / .disable) and white-label
custom_auth_configs are optional.
Discovering app slugs: browse the full third-party app catalog with
GET /v1/toolkits (?search=). The dashboard’s
Account Kit editor uses this endpoint to power a searchable allow/block picker.Governance — require approval
Each gated primitive acceptsrequiresApproval, and connections accept
requiresApproval / approvalToolkits. When on, the agent’s sensitive action is frozen
for a human to approve before it runs.
requiresApproval: false to opt out. Calls on the
operator’s own default user execute without approval.
Error Handling
| Error | Cause | Recovery |
|---|---|---|
invalid_input | Malformed mode/toolkits, or unknown app slug | Use a valid mode and slugs from GET /v1/toolkits |
duplicate_record | A kit with this name already exists | Pick a different name |
forbidden | Trying to delete a kit with users still assigned | Reassign those users first |
not_found | kit_id doesn’t exist in this workspace | Use GET /v1/account-kits |