API 文档
完全兼容 OpenAI 接口
一个 endpoint 同时调用 Claude 与 GPT。把 base_url 指过来、换上你的 sk- 密钥即可,现有 OpenAI SDK 无需改动。
快速开始
base_url https://api.xdro.net/v1
鉴权 请求头
Authorization: Bearer <你的 sk- 密钥>计费 按 token 用量,每个 Key 有配额上限
# 最小示例:把 $KEY 换成你的密钥
curl https://api.xdro.net/v1/chat/completions \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-4-6","messages":[{"role":"user","content":"你好"}]}'完全兼容 OpenAI SDK —— Python / Node 只改 base_url 与 api_key 即可。
可用模型
| 模型 ID | 厂商 | 档位 | 说明 |
|---|---|---|---|
| claude-opus-4-8 | Anthropic | 旗舰 | 最强推理 / 深度分析(不支持 temperature) |
| claude-sonnet-4-6 | Anthropic | 标准 | 均衡首选,性价比最高 |
| claude-haiku-4-5-20251001 | Anthropic | 经济 | 快、便宜,低延迟 |
| gpt-4o | OpenAI | 标准 | 多模态,代码 / 推理 / 视觉均衡 |
| gpt-4o-mini | OpenAI | 经济 | 轻量、大批量低成本 |
| gpt-5 | OpenAI | 旗舰 | 推理模型,用 max_completion_tokens |
| gpt-5-mini | OpenAI | 标准 | 推理模型,用 max_completion_tokens |
| gpt-5.5 | OpenAI | 旗舰 | 最新旗舰;推理模型,用 max_completion_tokens |
| gpt-5.4 | OpenAI | 旗舰 | 高性能;推理模型,用 max_completion_tokens |
| gpt-5.4-mini | OpenAI | 标准 | 高性价比;推理模型,用 max_completion_tokens |
| gpt-5.4-nano | OpenAI | 经济 | 最省、大批量;推理模型,用 max_completion_tokens |
| gemini-2.5-pro | 旗舰 | 1M 上下文,长文 / 检索 / 推理;思考型,max_tokens 给足(≥4096) | |
| gemini-2.5-flash | 标准 | 高速,1M 上下文 | |
| gemini-2.5-flash-lite | 经济 | 最省、大批量,1M 上下文 | |
| gemini-2.5-flash-image | 标准 | 图像生成(Nano Banana);走 chat 接口,返回 data:image,约 ¥0.42/张 | |
| gemini-3-pro-image-preview | 旗舰 | 图像生成(Nano Banana Pro);走 chat 接口,约 ¥1.45/张 | |
| suno | Suno | 旗舰 | 音乐生成;走 /sunoapi 异步接口(非 /v1/chat),¥2/次出 2 首 |
POST/v1/chat/completions发送对话 → 获取回复
| 参数 | 类型 | 说明 |
|---|---|---|
| model * | string | 模型 ID(见上表) |
| messages * | array | 对话历史,元素含 role(system/user/assistant/tool)+ content |
| stream | boolean | true 时按 SSE(data: {...})逐块返回 |
| max_tokens | integer | 输出长度(Claude / GPT-4o 系列) |
| max_completion_tokens | integer | 输出长度(GPT-5 系列专用) |
| temperature / top_p | number | 采样;⚠️ opus-4-8 不支持,传入报 400 |
| tools / tool_choice | array | 函数 / 工具调用(OpenAI tools 格式) |
| response_format | object | 结构化输出,如 {"type":"json_object"} |
请求示例
# 流式
curl -N https://api.xdro.net/v1/chat/completions -H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-4-6","stream":true,"messages":[{"role":"user","content":"写个快排"}]}'
# 工具调用
-d '{"model":"claude-opus-4-8","messages":[{"role":"user","content":"北京天气?"}],
"tools":[{"type":"function","function":{"name":"get_weather",
"parameters":{"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}}}]}'
# GPT-5(注意 max_completion_tokens)
-d '{"model":"gpt-5","messages":[{"role":"user","content":"你好"}],"max_completion_tokens":256}'响应(stream:false)
{"id":"...","object":"chat.completion","model":"claude-sonnet-4-6",
"choices":[{"index":0,"finish_reason":"stop",
"message":{"role":"assistant","content":"..."}}],
"usage":{"prompt_tokens":12,"completion_tokens":34,"total_tokens":46}}多模态理解图片 / 音频 / 视频 → 文本
用 gemini-2.5-pro / flash / flash-lite 时,把 content 写成数组,混合文本与媒体即可让模型「看图 / 听音 / 看视频」并输出文本。仍是同一个 /v1/chat/completions 端点。
# 图片理解(用 gemini-2.5 系列;content 用数组,混合 text + 媒体)
curl https://api.xdro.net/v1/chat/completions -H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gemini-2.5-flash","messages":[{"role":"user","content":[
{"type":"text","text":"这张图里有什么?"},
{"type":"image_url","image_url":{"url":"https://example.com/cat.jpg"}}]}]}'
# 音频理解 / 转写(音频格式仅支持 mp3 / wav;也可用 base64)
-d '{"model":"gemini-2.5-pro","messages":[{"role":"user","content":[
{"type":"text","text":"把这段录音转写并总结要点"},
{"type":"input_audio","input_audio":{"data":"<base64>","format":"mp3"}}]}]}'- • 多模态输入理解目前用 Gemini 2.5 系列(Claude / GPT 支持图片视觉输入)。
- • 音频格式仅支持
mp3/wav;其它格式请先转码。 - • 单请求总大小有限(适合图片、短音/视频);长音视频请分段,或联系我们获取大文件 / 视频输入的接入方式。
- • 计费按 prompt_tokens 计(媒体会折算为 token:音频约 ~1900 token/分钟,视频每秒数百 token),与文本同一计费口径。
图像生成文字 → 图片(Nano Banana)
用 gemini-2.5-flash-image(俗称 Nano Banana)即可文生图 / 改图,走的还是同一个 /v1/chat/completions 接口,返回内嵌的 data:image 图片,前端 <img> 直接显示。按张计费。
# 图像生成(Nano Banana / Gemini)—— 同一个 chat 接口,无需专门 SDK
curl https://api.xdro.net/v1/chat/completions -H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gemini-2.5-flash-image","messages":[{"role":"user","content":"画一只戴墨镜的柴犬,卡通风格"}]}'
# 返回 choices[0].message.content 内含 Markdown 图片:
# 前端把这段 data:image 直接塞进 <img src> 即可显示 / 下载。改图:把原图作为 image_url 一起传入。音乐生成文字 → 歌曲(Suno)
用独立的 /sunoapi/* 异步接口(不是 /v1/chat/completions),同一个 sk- 密钥即可:先 generate 提交拿 clip id,再 get?ids= 轮询取音频,一次出 2 首。按次计费:生成 ¥2 / 续写 · 伴奏分离 ¥1 / 歌词 ¥0.2 / 拼接 ¥0.5,失败自动退款,查询额度免费。
# 音乐生成(Suno)—— 独立异步接口 /sunoapi/*,用同一个 sk- 密钥
# 1) 提交生成(一次出 2 首)
curl https://api.xdro.net/sunoapi/api/generate \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"prompt":"一首温暖的中文民谣,木吉他伴奏","make_instrumental":false}'
# → 返回 2 个 clip(含 id)
# 2) 用 id 轮询获取音频(完成后含 audio_url)
curl "https://api.xdro.net/sunoapi/api/get?ids=<clip_id>" -H "Authorization: Bearer $KEY"
# 查询剩余额度(免费,不计费)
curl https://api.xdro.net/sunoapi/api/get_limit -H "Authorization: Bearer $KEY"⚠️ AI 生成音乐的版权归属尚无定论,本服务不提供版权担保,商用风险由使用方自负,请勿用于模仿真实艺术家;该能力为第三方来源、不纳入 SLA,可能临时中断。
GET/v1/models列出可用模型
curl https://api.xdro.net/v1/models -H "Authorization: Bearer $KEY"
# → {"object":"list","data":[{"id":"claude-sonnet-4-6","object":"model",...}, ...]}注意事项 & 错误码
- • temperature:opus-4-8 不支持(传入 400);sonnet / haiku / GPT 正常支持。
- • GPT-5 系列(gpt-5 / 5-mini / 5.4 / 5.4-mini / 5.4-nano / 5.5):限制输出用
max_completion_tokens(不是max_tokens,否则 400),且建议给足额度(过小会返回空)。 - • Gemini 2.5 Pro:思考型模型,用
max_tokens限制输出时要给足额度(建议 ≥4096,否则思考耗尽预算返回空)。 - • 图像生成走 chat 接口(Nano Banana,见上);音乐生成走独立的
/sunoapi/*异步接口(见上)。embeddings、语音(TTS / STT)的独有端点当前不提供。
| 状态码 | 含义 |
|---|---|
| 401 | 鉴权失败:密钥错误 / 缺失,或余额耗尽后密钥停用 |
| 429 | 触发限流(速率 / 并发上限);建议指数退避后重试 |
| 5XX | 模型服务临时故障(建议自动重试;网关也已配置重试) |