Open API 文档
这个项目对外主要提供的是一组兼容 OpenAI 的 AI 调用接口,同时兼容部分 Claude、Gemini、Midjourney、Suno 和视频生成调用方式。
大多数接入场景下,你只需要准备三样东西:
- Base URL
- API Key
- 模型名称
API地址
- OpenAI 兼容:
https://centoken.cn/v1 - Gemini 兼容:
https://centoken.cn/v1beta - Midjourney:
https://centoken.cn/mj - Suno:
https://centoken.cn/suno
认证方式
OpenAI 兼容方式
Authorization: Bearer sk-your-token
Claude 兼容方式
如果你调用的是 Claude Messages 风格接口:
x-api-key: sk-your-token
anthropic-version: 2023-06-01
Gemini 兼容方式
Gemini 风格支持以下两种写法之一:
x-goog-api-key: sk-your-token
或:
?key=sk-your-token
最常用的接口
如果你是第一次接入,优先关注下面这些。
获取模型列表
GET /v1/models
用途:
- 查看当前令牌可调用的模型
- 给客户端做模型下拉框
- 接入前探测服务是否正常
示例:
curl 'https://centoken.cn/v1/models' \
-H 'Authorization: Bearer sk-your-token'
Chat Completions
POST /v1/chat/completions
这是最通用、兼容性最好的文本对话接口。大部分聊天客户端、插件、IDE、脚本都优先支持这个接口。
示例:
curl 'https://centoken.cn/v1/chat/completions' \
-H 'Authorization: Bearer sk-your-token' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "请用三句话介绍这个系统的作用。"
}
],
"stream": false
}'
典型请求字段:
model: 模型名称messages: 对话消息数组stream: 是否流式输出temperature: 采样温度max_tokens: 最大输出 token
Responses API
POST /v1/responses
如果你的客户端或 SDK 已经切到 OpenAI Responses 风格,可以用这个接口。
示例:
curl 'https://centoken.cn/v1/responses' \
-H 'Authorization: Bearer sk-your-token' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-4.1-mini",
"input": "帮我写一个 Go 的 HTTP 请求示例"
}'
Embeddings
POST /v1/embeddings
适合:
- 知识库
- RAG 检索
- 语义搜索
- 向量化入库
示例:
curl 'https://centoken.cn/v1/embeddings' \
-H 'Authorization: Bearer sk-your-token' \
-H 'Content-Type: application/json' \
-d '{
"model": "text-embedding-3-small",
"input": "这是一段需要做向量化的文本"
}'
图像生成
POST /v1/images/generations
适合:
- 文生图
- 图片素材生成
- 海报草图生成
示例:
curl 'https://centoken.cn/v1/images/generations' \
-H 'Authorization: Bearer sk-your-token' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-image-1",
"prompt": "一只站在雨夜霓虹街头的机械猫",
"size": "1024x1024"
}'
语音转文字
POST /v1/audio/transcriptions
适合:
- 录音转写
- 会议纪要
- 语音内容提取
通常为 multipart/form-data 上传。
文本转语音
POST /v1/audio/speech
适合:
- 配音
- 语音播报
- 语音助手
Claude Messages
POST /v1/messages
如果你用的是 Claude 官方风格 SDK 或已经按 Claude 请求格式组织数据,可以走这个接口。
示例:
curl 'https://centoken.cn/v1/messages' \
-H 'x-api-key: sk-your-token' \
-H 'anthropic-version: 2023-06-01' \
-H 'Content-Type: application/json' \
-d '{
"model": "claude-3-5-sonnet",
"max_tokens": 512,
"messages": [
{
"role": "user",
"content": "请总结一下 API 接入步骤"
}
]
}'
Gemini 风格调用
POST /v1beta/models/{model}:{action}
适合已经按 Gemini SDK 或 Gemini API 协议组织请求的场景。
例如:
POST /v1beta/models/gemini-2.5-flash:generateContent
视频生成
最常见的视频接口有:
POST /v1/video/generationsGET /v1/video/generations/:task_idPOST /v1/videosGET /v1/videos/:task_id
适合:
- 文生视频
- 图生视频
- 视频 remix
这类接口通常是异步任务模式:
- 先创建任务
- 拿到
task_id - 再轮询查询结果
5. 任务型接口
除了标准 OpenAI 兼容接口,这个项目还提供了一些任务型 API。
Midjourney
常见接口:
POST /mj/submit/imaginePOST /mj/submit/blendPOST /mj/submit/describeGET /mj/task/:id/fetch
适合已经接了 Midjourney 工作流的应用。
Suno
常见接口:
POST /suno/submit/:actionPOST /suno/fetchGET /suno/fetch/:id
适合做音乐生成或音频任务轮询。
Kling
常见接口:
POST /kling/v1/videos/text2videoPOST /kling/v1/videos/image2videoGET /kling/v1/videos/text2video/:task_idGET /kling/v1/videos/image2video/:task_id
推荐接入顺序
如果你是第一次对接,建议按下面顺序来:
- 先调用
GET /v1/models - 再调用
POST /v1/chat/completions - 确认模型名和 Key 可用后,再接
responses、embeddings、images、audio等其他接口 - 如果你做的是异步任务型场景,再接视频、Midjourney 或 Suno
常见错误
错误通常是 OpenAI 风格:
{
"error": {
"message": "insufficient quota",
"type": "new_api_error",
"param": "",
"code": "insufficient_user_quota"
}
}
常见错误码:
invalid_request: 请求格式不合法model_not_found: 模型不存在或当前不可用model_price_error: 模型计费未配置insufficient_user_quota: 额度不足pre_consume_token_quota_failed: 预扣额度失败access_denied: 无权访问该接口、分组或资源channel:no_available_key: 上游渠道当前没有可用 keychannel:invalid_key: 上游渠道 key 无效
调用注意事项
不同接口的响应风格不同
对接方主要使用的是 /v1、/v1beta、/mj、/suno 等 AI 接口,这些接口通常直接返回兼容上游的响应格式。
如果你调用的是 /api/...,那是站点业务接口,返回格式和 AI 接口不是同一套,不建议普通 AI 客户端直接依赖它们。
模型名必须以服务端实际配置为准
虽然接口兼容 OpenAI/Claude/Gemini,但最终能不能调用成功,仍取决于:
- 后台是否启用了该模型
- 当前 token 是否允许访问该模型
- 当前分组是否允许访问该模型
因此第一步最好总是先请求 /v1/models。
流式输出是否可用取决于模型和渠道
即使接口本身支持 stream: true,具体是否稳定,还取决于上游渠道和模型实现。
任务型接口多为异步
视频、Suno、Midjourney 这类接口通常不是一次请求直接出结果,而是:
- 创建任务
- 返回任务 ID
- 轮询获取结果
最小可用示例
如果你只想做最小接入,下面这一组通常已经够了:
探测服务
curl 'https://centoken.cn/v1/models' \
-H 'Authorization: Bearer sk-your-token'
发起聊天
curl 'https://centoken.cn/v1/chat/completions' \
-H 'Authorization: Bearer sk-your-token' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-4o-mini",
"messages": [
{"role": "user", "content": "你好"}
]
}'
做向量化
curl 'https://centoken.cn/v1/embeddings' \
-H 'Authorization: Bearer sk-your-token' \
-H 'Content-Type: application/json' \
-d '{
"model": "text-embedding-3-small",
"input": "hello world"
}'
适合哪些客户端直接接入
通常下面这几类可以直接接:
- 支持自定义 OpenAI Base URL 的聊天客户端
- 支持自定义 OpenAI Provider 的 IDE 插件
- 支持 OpenAI API 的后端 SDK
- 支持 Responses 或 Chat Completions 的脚本与自动化程序
- 支持 Embeddings 的知识库/RAG 系统
不建议普通接入方优先使用的接口
以下接口更偏后台管理,不适合作为普通模型调用入口:
/api/channel/.../api/option/.../api/performance/.../api/models/.../api/vendors/.../api/deployments/...
这些接口主要给控制台后台和管理员使用。