key management

Info Key Fn

Retrieve information about a key.

Parameters:

  • key: str | None (query parameter) - The key to look up. Accepts the plaintext key or its hash; prefer the hash, since a query parameter is recorded verbatim by any HTTP access log in front of the proxy. Defaults to the key in the Authorization header.

Returns:

  • key: str - The key that was looked up, echoed back as it was passed in
  • info: dict - The key's row, minus the hashed token
    • key_alias: str | None - User-friendly key alias
    • spend: float - Amount spent by the key. When budget_duration is set this covers only the current budget window, not the key's lifetime
    • max_budget: float | None - Max budget for the key, enforced against spend
    • budget_duration: str | None - Budget reset period ("30d", "1h", etc.)
    • budget_reset_at: datetime | None - When the current budget window ends and spend is next reset to 0, not when it was last reset. Reset times snap to standard boundaries in the configured timezone (30d and 1mo land on the 1st of the month, 7d on Monday, 1h on the hour), so subtracting budget_duration from it does not give the window's start
    • model_max_budget: dict - Per-model budgets, e.g. {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}}
    • model_max_budget_usage: dict | None - Current-window spend per model, present only when the key has per-model budgets
    • budget_limits: list | None - Concurrent budget windows, exactly as stored
    • budget_limits_usage: dict | None - Current-window spend per budget window, e.g. {"1h": {"current_spend": 0.0009}}, present only when the key has budget windows (read from the same cross-pod spend counter the budget enforcement uses)
    • models: list - Model_name's the key is allowed to call
    • tpm_limit / rpm_limit: int | None - Tokens and requests per minute limits
    • metadata: dict - Metadata for the key, e.g. {"team": "core-infra"}
    • blocked: bool | None - Whether the key is blocked
    • expires: datetime | None - When the key stops authenticating requests
    • last_active: datetime | None - When the key was last used
    • object_permission: dict | None - Resolved vector store / MCP permissions when the key has an object_permission_id

Example Curl:

curl -X GET "http://0.0.0.0:4000/key/info?key=d5345c0ecc68ae6295c69f91926b2bd379e25481a40c34b5884d157a9f65d8fa" -H "Authorization: Bearer sk-1234"

Example Curl - if no key is passed, it will use the Key Passed in Authorization Header

curl -X GET "http://0.0.0.0:4000/key/info" -H "Authorization: Bearer sk-test-example-key-123"
get/key/info

Query parameters

keystring nullable

Key to look up. Pass the key's sha256 hash so the raw key stays out of URLs and access logs. Example key='d5345c0ecc68ae6295c69f91926b2bd379e25481a40c34b5884d157a9f65d8fa'

Key to look up. Pass the key's sha256 hash so the raw key stays out of URLs and access logs. Example key='d5345c0ecc68ae6295c69f91926b2bd379e25481a40c34b5884d157a9f65d8fa'

Response

Successful Response

{"stackTrail":"paths:/key/info:get:responses:200:content:application/json:schema","oasType":"schema","type":"unknown"}

Changes

Changed in 1 of the 42 revisions of this API.2

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    This revision also has 5 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog