API 概览

介绍 AnyStarX 提供的对话接口、Sora 兼容视频生成接口、鉴权规范与全局响应格式。

AnyStarX 提供统一规范的 API 接口体系,支持通过标准的协议调用 Claude、Gemini、OpenAI、DeepSeek 等大语言模型,并支持 Sora 兼容格式的异步视频生成。在绝大多数 SDK 和客户端工具中,仅需将官方接口的基础地址替换为 AnyStarX 的端点即可接入。

接口基础地址

针对 OpenAI 兼容客户端以及视频生成接口,使用以下 Base URL:

https://console.anystarx.com/v1

视频生成接口采用异步任务模式,包含上传参考素材、创建生成任务、轮询任务状态和下载视频成品四个阶段,具体操作流程参考 视频生成

针对 Claude Code 等使用 Anthropic 原生协议的客户端,使用根地址作为 Base URL:

https://console.anystarx.com

如果使用的客户端支持 OpenAI 协议,建议优先配置 https://console.anystarx.com/v1 接入。

请求鉴权规范

对话接口与视频生成接口均基于 HTTP 请求头中的 Bearer Token 进行身份认证:

Authorization: Bearer YOUR_API_KEY

发送 JSON 数据时,必须同时声明数据格式请求头:

Content-Type: application/json

核心接口列表

请求路径功能说明支持模式
GET /v1/models获取当前账号可调用的模型列表同步
POST /v1/chat/completionsOpenAI Chat Completions 对话接口同步 / 流式
POST /v1/responsesOpenAI Responses 对话接口,适用于新版工具与 Codex同步 / 流式
POST /v1/messagesAnthropic Messages 兼容对话接口同步 / 流式
POST /v1/files上传视频生成所需的参考图片素材同步(表单上传)
POST /v1/videos提交视频生成任务并获取任务编号异步
GET /v1/videos/{task_id}查询指定视频任务的执行进度与状态异步
GET /v1/videos/{task_id}/content下载已生成完成的视频文件异步

所有对话接口均支持在请求体中传入 "stream": true 开启流式传输,以 Server-Sent Events(SSE)格式逐块接收文本回复,技术规范参考 流式输出

快速调用示例

以下是使用 curl 调用 Chat Completions 接口的最小请求示例:

curl https://console.anystarx.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "messages": [
      {
        "role": "user",
        "content": "请用一句话进行自我介绍。"
      }
    ]
  }'

响应数据结构

兼容 OpenAI 的对话接口在同步调用成功时返回标准的 JSON 结构,核心字段如下:

  • id:本次请求的全局唯一标识符。
  • object:返回对象的类型,例如 chat.completion
  • created:生成该响应的 UNIX 时间戳(秒)。
  • model:实际处理该请求的模型名称。
  • choices:包含生成结果的数组,文本内容位于 choices[0].message.content
  • usage:记录本次调用的 token 统计,包含 prompt_tokenscompletion_tokenstotal_tokens

由于不同上游模型提供商的扩展字段可能有所差异,业务代码在解析数据时,建议优先依赖上述标准字段。

错误响应格式

当请求参数有误、鉴权失败或服务端发生异常时,接口会返回对应的 HTTP 状态码以及包含错误细节的 JSON 数据包:

{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_request_error",
    "code": "invalid_api_key"
  }
}

在编写错误捕获逻辑时,应当优先根据 HTTP 状态码(如 400、401、403、404、429、500)判断错误类型,再结合 error.message 了解具体原因。

本页内容