Regenerate

Regenerate Key Fn

Regenerate an existing API key while optionally updating its parameters.

Parameters:

  • key: str (path parameter) - The key to regenerate
  • data: Optional[RegenerateKeyRequest] - Request body containing optional parameters to update
    • key_alias: Optional[str] - User-friendly key alias
    • user_id: Optional[str] - User ID associated with key
    • team_id: Optional[str] - Team ID associated with key
    • models: Optional[list] - Model_name's a user is allowed to call
    • tags: Optional[List[str]] - Tags for organizing keys (Enterprise only)
    • spend: Optional[float] - Amount spent by key
    • max_budget: Optional[float] - Max budget for key
    • model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}}
    • budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.)
    • soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached.
    • max_parallel_requests: Optional[int] - Rate limit for parallel requests
    • metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", "app": "app2"}
    • tpm_limit: Optional[int] - Tokens per minute limit
    • rpm_limit: Optional[int] - Requests per minute limit
    • model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, "claude-v1": 200}
    • model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": 100000, "claude-v1": 200000}
    • allowed_cache_controls: Optional[list] - List of allowed cache control values
    • duration: Optional[str] - Key validity duration ("30d", "1h", etc.)
    • permissions: Optional[dict] - Key-specific permissions
    • guardrails: Optional[List[str]] - List of active guardrails for the key
    • blocked: Optional[bool] - Whether the key is blocked

Returns:

  • GenerateKeyResponse containing the new key and its updated parameters

Example:

curl --location --request POST 'http://localhost:4000/key/sk-1234/regenerate'     --header 'Authorization: Bearer sk-1234'     --header 'Content-Type: application/json'     --data-raw '{
    "max_budget": 100,
    "metadata": {"team": "core-infra"},
    "models": ["gpt-4", "gpt-3.5-turbo"]
}'

Note: This is an Enterprise feature. It requires a premium license to use.

POST/key/{key}/regenerate
Authorization
Path parameters
key*Key
Header parameters
Body
Data
Response

Successful Response

Body
Response Regenerate Key Fn Key Key Regenerate Post
Request
const response = await fetch('/key/{key}/regenerate', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "key_alias": "text",
  "duration": "text",
  "models": [],
  "spend": 0,
  "max_budget": 0,
  "user_id": "text",
  "team_id": "text",
  "max_parallel_requests": 0,
  "tpm_limit": 0,
  "rpm_limit": 0,
  "budget_duration": "text",
  "allowed_cache_controls": [],
  "guardrails": [
    "text"
  ],
  "blocked": false,
  "key": "text",
  "budget_id": "text",
  "tags": [
    "text"
  ],
  "enforced_params": [
    "text"
  ],
  "key_name": "text",
  "expires": "2025-01-30T14:52:26.912Z",
  "token_id": "text",
  "token": "text"
}