核心
API 参考
端点、认证、响应头与错误说明
TokenLab 提供 OpenAI 兼容端点,也支持 Anthropic 和 Gemini 请求格式。现有 OpenAI 客户端可以直接使用 /v1;只有应用依赖某种 API 的特有行为时,才需要换成对应格式。POST /v1/responses 是可选端点,具体能力取决于模型。
基础 URL
https://api.tokenlab.sh认证
模型请求使用 TokenLab API 密钥,标准鉴权请求头为:
Authorization: Bearer sk-your-api-keyGET /v1/models、GET /v1/models/{model} 和 GET /v1/pricing 是公开接口,不需要密钥。Anthropic Messages 也接受 x-api-key;Gemini 除 Bearer 外,还接受 x-goog-api-key 或 ?key=。/v1/management/* 要求使用管理令牌(mt-...)。
在 Console 创建 API 密钥。
交付方式
生成请求可以通过 X-TokenLab-Delivery-Policy: auto | verified | official 选择交付方式。请求头设置优先于 API 密钥设置,API 密钥设置优先于工作区默认值。
Auto默认优先使用 TokenLab Verified,需要时改用 Official。只按最终完成请求的方式计费。TokenLab Verified是由 TokenLab 验证的交付方式,按 TokenLab 价格计费。Official以模型厂商公开价格为基础,实际费用以 TokenLab 页面显示为准。- Realtime 会话沿用 API 密钥或工作区设置,不能通过查询参数改写。
请求头取值无效时返回 400。所选交付方式暂时不可用时返回 503 delivery_tier_unavailable,并带上请求 ID。
文档里的 Playground 不能输入 API 密钥。 发送真实请求可以使用:
- cURL — 复制示例,并替换
sk-your-api-key - Postman — 导入 OpenAPI 规范
- SDK — 在支持的 SDK 中设置 TokenLab API 地址
支持的端点
聊天与文字生成
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/chat/completions | POST | OpenAI 兼容 Chat Completions |
/v1/messages | POST | Anthropic Messages |
/v1/responses | POST | OpenAI Responses API |
Embeddings 与 Rerank
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/embeddings | POST | 创建文字 Embeddings |
/v1/rerank | POST | 按相关性重排文档 |
图像
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/images/generations | POST | 从文本生成图像 |
/v1/images/edits | POST | 编辑图像 |
/v1/images/generations/{id} | GET | 查询异步图片任务状态 |
图片模型可能直接返回成品,也可能返回异步任务。如果响应包含 poll_url,请使用这个地址查询任务。
音频
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/audio/speech | POST | 文本转语音 (TTS) |
/v1/audio/transcriptions | POST | 语音转文本 (STT) |
实时
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/realtime?model={model} | WS | 实时 WebSocket 会话 |
使用 /v1/realtime 建立 WebSocket 连接。普通 GET /v1/realtime 会返回端点信息。这不是 OpenAI Realtime REST API;client secret、Calls 和旧版 beta session 端点暂不支持。
视频
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/videos/generations | POST | 创建视频生成任务 |
/v1/tasks/{id} | GET | 获取视频任务状态 |
/v1/videos/generations/{id} | GET | 向后兼容的视频任务状态路径 |
使用创建任务时返回的 poll_url。/v1/videos/generations/{id} 仅为旧客户端保留。
异步任务
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/tasks/{id} | GET | 查询异步任务状态 |
视频、音乐、3D 和部分图片请求都可能在 poll_url 中返回这个端点。
音乐
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/music/generations | POST | 创建音乐生成任务 |
/v1/music/generations/{id} | GET | 音乐专用的状态路径 |
使用返回的 poll_url。需要音乐专用地址的旧客户端仍可使用 /v1/music/generations/{id}。
3D 生成
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/3d/generations | POST | 创建 3D 模型生成任务 |
/v1/3d/generations/{id} | GET | 3D 专用的状态路径 |
使用返回的 poll_url。需要 3D 专用地址的旧客户端仍可使用 /v1/3d/generations/{id}。
模型
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/models | GET | 列出所有可用模型 |
/v1/models/{model} | GET | 获取特定模型信息 |
Gemini(v1beta)
原生 Google Gemini API 格式支持:
| 端点 | 方法 | 说明 |
|---|---|---|
/v1beta/models/{model}:generateContent | POST | 生成内容(Gemini 格式) |
/v1beta/models/{model}:streamGenerateContent | POST | 流式生成内容(Gemini 格式) |
Gemini 端点除标准的 Bearer token 外,还支持 ?key= 查询参数认证。
响应格式
各端点保留对应 API 的响应格式。以下成功与错误示例采用 Chat Completions 格式。
成功响应
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1234567890,
"model": "gpt-5.6-terra",
"choices": [{"index": 0, "message": {"role": "assistant", "content": "Hello!"}, "finish_reason": "stop"}],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 20,
"total_tokens": 30
}
}请求 ID、任务 ID 与账单 ID
需要查询请求、任务或费用时,请保存响应中实际出现的 ID:
| 响应头 | 说明 |
|---|---|
X-Routing-Time-MS | 选择交付方式所用时间(如有) |
X-Request-ID | 用于支持和排查问题的请求 ID(如有) |
X-Task-ID | 任务型响应的公开异步任务标识(如可用) |
X-Billing-Transaction-ID | 最终计费后的计费交易标识(如可用) |
错误响应
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_api_key",
"code": "invalid_api_key"
}
}速率限制
账户层级决定默认的每分钟请求数:
| 角色 | 请求/分钟 |
|---|---|
| 用户 | 1,000 |
| 合作伙伴 | 10,000 |
| VIP | 10,000 |
如需自定义速率限制,请联系支持。确切值可能因账户配置而异。
达到限额后,API 返回 429 和 Retry-After 响应头。客户端应按给出的秒数等待。
OpenAPI 规范
OpenAPI 规范
下载完整的 OpenAPI 3.1 规范