RouteMux Docs

对话与消息

通过同一个网关调用 chat completions、responses 与 Anthropic messages。

RouteMux 说你的 SDK 本来就用的协议。把 base URL 指向对应家族、传一个 RouteMux 模型 slug, 你现有的客户端无需改动即可工作。

家族Base URL端点
兼容 OpenAIhttps://api.routemux.com/v1chat/completionsresponses
兼容 Anthropichttps://api.routemux.com/anthropicv1/messages
Google GenAI / Vertexhttps://api.routemux.com/vertex-aimodels/{model}:generateContent

请求和响应体会原样透传给上游供应商。RouteMux 只读取 modelstream 和少量用量元数据 —— 不改写你的 payload,所以工具调用、system 提示和消息结构的行为完全与供应商文档一致。

Chat completions(OpenAI)

curl https://api.routemux.com/v1/chat/completions \
  -H "Authorization: Bearer $ROUTEMUX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-5.5",
    "messages": [{ "role": "user", "content": "用一句话解释预付费计费。" }]
  }'
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.ROUTEMUX_API_KEY,
  baseURL: "https://api.routemux.com/v1",
});

const completion = await client.chat.completions.create({
  model: "openai/gpt-5.5",
  messages: [{ role: "user", content: "用 RouteMux 打个招呼" }],
});

流式

stream: true,像往常一样读取 SSE。RouteMux 直接把 chunk 转发,不缓冲整个响应, 并在上游结束后按真实用量结算。

curl https://api.routemux.com/v1/chat/completions \
  -H "Authorization: Bearer $ROUTEMUX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-5.5",
    "stream": true,
    "messages": [{ "role": "user", "content": "流式写一首俳句" }]
  }'

断开会中止上游

如果你的客户端在流中途断开,RouteMux 会中止上游请求。你只为供应商实际报告的用量付费; 否则该记录会被对账或标记为失败。

Anthropic messages

推荐的 Anthropic 入口是 /anthropic/v1/messages。用 x-api-key 头,就和原生 Anthropic SDK 一样。

curl https://api.routemux.com/anthropic/v1/messages \
  -H "x-api-key: $ROUTEMUX_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-opus-4.8",
    "max_tokens": 256,
    "messages": [{ "role": "user", "content": "用 RouteMux 打个招呼" }]
  }'

Responses 与 Vertex

  • Responses:POST /v1/responses(或短路径别名 POST /responses),适用于基于 OpenAI Responses 协议构建的客户端。
  • **Vertex / Gemini:**指向 https://api.routemux.com/vertex-ai,以 path 里的模型调用 :generateContent / :streamGenerateContent

要查看某个模型支持哪些协议,筛选目录即可 —— /v1/models?protocol=anthropic_messages。 完整筛选项见 模型与发现

图片与视频输入

图片和视频在 RouteMux 上走的接口不一样,这一点比"模型支不支持"更常绊住人:

输入/v1/chat/completions(OpenAI 兼容)/vertex-ai/v1beta/...:generateContent(原生 Gemini)
图片支持支持
视频不支持支持

原因不在模型:Gemini 全系都能读视频。是 OpenAI 的请求结构里没有视频部件 —— content[] 只定义了 text / image_url / input_audio 这些类型,没有装视频的地方。

⚠️ 这里有一个必须知道的失败形态:如果绕过网关直接把视频塞进 OpenAI 形状的请求, 上游不会报错,它会把视频丢掉、只读你的文字,然后照样返回 200 和一个看起来合理的答案。 RouteMux 会在扣费和连上游之前拦下这种请求,返回 400 REQUEST_VIDEO_INPUT_ENDPOINT_UNSUPPORTED,并告诉你改用哪条接口。

发视频用原生接口,视频放进 inline_data:

curl -X POST "https://api.routemux.com/vertex-ai/v1beta/models/google/gemini-3.5-flash:generateContent" \
  -H "Authorization: Bearer $ROUTEMUX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [
        {"inline_data": {"mime_type": "video/mp4", "data": "<base64>"}},
        {"text": "这段视频里依次出现了哪些颜色?"}
      ]
    }]
  }'

计量按 Google 口径:默认分辨率约 300 token/秒视频(画面 258/帧 + 音轨 32/秒)。 视频 token 与文本同价,不另外计费。

哪些模型能读视频,看目录页的「视频输入」能力标签,或用 /v1/models 的能力筛选。

On this page