Browse documentation
API keys
Rotate an API key
Creates a replacement key and schedules revocation of the old key. Requires api_keys:manage.
POST
/api-keys/{keyId}/rotateAuthorization
AuthorizationBearer <token>Path parameters
keyIdstringrequired- format
"uuid"
Bodyrequired
application/json
object
labelstring | null- maxLength
80
scopesarrayOmit to keep the current key's scopes.
- minItems
1- maxItems
11- uniqueItems
true
Show nested schema
Array items
string
Write and reveal scopes require their read scope (for example run:write requires run:read). Each scope may appear once.
- enum
["models:read","files:read","files:write","agents:read","agents:write","run:read","run:write","env_vars:read","env_vars:write","env_vars:reveal","api_keys:manage"]
modestringOptional. Rotation always issues a live key.
- enum
["live"]
gracePeriodSecondsinteger- minimum
0- maximum
604800
Response
Replacement key with one-time secret
object
idstringrequired- format
"uuid"
objectstringrequired- const
"api_key"
key_prefixstringrequiredkeystringReturned only when a key is created or rotated.
labelstring | nullscopesarrayrequiredGrants on this key. Active keys hold only canonical scopes; revoked keys keep the scopes they were issued with.
Show nested schema
Array items
string
modestringrequiredAlways live for active keys. test appears only on revoked keys issued before test mode was removed.
- enum
["live","test"]
created_atintegerrequiredlast_used_atinteger | nullrevoked_atinteger | nullupdated_atintegerold_key_revokes_atstringReturned only when a key is rotated.
- format
"date-time"