> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.openmodels.market/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.openmodels.market/_mcp/server.

# 身份验证

OpenModels 通过 `Authorization` 请求头中的 OpenModels API 密钥验证 API 请求。API 密钥采用 `ale-...` 格式。

## API 密钥格式

```text
ale-your-api-key
```

密钥仅在创建时显示一次。离开创建页面前，请将其保存到密钥管理器或环境变量中。

## Authorization 请求头

将密钥作为 Bearer 令牌发送：

```bash
curl https://api.getopenmodels.com/v1/chat/completions \
  -H "Authorization: Bearer $OM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.5-flash",
    "route": { "provider": "<provider-for-this-model>" },
    "route_mode": "balanced",
    "messages": [
      {
        "role": "user",
        "content": "Hello"
      }
    ]
  }'
```

## 环境变量

本地开发时请使用环境变量：

```bash
export OM_API_KEY="ale-your-api-key"
```

然后将其传递给 OpenAI 兼容 SDK：

```python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.getopenmodels.com/v1",
    api_key=os.environ["OM_API_KEY"],
)
```

## 密钥管理

为开发、预发布和生产环境使用不同密钥。这样可在不影响所有环境的情况下更轻松地轮换密钥。

推荐做法：

* 将密钥存储在密钥管理器中。
* 不要将密钥提交到源代码管理系统。
* 若密钥可能泄露，请立即轮换。
* 撤销未使用的密钥。
* 使用月度支出限额限制每个密钥的最大支出。
* 需要更清晰的用量追踪时，为不同应用或工作负载使用不同密钥。

## 常见身份验证错误

|  状态 | 代码                       | 含义                                        |
| --: | ------------------------ | ----------------------------------------- |
| 401 | `invalid_api_key`        | 密钥缺失、格式错误、无效、已撤销或不再有效                     |
| 401 | `key_market_key_invalid` | 由 Key Market 专用错误路径返回时，表示 OpenModels 密钥无效 |

如果请求返回 `401`，请检查 `Authorization` 请求头是否使用精确的 `Bearer <key>` 格式，以及该密钥是否仍存在于 OpenModels 控制台中。

如果身份验证成功但请求被积分或支出限额拦截，请参阅[积分与计费](/docs/billing-usage/credits-billing)、[速率限制](/docs/billing-usage/rate-limits)和[错误](/api-reference/models-routes/errors)。