KeyEnvKeyEnv
API Reference

Tokens

Service token management for CI/CD

Tokens

Service token management for CI/CD

List service tokens

GET /api/v1/tokens

Returns all service tokens created by the user

Operation ID: listTokens · Authentication: Authorization: Bearer <token>

Responses

StatusDescriptionBody
200List of tokensobject
401Authentication requiredError

Response body (200)

FieldTypeDescription
tokensobject[]

Example

curl -X GET "https://api.keyenv.dev/api/v1/tokens" \
  -H "Authorization: Bearer $KEYENV_TOKEN"

Create service token

POST /api/v1/tokens

Creates a new service token for CI/CD or programmatic access.

Important: The token value is only returned once upon creation. Store it securely.

Operation ID: createToken · Authentication: Authorization: Bearer <token>

Request body

application/json (required)

FieldTypeRequiredDescription
namestringyes
team_idstring (uuid)yes
scopesenum (read, write)[]yes
expires_atstring (date-time)noOptional expiration date

Responses

StatusDescriptionBody
201Token createdobject
400Invalid requestError
401Authentication requiredError
403Insufficient permissionsError

Example

curl -X POST "https://api.keyenv.dev/api/v1/tokens" \
  -H "Authorization: Bearer $KEYENV_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","team_id":"00000000-0000-0000-0000-000000000000","scopes":["read"],"expires_at":"string"}'

Delete service token

DELETE /api/v1/tokens/{tokenId}

Permanently revokes a service token

Operation ID: deleteToken · Authentication: Authorization: Bearer <token>

Path parameters

NameTypeRequiredDescription
tokenIdstring (uuid)yesService token UUID

Responses

StatusDescriptionBody
204Token deleted
401Authentication requiredError
403Insufficient permissionsError
404Resource not foundError

Example

curl -X DELETE "https://api.keyenv.dev/api/v1/tokens/{tokenId}" \
  -H "Authorization: Bearer $KEYENV_TOKEN"

Rotate service token

POST /api/v1/tokens/{tokenId}/rotate

Rotates a service token, creating a new one with an optional grace period during which the old token remains valid. This allows seamless token rotation in CI/CD systems.

Operation ID: rotateToken · Authentication: Authorization: Bearer <token>

Path parameters

NameTypeRequiredDescription
tokenIdstring (uuid)yesService token UUID

Request body

application/json

FieldTypeRequiredDescription
grace_period_minutesintegernoHow long the old token remains valid

Responses

StatusDescriptionBody
200Token rotated successfullyRotateTokenResponse
401Authentication requiredError
403Insufficient permissionsError
404Resource not foundError

Response body (200)

FieldTypeDescription
new_tokenobject
old_token_expires_atstring (date-time)

Example

curl -X POST "https://api.keyenv.dev/api/v1/tokens/{tokenId}/rotate" \
  -H "Authorization: Bearer $KEYENV_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"grace_period_minutes":5}'

On this page