客户开发人员接入手册 · Developer API Reference / 线上服务
一个标准接口, 接入持续扩展的模型。 万川智流提供普通 HTTPS API。本页主要提供给客户的开发人员、技术服务商和系统集成人员,用于把万川智流接入网站后端、电商系统、Dify、n8n、机器人或自研软件。平台管理员也可用它核对对外接口承诺;客户只需保管一个专属 API Key,通过 model 字段切换已授权模型。首次接入可从控制台分应用指南 选择应用与账号模型,获取对应配置和示例。
API BASE URL https://api.wanchuanapi.com
五分钟完成第一次调用 先登录客户控制台创建专属 API Key,再复制固定接口地址和已授权模型 ID。不要把正式 Key 放在浏览器前端、截图或聊天中。
客户接入路径 1. 登录控制台 账号审核通过后进入个人或企业工作区。
2. 创建 API Key 新密钥可验证登录密码后再次查看;历史不可恢复密钥需轮换,请立即安全保存。
3. 查询模型目录 调用 /v1/models 获取当前账号真正可用的模型。
4. 发起并核对 请求完成后在控制台核对 Token、费用和账本。
API Base URL https://api.wanchuanapi.com/v1复制
模型目录接口 https://api.wanchuanapi.com/v1/models复制
接口目录 除健康检查外,所有业务接口都需要携带当前租户的 API Key。模型目录会按租户权限返回,不会暴露上游密钥、进价或内部节点。
GET /healthz公开服务健康状态
GET /v1/models查询当前客户的文本 / 向量模型与公开售价
POST /v1/chat/completionsOpenAI Chat Completions 风格接口
POST /v1/responses原生 Responses:035–038;支持流式、函数调用和结构化输出。其他模型使用其已支持的接口。
GET /v1/balance余额、冻结额度与平台积分
GET /v1/usage请求级 Token、模型与客户成交费用
GET /v1/ledger当前账号的公开资金变动记录
四步接入 1 申请试用、个人或企业账号
2 等待平台管理员审核
3 登录控制台创建专属 API Key
4 先查询模型目录,再从服务端发起请求
Chat Completions cURL
# 每个新任务先设置 WANCHUAN_REQUEST_KEY;同一任务重试保留原值和请求。
: "${WANCHUAN_REQUEST_KEY:?请先设置本任务唯一键}"
curl "https://api.wanchuanapi.com/v1/chat/completions" \
-H "Authorization: Bearer $WANCHUAN_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $WANCHUAN_REQUEST_KEY" \
-d '{
"model": "YOUR_MODEL_ID",
"messages": [{"role":"user","content":"生成一条商品卖点"}],
"max_tokens": 256
}'
可以接到哪些应用:手把手连接教程 先完成统一准备,再按应用操作。 万川使用 OpenAI 兼容文本接口和独立媒体接口。应用名称和菜单会随版本变化,但需要填写的四项始终相同。
万川提供自己的 API 连接节点与配置包 本页列出的 Base URL 和已开放下载包都以“客户应用 → 万川 API”为目标,不会把万川 Key 交给应用官网或上游厂商节点。支持自定义 Base URL 的文本客户端直接使用万川配置;当前部署也已开放 ComfyUI 与 n8n 万川图片生视频和视频生视频连接包。
1 · 万川 Base URL https://api.wanchuanapi.com/v1。最终请求 Host 必须属于万川;具体字段以各应用教程为准,不能一律机械填写同一个值。
2 · API Key 从万川客户控制台创建,只保存在应用凭据库或环境变量;不要放入截图、公开工作流或前端源码。
3 · 精确模型 ID 示例客户逻辑模型为 YOUR_MEDIA_MODEL_ID;仍须先调用 GET https://api.wanchuanapi.com/v1/models 或媒体目录,只复制当前账号返回的 ID,不要填上游请求 ID。
4 · 接口类型 聊天走 /chat/completions;向量走 /embeddings;图片与视频生视频都先走万川 /media/inputs,再走 /media/jobs。
5 · 成功核对 发送最小请求后,在客户控制台核对同一模型的请求、Token、费用或生成记录。
输入素材生命周期: 平台不设置单张图片独立字节上限;图片和视频共同占用每账户 10 GiB 输入配额,视频单文件上限为 500 MiB。输入达到 ready 后会一直保留,直到显式调用 DELETE /v1/media/inputs/{input_id};仍被活动媒体任务引用时不能删除。只有私有对象清理确认且记录进入 deleted 后,相应配额才释放。所选上游模型仍可能有更小限制。
curl https://api.wanchuanapi.com/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"
curl https://api.wanchuanapi.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"YOUR_EXACT_MODEL_ID","messages":[{"role":"user","content":"你好"}]}'
看到的现象 含义 处理方法 GET /v1/models 有结果Key、账号和模型目录已经连通。 从结果复制精确模型 ID,再配置应用。 GET /v1/models 返回空数组Key 有效,但当前账号没有最终生效的模型。 联系站内客服检查账号模型权限;刷新客户端不会新增模型。 401 / invalid_api_keyKey 缺失、错误、已撤销或轮换。 Header 必须为 Authorization: Bearer YOUR_API_KEY,不要多引号或空格。 403账号、模型或调用策略不允许。 确认该模型出现在当前 Key 的 /v1/models 结果中。 404常见于重复填写 /v1、模型 ID 错误或接口类型错误。 检查应用最终请求 URL,避免 /v1/v1;媒体模型不要发到 Chat 接口。 错误信息显示其他厂商域名 该节点绕过万川,正在直连厂商。 改用支持自定义 Base URL 的 OpenAI Compatible 节点或通用 HTTP 节点。 应用报错且控制台无记录 请求通常还未到达万川。 先用上面的 cURL 验证,再检查应用节点、代理、DNS 和防火墙。
Cherry Studio 直接接入 打开“模型服务”,新增 OpenAI Compatible ,不要选择只能官方登录的提供商。 API Host / API 地址填 Origin https://api.wanchuanapi.com,不要追加 /v1;API Key 填客户专属 Key。 手动添加 GET /v1/models 返回的精确模型 ID。 保存后检查连接测试或网络日志:模型目录最终路径必须是 /v1/models,聊天最终路径必须是 /v1/chat/completions;若缺少 /v1 或出现 /v1/v1,停止使用并先确认客户端版本的 URL 拼接规则。
Chatbox 直接接入 打开“模型提供方”,新增自定义 OpenAI-compatible Provider。 API Host / Base URL 填 https://api.wanchuanapi.com/v1,API Path 填 /chat/completions。 填客户专属 Key,并手动添加 GET /v1/models 返回的精确模型 ID。 保存后确认最终请求必须是 https://api.wanchuanapi.com/v1/chat/completions,再到控制台核对请求记录。
OpenWebUI / LibreChat 万川配置包 下载万川客户端配置包 ,按对应应用模板新增名为“万川 API”的 Provider。Base URL 填 https://api.wanchuanapi.com/v1;Key 只保存在服务器端配置。 刷新模型目录;若应用不自动加载,就手动添加精确模型 ID。 重启或保存连接后发起最小对话,确认实际 Host 与控制台记录都属于万川。
LobeChat 重定向内置 OpenAI 下载万川客户端配置包 并使用其中的 LobeChat 模板。模板把 OPENAI_PROXY_URL 指向 https://api.wanchuanapi.com/v1,Key 只通过服务端环境变量注入。 按模型白名单只开放当前账号返回的精确模型 ID。 这会把 LobeChat 的内置 OpenAI 槽位重定向到万川,不是新增独立 Provider;界面和内部 Provider ID 仍可能显示 OpenAI。发起最小对话后仍须确认实际 Host 与控制台记录属于万川。
Dify 直接接入 进入“设置 → 模型供应商”,选择支持自定义地址的 OpenAI Compatible 提供商。 填写 https://api.wanchuanapi.com/v1 和专属 Key。 点“添加模型”,粘贴精确 ID;聊天模型选 LLM,向量模型选 Embedding。 在应用编排页选择该模型并运行一次;两边账本会分别记录。
n8n 万川媒体工作流 下载图片生视频工作流 或下载视频生视频工作流 ,导入后先保持未激活;需要主动释放配额时另行下载显式删除输入工作流 。在 n8n 凭据库新建 Bearer Header Auth;下载文件不含 Key。 图片工作流上传 PNG/JPEG/WebP,平台不设置单张图片独立字节上限;图片与视频共同占用每账户 10 GiB 输入配额。示例图片生视频模型的比例跟随首帧,工作流不会另发 aspect_ratio。视频工作流要求预先转为 H.264 MP4,视频单文件上限为 500 MiB、时长 1–30 秒、最大 3840×2160,所选上游模型仍可能有更小的能力限制。大视频须使用 n8n filesystem 或企业 external binary 模式,避免 Code 节点全量载入内存。两种素材都直接上传万川 /v1/media/inputs,再用返回的不透明输入 ID 创建并轮询任务。 输入达到 ready 后一直保留到显式调用 DELETE /v1/media/inputs/{input_id};仍被活动媒体任务引用时不能删除。 示例客户逻辑模型为 YOUR_MEDIA_MODEL_ID;仍须以 GET https://api.wanchuanapi.com/v1/media/models 返回为准,不要填上游请求 ID。
ComfyUI 万川图片/视频生视频节点 安装后显示“万川 API|图片生视频”“万川 API|视频生视频”和“万川 API|手动删除媒体输入(仅用户触发)”。三个节点都只连接万川媒体接口,不连接 ComfyUI 官网或 ByteDance 官方节点;只有厂商 Key 输入框、不能修改请求地址的节点仍会绕过万川。
下载 ComfyUI 万川节点包 ,解压到 ComfyUI/custom_nodes,并确认最终路径为 ComfyUI/custom_nodes/comfyui-wanchuan/__init__.py 后重启。把 Key 注入 ComfyUI 进程环境变量 WANCHUAN_API_KEY;节点没有 Key 输入框,工作流 JSON 不保存 Key。 图片生视频连接官方 Load Image;视频生视频连接官方 Load Video 的 VIDEO 输出,节点在本地转为 H.264 MP4 后直传万川 /v1/media/inputs;示例图片生视频模型的比例跟随首帧,不要另发 aspect_ratio。 生成节点会在旧的三个结果之后追加万川 input ID;只有用户连接该 ID、明确确认并运行删除节点时才会删除。若上传后任务创建、轮询或下载失败,错误信息会列出仍保留的 input ID,便于之后手动清理。 示例客户逻辑模型为 YOUR_MEDIA_MODEL_ID;仍须以 GET https://api.wanchuanapi.com/v1/media/models 返回为准并确认对应媒体能力,不要填上游请求 ID。 POST https://api.wanchuanapi.com/v1/media/jobs
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: YOUR_UNIQUE_JOB_KEY
{"model":"YOUR_MEDIA_MODEL_ID","prompt":"保持商品外观,镜头缓慢环绕","parameters":{"input_asset_ids":["INPUT_ASSET_ID"],"duration":5,"resolution":"480p","provider_processing_acknowledged":true}}
GET https://api.wanchuanapi.com/v1/media/jobs/JOB_ID
Authorization: Bearer YOUR_API_KEY
Flowise / Langflow / FastGPT / 机器人平台 按版本判断 查找 OpenAI Compatible、Custom OpenAI 或 Base URL 设置。 能同时自定义 URL、Authorization Header 和 Model 时直接填写统一信息。 没有这些字段时改用 HTTP/API 工具;不能自定义 Header 的平台不能安全直连。 Key 必须保存在平台的凭据库,不要写入公开模板。
Python / Node.js / Java / Go 直接接入 把 Key 放在服务端环境变量或密钥管理器,不要写死在代码中。 OpenAI SDK 的 base_url 设为 https://api.wanchuanapi.com/v1。 先列出模型,再按 Chat、Embedding 或 Media 接口调用。 生产环境配置超时、幂等键、有限重试和脱敏日志;401/403 不应自动重试。
Claude Code / Codex CLI / 官方专用客户端 条件兼容 确认当前版本明确支持第三方 Base URL 和 OpenAI 兼容协议。 只接受官方登录或厂商原生协议时,不能用万川 Key 替换。 不要修改 hosts、注入证书或使用来源不明的代理强行接管流量。
ChatGPT GPT Action / 应用连接器 单独配置 它是通过公开 REST 接口执行指定动作,不是把万川设置成 ChatGPT 的底层模型。 使用公开 OpenAPI 文档声明需要的端点,并按连接器要求保存认证。 只开放业务所需的最小接口,不在提示词或共享 GPT 中写入长期 Key。
判断原则: 万川连接的最终 API Host 必须属于万川。能自定义请求地址的文本客户端使用万川配置包;ComfyUI 与 n8n 使用上方万川节点/工作流;只有官方登录或单一厂商 Key 输入框的节点会绕过万川,不能使用。前端不能直接保存正式 Key,网页、移动 App 和小程序应由自己的服务端代发请求。
Python 示例 兼容 OpenAI 客户端的应用,只需替换 Base URL、API Key 和模型名。先调用 /v1/models 获取当前账号的文本与向量目录;媒体目录使用 /v1/media/models。读取目录不提交生成,下面的首次调用会产生模型用量。每个新任务设置新的 WANCHUAN_REQUEST_KEY,重试保留原值。
OpenAI Python SDK compatible 服务端运行
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["WANCHUAN_API_KEY"],
base_url="https://api.wanchuanapi.com/v1",
max_retries=0, # 先核实请求结果;本示例不自动重试
)
result = client.chat.completions.create(
extra_headers={"Idempotency-Key": os.environ["WANCHUAN_REQUEST_KEY"]},
model="YOUR_MODEL_ID",
messages=[{"role": "user", "content": "生成一条商品卖点"}],
max_tokens=256,
)
print(result.choices[0].message.content)
个人版一枚 Key;企业版多 Key 统一结算 平台只允许调用当前账号目录中已发布的逻辑模型,并按所选模型的公开报价计费。
先查询 GET /v1/models 返回文本与向量模型 ID、能力、上下文限制和万川积分价格。图片、视频和 3D 模型通过 GET /v1/media/models 读取,并包含具体输入和参数约束。显示名称不包含渠道标签;调用时始终使用返回的 ID。
再调用 把模型 ID 放入 model 字段。切换模型后重新检查能力、参数和积分报价。
用量可追溯 标准 usage Token 字段仍表示模型用量,不能当成积分;独立的 billing 表示本次积分结算。
数据处理 素材处理地域、实际接收方、保留限制及需要确认的事项见所选模型的数据处理详情;模型简称不替代这些披露。
万川积分与旧客户端迁移 默认响应采用积分字段,单位为 wanchuan_points。数值是精确十进制字符串,允许小数和负数;请使用十进制计算,不要转成整数或二进制浮点后对账。
模型价格使用 request_points_per_million_tokens / response_points_per_million_tokens;余额使用 total_points、held_points、available_points;账单使用 amount_points、held_change_points、balance_after_points;调用结算使用 charged_points、released_points,媒体任务另有 pending_points。控制台导出使用 amount_points 和 unit。
积分由账户现有换算设置展示;历史账目按读取时的设置折算,原始金额与价格快照不改写。配置不可用时不返回伪造零报价,points_configured 为 false 或积分字段缺省;请停止报价展示并提示稍后核对。待结算、冻结、释放和实际扣除必须分别展示。
仍依赖旧金额字段的客户端 迁移期间可在模型、余额、用量、账单、媒体任务或推理请求中显式发送 Accept: application/vnd.wanchuan.currency.v1+json,保留原金额字段。普通请求和 Studio 不发送此值。标准模型 ID、Token 用量和幂等语义保持不变;同一请求切换展示格式不能导致重新执行。公司内部使用界面已撤下法币充值、提现申请与扫码付款流程;真实收付款由管理员后台办理,既有资金记录与兼容接口保留,不能把现金应付款伪装为积分。
积分记录与站内客服 公司内部账户通过控制台查询积分、奖励和账单。真实收付款由管理员后台办理;核对完成前不会增加积分余额。
GET /v1/support/tickets查询当前租户客服对话
POST /v1/support/tickets发起接入、API、账单或技术工单
客服 API 使用 Bearer API Key;受限 Key 需要 support 权限,浏览器登录 Cookie 不能替代 Key。列表仅包含当前租户,返回 {"object":"list","data":[...]};创建成功返回 201 和 {"object":"support_ticket","ticket":{...}}。
创建客服工单的参数与错误 category 可选 enterprise_onboarding、billing、api_access、technical;subject 最多 120 字,message 最多 2000 字,选填 preferred_contact 最多 160 字。标题和联系方式不能换行,未知字段会被拒绝。最多同时保留 10 个未解决工单,超出返回 429。创建接口没有幂等重放保证;提交结果不确定时,先查询列表,避免重复创建。
完整请求与响应结构见 OpenAPI 规范 。
旧付款 API:仅兼容保留,已标记弃用 GET /v1/payment-methods 与 POST /v1/payment-orders 仅保留已有接入兼容,均需 Bearer Key,不作为客户界面付款入口。创建只允许个人客户租户,企业请求返回 403。
旧请求字段为 method(alipay / wechat_pay)、amount_cny(最多两位小数的人民币金额字符串)及选填 note(最多 120 字、不能换行);金额受配置下限限制,最高 100000。这里的现金金额不能改用积分值。
201 只表示建立 pending_admin_review 申请,qr_code 为 null,不代表付款成功或积分到账。真实支付回调仍不可用;客户付款界面保持撤回。兼容参数、响应和权限见 OpenAPI 的 deprecated 标记。
Studio 兼容计量字段 既有画布的 preflight、run、results JSON 暂时保留原 *_credits 计量字段,避免破坏保存和运行协议;它们不是界面展示单位。Studio 从 /v1/studio/models 读取 points.points_per_credit 的 numerator / denominator,用整数精确换算后仅显示万川积分。换算配置不可用时应提示待确认,不能假设倍率或显示零报价。新对话接口直接返回 *_points,每轮按已确认报价保存的换算规则展示。
账号实际可用能力 请先使用当前账号的 API Key 调用 GET /v1/models。返回结果就是该账号可以直接调用的模型、能力、上下文上限和当前公开价格;未返回的模型不可调用。
一枚 Key 调用账号内全部已授权模型 RPM / TPM / 并发 / 费用四重保护 真实 Token 用量与请求级账单
平台不会向客户端返回上游密钥、采购成本、内部节点或实际路由拓扑。模型不可用时会明确返回错误,不会静默替换成另一种模型。
按账号类型管理 API Key 个人版维护 1 个活动 Key;企业版可维护最多 10 个命名 Key,全部归入同一企业余额、用量与账本。新 Key 可验证登录密码后再次查看完整值;历史不可恢复 Key 只显示前缀。如需轮换,请先安排应用配置更新,再撤销旧 Key,避免中断。
个人版更简单 一枚 Key 即可调用全部已授权模型;需要更换时先撤销或轮换,不产生多个余额账户。
企业版最小权限 按应用勾选 inference、models、usage、balance、media 或 support,并可设置 IP 白名单和到期时间。
独立撤销、统一结算 企业单个 Key 泄露只撤销该 Key,不影响同账户其他应用;所有 Key 仍使用同一企业账本。不要把 Key 放进浏览器 JavaScript、客户端安装包、截图或聊天。
向量嵌入接口 使用客户控制台中已授权的精确向量模型 ID。首批文本向量接口固定返回 1024 维向量,并按照供应商回传 Token 用量结算。
精确模型选择 每个可用模型都在 GET /v1/models 中以自己的品牌、版本和精确 model ID 单独出现。切换模型只需修改请求中的 model,API Key 与接口地址保持不变。
模型身份透明 不会用统一名称掩盖实际模型,也不会把一种模型冒充成另一种模型。
逐模型公开价格 每个模型分别展示当前输入与输出售价,请求按该模型调用时绑定的价格快照结算。
同模型故障切换 只有经过兼容性验证的同一精确模型节点才能用于故障切换;不会跨不同模型静默重试。
客户界面只展示公开售价、实际 Token 用量与账单,不展示采购成本、上游密钥或内部路由拓扑。
状态与机器可读文档 公开状态页不显示上游密钥、成本、预算或内部节点。OpenAPI 文档可导入兼容工具,但仍应先以客户控制台中的模型目录和权限为准。
GET /status公开服务状态与已发布事件
GET /openapi.jsonOpenAPI 3.1 机器可读接口说明
方案、费用与服务范围 平台保留体验申请、个人付费与企业方案。个人探索版与企业标准版的平台服务费为一次开通、1 年有效,不含生成积分;企业定制以双方确认的订单或合同为准。提交注册申请不会扣款,体验申请的模型与额度以审核结果为准。
平台服务费与模型用量费分别计算。每次请求绑定确认时的价格快照,之后价格调整不改写该请求的价格;结算依据与费用状态可在对应账单中核对。预留金额不等于已结算费用。Studio 生成需已开通且在有效期内的付费方案,模型用量另计。
账号、余额、用量和账单记录会保留,可在控制台查询。可用模型、额度与并发以账号开通范围为准;服务级别以页面公示及双方约定为准。
Responses 与流式读取 只对目录标记支持原生 Responses 的模型使用。平台不将它静默改成 Chat;当前为无状态调用,自己携带历史输入。
curl https://api.wanchuanapi.com/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Idempotency-Key: YOUR_UNIQUE_RESPONSE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"YOUR_RESPONSES_MODEL_ID","input":"你好","max_output_tokens":128,"store":false,"stream":true}'
流式响应为 text/event-stream,按 event 与 data 读取完整事件;response.output_text.delta 为文字增量,终态为 response.completed、response.incomplete 或 response.failed。函数调用由你的应用执行,再带回对应输出继续请求;平台不会代执行工具。不要把网络断开当成任务失败。
参数、返回结构与错误详见 OpenAPI 。带有 Studio session API 标签的接口供工作台使用,采用登录会话与 CSRF,不属于客户 API Key 接入。
接入与媒体故障排查 保留响应的 X-Request-ID、任务 ID 和错误码;联系客服时不用发送 Key、密码或完整提示词。
现象 下一步 401 / 403 核对 Key 状态、账号与模型权限;不要通过重复提交规避。 重复路径 / 404 最终地址只含一次 /v1;媒体模型走媒体任务接口。 429 / 输入配额不足 等待限流窗口;检查素材库空间。删除输入须单独明确确认。 invalid_request 按当前模型参数范围修改时长、分辨率和参考素材,不自动换模型。 submission_uncertain / 连接中断 已取得任务 ID 就查询原任务;未取得 ID 则使用原幂等键及相同请求核对,不能换键创建第二笔。 settlement_pending 先核对钱包与账单,补足需要的积分后跟踪原任务;不要重复生成。 expired / 预览失败 素材可用性与历史消费分开。到个人素材库找已保存成果,费用以原账单为准。