# API 地址、协议与模型选择

## 接口地址与认证

使用 HTTPS，通过 Authorization: Bearer 携带本站 API 密钥。OpenAI 兼容客户端基址以 /v1 结尾，不要重复拼接 /v1。Claude Code 则填写根地址，由工具自己追加 /v1/messages。

| API | URL |
| --- | --- |
| Models · GET | https://u9ai.ai/v1/models |
| Chat Completions · POST | https://u9ai.ai/v1/chat/completions |
| Responses · POST | https://u9ai.ai/v1/responses |
| Anthropic Messages · POST | https://u9ai.ai/v1/messages |

## 按协议选择模型，不能只看名字

GET /v1/models 中出现某个模型，不等于它支持所有端点。支持 Chat Completions，不代表支持 Responses。Claude Code 需要合适的 Claude 模型及 Anthropic Messages 行为；生图、视频模型不能替代。用于编程助手前，请让客服确认该模型的协议、流式输出、工具调用和上下文限制。

## 最小文本请求示例

把 YOUR_CHAT_MODEL_ID 替换为已确认支持 Chat Completions 的实际模型 ID。生成请求会消耗余额；先进行短文本非流式测试，再分别验证流式输出及完整的工具调用往返。

```bash
curl --fail-with-body -sS "https://u9ai.ai/v1/chat/completions" \
  -H "Authorization: Bearer $U9AI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"YOUR_CHAT_MODEL_ID","messages":[{"role":"user","content":"Hello"}],"stream":false}'
```
## 图像、视频、音乐接口

多模态模型分别拥有自己的字段、供应商协议及异步任务端点。不要向 /chat/completions 发送视频模型，也不要假设所有生图模型都支持同一种 OpenAI 图像请求。以该模型规格和工作台支持的字段为准；保存任务 ID，使用该供应商规定的查询端点轮询。任务完成且存在有效输出资源后，才有可下载结果。

/api/user/playground 是使用登录会话的网站接口，不能代替公开 API 密钥认证。外部接入不要复制网站 Cookie。缺少某个模型的专用接口文档时，请携带模型 ID 和调用目的提交工单，确认接口契约后再实现。

## 生产接入注意事项

保存请求编号和错误信息，但不记录密钥。创建请求超时后不要盲目重复提交，任务可能已经被创建并产生费用；先查询已知任务。流式连接中断也不代表请求免费失败，最终状态和扣费请核对请求记录及钱包流水。
