Governance

Create virtual key

Creates a new virtual key with the specified configuration.

POST
/api/governance/virtual-keys
AuthorizationBearer <token>

Bearer token authentication. Use your MPilot virtual-key JWT or admin JWT. Virtual keys (prefixed with sk-bf-) can also be passed here.

In: header

namestring
description?string
provider_configs?array<object>

Provider configurations (empty means no providers allowed, deny-by-default)

mcp_configs?array<object>

MCP configurations (empty means no MCP tools allowed, deny-by-default)

team_id?string
customer_id?string
budget?CreateBudgetRequest

Create budget request

rate_limit?CreateRateLimitRequest

Create rate limit request

is_active?boolean

Response Body

curl -X POST "https://loading/{AI_GATEWAY_URL}/api/governance/virtual-keys" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "message": "string",
  "virtual_key": {
    "id": "string",
    "name": "string",
    "value": "string",
    "description": "string",
    "is_active": true,
    "provider_configs": [
      {
        "id": 0,
        "virtual_key_id": "string",
        "provider": "string",
        "weight": 0,
        "allowed_models": [
          "string"
        ],
        "blacklisted_models": [
          "string"
        ],
        "allow_all_keys": true,
        "rate_limit_id": "string",
        "budgets": [
          {
            "id": "string",
            "max_limit": 0,
            "reset_duration": "string",
            "calendar_aligned": false,
            "last_reset": "2019-08-24T14:15:22Z",
            "current_usage": 0,
            "config_hash": "string",
            "created_at": "2019-08-24T14:15:22Z",
            "updated_at": "2019-08-24T14:15:22Z"
          }
        ],
        "rate_limit": {
          "id": "string",
          "token_max_limit": 0,
          "token_reset_duration": "string",
          "token_current_usage": 0,
          "token_last_reset": "2019-08-24T14:15:22Z",
          "request_max_limit": 0,
          "request_reset_duration": "string",
          "request_current_usage": 0,
          "request_last_reset": "2019-08-24T14:15:22Z",
          "config_hash": "string",
          "created_at": "2019-08-24T14:15:22Z",
          "updated_at": "2019-08-24T14:15:22Z"
        },
        "keys": [
          {
            "id": 0,
            "name": "string",
            "provider_id": 0,
            "provider": "string",
            "key_id": "string",
            "value": {
              "value": "string",
              "env_var": "string",
              "from_env": true
            },
            "models": [
              "string"
            ],
            "weight": 0,
            "enabled": true,
            "use_for_batch_api": false,
            "created_at": "2019-08-24T14:15:22Z",
            "updated_at": "2019-08-24T14:15:22Z",
            "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
            }
          }
        ]
      }
    ],
    "mcp_configs": [
      {
        "id": 0,
        "mcp_client_name": "string",
        "tools_to_execute": [
          "string"
        ]
      }
    ]
  }
}
{
  "event_id": "string",
  "type": "string",
  "is_bifrost_error": true,
  "status_code": 0,
  "error": {
    "type": "string",
    "code": "string",
    "message": "string",
    "param": "string",
    "event_id": "string"
  },
  "extra_fields": {
    "provider": "openai",
    "model_requested": "string",
    "request_type": "string"
  }
}
{
  "event_id": "string",
  "type": "string",
  "is_bifrost_error": true,
  "status_code": 0,
  "error": {
    "type": "string",
    "code": "string",
    "message": "string",
    "param": "string",
    "event_id": "string"
  },
  "extra_fields": {
    "provider": "openai",
    "model_requested": "string",
    "request_type": "string"
  }
}
On this page

On this page

No Headings