API 参考
按协议、认证和返回格式快速查找可用 API。
ZCloudAPI 提供一组面向不同客户端和模型能力的兼容 API。调用前先用当前 API Key 请求 /v1/models,最终以返回的模型名、协议能力和权限为准。
认证和地址
所有模型请求都需要携带 API Key。OpenAI-compatible 接口使用下面的公共格式:
Authorization: Bearer sk-你的-ZCloudAPI-Key
| 场景 | Base URL | 认证方式 |
|---|---|---|
| OpenAI、Codex、Cursor、SDK | https://api.zcloudapi.com/v1 |
Authorization: Bearer ... |
| Anthropic SDK | https://api.zcloudapi.com |
x-api-key: ... |
| Claude Code | https://api.zcloudapi.com |
由客户端拼接 /v1/messages |
官网与控制台地址 https://console.zcloudapi.com 只用于注册、创建 Key、充值和查看日志,不要填入模型客户端。
常用接口地图
| 方法 | 路径 | 用途 | 返回或协议 |
|---|---|---|---|
GET |
/v1/models |
查询当前 Key 可见模型 | JSON 模型列表 |
GET |
/v1/models/:model |
查询单个模型元数据 | JSON 模型详情 |
POST |
/v1/completions |
兼容旧版 Text Completions 客户端 | JSON 或 SSE |
POST |
/v1/chat/completions |
普通对话和 OpenAI-compatible 客户端 | JSON 或 SSE |
POST |
/v1/responses |
Codex、Agent、工具调用 | Responses JSON 或 SSE |
POST |
/v1/responses/compact |
需要显式压缩语义的 Responses 客户端 | Responses JSON 或 SSE |
POST |
/v1/messages |
Anthropic Claude Messages 协议 | Messages JSON 或 SSE |
POST |
/v1/images/generations |
图片生成 | 签名 URL 或 Base64 |
POST |
/v1/images/edits |
使用输入图片进行编辑 | 签名 URL 或 Base64 |
POST |
/v1/videos |
提交视频生成任务 | JSON 任务 ID |
GET |
/v1/videos/{id} |
查询视频生成及转存状态 | JSON 状态与签名 URL |
GET |
/v1/videos/{id}/content |
鉴权下载已转存的视频 | 302 跳转至 OSS |
POST |
/v1/embeddings |
文本向量化 | JSON 向量数组 |
POST |
/v1/rerank |
文档重排序 | JSON 排序结果 |
POST |
/v1/audio/transcriptions |
音频转文字 | JSON 或文本 |
POST |
/v1/audio/translations |
音频翻译 | JSON 或文本 |
POST |
/v1/audio/speech |
文本转语音 | 二进制音频 |
POST |
/v1/moderations |
内容安全分类 | JSON 分类结果 |
GET (WebSocket) |
/v1/realtime |
低延迟实时音频客户端 | WebSocket 事件流 |
图片新接入统一使用 /v1/images/generations 和 /v1/images/edits。Gemini 原生客户端仍可使用 /v1beta/models/{model}:{action},但它属于兼容路径;统一 Images API 的返回结构更稳定。
视频新接入使用 /v1/videos,兼容提交入口为 /v1/video/generations。视频先返回任务 ID,再查询进度、等待 OSS 转存并下载,不使用文本 SSE。完整参数和可运行示例见「视频生成」。
并非每个上游渠道都支持所有接口。即使路径存在,当前 Key 也可能因为模型权限、用户分组或渠道能力而返回错误;不要把“路由存在”当作“模型一定可用”。
先确认模型和协议
curl "https://api.zcloudapi.com/v1/models" \
-H "Authorization: Bearer $ZHICLOUD_API_KEY"
使用 data[].id 中的完整模型名。模型列表是经过 Key、用户分组和渠道过滤后的结果,比模型广场或第三方文章中的示例更可靠。
如果需要知道一个模型适合哪个接口,可以先按用途判断:
- 普通问答、兼容桌面客户端:优先尝试 Chat Completions。
- Codex、Agent、工具调用:优先尝试 Responses API。
- Claude 原生 SDK:使用 Messages API。
- 向量搜索:使用 Embeddings;文档检索排序:使用 Rerank。
- 图片、音频和审核:使用对应的专用接口,并确认模型列表中存在匹配能力。
流式和返回格式
- Chat Completions、Responses、Messages 在模型支持时可以设置
"stream": true,响应会以 SSE 事件逐步返回。 - 第一次接入或排障时先使用
"stream": false,确认状态码、正文和usage后再启用流式。 - 图片接口设置
response_format=url时返回临时签名地址,设置response_format=b64_json时返回内联 Base64;图片编辑接口需把该参数作为 multipart 字段提交。 - 视频接口返回异步任务,不传
stream或图片的response_format;等status=completed且metadata.storage.status=ready后再下载。 - 音频语音接口成功时返回二进制内容,不要按 JSON 解析;请根据
Content-Type直接写入文件或交给音频播放器。
最小请求示例
curl -i "https://api.zcloudapi.com/v1/chat/completions" \
-H "Authorization: Bearer $ZHICLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "从 /v1/models 复制的模型名",
"messages": [{"role": "user", "content": "只回复 OK"}],
"max_tokens": 16,
"stream": false
}'
成功后再按协议阅读「Chat Completions」「Responses API」或「Claude Messages」。
错误处理建议
| 状态码 | 常见原因 | 建议 |
|---|---|---|
400 |
参数、协议或模型能力不匹配 | 退回最小请求,逐项加回可选字段 |
401 |
Key 无效或认证 Header 错误 | 重新复制 Key,检查当前终端变量 |
403 |
用户分组或 Key 权限不足 | 检查 Key 限制和 /v1/models 结果 |
404 |
地址层级错误或接口不存在 | 检查是否重复或遗漏 /v1 |
429 |
频率、并发或上游限流 | 降低并发并使用有限指数退避 |
5xx |
网关或上游临时异常 | 记录时间、模型和日志,有限重试 |
不要对所有错误盲目重试:400、401 和 403 通常需要修改请求或权限;持续的 429 也需要降低请求速率。
SDK 和安全
Python、Node.js 以及 Codex、Claude Code、Cursor 的完整配置见对应章节。生产环境建议:
- 为开发、测试和生产分别创建 Key,按最小权限配置模型和额度。
- 使用环境变量或 Secret 管理器注入 Key,不要写进源码、前端代码、截图或公开日志。
- 不要把完整请求 Header、音频二进制或图片 Base64 写入普通日志。
- 在控制台「使用日志」核对请求、模型、Token 和扣费;这也是判断是否连到了正确 Base URL 的最快方法。