API 参考
Router 数据面兼容 OpenAI / Anthropic 三种调用协议。本页列出端点、鉴权与通用行为;同协议通道保留该协议的字段与事件,跨协议通道的支持范围见三种 API 协议。
接入地址
实际域名以控制台「快速接入」页展示为准,下文以 https://routerapi.<域名> 为占位。
| 协议 | Base URL | 端点 |
|---|---|---|
| OpenAI Chat Completions | https://routerapi.<域名>/v1 | POST /v1/chat/completions、GET /v1/models |
| OpenAI Responses | https://routerapi.<域名>/v1 | POST /v1/responses |
| Anthropic Messages | https://routerapi.<域名>/anthropic | POST /anthropic/v1/messages |
| 视频生成(OpenAI Videos 风格) | https://routerapi.<域名>/v1 | POST /v1/videos、GET /v1/videos/{id}、GET /v1/videos/{id}/content、DELETE /v1/videos/{id} |
| 视频生成(New API 任务风格) | https://routerapi.<域名>/v1 | POST /v1/video/generations、GET /v1/video/generations/{id} |
鉴权
所有端点都需要鉴权,Key 在控制台「API Keys」页签发:
- OpenAI 协议:请求头
Authorization: Bearer <Key> - Anthropic 协议:请求头
x-api-key: <Key>(也兼容Authorization: Bearer <Key>)
请求要点
model(必填):控制台「可用模型」列表中的名称——智能路由池名或直调模型名- 流式:请求体带
"stream": true,响应为 SSE(data:行逐块推送,以data: [DONE]结束;Anthropic 协议以其事件流格式返回)。OpenAI 协议流末会返回一个 usage 数据块(choices 为空数组),为本次调用的 token 用量;自行解析 SSE 的客户端请跳过该块 temperature、max_tokens/max_output_tokens、普通文本消息按对应协议映射;tools、tool_choice与历史工具结果支持 function tools,详见协议兼容矩阵。同协议通道保留协议字段;跨协议时,默认可降级的附加字段会被移除并记录在调用明细中,无法安全降级的能力会明确报错,严格透传模式的保留规则见协议说明
响应头(路由观测)
| 响应头 | 含义 |
|---|---|
x-veyra-routing-model | 本次实际落地执行的模型 |
x-veyra-routing-type | 路由形态(智能路由池 / 直调模型) |
x-veyra-routing-reason | 本次选路原因(如权重分配 / 健康切换 / 故障升级) |
x-veyra-routing-tier | 命中的路由档位 |
x-veyra-routing-score | 选路评分(4 位小数) |
x-veyra-routing-escalated | 是否因上游故障升级到备用通道(true/false) |
x-veyra-cls-type / x-veyra-cls-tier | 池调用的任务分类结果(任务类型 / 难度档,仅分类器介入时下发) |
x-veyra-cls-confidence / x-veyra-cls-mode | 分类置信度 / 分类模式(同上) |
价格表
GET https://routerapi.<域名>/api/pricing —— 全部可用模型的对外价格表,无需鉴权(New API 兼容格式,可直接对接 New API 系的客户端与价格页)。
{
"success": true,
"data": [
{
"model_name": "auto-chat",
"description": "",
"quota_type": 0,
"model_ratio": 5.0,
"model_price": 0,
"owner_by": "",
"completion_ratio": 2.0,
"enable_groups": ["default"],
"supported_endpoint_types": ["openai", "openai-response", "anthropic"],
"price_mode": "explicit",
"cache_read_price": 1.0,
"time_pricing": {
"timezone": "Asia/Shanghai",
"billing_time_mode": "completion",
"windows": [{ "id": "night", "days": [0], "start": "00:00", "end": "06:00" }],
"cn_holidays": false,
"off_peak": { "input_price": 2.0, "output_price": 20.0, "cache_read_price": 0.0 }
}
}
],
"group_ratio": { "default": 1.0 },
"usable_group": { "default": "default" },
"pricing_version": "9f2c…"
}字段口径:
- 价格换算:
model_ratio × 2 = 输入价(人民币元 / 1M tokens);输出价 = 输入价 × completion_ratio。价格与控制台同源同币(人民币),不经汇率换算。注意:New API 上游默认约定model_ratio单位为 USD,本端点为人民币——从其它 New API 系站点迁移的客户端如有按 USD 解读 ratio 的逻辑需相应调整 - quota_type:恒为
0(按 tokens 计费) - price_mode:恒为
explicit。没有固定单价的模型不出现在价格表中(其费用以控制台「用量与账单」页为准) - cache_read_price:缓存读取售价(人民币元 / 1M tokens);未配置为
null,显式0表示免费 - time_pricing:未配置分时售价为
null;配置后包含时区、计价时刻、每周窗口、法定节假日开关与闲时三价。off_peak中的数值已展开基础价继承,因此每一项都是当前实际闲时售价或未配置缓存价时的null - pricing_version:价格内容指纹,基础价、缓存读取价、时间段或闲时价变化时都会变化(客户端可据此决定是否刷新缓存)
公开模型目录
官网模型广场通过同站只读接口提供公共目录,无需鉴权:
| 端点 | 用途 |
|---|---|
GET /api/public/model-plaza | 模型列表与分页;支持 lang、q、vendor、modality、capability、context_min、available_only、sort、page、page_size |
GET /api/public/model-plaza/placements?slot=landing_featured | 首页精选位;slot 也支持 plaza_hero |
GET /api/public/model-plaza/{slug} | 单个模型的公开详情与接入地址 |
GET /api/public/model-plaza/vendor-logos/{vendor_key}/{filename} | 厂商 logo 图片;内容寻址,支持长期缓存与 ETag |
列表默认只返回当前可调用的模型;传 available_only=false 可同时包含暂不可用的展示项。排序支持 recommended、newest、price_asc、context_desc,语言支持 zh-CN 与 en-US。
列表项包含 public_vendor(当前语言的厂商名称)、vendor_key 与 vendor_logo_url(未配置 logo 时为空)。vendor 过滤参数同时接受厂商 key 和厂商名称,便于兼容旧分享链接。筛选面板可使用 facets.vendor_options({key, name, logo_url} 数组),facets.vendors 保留当前语言的名称字符串列表。厂商的中英文名称与 logo 由运营在控制台「模型标签 → 模型厂商」页统一维护。
能力标签同样是稳定 key 数组:列表项 capabilities 是标签 key(可直接用于 capability 过滤和分享链接),capability_labels 是当前语言的 {key: 名称} 映射;facets.capability_options({key, name} 数组)供筛选面板展示运营维护的名称,facets.capabilities 保留 key 字符串列表以兼容旧客户端。标签名称与排序由运营在「模型标签 → 能力标签」页维护。capability 参数最大 64 个字符。
公开详情的 content 只包含 display_name、summary、description;核心亮点与应用场景字段已下线,不再输出。
响应中的 revision 是完整公开目录版本,generated_at 是该版本的生成时间;接口带 ETag 与短缓存头,客户端应复用这些字段,不需要轮询推断内容是否变化。价格字段与 /api/pricing 同样使用人民币 /1M tokens,并包含已展开的缓存价和分时价。pricing_status 取值:fixed(有固定公开价)、login(需登录查看)、hidden(运营统一隐藏价格)、unpriced(未配置售价)、not_applicable(当前部署不展示售价)。价格展示是模型广场的全局设置(自动展示固定售价 / 登录后查看 / 隐藏价格),作用于全部公开模型;pricing=null 不代表模型免费。
该目录只包含默认专区中运营方已开启展示的模型及公开字段,不提供供应商、成本、内部上游、组织价格或非默认专区数据。私有化部署不返回售价。此接口只用于模型目录展示,模型推理仍使用上文的 OpenAI / Anthropic 数据面端点。
错误码
| 状态码 | 含义 | 处理建议 |
|---|---|---|
| 400 / 422 | 请求体不合法(参数错误、超上下文等) | 按报错信息修正请求 |
| 401 | Key 缺失/无效/已删除 | 检查鉴权头;到控制台确认 Key 状态 |
| 403 | Key 无权调用该模型(key_model_access_denied) | 确认请求的 model 在该 Key 的「可用模型」范围内;若该模型在控制台不可见,说明组织未被授权此模型范围,请联系平台 |
| 429 | 超出 Key 限额(总额或日/周/月周期) | 周期限额响应带 Retry-After 头(秒),到窗口重置点自动恢复;总额限额用完即止,到控制台调高额度或清空已用量 |
| 5xx | 上游供应商故障(路由层已自动重试/切换) | 稍后重试;持续失败请联系官方支持 |
错误响应体为 JSON,含 error.message / error.type(Anthropic 协议)或 error.message / error.code(OpenAI 协议)字段。
限额的口径特性:
- 按实际花费计量:限额消耗 = 响应落地后的实际计费成本(¥)——单次大调用本身可能超过剩余额度(放行后跑到底),其花费计入后后续调用将被拒绝
- 失败不占额:调用失败(上游故障/参数错误)不产生成本、不计入限额用量
- 周期边界:日/周/月为自然边界(东八区;周一起算),到点自动重置;周期之间独立计数(如「每日 ¥10 + 每月 ¥200」= 每天最多 10 且整月最多 200,任一先到即拒)
- 在途超放:限额在调用前检查、响应后记账——同一时刻在途的调用可能使实际用量略超限额(与业界主流网关预算语义一致)
计费口径
每次调用按实际 tokens 计量:未配置缓存读取价时 = 输入 tokens × 输入价 + 输出 tokens × 输出价(¥/1M);配置缓存读取价且上游返回有效拆分时 = 未缓存输入 × 输入价 + 缓存读取 × 缓存读取价 + 输出 tokens × 输出价。配置分时售价的模型先按本次调用命中价档选取三价。明细见控制台「调用记录」,汇总见「用量与账单」。