TensorFusion Docs

NewAPI 兼容接口

迁移 NewAPI 客户端时可用的模型发现、语音、余额与调用日志兼容接口。

无界模型云主接口使用 OpenAI / Anthropic 兼容协议。若你的系统已经接入 NewAPI,可继续使用下面这些接口查询模型,并做语音、余额、额度和调用日志自查。

鉴权仍使用无界模型云的 gk_ API Key。模型、余额和日志接口只读取数据。

鉴权

推荐使用 Authorization: Bearer <API Key>

Authorization: Bearer gk_xxxxxxxxxxxxxx

也兼容 Anthropic 风格的 x-api-key

x-api-key: gk_xxxxxxxxxxxxxx

余额和日志接口需要包含 ai:* scope 的 Key。模型发现支持 ai:*ai:llmai:imageai:video;语音识别需要 ai:asr,语音合成需要 ai:tts。鉴权失败会返回中文错误:

{
  "success": false,
  "message": "API Key 无效或已停用",
  "error": {
    "code": "invalid_api_key",
    "message": "API Key 无效或已停用"
  }
}

模型发现

查询当前 API Key 可访问的模型:

curl "https://api.tos.run/v1/models" \
  -H "Authorization: Bearer $TOS_API_KEY"

返回 OpenAI list 形状,只包含当前 Key 有权限访问的模型:

{
  "object": "list",
  "data": [
    {
      "id": "gpt-4o-mini",
      "object": "model",
      "created": 0,
      "owned_by": "wujie"
    },
    {
      "id": "gpt-image-2",
      "object": "model",
      "created": 0,
      "owned_by": "wujie-image"
    }
  ]
}

ai:llm Key 可用于发现文本模型,ai:image Key 可用于发现图像模型,ai:video Key 可用于发现视频模型;无权限模型不会出现在结果里。

查询单个模型详情:

curl "https://api.tos.run/v1/models/gpt-image-2" \
  -H "Authorization: Bearer $TOS_API_KEY"

模型不存在或当前 Key 不可访问时返回 404:

{
  "success": false,
  "message": "模型不存在或当前 API Key 无权访问",
  "error": {
    "code": "model_not_found",
    "message": "模型不存在或当前 API Key 无权访问"
  }
}

Gemini SDK / 原生客户端可查询 Gemini 形状的模型列表:

curl "https://api.tos.run/v1beta/models" \
  -H "Authorization: Bearer $TOS_API_KEY"

返回示例:

{
  "models": [
    {
      "name": "models/gemini-3-pro-image",
      "displayName": "gemini-3-pro-image",
      "version": "001",
      "supportedGenerationMethods": [
        "generateContent",
        "streamGenerateContent"
      ]
    }
  ]
}

也支持 NewAPI 常见的 OpenAI 形状别名:

curl "https://api.tos.run/v1beta/openai/models" \
  -H "Authorization: Bearer $TOS_API_KEY"

出于安全考虑,/v1beta/models?key=... 这种 query API Key 不作为鉴权来源;请使用 Authorizationx-api-key 请求头。

OpenAI 语音别名

NewAPI / OpenAI 常见语音路径可直接使用数据面 Base:

方法路径scope
POST/v1/audio/transcriptionsai:asr
POST/v1/audio/translationsai:asr
POST/v1/audio/speechai:tts

translations 当前走同一语音识别链路,不额外做翻译。语音合成兼容 OpenAI 字段 input / response_format,也兼容无界原生字段 text / format。详见 语音识别与语音合成

额度查询

查询当前 API Key 所属组织的钱包余额与累计消费。余额接口只读取当前 Key 所属组织的数据,需使用带 ai:* scope 的 gk_ API Key。

curl "https://api.tos.run/api/usage/token/" \
  -H "Authorization: Bearer $TOS_API_KEY"

返回示例:

{
  "code": true,
  "message": "ok",
  "data": {
    "object": "token_usage",
    "name": "生产服务",
    "total_granted": 191.34,
    "total_used": 67.89,
    "total_available": 123.45,
    "unlimited_quota": false,
    "model_limits": {},
    "model_limits_enabled": false,
    "expires_at": 0
  }
}

字段说明:

字段含义
total_available当前组织钱包余额,单位为元
total_used当前组织累计消费,单位为元
total_grantedtotal_available + total_used,用于兼容 NewAPI 额度桶
unlimited_quota固定为 false
model_limits当前不按 NewAPI 模型白名单返回,固定为空对象

total_available 是可用余额,不是 API Key 的独立余额上限。同一组织下的 API Key 查询到的是同一个组织钱包;API Key 只决定调用权限与调用日志的归属。

OpenAI Dashboard 余额别名

兼容旧客户端常见的 Dashboard Billing 查询:

方法路径
GET/dashboard/billing/subscription
GET/v1/dashboard/billing/subscription
GET/dashboard/billing/usage
GET/v1/dashboard/billing/usage

示例:

curl "https://api.tos.run/v1/dashboard/billing/subscription" \
  -H "Authorization: Bearer $TOS_API_KEY"

subscription 返回:

{
  "object": "billing_subscription",
  "has_payment_method": true,
  "soft_limit_usd": 123.45,
  "hard_limit_usd": 500,
  "system_hard_limit_usd": 500,
  "access_until": 0
}

为兼容旧字段名,*_usd 字段保留原名;无界模型云返回的是当前组织计费币种的展示金额。

usage 返回:

{
  "object": "list",
  "total_usage": 6789
}

total_usage 沿用 OpenAI Dashboard 旧字段语义,返回当前组织累计消费的最小货币单位值。人民币计费时表示“分”。

调用日志查询

查询当前请求头 API Key 自己的调用日志,需使用带 ai:* scope 的 gk_ API Key:

curl "https://api.tos.run/api/log/token?page_size=20&start_timestamp=1783076400&end_timestamp=1783681200" \
  -H "Authorization: Bearer $TOS_API_KEY"

上例查询一个时间范围内最近 20 条记录。时间参数使用 Unix 秒;未传时间范围时,默认查询请求时刻前 24 小时的数据。返回 data: [] 表示该 Key 在该时间范围内没有已写入遥测存储的调用记录,并不代表接口不可用。

支持的查询参数:

参数含义
p / page页码,从 1 开始
page_size / limit每页数量,最大 200
start_timestamp起始时间,Unix 秒
end_timestamp结束时间,Unix 秒

返回示例:

{
  "success": true,
  "message": "",
  "data": [
    {
      "id": "call_...",
      "created_at": 1783581600,
      "type": "llm",
      "model_name": "gpt-4o-mini",
      "token_name": "生产服务",
      "token_id": "key_...",
      "quota": 0.12,
      "prompt_tokens": 7,
      "completion_tokens": 5,
      "use_time": 42,
      "is_stream": false,
      "channel_name": "wujie",
      "request_id": "req_...",
      "content": ""
    }
  ]
}

常用字段说明:

字段含义
created_at调用完成时间,Unix 秒
model_name实际调用的模型 ID
prompt_tokens / completion_tokens输入 / 输出 token 数
quota该次调用的实际净计费金额,使用当前组织的计费币种;不是剩余额度,也不是 token 数
use_time调用耗时,单位为毫秒
is_stream是否使用流式响应
channel_name实际处理调用的号源或渠道
request_id本次调用的请求标识,可用于排障时关联日志
content最终失败时的错误信息;正常完成时通常为空字符串

失败请求

最终返回 4xx 或 5xx 的调用会和成功调用一起出现在时间范围内的日志列表中,content 会包含可展示的错误信息。若请求经过上游重试或故障切换后最终成功,日志按最终成功结果聚合,content 不会把中间失败作为最终错误返回。

当前兼容接口仅支持分页和时间范围查询,暂不支持按失败状态、HTTP 状态码或模型筛选;响应也不单独返回 status / http_code 字段。需要精确筛选失败请求时,请通过控制台调用日志页面处理。

/api/log/token 永远以请求头里的 API Key 为准。URL 里的 key 参数会被忽略,不能用来查询别的 Key。

调用日志依赖网关遥测存储。若遥测暂不可用,接口会返回 log_store_unavailable,请稍后重试。

不兼容项

以下 NewAPI 接口暂不承诺兼容,请按无界模型云原生文档接入:

NewAPI 能力状态
/v1/embeddings暂不处理
/v1/moderations暂未开放
/v1/responses compact 相关能力需确认原生 Responses 语义后再开放
/v1/images/variations暂未开放
Kling / Jimeng / Midjourney / Suno 专有任务路由暂未开放

目录