Skip to main content

Overview

Use this endpoint to update the name, usage limit, allowed models, expiry, or status of an existing user API key.

Request Body

At least one field must be provided.
FieldTypeDefault / LimitsNotes
statusenum-active, inactive, revoked
namestringlength 1-50Updated display name
limitAmountnumber | nullmin 0, input max 1000000null = unlimited, 0 = zero quota. Positive values are normalized to a stored cap that cannot exceed 100000 USD equivalent.
limitCurrencyenumdefault USDUSD only. Sending CNY returns 400 currency_retired.
modelsstring[]-Updated model allowlist
expiresAtstring | nullRFC3339 datetimenull clears the expiry

Notes

  • Monetary fields are USD-only. CNY inputs are retired and return 400 currency_retired.
  • Hard delete is intentionally not supported in Management API v1.
  • revoked is terminal for ordinary operational use; create a new key instead of expecting a future un-revoke flow.

Example

curl -X PATCH "https://api.tokenlab.sh/v1/management/api-keys/key_abc123def456" \
  -H "Authorization: Bearer mt-your-management-token" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "inactive",
    "limitAmount": 0
  }'

Request / Response

Use the interactive OpenAPI panel above for the exact schema and response fields.

Response example

{
  "id": "key_abc123def456",
  "name": "Backend Worker",
  "key_prefix": "sk-live...",
  "status": "inactive",
  "limit_amount": 0,
  "limit_amount_decimal": "0",
  "used_amount": 148.25,
  "used_amount_decimal": "148.25",
  "models": [
    "gpt-5-mini",
    "claude-3-7-sonnet"
  ],
  "expires_at": "2026-12-31T23:59:59.000Z",
  "last_used_at": "2026-07-08T03:12:45.000Z",
  "created_at": "2026-07-01T10:00:00.000Z"
}

Important fields

id
string
API key identifier used in follow-up Management API calls.
name
string
Display name for the API key.
key_prefix
string
Non-secret key prefix for display and support.
status
string
One of active, inactive, or revoked.
limit_amount
number | null
Spending cap in USD as a JSON number for display. null means unlimited.
limit_amount_decimal
string | null
Exact spending cap in USD as a decimal string. null means unlimited.
used_amount
number
Accumulated usage in USD as a JSON number for display.
used_amount_decimal
string
Exact accumulated usage in USD as a decimal string.
models
string[]
Per-key model allowlist. Empty array means no additional key-level model restriction.
expires_at
string | null
ISO timestamp when the key expires, or null for no expiry.
last_used_at
string | null
ISO timestamp for the most recent use, or null when unused.
created_at
string
ISO creation timestamp.