/dashboard/api-keys manages keys that let external systems (CRMs) trigger outbound calls without a JWT. It includes a create-key modal and a one-time key-created reveal modal.
Key table
Loaded fromGET /api/v1/api-keys, the DataTable shows:
| Column | Source |
|---|---|
| Name | key.name |
| Key | key_prefix followed by •••• (full key never re-shown) |
| Status | Active / Expired / Inactive badge |
| Expires | expires_at |
| Last Used | relative time of last_used_at |
| Created | created_at |
| Actions | activate/deactivate toggle, delete |
getStatus: inactive keys are Inactive (danger), keys past expires_at are Expired (neutral), otherwise Active (success). A search box filters by name or key prefix.
Lifecycle
| Action | Endpoint |
|---|---|
| Create | POST /api/v1/api-keys |
| Toggle active | PATCH /api/v1/api-keys/{id} with is_active |
| Delete | DELETE /api/v1/api-keys/{id} (confirm dialog) |
Create and one-time reveal
The create-key modal collects a required Name and an optional Expires At date (blank = no expiry), then POSTs to/api/v1/api-keys. The response includes the full key, which is handed to the key-created modal.
Deleting a key immediately revokes access for any system using it — the confirm dialog states this explicitly.
Related docs
API keys (CXB API)
Key hashing, dual auth, and enforcement.
Dialout API
Triggering outbound calls with an API key.
Users
Human user accounts and roles.