鉴权
ttttt.ai 的所有 /v1/* 网关接口都需要带上 API Key。本页讲请求头怎么写、错误怎么读。
Base URL
https://api.ttttt.ai所有协议都挂在这一个域名下。不要在路径里加版本前缀以外的东西(例如不要写 /anthropic/v1/messages——直接用 /v1/messages)。
双别名 Header
下面两种 Header 完全等价,按你 SDK 的默认行为选一种即可:
Authorization: Bearer owo-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-api-key: owo-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| 协议族 | 习惯用法 |
|---|---|
| OpenAI Chat / Responses / Embeddings / Images | Authorization: Bearer ... |
| Anthropic Messages | x-api-key: ... |
同时带两个 Header 也允许;网关取任一个有效值即可。
请求示例
curl https://api.ttttt.ai/v1/chat/completions \
-H "Authorization: Bearer owo-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [{"role": "user", "content": "ping"}]
}'curl https://api.ttttt.ai/v1/messages \
-H "x-api-key: owo-..." \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 64,
"messages": [{"role": "user", "content": "ping"}]
}'鉴权错误
所有鉴权失败都返回 401 Unauthorized,body 用统一的错误信封:
{
"error": {
"message": "Invalid API key",
"type": "unauthorized",
"code": 401
}
}常见 message 与排查方向:
| message | 含义 | 处理 |
|---|---|---|
Invalid API key | 密钥不存在 / 已停用 / 已轮换 | 控制台核对密钥状态,或重新创建一把 |
Key expired | 密钥过了 expiresAt | 重新创建 / 不要再设过期时间 |
Model not allowed for this key | modelScope 拒绝 | 改请求体的 model,或在控制台放开 scope |
Organization deactivated | 组织被冻结(欠费、违规、或主动注销冷冻期) | 联系工单 |
Missing API key | 没带 Header | 检查 Authorization / x-api-key 是否真的发出去了 |
防泄漏
- 密钥只在服务端使用。任何
owo-...出现在浏览器、APP 客户端、CDN 缓存里都视为泄露。 - CI 环境用专门的短期密钥(
expiresAt设几周),不要复用人工密钥。 - 怀疑泄露:立即停用,不要先尝试”轮换”再观察——停用后再补一把新密钥发新值。
详细的密钥生命周期与 scope 见 API 密钥。
CORS / 浏览器直连
ttttt.ai 网关不开放 CORS——这是有意的设计,避免密钥从前端泄露。
如果你确实需要在浏览器里调用模型,在你自己的服务端做一层 Proxy:
浏览器 → 你的后端 (校验登录 / 限流 / 日志) → api.ttttt.aiRequest ID
每个响应都带 X-Request-ID: req-<uuid> 头部,对应的 request_id 同时写进 usage 记录。
排障时把这个 ID 提供给工单,运营可以一秒定位上游链路。
< HTTP/1.1 200 OK
< X-Request-ID: req-018ff3a2-9bca-7f29-bd0a-1c4b3d8e0c8e
< Content-Type: application/json时区
服务器统一使用 UTC 入库。控制台显示与告警邮件按 Asia/Shanghai (UTC+8) 渲染日期/时间——例如赠金有效期、用量按”上海当日”聚合都以此切日。
Last updated on