TransToken API 文档
统一的大模型 API 网关。一个密钥,一套协议,接入多家上游模型服务。
简介
TransToken 对外提供 OpenAI 兼容 与 Anthropic 兼容 两套接口。你现有的 SDK 或客户端,通常只需替换 base_url 与 api_key 即可接入,无需改动业务代码。
兼容性说明:所有 OpenAI 官方 SDK(Python / Node / Go / Java)均可直接指向本网关;Anthropic 官方 SDK 请把
base_url 指向同一地址,并使用 /v1/messages 端点。
服务地址
| 用途 | Base URL |
|---|---|
| API 网关(OpenAI 兼容) | https://api.transtoken.shop/v1 |
| API 网关(Anthropic 兼容) | https://api.transtoken.shop |
| 管理控制台 | https://api.transtoken.shop |
注意:OpenAI SDK 的
base_url 需要包含 /v1;Anthropic SDK 的 base_url 不要带 /v1(SDK 会自行拼接)。
快速开始
三步完成第一次调用:
- 登录控制台,在 令牌 页面创建一个 API Key。
- 复制 Key(形如
sk-...),妥善保存——它只会完整显示一次。 - 用下面的命令发起第一个请求。
curl https://api.transtoken.shop/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TRANSTOKEN_API_KEY" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{"role": "user", "content": "用一句话解释什么是 API 网关"}
]
}'
成功时会返回:
{
"id": "chatcmpl-8f3a...",
"object": "chat.completion",
"created": 1758102400,
"model": "gpt-4o-mini",
"choices": [{
"index": 0,
"message": { "role": "assistant", "content": "API 网关是..." },
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 18,
"completion_tokens": 42,
"total_tokens": 60
}
}
鉴权方式
所有接口使用 Bearer Token 鉴权,在请求头中携带:
Authorization: Bearer sk-xxxxxxxxxxxxxxxx
| 情况 | HTTP 状态 | 说明 |
|---|---|---|
| 未携带请求头 | 401 | 缺少 Authorization |
| Key 无效或已删除 | 401 | 令牌不存在 |
| Key 已过期 | 401 | 令牌超过有效期 |
| 额度不足 | 403 | 账户或令牌余额耗尽 |
安全建议:API Key 等同于账户凭证。请放在服务端环境变量中,不要写进前端代码、提交到 Git 仓库,或贴进聊天窗口。
列出模型
GET/v1/models
返回当前账号可用的模型列表。
curl https://api.transtoken.shop/v1/models \
-H "Authorization: Bearer $TRANSTOKEN_API_KEY"
{
"object": "list",
"data": [
{ "id": "gpt-4o-mini", "object": "model", "owned_by": "openai" },
{ "id": "claude-sonnet-4-5", "object": "model", "owned_by": "anthropic" }
]
}
对话补全
POST/v1/chat/completions
核心接口。兼容 OpenAI Chat Completions 协议,支持多轮对话、函数调用、多模态输入。
请求参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型 ID,见 /v1/models |
messages | array | 是 | 消息列表,元素含 role 与 content |
temperature | number | 否 | 采样温度,0–2,默认 1 |
top_p | number | 否 | 核采样,默认 1 |
max_tokens | integer | 否 | 生成的最大 token 数 |
stream | boolean | 否 | 是否流式返回,默认 false |
stop | string / array | 否 | 停止词,最多 4 个 |
tools | array | 否 | 函数调用定义 |
user | string | 否 | 终端用户标识,用于风控与统计 |
messages 的 role
| role | 说明 |
|---|---|
system | 系统提示词,设定模型行为 |
user | 用户输入 |
assistant | 模型回复(多轮对话时回填) |
tool | 函数调用结果 |
流式输出
设置 stream: true 后,服务端以 text/event-stream 逐块推送,每行以 data: 开头,以 data: [DONE] 结束。
curl -N https://api.transtoken.shop/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TRANSTOKEN_API_KEY" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role":"user","content":"写一首关于秋天的短诗"}],
"stream": true
}'
data: {"choices":[{"delta":{"content":"秋风"}}]}
data: {"choices":[{"delta":{"content":"起,落叶"}}]}
data: [DONE]
提示:流式输出务必使用
curl -N(关闭缓冲)或客户端的事件流解析,否则会等到全部结束才显示。
Anthropic 兼容接口
POST/v1/messages
供 Anthropic 官方 SDK 或 Claude Code 类客户端使用。字段遵循 Anthropic Messages API 规范。
curl https://api.transtoken.shop/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: $TRANSTOKEN_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"messages": [{"role":"user","content":"你好"}]
}'
两种鉴权都支持:此端点同时接受
x-api-key 与 Authorization: Bearer,按你的客户端习惯任选其一。
向量嵌入
POST/v1/embeddings
把文本转成向量,用于语义检索、聚类、RAG。
curl https://api.transtoken.shop/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TRANSTOKEN_API_KEY" \
-d '{
"model": "text-embedding-3-small",
"input": ["第一段文本", "第二段文本"]
}'
图像生成
POST/v1/images/generations
curl https://api.transtoken.shop/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TRANSTOKEN_API_KEY" \
-d '{
"model": "gpt-image-1",
"prompt": "一只在雨中打伞的橘猫,水彩风格",
"size": "1024x1024"
}'
公共参数与请求头
| 请求头 | 说明 |
|---|---|
Authorization | Bearer sk-...,OpenAI 系接口必需 |
x-api-key | Anthropic 系接口可用 |
Content-Type | 固定 application/json |
anthropic-version | Anthropic 接口必需,如 2023-06-01 |
错误码
错误返回体统一为:
{
"error": {
"message": "具体错误描述",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
| 状态码 | 含义 | 处理建议 |
|---|---|---|
400 | 请求参数错误 | 检查 JSON 结构、必填字段、模型名 |
401 | 鉴权失败 | 检查 Key 是否正确、是否过期 |
403 | 无权访问 / 额度不足 | 检查账户余额与令牌权限 |
404 | 模型或路径不存在 | 调用 /v1/models 确认可用模型 |
429 | 请求过于频繁 | 按返回的等待时间退避重试 |
500 | 服务端内部错误 | 稍后重试,持续失败请联系支持 |
502 / 504 | 上游不可达或超时 | 重试;若持续,等待上游恢复 |
限流说明
- 限流按 令牌(Key) 维度统计,不同 Key 互不影响。
- 触发限流时返回
429,响应头会带上Retry-After(秒)。 - 建议实现 指数退避:首次等待 1s,之后 2s、4s、8s,最多重试 3 次。
- 不要把重试逻辑放在循环里无间隔调用,会放大限流并浪费额度。
示例:cURL
export TRANSTOKEN_API_KEY="sk-你的密钥"
curl https://api.transtoken.shop/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TRANSTOKEN_API_KEY" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role":"user","content":"你好,请自我介绍一下"}]
}'
示例:Python
from openai import OpenAI
client = OpenAI(
api_key="sk-你的密钥",
base_url="https://api.transtoken.shop/v1",
)
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "你是一个简洁的助手"},
{"role": "user", "content": "解释一下什么是 token"},
],
)
print(resp.choices[0].message.content)
print(resp.usage.total_tokens)
流式:
with client.chat.completions.stream(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "写一段 200 字的散文"}],
) as stream:
for event in stream:
if event.type == "content.delta":
print(event.delta, end="", flush=True)
示例:Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.TRANSTOKEN_API_KEY,
baseURL: "https://api.transtoken.shop/v1",
});
const resp = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "你好" }],
});
console.log(resp.choices[0].message.content);
需要更多帮助? 登录 控制台 查看用量与账单;接口异常请带上
X-Oneapi-Request-Id 响应头反馈,便于定位。
© 2026 TransToken. 版权所有。