快速接入 WanAPIs
使用一个 OpenAI 兼容 API Key 调用 GPT、Claude、Gemini、DeepSeek、图像、视频和语音模型。现有项目通常只需要替换 base_url 和 API Key。
介绍
WanAPIs 是统一 AI API 网关,提供 OpenAI 兼容接口、多渠道路由、失败转移、模型市场、调用日志和透明计费。你可以把不同上游的模型统一放在一个 endpoint 下管理。
兼容 OpenAI
支持常用 SDK、Chat Completions、Responses 和工具调用。
统一模型市场
在一个页面查看模型能力、供应商、价格和调用入口。
生产级稳定性
通过多渠道、分组、重试和日志降低上游波动影响。
快速开始
- 注册账号进入控制台创建账号并完成邮箱验证。
- 创建 API Key在令牌页面生成密钥,并按项目设置额度。
- 替换 Base URL把 OpenAI SDK 的 baseURL 改成 https://api.wanapis.com/v1。
- 选择模型从模型市场或定价页选择模型 ID。
curl https://api.wanapis.com/v1/chat/completions \
-H "Authorization: Bearer $WANAPIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"messages": [
{ "role": "user", "content": "用三句话解释 RAG" }
]
}'认证
所有请求都需要在 Header 中携带 Bearer Token。不要把 API Key 放在前端浏览器代码里,建议通过你的后端服务转发请求。
| 项目 | 说明 | 示例 |
|---|---|---|
| Base URL | OpenAI 兼容 API 根地址 | https://api.wanapis.com/v1 |
| Header | 请求认证方式 | Authorization: Bearer sk-... |
| Content-Type | JSON 请求体 | application/json |
密钥管理
Chat Completions
兼容 /v1/chat/completions,适合多数现有 OpenAI SDK、聊天机器人、Agent 和工具调用项目。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.WANAPIS_API_KEY,
baseURL: "https://api.wanapis.com/v1",
});
const response = await client.chat.completions.create({
model: "deepseek-v4-pro",
messages: [{ role: "user", content: "写一个 TypeScript 重试函数" }],
});
console.log(response.choices[0].message.content);from openai import OpenAI
client = OpenAI(
api_key=os.environ["WANAPIS_API_KEY"],
base_url="https://api.wanapis.com/v1",
)
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[{"role": "user", "content": "给我一个产品发布清单"}],
)
print(response.choices[0].message.content)Responses API
需要使用新一代 Responses 工作流时,可以调用 /v1/responses。如果遇到上游 503 或高负载,建议在业务侧增加指数退避重试。
curl https://api.wanapis.com/v1/responses \
-H "Authorization: Bearer $WANAPIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"input": "分析这段日志并给出排障步骤"
}'模型市场
模型市场会从 WanAPIs 定价接口同步数据,按视频、图像、LLM、音频分类展示能力、供应商和价格。
客户端 / IDE 集成
这部分保留为重点内容。所有支持自定义 base_url 的 OpenAI / Anthropic 兼容客户端都可以接入 WanAPIs。推荐先把本机配置跑通,再接 VS Code 插件: Claude Code → CC Switch → Codex 桌面端 → Codex CLI → VS Code 插件。
1. Claude Code(推荐)
# 1. 安装,需要 Node.js >= 18
npm i -g @anthropic-ai/claude-code
# 2. 配环境变量,建议写入 ~/.zshrc 或 ~/.bashrc
export ANTHROPIC_BASE_URL="https://api.wanapis.com"
export ANTHROPIC_AUTH_TOKEN="sk-xxx"
# 3. 在项目目录启动
cd your-project && claude首次进入会让你选择模型。确认安装可运行 claude --version。
2. CC Switch(桌面 GUI 切换器)
CC Switch 配置示意
# 从 GitHub Releases 下载:
# https://github.com/farion1231/cc-switch/releases
# 1. 打开 CC Switch
# 2. 进入 codex 或 claude 分组
# 3. 点击右侧 + 添加 WanAPIs
# 4. 保存后点击启用 / Switch to
# 5. 重启 Codex、VS Code 或 Claude Code保存后请重启 Codex、VS Code 或 Claude Code,避免旧配置继续驻留在进程环境中。
3. Codex 桌面端(macOS / Windows)
Codex Desktop 配置项
model = "gpt-5.5"
model_provider = "wanapis"
[model_providers.wanapis]
name = "WanAPIs"
base_url = "https://api.wanapis.com/v1"
wire_api = "responses"
env_key = "WANAPIS_API_KEY"# macOS / Linux,写入 ~/.zshrc 或 ~/.bashrc 后重开终端
export WANAPIS_API_KEY="sk-xxx"
# Windows PowerShell,持久写入当前用户环境变量
[Environment]::SetEnvironmentVariable("WANAPIS_API_KEY", "sk-xxx", "User")- 1. 安装并打开 Codex 桌面端,在认证方式里选择 API Key,不使用 ChatGPT 账号登录模式。
- 2. 创建上面的 config.toml,把模型和 provider 指向 WanAPIs。
- 3. 设置 WANAPIS_API_KEY 后重启 Codex 桌面端;如果同时使用 VS Code/Cursor,也一起重启。
- 4. Windows 原生 Codex 和 WSL Codex 不共用同一个 home;WSL 里需要单独写 ~/.codex/config.toml,或设置 CODEX_HOME 指向同一目录。
模型选择
4. Codex CLI
# 1. 安装
npm i -g @openai/codex
# 2. 编辑 ~/.codex/config.toml
cat > ~/.codex/config.toml <<'EOF'
model = "gpt-5.5"
model_provider = "wanapis"
[model_providers.wanapis]
name = "WanAPIs"
base_url = "https://api.wanapis.com/v1"
wire_api = "responses"
env_key = "WANAPIS_API_KEY"
EOF
# 3. 设置 token
export WANAPIS_API_KEY="sk-xxx"
# 4. 在项目目录启动;它会读取同一个 ~/.codex/config.toml
cd your-project && codex5. VS Code 插件
官方 Codex 插件(openai.chatgpt)
在 VS Code 扩展市场安装 openai.chatgpt。这个插件不在聊天框里填 Base URL;先把~/.codex/config.toml 配好,然后重启 VS Code。官方 Codex 扩展会复用本机 Codex 配置中的model 和 provider 设置。
官方 Codex 插件配置路径
model = "gpt-5.5"
model_provider = "wanapis"
[model_providers.wanapis]
name = "WanAPIs"
base_url = "https://api.wanapis.com/v1"
wire_api = "responses"
env_key = "WANAPIS_API_KEY"Claude Code VS Code 插件
在 VS Code 扩展市场安装 Claude Code。核心不是在插件里单独填 URL,而是先确认终端里的claude 已经能正常连接 WanAPIs;插件会复用本机 ~/.claude 配置。改完配置后重启 VS Code。
Claude Code 插件检查项
Cline(原 Claude Dev,推荐)
打开 Cline 侧边栏,点击设置齿轮,Provider 选择 OpenAI Compatible,然后填写 Base URL、API Key 和 Model ID。
Cline 设置面板
API Provider: OpenAI Compatible
Base URL: https://api.wanapis.com/v1
API Key: sk-xxx
Model: claude-opus-4-7
# 也可以使用 gpt-5.5 / gemini-3.5-flash / deepseek-v4-proContinue
Continue 当前推荐使用 YAML 配置。打开 Continue 设置里的配置文件,给 models 增加一个provider: openai 模型,并通过 apiBase 指向 WanAPIs。
name: WanAPIs
version: 0.0.1
schema: v1
models:
- name: WanAPIs Claude Opus 4.7
provider: openai
model: claude-opus-4-7
apiBase: https://api.wanapis.com/v1
apiKey: sk-xxx
roles:
- chat
- edit
- applyRoo Code
打开 Roo Code 侧边栏设置,API Provider 选择 OpenAI Compatible。Roo Code 官方文档说明这里需要填 Base URL、API Key 和 Model ID;如果模型不支持工具调用,需要换成支持 tool calling 的模型。
Roo Code 设置面板
6. 桌面客户端 / 浏览器扩展
- CherryStudio:中文圈常用桌面 LLM 客户端,适合多 provider 切换。
- ChatBox:跨平台桌面客户端,设置简单。
- NextChat / ChatGPT-Next-Web:Web / 桌面双形态,支持自部署。
- LobeChat:Web 客户端,支持插件生态。
- Page Assist / Sider:浏览器扩展侧边栏 LLM。
异步任务
图片、视频和其它长耗时任务建议走异步任务接口或控制台任务能力,避免公网入口超时。任务创建后通过任务 ID 轮询状态,或配置回调地址接收结果。
POST /v1/images/{model}/generation
# 示例
/v1/images/gpt-image-2-all/generationPOST /v1/videos/{model}/generation
# 示例
/v1/videos/doubao-seedance-2.0/generationGET /v1/tasks/{task_id}
# status:
# pending | processing | completed | failed长任务建议
图片生成
图片生成统一归到图片能力目录下。不同模型的请求体可能不同,但公开入口保持一致:/v1/images/{model}/generation,提交后通过 /v1/tasks/{task_id} 轮询结果。
gpt-image-2-all
通用图片生成 / 编辑任务,适合常规文生图、图像改写和素材生产。
flux / imagen / seedream
其它图片模型请以模型市场实际显示为准,使用同一异步任务入口。
curl https://api.wanapis.com/v1/images/gpt-image-2-all/generation \
-H "Authorization: Bearer $WANAPIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{"role": "user", "content": "生成一张干净的 SaaS 产品仪表盘概念图"}
]
}'图片结果
视频生成
视频生成统一归到视频能力目录下。模型配置方法放在本目录下,例如 Seedance 2.0、Veo、Kling、Vidu 等。所有视频模型默认使用异步任务模式:提交 /v1/videos/{model}/generation,再轮询任务结果。
Seedance 2.0
字节豆包视频生成,支持文生视频、图生视频、首尾帧和参考素材。
Veo / Kling / Vidu
其它视频模型后续会按同样结构补充独立配置方法。
Seedance 2.0
Seedance 2.0 是字节豆包视频生成模型,适合文生视频、图生视频、首尾帧过渡和参考素材驱动的视频任务。WanAPIs 使用异步任务接口封装长耗时调用:提交任务立即返回 task_id,再轮询 /v1/tasks/{task_id} 获取结果。
WanAPIs 路径和 APIMart 不同
doubao-seedance-2.0
标准版,画面质量优先,适合正式素材生成。
doubao-seedance-2.0-fast
速度版,适合草稿、批量预览和低延迟场景。
doubao-seedance-2.0-face
人像 / 面部一致性场景优先使用,具体可用性以模型市场为准。
doubao-seedance-2.0-pro
高质量或增强版本,如模型市场未显示则代表当前不可用。
curl https://api.wanapis.com/v1/videos/doubao-seedance-2.0/generation \
-H "Authorization: Bearer $WANAPIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "一只橘猫在清晨的窗边伸懒腰,镜头缓慢推进,柔和自然光,电影感",
"resolution": "720p",
"size": "16:9",
"duration": 5,
"generate_audio": true,
"return_last_frame": true
}'curl https://api.wanapis.com/v1/videos/doubao-seedance-2.0-fast/generation \
-H "Authorization: Bearer $WANAPIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "让照片中的人物自然转身看向镜头,微风吹动头发,背景保持一致",
"image_urls": ["https://example.com/portrait.jpg"],
"resolution": "720p",
"size": "adaptive",
"duration": 5
}'curl https://api.wanapis.com/v1/videos/doubao-seedance-2.0/generation \
-H "Authorization: Bearer $WANAPIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "从白天城市街景平滑过渡到夜晚霓虹灯街景,镜头向前移动",
"image_with_roles": [
{"url": "https://example.com/day.jpg", "role": "first_frame"},
{"url": "https://example.com/night.jpg", "role": "last_frame"}
],
"resolution": "720p",
"duration": 5
}'| 项目 | 说明 | 示例 |
|---|---|---|
| prompt | 视频生成提示词。写清主体、动作、场景、镜头、风格和限制条件。 | "电影感推镜" |
| image_urls | 图生视频参考图。通常传 1 张图;多图能力以模型实际支持为准。 | ["https://...jpg"] |
| image_with_roles | 首尾帧或带角色的图片输入。常见 role 为 first_frame / last_frame。 | first_frame |
| video_urls | 参考视频 URL,用于保持运动、构图或风格参考。 | ["https://...mp4"] |
| audio_urls | 参考音频 URL。需要音频驱动或参考音色时使用。 | ["https://...mp3"] |
| resolution | 输出清晰度。常用 720p;更高规格是否可用以模型市场和上游返回为准。 | 720p |
| size | 视频比例。常用 16:9、9:16、1:1;图生视频也可用 adaptive。 | 16:9 |
| duration | 视频时长,单位秒。常用 5 或 10,具体上限以模型实际返回为准。 | 5 |
| generate_audio | 是否生成同步音频。开启后耗时可能更长。 | true |
| return_last_frame | 是否返回末帧,方便做连续镜头或下一段视频的首帧。 | true |
提交响应
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxx",
"model": "doubao-seedance-2.0",
"kind": "video",
"estimated_time": 180,
"created_at": 1780000000
}
]
}轮询任务
curl https://api.wanapis.com/v1/tasks/task_xxxxxxxxxxxxxxxxxxxxxxxxxx \
-H "Authorization: Bearer $WANAPIS_API_KEY"{
"code": 200,
"data": {
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxx",
"kind": "video",
"model": "doubao-seedance-2.0",
"status": "completed",
"progress": 100,
"result": {
"video_urls": ["https://.../result.mp4"],
"raw": {}
},
"error": null
}
}生产建议
计费与额度
WanAPIs 按模型倍率和实际 token 或任务计费。文本模型可按输入和输出分别计算,任务类模型通常按次或按规格计费。
| 项目 | 说明 | 示例 |
|---|---|---|
| 输入价格 | model_ratio × $2 / 1M tokens | input_tokens |
| 输出价格 | model_ratio × completion_ratio × $2 / 1M tokens | output_tokens |
| 额度单位 | 控制台余额实时扣减,可在日志中核对 | $1 = 500,000 quota |
错误与重试
API 返回标准 HTTP 状态码。建议对 429、500、502、503、504 做有限重试,对 400、401、403 直接提示配置或权限问题。
| 项目 | 说明 | 示例 |
|---|---|---|
| 401 | API Key 缺失或无效 | 检查 Authorization Header |
| 429 | 触发限流或额度保护 | 降低并发或更换分组 |
| 503 | 上游或系统负载过高 | 等待后重试,使用退避策略 |
迁移指南
从 OpenAI 官方或其它聚合平台迁移时,通常保留 SDK 和请求结构,只替换以下两项:
OPENAI_API_KEY=$WANAPIS_API_KEY
OPENAI_BASE_URL=https://api.wanapis.com/v1然后把模型 ID 改为 WanAPIs 模型市场中可用的模型。上线前建议先在低并发环境做 10 到 20 次请求,确认响应格式、token 统计和扣费符合预期。
支持
如果遇到渠道、计费、模型或响应格式问题,请带上请求时间、模型 ID、request id 和错误信息联系支持。