WanAPIs 开发者文档

快速接入 WanAPIs

使用一个 OpenAI 兼容 API Key 调用 GPT、Claude、Gemini、DeepSeek、图像、视频和语音模型。现有项目通常只需要替换 base_url 和 API Key。

介绍

WanAPIs 是统一 AI API 网关,提供 OpenAI 兼容接口、多渠道路由、失败转移、模型市场、调用日志和透明计费。你可以把不同上游的模型统一放在一个 endpoint 下管理。

兼容 OpenAI

支持常用 SDK、Chat Completions、Responses 和工具调用。

统一模型市场

在一个页面查看模型能力、供应商、价格和调用入口。

生产级稳定性

通过多渠道、分组、重试和日志降低上游波动影响。

快速开始

  1. 注册账号进入控制台创建账号并完成邮箱验证。
  2. 创建 API Key在令牌页面生成密钥,并按项目设置额度。
  3. 替换 Base URL把 OpenAI SDK 的 baseURL 改成 https://api.wanapis.com/v1。
  4. 选择模型从模型市场或定价页选择模型 ID。
cURL
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 URLOpenAI 兼容 API 根地址https://api.wanapis.com/v1
Header请求认证方式Authorization: Bearer sk-...
Content-TypeJSON 请求体application/json

密钥管理

推荐按项目创建不同 API Key,设置额度上限。上线后通过日志页观察模型、分组、耗时和扣费。

Chat Completions

兼容 /v1/chat/completions,适合多数现有 OpenAI SDK、聊天机器人、Agent 和工具调用项目。

Node.js
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);
Python
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 或高负载,建议在业务侧增加指数退避重试。

Responses
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(推荐)

Anthropic 官方 CLI agent。配 WanAPIs 后可使用 claude-opus-4-7claude-sonnet-4-6 等 Claude 系列模型。
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 可以统一管理 Claude Code / Codex / Gemini CLI 等 agent 的 provider,一键切换 base_url 和 token。

CC Switch 配置示意

入口codex / claude 分组 -> 右上角 +
NameWanAPIs
Base URLhttps://api.wanapis.com
API Keysk-xxx
启用保存后点击启用 / Switch to
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)

OpenAI 官方 Codex 桌面应用。桌面端、CLI 和 IDE 扩展共用 ~/.codex/config.toml;Windows 原生路径是 %USERPROFILE%\.codex\config.toml

Codex Desktop 配置项

认证方式API Key
配置文件~/.codex/config.toml
Windows%USERPROFILE%\.codex\config.toml
Providermodel_provider = "wanapis"
Base URLhttps://api.wanapis.com/v1
Wire APIresponses
~/.codex/config.toml
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. 1. 安装并打开 Codex 桌面端,在认证方式里选择 API Key,不使用 ChatGPT 账号登录模式。
  2. 2. 创建上面的 config.toml,把模型和 provider 指向 WanAPIs。
  3. 3. 设置 WANAPIS_API_KEY 后重启 Codex 桌面端;如果同时使用 VS Code/Cursor,也一起重启。
  4. 4. Windows 原生 Codex 和 WSL Codex 不共用同一个 home;WSL 里需要单独写 ~/.codex/config.toml,或设置 CODEX_HOME 指向同一目录。

模型选择

推荐代码任务优先用 gpt-5.5claude-sonnet-4.7。如果某个模型不支持 Responses 格式或工具调用,先在模型市场换一个支持工具调用的模型验证。

4. Codex CLI

OpenAI 官方代码 agent。推荐使用 responses wire API,并把 provider 写入 ~/.codex/config.toml
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 && codex

5. VS Code 插件

这里分两类:官方 Codex / Claude Code 插件通常复用本机 CLI 配置;Cline、Continue、Roo Code 这类第三方插件在插件设置里直接填写 URL、Key 和模型。

官方 Codex 插件(openai.chatgpt)

在 VS Code 扩展市场安装 openai.chatgpt。这个插件不在聊天框里填 Base URL;先把~/.codex/config.toml 配好,然后重启 VS Code。官方 Codex 扩展会复用本机 Codex 配置中的model 和 provider 设置。

官方 Codex 插件配置路径

安装入口VS Code 扩展 -> openai.chatgpt
配置文件~/.codex/config.toml
base_urlhttps://api.wanapis.com/v1
env_keyWANAPIS_API_KEY
生效方式保存配置后重启 VS Code
~/.codex/config.toml
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 插件检查项

CLI 验证终端运行 claude 能正常对话
环境变量ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN
配置目录~/.claude/settings.json / config.json
常见动作修改配置后重启 VS Code

Cline(原 Claude Dev,推荐)

打开 Cline 侧边栏,点击设置齿轮,Provider 选择 OpenAI Compatible,然后填写 Base URL、API Key 和 Model ID。

Cline 设置面板

API ProviderOpenAI Compatible
Base URLhttps://api.wanapis.com/v1
API Keysk-xxx
Model IDclaude-opus-4-7
验证点击 Verify 或发起一次对话
Cline settings
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-pro

Continue

Continue 当前推荐使用 YAML 配置。打开 Continue 设置里的配置文件,给 models 增加一个provider: openai 模型,并通过 apiBase 指向 WanAPIs。

~/.continue/config.yaml
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
      - apply

Roo Code

打开 Roo Code 侧边栏设置,API Provider 选择 OpenAI Compatible。Roo Code 官方文档说明这里需要填 Base URL、API Key 和 Model ID;如果模型不支持工具调用,需要换成支持 tool calling 的模型。

Roo Code 设置面板

API ProviderOpenAI Compatible
Base URLhttps://api.wanapis.com/v1
API Keysk-xxx
Modelgpt-5.5 / claude-opus-4-7
注意优先选择支持工具调用的模型

6. 桌面客户端 / 浏览器扩展

通用配置:Provider 选 OpenAI 兼容,Base URL 填 https://api.wanapis.com/v1,API Key 填 sk-xxx
  • 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/generation
提交视频任务
POST /v1/videos/{model}/generation

# 示例
/v1/videos/doubao-seedance-2.0/generation
查询任务
GET /v1/tasks/{task_id}

# status:
# pending | processing | completed | failed

长任务建议

视频生成、图片编辑、Midjourney 类任务通常耗时较长。业务侧应保存 task id,并为 pending、running、failed、completed 状态分别处理。

图片生成

图片生成统一归到图片能力目录下。不同模型的请求体可能不同,但公开入口保持一致:/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 产品仪表盘概念图"}
    ]
  }'

图片结果

图片任务完成后,结果通常在 result.image_urls 中。建议业务侧拿到图片 URL 后尽快下载并转存到自己的对象存储。

视频生成

视频生成统一归到视频能力目录下。模型配置方法放在本目录下,例如 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 不同

APIMart 文档里的提交路径通常写作 /v1/videos/generations。WanAPIs 当前公开入口是 /v1/videos/{model}/generation,模型名放在 URL 中,例如 /v1/videos/doubao-seedance-2.0/generation

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

提交响应

response
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxx",
      "model": "doubao-seedance-2.0",
      "kind": "video",
      "estimated_time": 180,
      "created_at": 1780000000
    }
  ]
}

轮询任务

poll
curl https://api.wanapis.com/v1/tasks/task_xxxxxxxxxxxxxxxxxxxxxxxxxx \
  -H "Authorization: Bearer $WANAPIS_API_KEY"
completed result
{
  "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
  }
}

生产建议

任务状态为 pendingprocessing 时每 5 到 10 秒轮询一次即可;遇到 failed 时记录 task id、模型名和错误信息。图生视频请使用公网可访问的 HTTPS 图片 URL,避免上游无法拉取素材。

计费与额度

WanAPIs 按模型倍率和实际 token 或任务计费。文本模型可按输入和输出分别计算,任务类模型通常按次或按规格计费。

项目说明示例
输入价格model_ratio × $2 / 1M tokensinput_tokens
输出价格model_ratio × completion_ratio × $2 / 1M tokensoutput_tokens
额度单位控制台余额实时扣减,可在日志中核对$1 = 500,000 quota

错误与重试

API 返回标准 HTTP 状态码。建议对 429、500、502、503、504 做有限重试,对 400、401、403 直接提示配置或权限问题。

项目说明示例
401API 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 和错误信息联系支持。