API keys are available on the starter and growth plans. They are not available on solo or free plans.
Permission levels
Each API key has one of two permission levels:| Permission | Access |
|---|---|
read_only | GET requests only. Use this for read-only integrations such as dashboards or reporting tools. |
all_access | All HTTP methods. Use this when your integration needs to create or update resources. |
Create an API key
Use an API key
Include your key in theAuthorization header on any /v1/ endpoint:
/v1/ endpoints accept API key authentication. Standard dashboard endpoints use Clerk session auth instead.
List your API keys
Retrieve all keys for an account. Key values are not returned in list responses — only metadata:Delete an API key
Rate limits
API key requests are rate-limited to 100 requests per 2 minutes per key. If you exceed this limit, the API returns a429 Too Many Requests response. Build retry logic with exponential backoff into any integration that makes frequent requests.
Security best practices
Keep keys out of source control
Keep keys out of source control
Never commit API keys to a git repository. Store them in environment variables or a secrets manager (e.g. GitHub Actions secrets, AWS Secrets Manager, or a
.env file excluded by .gitignore).Use the minimum required permission
Use the minimum required permission
Create keys with
read_only permission unless your integration needs to create or modify resources. This limits the blast radius if a key is ever exposed.Rotate compromised keys immediately
Rotate compromised keys immediately
If you suspect a key has been exposed, delete it and create a new one. Update any integrations using the old key before deleting it to avoid downtime.
Use one key per integration
Use one key per integration
Create a separate key for each service or pipeline that needs API access. This makes it easy to revoke access for one integration without affecting others.
