Key format
Veto API keys start withveto_ followed by 32 hex characters:
Key scopes
| Scope | Access |
|---|---|
admin | Full access — create, update, and delete agents, policies, and API keys |
read-only | Read access — query agents, policies, and audit logs; cannot create or modify anything |
POST /v1/authorize works with both admin and read-only keys. You can use a read-only key in your agent runtime and reserve the admin key for your control plane.Creating a key
From the dashboard
Open API Keys settings
Go to Settings → API Keys in the Veto dashboard.
Name and scope the key
Give the key a descriptive name (e.g.,
production-server) and select a scope: admin or read-only.Via the API
key field with the raw key. Store it immediately — subsequent calls to GET /v1/api-keys return only the prefix.
Using a key
Pass the key as a Bearer token in every request:Rotating keys
Veto supports multiple active keys per workspace, so you can rotate without downtime:Revoking a key
From the dashboard: Go to Settings → API Keys and click Revoke next to the key you want to remove. Via the API:204 No Content. Revoked keys are immediately invalid — any request using them will return 401 Unauthorized.
Rate limits
Each API key is limited to 600 requests per minute. Every response includes rate limit headers:| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed per minute |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
429 Too Many Requests with a Retry-After header indicating how many seconds to wait before retrying.