8.1 401 / 403
检查密钥、权限、请求地址和模型访问范围。不要对鉴权失败无限重试。
Xu API
Xu API 接入文档
使用统一认证方式接入文本模型,并通过媒体网关完成图片与视频任务。模型名称和价格以 Xu API 实时目录为准。
https://gpt.xuaiapi.xyzhttps://media.xuaiapi.xyz使用 CCSwitch 配置 Xu API,再启动 ChatGPT,进入 Codex 界面。
教程图片均可点击放大,再次点击图片或按 Esc 关闭。




先在模型广场筛选分组,再选择想配置的模型名并复制。本次以 gpt-5.6-sol 为例。
必须先配置 CCSwitch,再启动 ChatGPT。走完新手指引,正常进入 Codex 界面后,左下角显示 custom 即表示配置成功。
如未显示,请联系管理员【V: fnbq1203】免费远程安装。
教程图片均可点击放大,再次点击图片或按 Esc 关闭。





接口地址:https://xuaiapi.xyz/v1/chat/completions

export XU_API_KEY="<YOUR_API_KEY>"
八个端点覆盖 WorkBuddy 等国内 Agent、文本、图片和异步视频任务。
/v1/chat/completions接入 WorkBuddy 等国内 Agent/v1/responsesOpenAI Responses 文本调用/v1/messagesAnthropic Messages 兼容调用/v1/images/generations生成图片/v1/images/edits上传参考图并编辑/v1/videos创建视频任务/v1/videos/{id}查询视频任务状态/v1/videos/{id}/content下载完成的 MP4新项目优先使用 Responses 兼容协议。将模型名替换为实时目录中的可用文本模型。
curl https://gpt.xuaiapi.xyz/v1/responses \
-H "Authorization: Bearer $XU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "your-enabled-model",
"input": "请用三句话介绍 AI 路由网关",
"stream": false
}'
使用 Messages 兼容协议时,保留 x-api-key 和 anthropic-version 请求头。
curl https://gpt.xuaiapi.xyz/v1/messages \
-H "x-api-key: $XU_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "your-enabled-model",
"max_tokens": 512,
"messages": [{"role":"user","content":"解释一下故障转移策略"}]
}'
图片请求使用媒体网关。返回临时 URL 还是 base64 数据取决于当前模型渠道。
curl https://media.xuaiapi.xyz/v1/images/generations \
-H "Authorization: Bearer $XU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "your-enabled-image-model",
"prompt": "清晰、克制的 AI 网关控制台",
"size": "1024x1024",
"n": 1
}'
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 实时目录中可用的图片模型。 |
prompt | string | 是 | 描述主体、风格、构图和约束。 |
size | string | 否 | 支持范围取决于所选模型。 |
n | number | 否 | 渠道不支持时可能固定为 1。 |
response_format | string | 否 | 常见返回为 URL 或 b64_json。 |
图片 URL 通常有有效期。需要长期保存时,请及时下载到自己的受控存储。
该端点使用 multipart/form-data。图片文件放在 image 字段,不要手动设置 Content-Type 边界。
curl https://media.xuaiapi.xyz/v1/images/edits \
-H "Authorization: Bearer $XU_API_KEY" \
-F "model=your-enabled-image-model" \
-F "prompt=保留构图,调整为 Xu API 的克制风格" \
-F "size=1024x1024" \
-F "image=@input.png;type=image/png"
model、image、prompt 必填,size 可选。mask 仅在模型支持局部重绘时使用;上传图片和 mask 的格式、尺寸必须符合模型要求。
视频采用异步任务模式:先创建任务,保存任务 ID,轮询状态,完成后下载 MP4。
POST /v1/videos
GET /v1/videos/{id}
GET /v1/videos/{id}/content
BASE_URL="https://media.xuaiapi.xyz"
API_KEY="$XU_API_KEY"
TASK_JSON=$(curl -sS -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $API_KEY" \
-F "model=gemini-veo31" \
-F "prompt=镜头缓慢推进,保持主体和画面风格" \
-F "seconds=8" \
-F "size=1280x720" \
-F "input_reference=@input.png;type=image/png")
TASK_ID=$(printf "%s" "$TASK_JSON" | jq -r ".id")
STATUS="queued"
for ATTEMPT in $(seq 1 120); do
TASK_JSON=$(curl -sS "$BASE_URL/v1/videos/$TASK_ID" \
-H "Authorization: Bearer $API_KEY")
STATUS=$(printf "%s" "$TASK_JSON" | jq -r ".status")
case "$STATUS" in completed) break ;; failed) exit 1 ;; esac
sleep 5
done
[ "$STATUS" = "completed" ] || { echo "video task timed out"; exit 1; }
curl -fL "$BASE_URL/v1/videos/$TASK_ID/content" \
-H "Authorization: Bearer $API_KEY" -o output.mp4
创建任务时 model、prompt 必填;seconds、size、input_reference 的支持范围由模型决定。
queued:任务正在排队,继续等待。in_progress:任务正在处理,继续等待。completed:任务已完成,可以下载。failed:任务失败,停止轮询并记录请求 ID。检查密钥、权限、请求地址和模型访问范围。不要对鉴权失败无限重试。
降低并发并使用指数退避和随机抖动;尊重服务返回的重试提示。
仅对可安全重复的请求进行有限次数重试。异步任务先查询原任务状态,避免重复创建和计费。
建议记录请求 ID、端点、模型、状态码和耗时,并设置最大重试次数与总超时。不要记录完整请求正文中的敏感数据。
对临时图片 URL 及时下载,并按业务要求控制存储访问和生命周期。
反馈问题时提供请求 ID、时间、端点和状态码,不要发送完整 API Key 或敏感请求内容。
需要帮助时,请登录 Xu API 控制台,通过站内支持入口提交问题。