Docs/Account & billing

API key management

Organize keys by environment, project and teammate without losing control.

On this page

One key, one job

Treat a key as an independently revocable unit of purpose, not as an account password. The useful granularity is environment × workload:

text
web-prod          production web app
web-staging       pre-production
batch-etl         nightly batch jobs
partner-acme      temporary partner key (with an expiry)
local-alice       a developer's machine

You get: one key to revoke per incident, usage reports split by workload for free, and external keys that can carry their own model list and expiry.

What each key can carry

SettingEffectTypical value
Allowed modelsRestrict callable modelsBatch jobs limited to small models
Pricing tierWhich price tier it bills atFollows the account by default
ProjectSplit usage by projectOne project per workload
ExpiryAuto-disable on a date30 days for external partners
StatusEnabled / disabledPrefer disabling over deleting

Rotation

  1. Create the new key with a dated name (web-prod-2026q3).
  2. Update the secret manager and roll services.
  3. Confirm on the usage page that traffic moved and the old key is at zero.
  4. Disable the old key, wait 24 hours, then delete it.
Warning

Deletion is immediate and irreversible. Cron jobs, offline scripts and third-party integrations still holding that key will start returning 401. Disabling first keeps that risk small.

Working as a team

  • Never paste keys into chat. Share access to the secret manager, not the secret.
  • When someone leaves, revoke their personal keys (local-*) and leave production untouched.
  • Log the key name (never the value) at service start-up so incidents immediately show which key was in use.

Related

Contact us

Something unclear, or need a human? Pick the channel that fits your question.