开发工具中集成Burncloud API 文档
This book is a comprehensive technical guide that details how to integrate Burncloud LMMs API into various software development tools. Burncloud LMMs API serves as a unified interface, connecting to numerous large language models worldwide, providing developers with powerful AI capabilities.
- 开发工具接入BurnCloud API前(必看)
- chatbox接入教程
- word接入教程
- vscode cline插件接入教程
- cherry studio接入教程
- anythingllm接入教程
- Pycharm-Continue插件接入教程
- vscode Roo Code插件接入教程
- Claude code router的接入Burncloud LLMs API教学视频
- 前端接口
开发工具接入BurnCloud API前(必看)
本文涉及到接入Burncloud API用到的两个关键变量,接入端点 $Burncloud_API_BaseUrl 和密钥 $Burncloud_API_KEY ,请务必花1分钟过一眼,看看如何获取。
-
Burncloud的API服务分标准服务C端和企业服务B端,接入前请先确认账号所在的端点(教程中的 $Burncloud_API_BaseUrl 的值),教程将以标准服务C端接入点举例。
- 标准服务C端接入点:https://ai.burncloud.com
- 企业服务B端接入点:https://b.burncloud.com
-
创建您的API密钥 ,教程中的 $Burncloud_API_KEY 的值。
-
在API调用中使用您的密钥。例如:
https://ai.burncloud.com/v1/chat/completions Token: sk-6B72ZIOj0p0tKEyaoyVAgRAz6SMtfxxxxxxxx curl https://ai.burncloud.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-6B72ZIOj0p0tKEyaoyVAgRAz6SMtfxxxxxxxx" \ -d '{ "model": "deepseek-r1", "messages": [{ "role": "user", "content": "你好,你今天怎么样?" }], "temperature": 0.7, "max_tokens": 150 }' -
开始使用API服务
chatbox接入教程
- 打开地址https://web.chatboxai.app 或者安装最新版桌面端软件
- 点setting(设置)
- 点击添加
- 选择新加的ai提供方
- 选择兼容模式
- 填入客服提供的key
- 输入ai的API地址:
- 标准服务C端接入点:https://ai.burncloud.com/v1
- 企业服务B端接入点:https://b.burncloud.com/v1
- 添加模型
- 点击新对话,选择模型就可以使用啦
chatbox对话页面
word接入教程
- API地址:
- 标准服务C端接入点:https://ai.burncloud.com/v1
- 企业服务B端接入点:https://b.burncloud.com/v1
- 下载officeAi助手 傻瓜式安装,下一步,下一步。如果有遇到要问题的,会弹出修复窗口。直接点击修复。
- 安装成功后 打开文档会自定弹出officeAi、点击右上角三个点 选择设置
- 保存模型
- 在word文档中使用
vscode cline插件接入教程
- 插件搜索cline 安装
cline 安装页面
- api提供方选择 OpenAl Compatible baseUrl输入: https://{{baseUrl}}/v1 填入key modelID 输入deepseek-r1
cline接入页面
cherry studio接入教程
目前Bruncloud已经成为Cherry Studio模型服务商,直接在Cherry Studio模型服务页面搜索 Bruncloud 就能使用。
-
安装后打开设置,找到BurnCloud,前往BurnCloud把key拷贝过来填入即可使用。
cherry studio 接入页面
-
可以像正常使用Cherry Studio一样调用BurnCloud提供的模型能力。
anythingllm接入教程
- 安装后进入设置页面 供应商选择:Local AI Chat Model Selection:deepseek-r1 Token context window:4096 Local AI API Key:我们提供的key Local AI Base URL: https://ai.burncloud.com/v1 配置完后点击保存
anythingllm 接入页面
- 返回对话窗口就可对话了
anythingllm 聊天页面
Pycharm-Continue插件接入教程
- 安装插件后 在右边打开插件
Pycharm-Continue页面
- 点击上方三个点 打开设置界面,打开配置文件
Pycharm-Continue接入页面
- models里面输入 保存
{
"model": "deepseek-r1",
"provider": "deepseek",
"apiKey": "sk-y6fiVJcNh7cSy5zslivJHgRAD4cIZi7kI5Bj3JdJRF6bRFj5",
"apiBase": "https://ai.burncloud.com/v1",
"title": "deepseek-r1"
},
{
"model": "deepseek-v3",
"provider": "deepseek",
"apiKey": "sk-y6fiVJcNh7cSy5zslivJHgRAD4cIZi7kI5Bj3JdJRF6bRFj5",
"apiBase": "https://ai.burncloud.com/v1",
"title": "deepseek-v3"
}
- 返回对话界面选择模型 即可发起对话
Pycharm-Continue聊天页面
Pycharm-Continue聊天页面
vscode Roo Code插件接入教程
Claude code router的接入Burncloud LLMs API教学视频
Claude code router的接入Burncloud LLMs API教学视频,少废话,直接上视频
前端接口
适合二开,使用burncloud作为供应商,包含用户余额,积分记录,任务记录,token余额等等,满足二开,建立服务后端。
鉴权体系说明(Auth)
说明
系统采用四级鉴权机制:公开、用户、管理员、Root
🔐 鉴权
- 公开:无需登录
- 用户:需要用户 Token (middleware.UserAuth)
- 管理员:需要管理员 Token (middleware.AdminAuth)
- Root:仅限最高权限用户 (middleware.RootAuth)
获取可用模型列表(Model)
说明
接口前缀统一为 http(s)://<your-domain>
生产环境应使用 HTTPS 以保证认证令牌。HTTP 仅建议用于开发环境。
接口信息
- 接口名称:获取前端可用模型列表
- HTTP 方法:GET
- 路径:
/api/models - 鉴权要求:用户
- 功能简介:获取当前用户可访问的 AI 模型列表,用于前端 Dashboard 展示
💡 请求示例
const response = await fetch('/api/models', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例
{
"success": true,
"data": {
"1": ["gpt-3.5-turbo", "gpt-4"],
"2": ["claude-3-sonnet", "claude-3-haiku"]
}
}
❗ 失败响应示例
{
"success": false,
"message": "未授权访问"
}
🧾 字段说明
- data (对象): 渠道 ID 到模型列表的映射
- 键 (字符串): 渠道 ID
- 值 (数组): 该渠道支持的模型名称列表
公共信息模块
功能说明
接口前缀为:
- 主站:https://ai.burncloud.com
- 企业站:https://b.burncloud.com
提供无需认证或低权限访问的系统信息,包括模型列表、定价信息、公告内容等。支持多语言显示和动态配置。前端首页和模型广场主要依赖这些接口获取展示数据。
🔐 无需鉴权
获取公告栏内容
- 接口名称:获取公告栏内容
- HTTP 方法:GET
- 路径:
/api/notice - 鉴权要求:公开
- 功能简介:获取系统公告内容,支持 Markdown 格式
💡 请求示例:
const response = await fetch('/api/notice', {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": "# 系统公告\n\n欢迎使用New API系统!"
}
❗ 失败响应示例:
{
"success": false,
"message": "获取公告失败"
}
🧾 字段说明:
- data (字符串): 公告内容,支持 Markdown 格式
关于页面信息
- 接口名称:关于页面信息
- HTTP 方法:GET
- 路径:
/api/about - 鉴权要求:公开
- 功能简介:获取关于页面的自定义内容
💡 请求示例:
const response = await fetch('/api/about', {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": "# 关于我们\n\nNew API是一个强大的AI网关系统..."
}
❗ 失败响应示例:
{
"success": false,
"message": "获取关于信息失败"
}
🧾 字段说明:
- data (字符串): 关于页面内容,支持 Markdown 格式或 URL 链接
首页自定义内容
- 接口名称:首页自定义内容
- HTTP 方法:GET
- 路径:
/api/home_page_content - 鉴权要求:公开
- 功能简介:获取首页的自定义内容,可以是 Markdown 文本或 iframe URL
💡 请求示例:
const response = await fetch('/api/home_page_content', {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": "# 欢迎使用New API\n\n这是一个功能强大的AI网关系统..."
}
❗ 失败响应示例:
{
"success": false,
"message": "获取首页内容失败"
}
🧾 字段说明:
- data (字符串): 首页内容,可以是 Markdown 文本或以"https://"开头的 URL 链接
模型倍率配置
- 接口名称:模型倍率配置
- HTTP 方法:GET
- 路径:
/api/ratio_config - 鉴权要求:公开
- 功能简介:获取公开的模型倍率配置信息,用于上游系统同步
💡 请求示例:
const response = await fetch('/api/ratio_config', {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"data": {
"model_ratio": {
"gpt-3.5-turbo": 1.0,
"gpt-4": 15.0,
"claude-3-sonnet": 3.0
},
"completion_ratio": {
"gpt-3.5-turbo": 1.0,
"gpt-4": 1.0
},
"model_price": {
"gpt-3.5-turbo-instruct": 0.002
}
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取倍率配置失败"
}
🧾 字段说明:
- data (对象): 倍率配置信息
- model_ratio (对象): 模型倍率映射,键为模型名,值为倍率数值
- completion_ratio (对象): 补全倍率映射
- model_price (对象): 模型价格映射,键为模型名,值为价格(美元)
价格与套餐信息
- 接口名称:价格与套餐信息
- HTTP 方法:GET
- 路径:
/api/pricing - 鉴权要求:可匿名/用户
- 功能简介:获取模型定价信息、分组倍率和可用分组
💡 请求示例:
const response = await fetch('/api/pricing', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_token', // 可选,登录用户可获得更详细信息
'New-Api-User': 'Bearer your_user_id' // 可选
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"data": [
{
"model_name": "gpt-3.5-turbo",
"enable_group": ["default", "vip"],
"model_ratio": 1.0,
"completion_ratio": 1.0,
"model_price": 0.002,
"quota_type": 1,
"description": "GPT-3.5 Turbo模型",
"vendor_id": 1,
"supported_endpoint_types": [1, 2]
}
],
"vendors": [
{
"id": 1,
"name": "OpenAI",
"description": "OpenAI官方模型",
"icon": "openai.png"
}
],
"group_ratio": {
"default": 1.0,
"vip": 0.8
},
"usable_group": {
"default": "默认分组",
"vip": "VIP分组"
},
"supported_endpoint": {
"1": {"method": "POST", "path": "/v1/chat/completions"},
"2": {"method": "POST", "path": "/v1/embeddings"}
},
"auto_groups": ["default"]
}
❗ 失败响应示例:
{
"success": false,
"message": "获取定价信息失败"
}
🧾 字段说明:
- data (数组): 模型定价信息列表
- model_name (字符串): 模型名称
- enable_group (数组): 可用分组列表
- model_ratio (数字): 模型倍率
- completion_ratio (数字): 补全倍率
- model_price (数字): 模型价格(美元)
- quota_type (数字): 计费类型,0=倍率计费,1=价格计费
- description (字符串): 模型描述
- vendor_id (数字): 供应商 ID
- supported_endpoint_types (数组): 支持的端点类型
- vendors (数组): 供应商信息列表
- id (数字): 供应商 ID
- name (字符串): 供应商名称
- description (字符串): 供应商描述
- icon (字符串): 供应商图标
- group_ratio (对象): 分组倍率映射
- usable_group (对象): 可用分组映射
- supported_endpoint (对象): 支持的端点信息
- auto_groups (数组): 自动分组列表
🔐 用户鉴权
获取前端可用模型列表
- 接口名称:获取前端可用模型列表
- HTTP 方法:GET
- 路径:
/api/models - 鉴权要求:用户
- 功能简介:获取当前用户可访问的 AI 模型列表,用于前端 Dashboard 展示
💡 请求示例:
const response = await fetch('/api/models', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"data": {
"1": ["gpt-3.5-turbo", "gpt-4"],
"2": ["claude-3-sonnet", "claude-3-haiku"]
}
}
❗ 失败响应示例:
{
"success": false,
"message": "未授权访问"
}
🧾 字段说明:
- data (对象): 渠道 ID 到模型列表的映射
- 键 (字符串): 渠道 ID
- 值 (数组): 该渠道支持的模型名称列表
邮箱身份验证模块
功能说明
接口前缀为:
- 主站:https://ai.burncloud.com
- 企业站:https://b.burncloud.com
实现邮箱验证和密码重置功能,集成限流和 Turnstile 防护。支持自动生成随机密码和邮件模板定制。在用户注册、账户绑定等场景中广泛使用。
🔐 无需鉴权
发送邮箱验证邮件
- 接口名称:发送邮箱验证邮件
- HTTP 方法:GET
- 路径:
/api/verification - 鉴权要求:公开 (限流)
- 功能简介:发送邮箱验证码到指定邮箱地址,用于邮箱绑定或验证操作
💡 请求示例:
const response = await fetch(`/api/verification?email=${email}&turnstile=${turnstileToken}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": ""
}
❗ 失败响应示例:
{
"success": false,
"message": "无效的参数"
}
🧾 字段说明:
- email (字符串): 接收验证码的邮箱地址,必须是有效的邮箱格式
- turnstile (字符串): Turnstile 验证令牌,用于防止机器人攻击
发送重置密码邮件
- 接口名称:发送重置密码邮件
- HTTP 方法:GET
- 路径:
/api/reset_password - 鉴权要求:公开 (限流)
- 功能简介:向已注册邮箱发送密码重置链接,用于用户找回密码
💡 请求示例:
const response = await fetch(`/api/reset_password?email=${email}&turnstile=${turnstileToken}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": ""
}
❗ 失败响应示例:
{
"success": false,
"message": "该邮箱地址未注册"
}
🧾 字段说明:
- email (字符串): 需要重置密码的邮箱地址,必须是已注册的邮箱
- turnstile (字符串): Turnstile 验证令牌,用于防止恶意请求
提交重置密码请求
- 接口名称:提交重置密码请求
- HTTP 方法:POST
- 路径:
/api/user/reset - 鉴权要求:公开
- 功能简介:通过邮件中的重置链接完成密码重置,系统会生成新密码并返回
💡 请求示例:
const response = await fetch('/api/user/reset', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: "user@example.com",
token: "verification_token_from_email"
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": "newPassword123"
}
❗ 失败响应示例:
{
"success": false,
"message": "重置链接非法或已过期"
}
🧾 字段说明:
- email (字符串): 要重置密码的邮箱地址
- token (字符串): 从重置邮件中获取的验证令牌
- data (字符串): 成功时返回的新密码,系统自动生成 12 位随机密码
OAuth 第三方登录模块
功能说明
接口前缀为:
- 主站:https://ai.burncloud.com
- 企业站:https://b.burncloud.com
支持 GitHub、OIDC、LinuxDO、微信、Telegram 等多种 OAuth 登录方式。实现 CSRF 防护和会话管理,支持账户绑定和自动注册。前端通过重定向方式处理 OAuth 流程。
🔐 无需鉴权
GitHub OAuth 跳转
- 接口名称:GitHub OAuth 跳转
- HTTP 方法:GET
- 路径:
/api/oauth/github - 鉴权要求:公开
- 功能简介:处理 GitHub OAuth 回调,完成用户登录或账户绑定
💡 请求示例:
// 前端通过重定向方式调用,通常由GitHub OAuth授权后自动回调
window.location.href = `https://github.com/login/oauth/authorize?client_id=${github_client_id}&state=${state}&scope=user:email`;
✅ 成功响应示例:
{
"success": true,
"message": "登录成功",
"data": {
"token": "user_access_token",
"user": {
"id": 1,
"username": "github_user",
"display_name": "GitHub User",
"email": "user@example.com"
}
}
}
❗ 失败响应示例:
{
"success": false,
"message": "管理员未开启通过 GitHub 登录以及注册"
}
🧾 字段说明:
- code (字符串): GitHub OAuth 授权码,由 GitHub 回调时提供
- state (字符串): 防 CSRF 状态码,必须与 session 中存储的一致
OIDC 通用 OAuth 跳转
- 接口名称:OIDC 通用 OAuth 跳转
- HTTP 方法:GET
- 路径:
/api/oauth/oidc - 鉴权要求:公开
- 功能简介:处理 OIDC OAuth 回调,支持通用 OpenID Connect 协议登录
💡 请求示例:
// 前端通过重定向方式调用
const url = new URL(auth_url);
url.searchParams.set('client_id', client_id);
url.searchParams.set('redirect_uri', `${window.location.origin}/oauth/oidc`);
url.searchParams.set('response_type', 'code');
url.searchParams.set('scope', 'openid profile email');
url.searchParams.set('state', state);
window.location.href = url.toString();
✅ 成功响应示例:
{
"success": true,
"message": "登录成功",
"data": {
"token": "user_access_token",
"user": {
"id": 1,
"username": "oidc_user",
"email": "user@example.com"
}
}
}
❗ 失败响应示例:
{
"success": false,
"message": "OIDC 获取用户信息失败!请检查设置!"
}
🧾 字段说明:
- code (字符串): OIDC 授权码
- state (字符串): 防 CSRF 状态码
LinuxDo OAuth 跳转
- 接口名称:LinuxDo OAuth 跳转
- HTTP 方法:GET
- 路径:
/api/oauth/linuxdo - 鉴权要求:公开
- 功能简介:处理 LinuxDo OAuth 回调,支持通过 LinuxDo 社区账户登录
💡 请求示例:
// 前端通过重定向方式调用
window.location.href = `https://connect.linux.do/oauth2/authorize?response_type=code&client_id=${linuxdo_client_id}&state=${state}`;
✅ 成功响应示例:
{
"success": true,
"message": "登录成功",
"data": {
"token": "user_access_token",
"user": {
"id": 1,
"username": "linuxdo_user",
"display_name": "LinuxDo User"
}
}
}
❗ 失败响应示例:
{
"success": false,
"message": "管理员关闭了新用户注册"
}
🧾 字段说明:
- code (字符串): LinuxDo OAuth 授权码
- state (字符串): 防 CSRF 状态码
- error (字符串): 可选,OAuth 错误码
- error_description (字符串): 可选,错误描述
微信扫码登录跳转
- 接口名称:微信扫码登录跳转
- HTTP 方法:GET
- 路径:
/api/oauth/wechat - 鉴权要求:公开
- 功能简介:处理微信扫码登录,通过验证码完成登录流程
💡 请求示例:
const response = await fetch(`/api/oauth/wechat?code=${wechat_verification_code}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "登录成功",
"data": {
"token": "user_access_token",
"user": {
"id": 1,
"username": "wechat_user",
"wechat_id": "wechat_openid"
}
}
}
❗ 失败响应示例:
{
"success": false,
"message": "验证码无效或已过期"
}
🧾 字段说明:
- code (字符串): 微信扫码获得的验证码
微信账户绑定
- 接口名称:微信账户绑定
- HTTP 方法:GET
- 路径:
/api/oauth/wechat/bind - 鉴权要求:公开
- 功能简介:将微信账户绑定到现有用户账户
💡 请求示例:
const response = await fetch(`/api/oauth/wechat/bind?code=${wechat_verification_code}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "微信账户绑定成功!"
}
❗ 失败响应示例:
{
"success": false,
"message": "验证码无效或该微信账户已被绑定"
}
🧾 字段说明:
- code (字符串): 微信扫码获得的验证码
邮箱绑定
- 接口名称:邮箱绑定
- HTTP 方法:GET
- 路径:
/api/oauth/email/bind - 鉴权要求:公开
- 功能简介:通过邮箱验证码绑定邮箱到用户账户
💡 请求示例:
const response = await fetch(`/api/oauth/email/bind?email=${email}&code=${email_verification_code}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "邮箱账户绑定成功!"
}
❗ 失败响应示例:
{
"success": false,
"message": "验证码无效或邮箱已被使用"
}
🧾 字段说明:
- email (字符串): 要绑定的邮箱地址
- code (字符串): 邮箱验证码
Telegram 登录
- 接口名称:Telegram 登录
- HTTP 方法:GET
- 路径:
/api/oauth/telegram/login - 鉴权要求:公开
- 功能简介:通过 Telegram Widget 完成用户登录
💡 请求示例:
const params = {
id: telegram_user_id,
first_name: "John",
last_name: "Doe",
username: "johndoe",
photo_url: "https://...",
auth_date: 1640995200,
hash: "telegram_hash"
};
const query = new URLSearchParams(params).toString();
const response = await fetch(`/api/oauth/telegram/login?${query}`, {
method: 'GET'
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "登录成功",
"data": {
"token": "user_access_token",
"user": {
"id": 1,
"username": "telegram_user",
"telegram_id": "123456789"
}
}
}
❗ 失败响应示例:
{
"success": false,
"message": "Telegram验证失败"
}
🧾 字段说明:
- id (字符串): Telegram 用户 ID
- first_name (字符串): 用户名字
- last_name (字符串): 用户姓氏,可选
- username (字符串): Telegram 用户名,可选
- photo_url (字符串): 头像 URL,可选
- auth_date (数字): 认证时间戳
- hash (字符串): Telegram 验证哈希
Telegram 账户绑定
- 接口名称:Telegram 账户绑定
- HTTP 方法:GET
- 路径:
/api/oauth/telegram/bind - 鉴权要求:公开
- 功能简介:将 Telegram 账户绑定到现有用户账户
💡 请求示例:
// 通过TelegramLoginButton组件自动处理参数
// 参数格式与Telegram登录相同
const response = await fetch('/api/oauth/telegram/bind', {
method: 'GET',
params: telegram_auth_params
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "Telegram账户绑定成功!"
}
❗ 失败响应示例:
{
"success": false,
"message": "该Telegram账户已被绑定"
}
🧾 字段说明:
- 参数格式与 Telegram 登录接口相同
获取随机 state(防 CSRF)
- 接口名称:获取随机 state
- HTTP 方法:GET
- 路径:
/api/oauth/state - 鉴权要求:公开
- 功能简介:生成随机 state 参数用于 OAuth 流程的 CSRF 防护
💡 请求示例:
let path = '/api/oauth/state';
let affCode = localStorage.getItem('aff');
if (affCode && affCode.length > 0) {
path += `?aff=${affCode}`;
}
const response = await fetch(path, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": "random_state_string_12chars"
}
❗ 失败响应示例:
{
"success": false,
"message": "生成state失败"
}
🧾 字段说明:
- aff (字符串): 可选,推荐码参数,用于记录用户来源
- data (字符串): 返回的随机 state 字符串,长度为 12 位
用户模块
功能说明
接口前缀为:
- 主站:https://ai.burncloud.com
- 企业站:https://b.burncloud.com
核心用户管理系统,实现四级权限体系(公开/用户/管理员/Root)和完整的用户生命周期管理。包含注册登录、个人资料、Token 管理、充值支付、推广系统等功能。支持 2FA、邮箱验证和多种 OAuth 登录方式。
账号注册/登录
🔐 无需鉴权
注册新账号
- 接口名称:注册新账号
- HTTP 方法:POST
- 路径:
/api/user/register - 鉴权要求:公开
- 功能简介:创建新用户账户,支持邮箱验证和推荐码功能
💡 请求示例:
const response = await fetch('/api/user/register', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
username: "newuser",
password: "password123",
email: "user@example.com",
verification_code: "123456",
aff_code: "INVITE123"
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "用户注册成功"
}
❗ 失败响应示例:
{
"success": false,
"message": "管理员关闭了新用户注册"
}
🧾 字段说明:
- username (字符串): 用户名,必填
- password (字符串): 密码,必填
- email (字符串): 邮箱地址,当启用邮箱验证时必填
- verification_code (字符串): 邮箱验证码,当启用邮箱验证时必填
- aff_code (字符串): 推荐码,可选
用户登录
- 接口名称:用户登录
- HTTP 方法:POST
- 路径:
/api/user/login - 鉴权要求:公开
- 功能简介:用户账户登录,支持两步验证(2FA)
💡 请求示例:
const response = await fetch('/api/user/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
username: "testuser",
password: "password123"
})
});
const data = await response.json();
✅ 成功响应示例(无 2FA):
{
"success": true,
"message": "登录成功",
"data": {
"token": "user_access_token",
"user": {
"id": 1,
"username": "testuser",
"role": 1,
"quota": 1000000
}
}
}
✅ 成功响应示例(需要 2FA):
{
"success": true,
"message": "请输入两步验证码",
"data": {
"require_2fa": true
}
}
❗ 失败响应示例:
{
"success": false,
"message": "管理员关闭了密码登录"
}
🧾 字段说明:
- username (字符串): 用户名,必填
- password (字符串): 密码,必填
- require_2fa (布尔型): 是否需要两步验证
Epay 支付回调
- 接口名称:Epay 支付回调
- HTTP 方法:GET
- 路径:
/api/user/epay/notify - 鉴权要求:公开
- 功能简介:处理易支付系统的支付回调通知
💡 请求示例:
// 通常由支付系统自动回调,前端无需主动调用
// 示例URL: /api/user/epay/notify?trade_no=USR1NO123456&money=10.00&trade_status=TRADE_SUCCESS
✅ 成功响应示例:
{
"success": true,
"message": "支付成功"
}
❗ 失败响应示例:
{
"success": false,
"message": "订单不存在或已处理"
}
🧾 字段说明:
- trade_no (字符串): 交易订单号
- money (字符串): 支付金额
- trade_status (字符串): 交易状态
- sign (字符串): 签名验证
列出所有分组(无鉴权版)
- 接口名称:列出所有分组
- HTTP 方法:GET
- 路径:
/api/user/groups - 鉴权要求:公开
- 功能简介:获取系统中所有用户分组信息,无需登录即可访问
💡 请求示例:
const response = await fetch('/api/user/groups', {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"default": {
"ratio": 1.0,
"desc": "默认分组"
},
"vip": {
"ratio": 0.8,
"desc": "VIP分组"
},
"auto": {
"ratio": "自动",
"desc": "自动选择最优分组"
}
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取分组信息失败"
}
🧾 字段说明:
- data (对象): 分组信息映射
- 键 (字符串): 分组名称
- ratio (数字/字符串): 分组倍率,"自动"表示自动选择
- desc (字符串): 分组描述
🔐 用户鉴权
退出登录
- 接口名称:退出登录
- HTTP 方法:GET
- 路径:
/api/user/logout - 鉴权要求:用户
- 功能简介:清除用户会话,退出登录状态
💡 请求示例:
const response = await fetch('/api/user/logout', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": ""
}
❗ 失败响应示例:
{
"success": false,
"message": "会话清除失败"
}
🧾 字段说明:
- 无请求参数
用户自身操作
🔐 用户鉴权
获取自己所在分组
- 接口名称:获取自己所在分组
- HTTP 方法:GET
- 路径:
/api/user/self/groups - 鉴权要求:用户
- 功能简介:获取当前登录用户可使用的分组信息,包含分组倍率和描述
💡 请求示例:
const response = await fetch('/api/user/self/groups', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"default": {
"ratio": 1.0,
"desc": "默认分组"
},
"vip": {
"ratio": 0.8,
"desc": "VIP分组"
},
"auto": {
"ratio": "自动",
"desc": "自动选择最优分组"
}
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取分组信息失败"
}
🧾 字段说明:
- data (对象): 用户可用分组信息映射 group.go:25-48
- 键 (字符串): 分组名称
- ratio (数字/字符串): 分组倍率,"自动"表示自动选择最优分组
- desc (字符串): 分组描述
获取个人资料
- 接口名称:获取个人资料
- HTTP 方法:GET
- 路径:
/api/user/self - 鉴权要求:用户
- 功能简介:获取当前用户的详细信息,包含权限、配额、设置等
💡 请求示例:
const response = await fetch('/api/user/self', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"id": 1,
"username": "testuser",
"display_name": "Test User",
"role": 1,
"status": 1,
"email": "user@example.com",
"group": "default",
"quota": 1000000,
"used_quota": 50000,
"request_count": 100,
"aff_code": "ABC123",
"aff_count": 5,
"aff_quota": 10000,
"aff_history_quota": 50000,
"inviter_id": 0,
"linux_do_id": "",
"setting": "{}",
"stripe_customer": "",
"sidebar_modules": "{\"chat\":{\"enabled\":true}}",
"permissions": {
"can_view_logs": true,
"can_manage_tokens": true
}
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取用户信息失败"
}
🧾 字段说明:
- id (数字): 用户 ID
- username (字符串): 用户名
- display_name (字符串): 显示名称
- role (数字): 用户角色,1=普通用户,10=管理员,100=Root 用户
- status (数字): 用户状态,1=正常,2=禁用
- email (字符串): 邮箱地址
- group (字符串): 所属分组
- quota (数字): 总配额
- used_quota (数字): 已使用配额
- request_count (数字): 请求次数
- aff_code (字符串): 推荐码
- aff_count (数字): 推荐人数
- aff_quota (数字): 推荐奖励配额
- aff_history_quota (数字): 历史推荐配额
- inviter_id (数字): 邀请人 ID
- linux_do_id (字符串): LinuxDo 账户 ID
- setting (字符串): 用户设置 JSON 字符串
- stripe_customer (字符串): Stripe 客户 ID
- sidebar_modules (字符串): 侧边栏模块配置 JSON 字符串
- permissions (对象): 用户权限信息
获取模型可见性
- 接口名称:获取模型可见性
- HTTP 方法:GET
- 路径:
/api/user/models - 鉴权要求:用户
- 功能简介:获取当前用户可访问的 AI 模型列表
💡 请求示例:
const response = await fetch('/api/user/models', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": [
"gpt-3.5-turbo",
"gpt-4",
"claude-3-sonnet",
"claude-3-haiku"
]
}
❗ 失败响应示例:
{
"success": false,
"message": "获取模型列表失败"
}
🧾 字段说明:
- data (数组): 用户可访问的模型名称列表
修改个人资料
- 接口名称:修改个人资料
- HTTP 方法:PUT
- 路径:
/api/user/self - 鉴权要求:用户
- 功能简介:更新用户个人信息或侧边栏设置
💡 请求示例(更新个人信息):
const response = await fetch('/api/user/self', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
display_name: "New Display Name",
email: "newemail@example.com"
})
});
const data = await response.json();
💡 请求示例(更新侧边栏设置):
const response = await fetch('/api/user/self', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
sidebar_modules: JSON.stringify({
chat: { enabled: true, playground: true },
console: { enabled: true, token: true }
})
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "更新成功"
}
❗ 失败响应示例:
{
"success": false,
"message": "输入不合法"
}
🧾 字段说明:
- display_name (字符串): 显示名称,可选
- email (字符串): 邮箱地址,可选
- password (字符串): 新密码,可选
- sidebar_modules (字符串): 侧边栏模块配置 JSON 字符串,可选
注销账号
- 接口名称:注销账号
- HTTP 方法:DELETE
- 路径:
/api/user/self - 鉴权要求:用户
- 功能简介:删除当前用户账户,Root 用户不可删除
💡 请求示例:
const response = await fetch('/api/user/self', {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": ""
}
❗ 失败响应示例:
{
"success": false,
"message": "不能删除超级管理员账户"
}
🧾 字段说明:
- 无请求参数
生成用户级别 Access Token
- 接口名称:生成用户级别 Access Token
- HTTP 方法:GET
- 路径:
/api/user/token - 鉴权要求:用户
- 功能简介:为当前用户生成新的访问令牌,用于 API 调用
💡 请求示例:
const response = await fetch('/api/user/token', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": "<YOUR_API_KEY>"
}
❗ 失败响应示例:
{
"success": false,
"message": "生成令牌失败"
}
🧾 字段说明:
- data (字符串): 生成的访问令牌
获取推广码信息
- 接口名称:获取推广码信息
- HTTP 方法:GET
- 路径:
/api/user/aff - 鉴权要求:用户
- 功能简介:获取或生成用户的推广码,用于邀请新用户注册
💡 请求示例:
const response = await fetch('/api/user/aff', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": "ABC123"
}
❗ 失败响应示例:
{
"success": false,
"message": "获取推广码失败"
}
🧾 字段说明:
- data (字符串): 用户的推广码,如果不存在会自动生成 4 位随机字符串
余额直充
- 接口名称:余额直充
- HTTP 方法:POST
- 路径:
/api/user/topup - 鉴权要求:用户
- 功能简介:使用兑换码为账户充值配额
💡 请求示例:
const response = await fetch('/api/user/topup', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
key: "REDEEM123456"
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "兑换成功",
"data": 100000
}
❗ 失败响应示例:
{
"success": false,
"message": "兑换码无效或已使用"
}
🧾 字段说明:
- key (字符串): 兑换码,必填
- data (数字): 成功时返回兑换的配额数量
提交支付订单
- 接口名称:提交支付订单
- HTTP 方法:POST
- 路径:
/api/user/pay - 鉴权要求:用户
- 功能简介:创建在线支付订单,支持多种支付方式
💡 请求示例:
const response = await fetch('/api/user/pay', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
amount: 10000,
payment_method: "alipay",
top_up_code: ""
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "success",
"data": {
"pid": "12345",
"type": "alipay",
"out_trade_no": "USR1NO123456",
"notify_url": "https://example.com/notify",
"return_url": "https://example.com/return",
"name": "TUC10000",
"money": "10.00",
"sign": "abc123def456"
},
"url": "https://pay.example.com/submit"
}
❗ 失败响应示例:
{
"success": false,
"message": "充值数量不能小于 1000"
}
🧾 字段说明:
- amount (数字): 充值数量,必须大于等于最小充值额度 topup.go:133-136
- payment_method (字符串): 支付方式,如"alipay"、"wxpay"等
- top_up_code (字符串): 充值码,可选
- data (对象): 支付表单参数
- url (字符串): 支付提交地址
余额支付
- 接口名称:余额支付
- HTTP 方法:POST
- 路径:
/api/user/amount - 鉴权要求:用户
- 功能简介:计算指定充值数量对应的实际支付金额
💡 请求示例:
const response = await fetch('/api/user/amount', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
amount: 10000,
top_up_code: ""
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "success",
"data": "10.00"
}
❗ 失败响应示例:
{
"success": false,
"message": "充值数量不能小于 1000"
}
🧾 字段说明:
- amount (数字): 充值数量,必须大于等于最小充值额度
- top_up_code (字符串): 充值码,可选
- data (字符串): 实际需要支付的金额(元)
推广额度转账
- 接口名称:推广额度转账
- HTTP 方法:POST
- 路径:
/api/user/aff_transfer - 鉴权要求:用户
- 功能简介:将推广奖励额度转换为可用配额
💡 请求示例:
const response = await fetch('/api/user/aff_transfer', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
quota: 50000
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "划转成功"
}
❗ 失败响应示例:
{
"success": false,
"message": "邀请额度不足!"
}
🧾 字段说明:
- quota (数字): 要转换的额度数量,必须大于等于最小单位额度
更新用户设置
- 接口名称:更新用户设置
- HTTP 方法:PUT
- 路径:
/api/user/setting - 鉴权要求:用户
- 功能简介:更新用户的个人设置配置
💡 请求示例:
const response = await fetch('/api/user/setting', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
theme: "dark",
language: "zh-CN",
notifications: {
email: true,
browser: false
}
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "设置更新成功"
}
❗ 失败响应示例:
{
"success": false,
"message": "设置格式错误"
}
🧾 字段说明:
- 请求体可包含任意用户设置字段,以 JSON 格式提交
- 具体字段根据前端设置页面的需求而定
管理员用户管理
🔐 管理员鉴权
获取全部用户列表
- 接口名称:获取全部用户列表
- HTTP 方法:GET
- 路径:
/api/user/ - 鉴权要求:管理员
- 功能简介:分页获取系统中所有用户的列表信息
💡 请求示例:
const response = await fetch('/api/user/?p=1&page_size=20', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"username": "testuser",
"display_name": "Test User",
"role": 1,
"status": 1,
"email": "user@example.com",
"group": "default",
"quota": 1000000,
"used_quota": 50000,
"request_count": 100
}
],
"total": 50,
"page": 1,
"page_size": 20
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取用户列表失败"
}
🧾 字段说明:
- p (数字): 页码,默认为 1
- page_size (数字): 每页数量,默认为 20
- items (数组): 用户信息列表
- total (数字): 用户总数
- page (数字): 当前页码
- page_size (数字): 每页数量
搜索用户
- 接口名称:搜索用户
- HTTP 方法:GET
- 路径:
/api/user/search - 鉴权要求:管理员
- 功能简介:根据关键词和分组搜索用户
💡 请求示例:
const response = await fetch('/api/user/search?keyword=test&group=default&p=1&page_size=20', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"username": "testuser",
"display_name": "Test User",
"role": 1,
"status": 1,
"email": "test@example.com",
"group": "default"
}
],
"total": 1,
"page": 1,
"page_size": 20
}
}
❗ 失败响应示例:
{
"success": false,
"message": "搜索用户失败"
}
🧾 字段说明:
- keyword (字符串): 搜索关键词,可匹配用户名、显示名、邮箱
- group (字符串): 用户分组过滤条件
- p (数字): 页码,默认为 1
- page_size (数字): 每页数量,默认为 20
获取单个用户信息
- 接口名称:获取单个用户信息
- HTTP 方法:GET
- 路径:
/api/user/:id - 鉴权要求:管理员
- 功能简介:获取指定用户的详细信息,包含权限检查
💡 请求示例:
const response = await fetch('/api/user/123', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"id": 123,
"username": "targetuser",
"display_name": "Target User",
"role": 1,
"status": 1,
"email": "target@example.com",
"group": "default",
"quota": 1000000,
"used_quota": 50000,
"request_count": 100,
"aff_code": "ABC123",
"aff_count": 5
}
}
❗ 失败响应示例:
{
"success": false,
"message": "无权获取同级或更高等级用户的信息"
}
🧾 字段说明:
- id (数字): 用户 ID,通过 URL 路径传递
- 返回完整的用户信息,但管理员无法查看同级或更高权限用户的信息
创建用户
- 接口名称:创建用户
- HTTP 方法:POST
- 路径:
/api/user/ - 鉴权要求:管理员
- 功能简介:创建新用户账户,管理员不能创建权限大于等于自己的用户
💡 请求示例:
const response = await fetch('/api/user/', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
username: "newuser",
password: "password123",
display_name: "New User",
role: 1
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": ""
}
❗ 失败响应示例:
{
"success": false,
"message": "无法创建权限大于等于自己的用户"
}
🧾 字段说明:
- username (字符串): 用户名,必填
- password (字符串): 密码,必填
- display_name (字符串): 显示名称,可选,默认为用户名
- role (数字): 用户角色,必须小于当前管理员角色
冻结/重置等管理操作
- 接口名称:冻结/重置等管理操作
- HTTP 方法:POST
- 路径:
/api/user/manage - 鉴权要求:管理员
- 功能简介:对用户执行管理操作,包括启用、禁用、删除、提升、降级等
💡 请求示例:
const response = await fetch('/api/user/manage', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
id: 123,
action: "disable"
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": ""
}
❗ 失败响应示例:
{
"success": false,
"message": "无法禁用超级管理员用户"
}
🧾 字段说明:
- id (数字): 目标用户 ID,必填
- action (字符串): 操作类型,必填,可选值:
- disable: 禁用用户
- enable: 启用用户
- delete: 删除用户
- promote: 提升为管理员(仅 Root 用户可操作)
- demote: 降级为普通用户
更新用户
- 接口名称:更新用户
- HTTP 方法:PUT
- 路径:
/api/user/ - 鉴权要求:管理员
- 功能简介:更新用户信息,包含权限检查和配额变更记录
💡 请求示例:
const response = await fetch('/api/user/', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
id: 123,
username: "updateduser",
display_name: "Updated User",
email: "updated@example.com",
quota: 2000000,
role: 1,
status: 1
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": ""
}
❗ 失败响应示例:
{
"success": false,
"message": "无权更新同权限等级或更高权限等级的用户信息"
}
🧾 字段说明:
- id (数字): 用户 ID,必填
- username (字符串): 用户名,可选
- display_name (字符串): 显示名称,可选
- email (字符串): 邮箱地址,可选
- password (字符串): 新密码,可选,为空则不更新密码
- quota (数字): 用户配额,可选
- role (数字): 用户角色,不能大于等于当前管理员角色
- status (数字): 用户状态,可选
删除用户
- 接口名称:删除用户
- HTTP 方法:DELETE
- 路径:
/api/user/:id - 鉴权要求:管理员
- 功能简介:硬删除指定用户,管理员不能删除同级或更高权限用户
💡 请求示例:
const response = await fetch('/api/user/123', {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": ""
}
❗ 失败响应示例:
{
"success": false,
"message": "无权删除同权限等级或更高权限等级的用户"
}
🧾 字段说明:
- id (数字): 用户 ID,通过 URL 路径传递
- 执行硬删除操作,不可恢复
Token 管理模块
功能说明
接口前缀为:
- 主站:https://ai.burncloud.com
- 企业站:https://b.burncloud.com
用户 API Token 的完整管理系统。支持 Token 创建、更新、删除、批量操作等功能。包含模型限制、IP 限制、配额管理、过期时间等精细化控制。前端 Token 页面的核心数据来源。
🔐 用户鉴权
获取全部 Token
- 接口名称:获取全部 Token
- HTTP 方法:GET
- 路径:
/api/token/ - 鉴权要求:用户
- 功能简介:分页获取当前用户的所有 Token 列表
💡 请求示例:
const response = await fetch('/api/token/?p=1&size=20', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"name": "API Token",
"key": "<YOUR_API_KEY>",
"status": 1,
"remain_quota": 1000000,
"unlimited_quota": false,
"expired_time": 1640995200,
"created_time": 1640908800,
"accessed_time": 1640995000
}
],
"total": 5,
"page": 1,
"page_size": 20
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取Token列表失败"
}
🧾 字段说明:
- p (数字): 页码,默认为 1
- size (数字): 每页数量,默认为 20
- items (数组): Token 信息列表
- total (数字): Token 总数
- page (数字): 当前页码
- page_size (数字): 每页数量
搜索 Token
- 接口名称:搜索 Token
- HTTP 方法:GET
- 路径:
/api/token/search - 鉴权要求:用户
- 功能简介:根据关键词和 Token 值搜索用户的 Token
💡 请求示例:
const response = await fetch('/api/token/search?keyword=api&token=sk-123', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": [
{
"id": 1,
"name": "API Token",
"key": "sk-your-token-placeholder",
"status": 1,
"remain_quota": 1000000
}
]
}
❗ 失败响应示例:
{
"success": false,
"message": "搜索Token失败"
}
🧾 字段说明:
- keyword (字符串): 搜索关键词,匹配 Token 名称
- token (字符串): Token 值搜索,支持部分匹配
获取单个 Token
- 接口名称:获取单个 Token
- HTTP 方法:GET
- 路径:
/api/token/:id - 鉴权要求:用户
- 功能简介:获取指定 Token 的详细信息
💡 请求示例:
const response = await fetch('/api/token/123', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"id": 123,
"name": "API Token",
"key": "sk-your-token-placeholder",
"status": 1,
"remain_quota": 1000000,
"unlimited_quota": false,
"model_limits_enabled": true,
"model_limits": "gpt-3.5-turbo,gpt-4",
"allow_ips": "192.168.1.1,10.0.0.1",
"group": "default",
"expired_time": 1640995200,
"created_time": 1640908800,
"accessed_time": 1640995000
}
}
❗ 失败响应示例:
{
"success": false,
"message": "Token不存在"
}
🧾 字段说明:
- id (数字): Token ID,通过 URL 路径传递
创建 Token
- 接口名称:创建 Token
- HTTP 方法:POST
- 路径:
/api/token/ - 鉴权要求:用户
- 功能简介:创建新的 API Token,支持批量创建
💡 请求示例:
const response = await fetch('/api/token/', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
name: "My API Token",
expired_time: 1640995200,
remain_quota: 1000000,
unlimited_quota: false,
model_limits_enabled: true,
model_limits: ["gpt-3.5-turbo", "gpt-4"],
allow_ips: "192.168.1.1,10.0.0.1",
group: "default"
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": ""
}
❗ 失败响应示例:
{
"success": false,
"message": "令牌名称过长"
}
🧾 字段说明:
- name (字符串): Token 名称,最大长度 30 个字符
- expired_time (数字): 过期时间戳,-1 表示永不过期
- remain_quota (数字): 剩余配额
- unlimited_quota (布尔型): 是否无限配额
- model_limits_enabled (布尔型): 是否启用模型限制
- model_limits (数组): 允许使用的模型列表
- allow_ips (字符串): 允许的 IP 地址,逗号分隔
- group (字符串): 所属分组
更新 Token
- 接口名称:更新 Token
- HTTP 方法:PUT
- 路径:
/api/token/ - 鉴权要求:用户
- 功能简介:更新 Token 配置,支持状态切换和完整更新
💡 请求示例(完整更新):
const response = await fetch('/api/token/', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
id: 123,
name: "Updated Token",
expired_time: 1640995200,
remain_quota: 2000000,
unlimited_quota: false,
model_limits_enabled: true,
model_limits: ["gpt-3.5-turbo", "gpt-4"],
allow_ips: "192.168.1.1",
group: "vip"
})
});
const data = await response.json();
💡 请求示例(仅更新状态):
const response = await fetch('/api/token/?status_only=true', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
id: 123,
status: 1
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"id": 123,
"name": "Updated Token",
"status": 1
}
}
❗ 失败响应示例:
{
"success": false,
"message": "令牌已过期,无法启用,请先修改令牌过期时间,或者设置为永不过期"
}
🧾 字段说明:
- id (数字): Token ID,必填
- status_only (查询参数): 是否仅更新状态
- 其他字段与创建 Token 接口相同,均为可选
删除 Token
- 接口名称:删除 Token
- HTTP 方法:DELETE
- 路径:
/api/token/:id - 鉴权要求:用户
- 功能简介:删除指定的 Token
💡 请求示例:
const response = await fetch('/api/token/123', {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": ""
}
❗ 失败响应示例:
{
"success": false,
"message": "Token不存在"
}
🧾 字段说明:
- id (数字): Token ID,通过 URL 路径传递
批量删除 Token
- 接口名称:批量删除 Token
- HTTP 方法:POST
- 路径:
/api/token/batch - 鉴权要求:用户
- 功能简介:批量删除多个 Token
💡 请求示例:
const response = await fetch('/api/token/batch', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
},
body: JSON.stringify({
ids: [1, 2, 3, 4, 5]
})
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": 5
}
❗ 失败响应示例:
{
"success": false,
"message": "参数错误"
}
🧾 字段说明:
- ids (数组): 要删除的 Token ID 列表,必填且不能为空
- data (数字): 成功删除的 Token 数量
令牌用量查询(Token Usage)API 文档
功能说明
通过认证查询当前 Bearer Token 的额度使用情况:授予总量、已用、剩余、是否无限、模型限额及到期时间。
📮 端点
GET /api/usage/token
- 需要在请求头中携带鉴权信息
- 仅返回当前请求所使用的 Token 的用量信息
🔐 鉴权
在请求头中包含以下内容进行 API 密钥认证:
Authorization: Bearer $NEWAPI_API_KEY
- 支持携带或不携带
sk-前缀,服务端会自动兼容 - 缺少或无效的 Authorization 头将返回 401
💡 请求示例
curl -X GET https://ai.burncloud.com/api/usage/token \
-H "Authorization: Bearer $NEWAPI_API_KEY"
✅ 成功响应示例
{
"code": true,
"message": "ok",
"data": {
"object": "token_usage",
"name": "Default Token",
"total_granted": 1000000,
"total_used": 12345,
"total_available": 987655,
"unlimited_quota": false,
"model_limits": {
"gpt-4o-mini": true
},
"model_limits_enabled": false,
"expires_at": 0
}
}
❗ 错误响应示例
缺少鉴权头:
{
"success": false,
"message": "No Authorization header"
}
非 Bearer 方案:
{
"success": false,
"message": "Invalid Bearer token"
}
Token 查找失败(例如无效或已删除):
{
"success": false,
"message": "token not found"
}
🧾 字段说明(data)
| 字段 | 描述 |
|---|---|
| object | 固定为 token_usage |
| name | 令牌名称 |
| total_granted | 授予总量(= 已用 + 剩余) |
| total_used | 已使用额度 |
| total_available | 可用剩余额度 |
| unlimited_quota | 是否为无限额度 |
| model_limits | 允许使用的模型列表 |
| model_limits_enabled | 是否启用模型限额 |
| expires_at | 到期时间的 Unix 时间戳(秒)。若永不过期返回 0(由后端将 -1 归一化为 0) |
日志模块
功能说明
接口前缀为:
- 主站:https://ai.burncloud.com
- 企业站:https://b.burncloud.com
分层的日志查询系统,支持管理员查看全站日志和用户查看个人日志。提供实时统计(RPM/TPM)、多维度过滤、历史数据清理等功能。支持 CORS 的 Token 查询接口便于第三方集成。
🔐 无需鉴权
根据 Token 查询日志
- 接口名称:根据 Token 查询日志
- HTTP 方法:GET
- 路径:
/api/log/token - 鉴权要求:公开
- 功能简介:通过 Token 密钥查询相关日志记录,支持跨域访问
💡 请求示例:
const response = await fetch('/api/log/token?key=<TOKEN_PLACEHOLDER>', {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": [
{
"id": 1,
"type": 2,
"content": "API调用成功",
"model_name": "gpt-4",
"quota": 1000,
"created_at": 1640995000
}
]
}
❗ 失败响应示例:
{
"success": false,
"message": "Token不存在或无权限"
}
🧾 字段说明:
- key (字符串): Token 密钥,必填
🔐 用户鉴权
我的日志统计
- 接口名称:我的日志统计
- HTTP 方法:GET
- 路径:
/api/log/self/stat - 鉴权要求:用户
- 功能简介:获取当前用户的日志统计信息,包括配额消耗、请求频率和 Token 使用量
💡 请求示例:
const response = await fetch('/api/log/self/stat?type=2&start_timestamp=1640908800&end_timestamp=1640995200&token_name=api_token&model_name=gpt-4&group=default', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"quota": 50000,
"rpm": 10,
"tpm": 1500
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取统计信息失败"
}
🧾 字段说明:
- type (数字): 日志类型,可选值:1=充值,2=消费,3=管理,4=错误,5=系统
- start_timestamp (数字): 开始时间戳
- end_timestamp (数字): 结束时间戳
- token_name (字符串): Token 名称过滤
- model_name (字符串): 模型名称过滤
- group (字符串): 分组过滤
- quota (数字): 指定时间范围内的总配额消耗
- rpm (数字): 每分钟请求数(最近 60 秒)
- tpm (数字): 每分钟 Token 数(最近 60 秒)
获取我的日志
- 接口名称:获取我的日志
- HTTP 方法:GET
- 路径:
/api/log/self - 鉴权要求:用户
- 功能简介:分页获取当前用户的日志记录,支持多种过滤条件
💡 请求示例:
const response = await fetch('/api/log/self?p=1&page_size=20&type=2&start_timestamp=1640908800&end_timestamp=1640995200&token_name=api_token&model_name=gpt-4&group=default', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"user_id": 1,
"created_at": 1640995000,
"type": 2,
"content": "API调用成功",
"token_name": "api_token",
"model_name": "gpt-4",
"quota": 1000,
"prompt_tokens": 50,
"completion_tokens": 100
}
],
"total": 25,
"page": 1,
"page_size": 20
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取日志失败"
}
🧾 字段说明:
请求参数与获取全部日志接口相同,但只返回当前用户的日志记录
搜索我的日志
- 接口名称:搜索我的日志
- HTTP 方法:GET
- 路径:
/api/log/self/search - 鉴权要求:用户
- 功能简介:根据关键词搜索当前用户的日志记录
💡 请求示例:
const response = await fetch('/api/log/self/search?keyword=gpt-4', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": [
{
"id": 1,
"type": 2,
"content": "GPT-4调用成功",
"model_name": "gpt-4",
"created_at": 1640995000
}
]
}
❗ 失败响应示例:
{
"success": false,
"message": "搜索日志失败"
}
🧾 字段说明:
- keyword (字符串): 搜索关键词,匹配当前用户的日志类型
🔐 管理员鉴权
获取全部日志
- 接口名称:获取全部日志
- HTTP 方法:GET
- 路径:
/api/log/ - 鉴权要求:管理员
- 功能简介:分页获取系统中所有日志记录,支持多种过滤条件和日志类型筛选
💡 请求示例:
const response = await fetch('/api/log/?p=1&page_size=20&type=2&start_timestamp=1640908800&end_timestamp=1640995200&username=testuser&token_name=api_token&model_name=gpt-4&channel=1&group=default', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"user_id": 1,
"created_at": 1640995000,
"type": 2,
"content": "API调用成功",
"username": "testuser",
"token_name": "api_token",
"model_name": "gpt-4",
"quota": 1000,
"prompt_tokens": 50,
"completion_tokens": 100,
"use_time": 2,
"is_stream": false,
"channel_id": 1,
"channel_name": "OpenAI渠道",
"token_id": 1,
"group": "default",
"ip": "192.168.1.1",
"other": "{\"model_ratio\":15.0}"
}
],
"total": 100,
"page": 1,
"page_size": 20
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取日志失败"
}
🧾 字段说明:
- p (数字): 页码,默认为 1
- page_size (数字): 每页数量,默认为 20
- type (数字): 日志类型,可选值:1=充值,2=消费,3=管理,4=错误,5=系统
- start_timestamp (数字): 开始时间戳
- end_timestamp (数字): 结束时间戳
- username (字符串): 用户名过滤
- token_name (字符串): Token 名称过滤
- model_name (字符串): 模型名称过滤
- channel (数字): 渠道 ID 过滤
- group (字符串): 分组过滤
删除历史日志
- 接口名称:删除历史日志
- HTTP 方法:DELETE
- 路径:
/api/log/ - 鉴权要求:管理员
- 功能简介:批量删除指定时间戳之前的历史日志记录,支持分批删除以避免数据库负载过高
💡 请求示例:
const response = await fetch('/api/log/?target_timestamp=1640908800', {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": 1500
}
❗ 失败响应示例:
{
"success": false,
"message": "target timestamp is required"
}
🧾 字段说明:
- target_timestamp (数字): 目标时间戳,删除此时间之前的所有日志,必填
- data (数字): 成功删除的日志条数
日志统计
- 接口名称:日志统计
- HTTP 方法:GET
- 路径:
/api/log/stat - 鉴权要求:管理员
- 功能简介:获取指定时间范围和条件下的日志统计信息,包括配额消耗、请求频率和 Token 使用量
💡 请求示例:
const response = await fetch('/api/log/stat?type=2&start_timestamp=1640908800&end_timestamp=1640995200&username=testuser&token_name=api_token&model_name=gpt-4&channel=1&group=default', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"quota": 150000,
"rpm": 25,
"tpm": 3500
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取统计信息失败"
}
🧾 字段说明:
请求参数与获取全部日志接口相同
- quota (数字): 指定时间范围内的总配额消耗
- rpm (数字): 每分钟请求数(最近 60 秒)
- tpm (数字): 每分钟 Token 数(最近 60 秒的 prompt_tokens + completion_tokens 总和)
搜索全部日志
- 接口名称:搜索全部日志
- HTTP 方法:GET
- 路径:
/api/log/search - 鉴权要求:管理员
- 功能简介:根据关键词搜索系统中所有日志记录
💡 请求示例:
const response = await fetch('/api/log/search?keyword=error', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": [
{
"id": 1,
"type": 4,
"content": "API调用错误",
"username": "testuser",
"created_at": 1640995000
}
]
}
❗ 失败响应示例:
{
"success": false,
"message": "搜索日志失败"
}
🧾 字段说明:
- keyword (字符串): 搜索关键词,可匹配日志类型或内容
数据统计模块
功能说明
接口前缀为:
- 主站:https://ai.burncloud.com
- 企业站:https://b.burncloud.com
用量数据的聚合统计系统。管理员可查看全站统计,用户可查看个人统计。数据按模型和日期分组,用于生成图表和报表,监控系统使用趋势。
🔐 用户鉴权
我的用量按日期统计
- 接口名称:我的用量按日期统计
- HTTP 方法:GET
- 路径:
/api/data/self - 鉴权要求:用户
- 功能简介:获取当前用户的用量数据按日期统计,支持时间范围查询
💡 请求示例:
const response = await fetch('/api/data/self?start_timestamp=1640908800&end_timestamp=1640995200', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": [
{
"model_name": "gpt-3.5-turbo",
"count": 25,
"quota": 12500,
"token_used": 2000,
"created_at": 1640995200,
"user_id": 1,
"username": "testuser"
},
{
"model_name": "gpt-4",
"count": 10,
"quota": 30000,
"token_used": 1500,
"created_at": 1640995200,
"user_id": 1,
"username": "testuser"
}
]
}
❗ 失败响应示例:
{
"success": false,
"message": "获取个人统计数据失败"
}
🧾 字段说明:
- start_timestamp (数字): 开始时间戳,可选
- end_timestamp (数字): 结束时间戳,可选
- data (数组): 个人统计数据列表
- model_name (字符串): 模型名称
- count (数字): 请求次数
- quota (数字): 配额消耗
- token_used (数字): Token 使用量
- created_at (数字): 统计日期时间戳
- user_id (数字): 用户 ID
- username (字符串): 用户名
🔐 管理员鉴权
全站用量按日期统计
- 接口名称:全站用量按日期统计
- HTTP 方法:GET
- 路径:
/api/data/ - 鉴权要求:管理员
- 功能简介:获取系统全站用量数据按日期统计,支持按用户名过滤和时间范围查询
💡 请求示例:
const response = await fetch('/api/data/?start_timestamp=1640908800&end_timestamp=1640995200&username=testuser', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": [
{
"model_name": "gpt-3.5-turbo",
"count": 150,
"quota": 75000,
"token_used": 12500,
"created_at": 1640995200
},
{
"model_name": "gpt-4",
"count": 50,
"quota": 150000,
"token_used": 8000,
"created_at": 1640995200
}
]
}
❗ 失败响应示例:
{
"success": false,
"message": "获取统计数据失败"
}
🧾 字段说明:
- start_timestamp (数字): 开始时间戳,可选
- end_timestamp (数字): 结束时间戳,可选
- username (字符串): 用户名过滤,可选
- data (数组): 统计数据列表,按模型和日期分组聚合
- model_name (字符串): 模型名称
- count (数字): 请求次数总和
- quota (数字): 配额消耗总和
- token_used (数字): Token 使用量总和
- created_at (数字): 统计日期时间戳
Midjourney 任务模块
功能说明
接口前缀为:
- 主站:https://ai.burncloud.com
- 企业站:https://b.burncloud.com
图像生成任务的管理系统。支持任务状态跟踪、进度监控、结果查看等功能。包含图片 URL 转发和后台轮询更新机制。
🔐 用户鉴权
获取自己的 MJ 任务
- 接口名称:获取自己的 MJ 任务
- HTTP 方法:GET
- 路径:
/api/mj/self - 鉴权要求:用户
- 功能简介:分页获取当前用户的 Midjourney 任务列表,支持按任务 ID 和时间范围过滤
💡 请求示例:
const response = await fetch('/api/mj/self?p=1&page_size=20&mj_id=task123&start_timestamp=1640908800&end_timestamp=1640995200', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"mj_id": "task123456",
"action": "IMAGINE",
"prompt": "a beautiful landscape",
"prompt_en": "a beautiful landscape",
"status": "SUCCESS",
"progress": "100%",
"image_url": "https://example.com/image.jpg",
"video_url": "https://example.com/video.mp4",
"video_urls": "[\"https://example.com/video1.mp4\"]",
"submit_time": 1640908800,
"start_time": 1640909000,
"finish_time": 1640909200,
"fail_reason": "",
"quota": 1000
}
],
"total": 25,
"page": 1,
"page_size": 20
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取任务列表失败"
}
🧾 字段说明:
- p (数字): 页码,默认为 1
- page_size (数字): 每页数量,默认为 20
- mj_id (字符串): 任务 ID 过滤,可选
- start_timestamp (数字): 开始时间戳,可选
- end_timestamp (数字): 结束时间戳,可选
返回字段说明:
- id (数字): 数据库记录 ID
- mj_id (字符串): Midjourney 任务唯一标识符
- action (字符串): 操作类型,如 IMAGINE、UPSCALE 等
- prompt (字符串): 原始提示词
- prompt_en (字符串): 英文提示词
- status (字符串): 任务状态 midjourney.go:19
- progress (字符串): 完成进度百分比
- image_url (字符串): 生成的图片 URL
- video_url (字符串): 生成的视频 URL
- video_urls (字符串): 多个视频 URL 的 JSON 数组字符串
- submit_time (数字): 提交时间戳
- start_time (数字): 开始处理时间戳
- finish_time (数字): 完成时间戳
- fail_reason (字符串): 失败原因
- quota (数字): 消耗的配额
🔐 管理员鉴权
获取全部 MJ 任务
- 接口名称:获取全部 MJ 任务
- HTTP 方法:GET
- 路径:
/api/mj/ - 鉴权要求:管理员
- 功能简介:分页获取系统中所有 Midjourney 任务,支持按渠道 ID、任务 ID 和时间范围过滤
💡 请求示例:
const response = await fetch('/api/mj/?p=1&page_size=20&channel_id=1&mj_id=task123&start_timestamp=1640908800&end_timestamp=1640995200', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"user_id": 1,
"mj_id": "task123456",
"action": "IMAGINE",
"prompt": "a beautiful landscape",
"status": "SUCCESS",
"progress": "100%",
"image_url": "https://example.com/image.jpg",
"channel_id": 1,
"quota": 1000,
"submit_time": 1640908800,
"finish_time": 1640909200
}
],
"total": 100,
"page": 1,
"page_size": 20
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取任务列表失败"
}
🧾 字段说明:
- p (数字): 页码,默认为 1
- page_size (数字): 每页数量,默认为 20
- channel_id (字符串): 渠道 ID 过滤,可选
- mj_id (字符串): 任务 ID 过滤,可选
- start_timestamp (字符串): 开始时间戳,可选
- end_timestamp (字符串): 结束时间戳,可选
返回字段包含用户自身任务的所有字段,另外增加:
- user_id (数字): 任务所属用户 ID
- channel_id (数字): 使用的渠道 ID
任务中心模块
功能说明
接口前缀为:
- 主站:https://ai.burncloud.com
- 企业站:https://b.burncloud.com
通用异步任务管理系统。主要支持 Suno 等平台的音乐生成任务。包含任务状态自动更新、失败重试、配额退还等机制。
🔐 用户鉴权
获取我的任务
- 接口名称:获取我的任务
- HTTP 方法:GET
- 路径:
/api/task/self - 鉴权要求:用户
- 功能简介:分页获取当前用户的任务列表,支持按平台、任务 ID、状态等条件过滤
💡 请求示例:
const response = await fetch('/api/task/self?p=1&page_size=20&platform=suno&task_id=task123&status=SUCCESS&action=song&start_timestamp=1640908800&end_timestamp=1640995200', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"created_at": 1640908800,
"updated_at": 1640909000,
"task_id": "task123456",
"platform": "suno",
"user_id": 1,
"quota": 1000,
"action": "song",
"status": "SUCCESS",
"fail_reason": "",
"submit_time": 1640908800,
"start_time": 1640908900,
"finish_time": 1640909000,
"progress": "100%",
"properties": {},
"data": {}
}
],
"total": 25,
"page": 1,
"page_size": 20
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取任务列表失败"
}
🧾 字段说明:
- p (数字): 页码,默认为 1
- page_size (数字): 每页数量,默认为 20
- platform (字符串): 任务平台,可选
- task_id (字符串): 任务 ID 过滤,可选
- status (字符串): 任务状态过滤,可选值:"NOT_START"、"SUBMITTED"、"QUEUED"、"IN_PROGRESS"、"FAILURE"、"SUCCESS"、"UNKNOWN"
- action (字符串): 任务类型过滤,如"song"、"lyrics"等
- start_timestamp (数字): 开始时间戳,可选
- end_timestamp (数字): 结束时间戳,可选
🧾 返回字段说明:
- id (数字): 数据库记录 ID
- task_id (字符串): 第三方任务 ID
- platform (字符串): 任务平台
- user_id (数字): 用户 ID
- quota (数字): 消耗的配额
- action (字符串): 任务类型
- status (字符串): 任务状态
- fail_reason (字符串): 失败原因
- submit_time (数字): 提交时间戳
- start_time (数字): 开始时间戳
- finish_time (数字): 完成时间戳
- progress (字符串): 进度百分比
- properties (对象): 任务属性
- data (对象): 任务结果数据
- total (数字): 符合条件的任务总记录数
- page (数字): 当前返回的页码
- page_size (数字): 每页展示的任务记录数
🔐 管理员鉴权
获取全部任务
- 接口名称:获取全部任务
- HTTP 方法:GET
- 路径:
/api/task/ - 鉴权要求:管理员
- 功能简介:分页获取系统中所有任务,支持按渠道 ID、平台、用户 ID 等条件过滤
💡 请求示例:
const response = await fetch('/api/task/?p=1&page_size=20&channel_id=1&platform=suno&task_id=task123&status=SUCCESS&action=song&start_timestamp=1640908800&end_timestamp=1640995200', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"created_at": 1640908800,
"task_id": "task123456",
"platform": "suno",
"user_id": 1,
"channel_id": 1,
"quota": 1000,
"action": "song",
"status": "SUCCESS",
"submit_time": 1640908800,
"finish_time": 1640909000,
"progress": "100%",
"data": {}
}
],
"total": 100,
"page": 1,
"page_size": 20
}
}
❗ 失败响应示例:
{
"success": false,
"message": "获取任务列表失败"
}
🧾 字段说明:
- p (数字): 页码,默认为 1
- page_size (数字): 每页数量,默认为 20
- channel_id (字符串): 渠道 ID 过滤,可选
- platform (字符串): 任务平台过滤,可选
- task_id (字符串): 任务 ID 过滤,可选
- status (字符串): 任务状态过滤,可选
- action (字符串): 任务类型过滤,可选
- start_timestamp (数字): 开始时间戳,可选
- end_timestamp (数字): 结束时间戳,可选
返回字段包含用户任务的所有字段,另外增加:
- channel_id (数字): 使用的渠道 ID
账户计费面板模块
功能说明
接口前缀为:
- 主站:https://ai.burncloud.com
- 企业站:https://b.burncloud.com
OpenAI SDK 兼容的计费查询接口。使用 Token 认证,提供订阅信息和使用量查询。主要用于第三方应用和 SDK 集成,确保与 OpenAI API 的完全兼容性。
🔐 用户鉴权
获取订阅额度信息
- 接口名称:获取订阅额度信息
- HTTP 方法:GET
- 路径:
/dashboard/billing/subscription - 鉴权要求:用户 Token
- 功能简介:获取用户的订阅配额信息,包括总额度、硬限制和访问有效期,兼容 OpenAI API 格式
💡 请求示例:
const response = await fetch('/dashboard/billing/subscription', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"object": "billing_subscription",
"has_payment_method": true,
"soft_limit_usd": 100.0,
"hard_limit_usd": 100.0,
"system_hard_limit_usd": 100.0,
"access_until": 1640995200
}
❗ 失败响应示例:
{
"error": {
"message": "获取配额失败",
"type": "upstream_error"
}
}
🧾 字段说明:
- object (字符串): 固定值"billing_subscription"
- has_payment_method (布尔型): 是否有支付方式,固定为 true
- soft_limit_usd (数字): 软限制额度(美元)
- hard_limit_usd (数字): 硬限制额度(美元)
- system_hard_limit_usd (数字): 系统硬限制额度(美元)
- access_until (数字): 访问有效期时间戳,Token 过期时间
兼容 OpenAI SDK 路径 - 获取订阅额度信息
- 接口名称:兼容 OpenAI SDK 路径 - 获取订阅额度信息
- HTTP 方法:GET
- 路径:
/v1/dashboard/billing/subscription - 鉴权要求:用户 Token
- 功能简介:与上述接口功能完全相同,提供 OpenAI SDK 兼容路径
💡 请求示例:
const response = await fetch('/v1/dashboard/billing/subscription', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"object": "billing_subscription",
"has_payment_method": true,
"soft_limit_usd": 100.0,
"hard_limit_usd": 100.0,
"system_hard_limit_usd": 100.0,
"access_until": 1640995200
}
❗ 失败响应示例:
{
"error": {
"message": "获取配额失败",
"type": "upstream_error"
}
}
🧾 字段说明:
- object (字符串): 固定值"billing_subscription"
- has_payment_method (布尔型): 是否有支付方式,固定为 true
- soft_limit_usd (数字): 软限制额度(美元)
- hard_limit_usd (数字): 硬限制额度(美元)
- system_hard_limit_usd (数字): 系统硬限制额度(美元)
- access_until (数字): 访问有效期时间戳,Token 过期时间
获取使用量信息
- 接口名称:获取使用量信息
- HTTP 方法:GET
- 路径:
/dashboard/billing/usage - 鉴权要求:用户 Token
- 功能简介:获取用户的配额使用量信息,兼容 OpenAI API 格式
💡 请求示例:
const response = await fetch('/dashboard/billing/usage', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"object": "list",
"total_usage": 2500.0
}
❗ 失败响应示例:
{
"error": {
"message": "获取使用量失败",
"type": "new_api_error"
}
}
🧾 字段说明:
- object (字符串): 固定值"list"
- total_usage (数字): 总使用量,单位为 0.01 美元
兼容 OpenAI SDK 路径 - 获取使用量信息
- 接口名称:兼容 OpenAI SDK 路径 - 获取使用量信息
- HTTP 方法:GET
- 路径:
/v1/dashboard/billing/usage - 鉴权要求:用户 Token
- 功能简介:与上述接口功能完全相同,提供 OpenAI SDK 兼容路径
💡 请求示例:
const response = await fetch('/v1/dashboard/billing/usage', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'Bearer your_user_id'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"object": "list",
"total_usage": 2500.0
}
❗ 失败响应示例:
{
"error": {
"message": "获取使用量失败",
"type": "new_api_error"
}
}
🧾 字段说明:
- object (字符串): 固定值"list"
- total_usage (数字): 总使用量,单位为 0.01 美元