API keys
Create and manage personal API keys for scripts and integrations
Open your user menu in the dashboard and choose API keys. Keys belong to your personal account in the current organization.
Create a key
- Select Create API key and enter a descriptive name.
- Choose an expiration: 7, 30, 60, 90, or 365 days, or No expiration. The default is 30 days.
- Create the key and copy it before closing the dialog.
The full key is shown only when it is created. Operio stores a hash, so the original key cannot be retrieved later. If you lose it, delete it and create a replacement.
All keys currently have Full access, limited by your existing account, organization, and project permissions.
Authenticate API requests
Send the key to the backend API in the standard Bearer header:
Authorization: Bearer YOUR_API_KEYFor example, with OPERIO_API_URL set to your backend API origin and OPERIO_API_KEY set to your key:
curl "$OPERIO_API_URL/v1/me/api-tokens" \
-H "Authorization: Bearer $OPERIO_API_KEY"Expired, disabled, deleted, or unknown keys cannot authenticate. Existing JWT authentication continues to work.
Manage keys
The dashboard lists each key's name, status, scope, creation date, expiration, and last use.
- Disable stops authentication while keeping the key in the list. Enable restores access if the key has not expired.
- Delete permanently removes the key and stops authentication. It cannot be undone.
- Expiration is checked on every API request. Disabling and enabling a key does not extend its lifetime.
Management endpoints
All endpoints require authentication and operate on the current account's keys.
| Method | Path | Purpose |
|---|---|---|
POST | /v1/me/api-tokens | Create a key; returns the secret once in payload.token |
GET | /v1/me/api-tokens | List metadata without secrets or hashes |
PATCH | /v1/me/api-tokens/:id | Set { "disabled": true } or { "disabled": false } |
DELETE | /v1/me/api-tokens/:id | Delete a key; returns HTTP 204 |
Creation accepts a required name (up to 100 characters) and optional expiresInDays (7, 30, 60, 90, or 365). Omit expiration to create a non-expiring key. An ISO expiresAt date in the future is also supported for existing clients; use one expiration field at a time.