文档
认证
Kunavo 的认证方式与 OpenAI 完全相同:在 Authorization 请求头中使用一个 Bearer 令牌。与典型 OpenAI 集成的唯一差别是 base URL。
每次 API 调用都发送到 https://api.kunavo.com/v1,并携带 Authorization: Bearer sk-kn-XXX。就是这样。
基础 URL
为所有模型和所有模态提供服务的统一端点。
| 字段 | 值 |
|---|---|
| 基础 URL | https://api. |
| 区域 | 美国(阿什本)主区域,多区域边缘节点接入 |
| TLS | 强制使用 TLS 1.2+。仅支持 HTTPS。 |
路径布局遵循 OpenAI 的约定:
| 模态 | 路径 |
|---|---|
| 聊天 | POST /v1/ |
| 列出模型 | GET /v1/models |
| 图像生成 | POST /v1/ |
| 图像编辑 / 图生图 | POST /v1/ |
| 视频生成 | POST /v1/ |
| TTS | POST /v1/ |
| 音乐 | POST /v1/ |
API 密钥
API 密钥可从控制面板中的 /app/keys 创建。每个密钥:
- 以
sk-kn-开头,后接 30+ 个随机字符。 - 仅在创建时显示一次 — 此后 Kunavo 只保存其哈希值。
- 具有供控制面板使用的易读名称(例如
prod-web)。 - 可随时撤销 — 撤销后,该密钥会立即返回 401。
- 每个密钥都可设置独立的月度支出限额和 IP 允许列表;两者均可在
/app/keys中设置,并对每次调用生效。
每个密钥的支出限额(可选)
你可以为每个密钥设置美元计价的月度支出限额。如果该密钥在当前自然月的已结算用量将超过限额,使用此密钥发出的调用会返回 402 insufficient_quota,且不产生任何费用,直至月初限额重置。其他密钥不受影响 — 这是单个凭据的支出上限,而非整个账户的上限。
这正是无人值守智能体实际需要的约束:所有密钥共用钱包余额,因此仅靠余额无法阻止某个失控循环耗尽全部资金。为智能体单独创建一个密钥,并按任务设置限额,就能将最坏情况下的支出限制在该数额以内。将限额设为 $0 会暂停该密钥,但不会撤销它。
每个密钥的 IP 允许列表(可选)
也可以将密钥限制为仅允许从一组地址使用。每行输入一个 IPv4/IPv6 地址或 CIDR 网段(203.0.113.7、198.51.100.0/24、2001:db8::/32);从其他地址使用该密钥发起的调用都会被拒绝,并返回 403 permission_error。此规则适用于包括 /v1/models 在内的所有端点。留空则允许任何地址。
X-Forwarded-For 绕过允许列表。另一方面,设置了允许列表的密钥在调用方切换到新主机、NAT 网关或网络后会立即失效。允许列表应绑定到出口地址稳定的服务器,而非笔记本电脑。请求头
最简请求需要携带以下两个请求头:
Authorization: Bearer sk-kn-...
Content-Type: application/json所有端点也支持通过 Anthropic SDK 发送的 x-api-key 请求头读取密钥,以代替 Authorization,因此,为 Anthropic API 构建的客户端无需自定义请求头即可访问所有路由,包括 /v1/models。如果请求同时携带两者,则读取 Authorization。无论密钥通过哪个请求头传入,其支出限额和 IP 允许列表都会生效。
可选但建议设置:使用 User-Agent 标识你的应用。我们会在你的 /app/usage 控制面板中记录 user-agent,方便排查请求来源。
使用 OpenAI SDK
大多数团队继续使用官方 OpenAI SDK,只需替换 base_url。Python(v1.x+)和 Node(v4.x+)均可采用这种方式。
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["KUNAVO_API_KEY"],
base_url="https://api.kunavo.com/v1",
)Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.KUNAVO_API_KEY,
baseURL: "https://api.kunavo.com/v1",
});baseURL,在 Python 中使用 base_url。两者都指向同一个端点。轮换密钥
最佳实践:每季度轮换 API 密钥,或在密钥可能泄露时轮换。Kunavo 允许同一账户同时拥有多个密钥,因此轮换时可以让新旧密钥平稳重叠使用,而无需一次性切换。
# 1. Create a new key in /app/keys, set its name to e.g. "prod-2026-Q2"
# 2. Deploy new key to your servers
# 3. Verify traffic is flowing on the new key (dashboard shows usage)
# 4. Revoke the old key from /app/keys → it 401s immediately
# In code, swap one env var:
export KUNAVO_API_KEY="sk-kn-new-..."安全说明
- 切勿在客户端公开密钥。 浏览器代码和移动应用安装包都是公开的。请始终通过自己的服务器代理请求。
- 严格限定密钥用途。 为不同项目使用不同密钥,可在不影响其他工作负载的情况下撤销密钥;每个密钥还可设置独立的支出限额和 IP 允许列表,从而同时限制泄露密钥的费用和来源。
- 关注控制面板。
/app/usage页面会按密钥显示流量明细 — 更容易发现异常活动。 - 报告疑似泄露。 请发送邮件至 support@kunavo.com,我们会协助作废密钥并审查事件。