Skip to main content
PUT
/
api
/
governance
/
virtual-keys
/
{vk_id}
Error
A valid request URL is required to generate request examples
{
  "message": "<string>",
  "virtual_key": {
    "id": "<string>",
    "name": "<string>",
    "value": "<string>",
    "is_active": true,
    "provider_configs": [
      {
        "id": 123,
        "virtual_key_id": "<string>",
        "provider": "<string>",
        "weight": 123,
        "allowed_models": [
          "<string>"
        ],
        "blacklisted_models": [
          "<string>"
        ],
        "allow_all_keys": true,
        "keys": [
          {
            "id": 123,
            "name": "<string>",
            "provider_id": 123,
            "provider": "<string>",
            "key_id": "<string>",
            "value": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "models": [
              "<string>"
            ],
            "weight": 123,
            "enabled": true,
            "use_for_batch_api": false,
            "created_at": "2023-11-07T05:31:56Z",
            "updated_at": "2023-11-07T05:31:56Z",
            "config_hash": "<string>",
            "azure_endpoint": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "azure_client_id": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "azure_client_secret": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "azure_tenant_id": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "vertex_project_id": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "vertex_project_number": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "vertex_region": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "vertex_auth_credentials": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "bedrock_access_key": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "bedrock_secret_key": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "bedrock_session_token": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "bedrock_region": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            },
            "bedrock_arn": {
              "value": "<string>",
              "env_var": "<string>",
              "from_env": true
            }
          }
        ],
        "rate_limit_id": "<string>",
        "budgets": [
          {
            "id": "<string>",
            "max_limit": 123,
            "reset_duration": "<string>",
            "last_reset": "2023-11-07T05:31:56Z",
            "current_usage": 123,
            "config_hash": "<string>",
            "created_at": "2023-11-07T05:31:56Z",
            "updated_at": "2023-11-07T05:31:56Z",
            "calendar_aligned": false,
            "team_id": "<string>",
            "virtual_key_id": "<string>",
            "provider_config_id": 123
          }
        ],
        "rate_limit": {
          "id": "<string>",
          "token_current_usage": 123,
          "token_last_reset": "2023-11-07T05:31:56Z",
          "request_current_usage": 123,
          "request_last_reset": "2023-11-07T05:31:56Z",
          "config_hash": "<string>",
          "created_at": "2023-11-07T05:31:56Z",
          "updated_at": "2023-11-07T05:31:56Z",
          "token_max_limit": 123,
          "token_reset_duration": "<string>",
          "request_max_limit": 123,
          "request_reset_duration": "<string>"
        }
      }
    ],
    "mcp_configs": [
      {
        "id": 123,
        "virtual_key_id": "<string>",
        "mcp_client_id": 123,
        "mcp_client": {
          "client_id": "<string>",
          "name": "<string>",
          "is_code_mode_client": true,
          "connection_string": "<string>",
          "stdio_config": {
            "command": "<string>",
            "args": [
              "<string>"
            ],
            "envs": [
              "<string>"
            ]
          },
          "tls_config": {
            "insecure_skip_verify": true,
            "ca_cert_pem": "<string>"
          },
          "oauth_config_id": "<string>",
          "headers": {},
          "tools_to_execute": [
            "<string>"
          ],
          "tools_to_auto_execute": [
            "<string>"
          ],
          "tool_pricing": {},
          "allow_on_all_virtual_keys": false,
          "per_user_header_keys": [
            "<string>"
          ],
          "disabled": false
        },
        "tools_to_execute": [
          "<string>"
        ]
      }
    ],
    "calendar_aligned": true,
    "config_hash": "<string>",
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z",
    "description": "<string>",
    "expires_at": "2023-11-07T05:31:56Z",
    "team_id": "<string>",
    "customer_id": "<string>",
    "rate_limit_id": "<string>",
    "team": {
      "id": "<string>",
      "name": "<string>",
      "customer_id": "<string>",
      "budget_id": "<string>",
      "customer": {
        "id": "<string>",
        "name": "<string>",
        "budget_id": "<string>",
        "budget": {
          "id": "<string>",
          "max_limit": 123,
          "reset_duration": "<string>",
          "last_reset": "2023-11-07T05:31:56Z",
          "current_usage": 123,
          "config_hash": "<string>",
          "created_at": "2023-11-07T05:31:56Z",
          "updated_at": "2023-11-07T05:31:56Z",
          "calendar_aligned": false,
          "team_id": "<string>",
          "virtual_key_id": "<string>",
          "provider_config_id": 123
        },
        "teams": "<array>",
        "virtual_keys": "<array>",
        "config_hash": "<string>",
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z"
      },
      "budget": {
        "id": "<string>",
        "max_limit": 123,
        "reset_duration": "<string>",
        "last_reset": "2023-11-07T05:31:56Z",
        "current_usage": 123,
        "config_hash": "<string>",
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z",
        "calendar_aligned": false,
        "team_id": "<string>",
        "virtual_key_id": "<string>",
        "provider_config_id": 123
      },
      "virtual_keys": "<array>",
      "profile": {},
      "config": {},
      "claims": {},
      "config_hash": "<string>",
      "created_at": "2023-11-07T05:31:56Z",
      "updated_at": "2023-11-07T05:31:56Z"
    },
    "customer": {
      "id": "<string>",
      "name": "<string>",
      "budget_id": "<string>",
      "budget": {
        "id": "<string>",
        "max_limit": 123,
        "reset_duration": "<string>",
        "last_reset": "2023-11-07T05:31:56Z",
        "current_usage": 123,
        "config_hash": "<string>",
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z",
        "calendar_aligned": false,
        "team_id": "<string>",
        "virtual_key_id": "<string>",
        "provider_config_id": 123
      },
      "teams": "<array>",
      "virtual_keys": "<array>",
      "config_hash": "<string>",
      "created_at": "2023-11-07T05:31:56Z",
      "updated_at": "2023-11-07T05:31:56Z"
    },
    "budgets": [
      {
        "id": "<string>",
        "max_limit": 123,
        "reset_duration": "<string>",
        "last_reset": "2023-11-07T05:31:56Z",
        "current_usage": 123,
        "config_hash": "<string>",
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z",
        "calendar_aligned": false,
        "team_id": "<string>",
        "virtual_key_id": "<string>",
        "provider_config_id": 123
      }
    ],
    "rate_limit": {
      "id": "<string>",
      "token_current_usage": 123,
      "token_last_reset": "2023-11-07T05:31:56Z",
      "request_current_usage": 123,
      "request_last_reset": "2023-11-07T05:31:56Z",
      "config_hash": "<string>",
      "created_at": "2023-11-07T05:31:56Z",
      "updated_at": "2023-11-07T05:31:56Z",
      "token_max_limit": 123,
      "token_reset_duration": "<string>",
      "request_max_limit": 123,
      "request_reset_duration": "<string>"
    },
    "created_by_user_id": "<string>"
  }
}

Authorizations

Authorization
string
header
required

Management API authentication for /api/* endpoints. Use the Authorization header with Bearer <API key>. Virtual keys, dashboard/user/session tokens, and x-api-key headers are not supported on management APIs.

Path Parameters

vk_id
string
required

Virtual key ID

Body

application/json

Update virtual key request

name
string
description
string
provider_configs
object[]
mcp_configs
object[]
team_id
string
customer_id
string
budgets
object[]

Budget quotas assigned directly to this virtual key. Replaces all direct virtual-key budgets when provided.

rate_limit
object

Update rate limit request

is_active
boolean
calendar_aligned
boolean
reset_budget_usage
boolean

When true, resets usage for virtual-key and provider-config budget records reconciled by this update.

expires_at
string

RFC3339 timestamp to set a new expiry (must be in the future), empty string to clear an existing expiry, omitted to leave it unchanged.

Response

Virtual key updated successfully

Virtual key operation response

message
string
required
virtual_key
object
required

Virtual key configuration