/v1/responses 路由:它是什么,哪些 id 走它

这里八个 OpenAI id 中有六个走 POST /v1/responses、用 Bearer 认证,另外两个不是。路由是怎么定的,换模型时又该注意什么。

路由属于模型,不属于厂商

目录里每个模型都记录自己的 apiRoute,而网关对文本请求开放三种形状:/v1/responses、/v1/messages、/v1/chat/completions。走哪一种是模型自己的字段,所以"它是 OpenAI 模型"这句话不足以推出端点。

OpenAI 家族是六比二。gpt-5.6-sol、gpt-5.6-terra、gpt-5.6-luna、gpt-5.5、gpt-5.4、gpt-5.4-mini 都走 /v1/responses;stable-gpt-6-astra 走 /v1/messages;gpt-image-2 走 /v1/images/generations。

认证头跟着请求形状走,不跟厂商走:responses 和 chat-completions 形状用 Authorization: Bearer $TOKEN_SHARE_KEY,/v1/messages 用 x-api-key 外加一个 anthropic-version 头。这就是为什么 stable-gpt-6-astra 的请求头和它的同门不一样。

最小的 responses 请求:一个 model、一个 input,配 Bearer 认证。
export TOKEN_SHARE_KEY="<your-pool-api-key>"

curl -sS https://token-share.app/v1/responses \
  -H "Authorization: Bearer $TOKEN_SHARE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-terra",
    "input": "Hello"
  }'

请求长什么样

responses 形状的调用就是往 https://token-share.app/v1/responses 发一个 POST,JSON body 里有 model 和 input 两个字段,带上 Authorization: Bearer 和 Content-Type: application/json。最小集合就这些。

和另外两种形状对照一下差别在哪。发往 /v1/messages 的 Anthropic 形状请求用 messages 数组而不是 input,max_tokens 必填,认证头从 Bearer 换成 x-api-key 加 anthropic-version。chat-completions 形状用 messages 数组、Bearer 认证,max_tokens 不是必填。

所以在 /v1/responses 的几个 id 之间切换只改一个字段,而跨请求形状切换要同时动端点、认证头和 body。在你写一层"按厂商分派"的抽象之前,这一点值得先知道。

选 id 时的实际影响

一个按 responses wire 格式配好的客户端或 CLI,能覆盖八个 OpenAI id 中的六个,剩下两个够不到。最常见的场景是 Codex CLI:wire_api 设成 "responses",这六个 id 改一个 --model 就能用,而 stable-gpt-6-astra 需要换一个会说 Anthropic 消息格式的客户端。

请求形状一致,不代表这六个可以随意互换。上下文方面,三个 GPT 5.6 是 372,000 token,gpt-5.5、gpt-5.4、gpt-5.4-mini 是 272,000;输出上限分别是 128,000 和 64,000。决定一次替换能不能真的成立的,通常是这些限制,不是路由。

折算后的单价在这六个之间从 gpt-5.6-luna 的每百万 0.06 / 0.36 美元,到 gpt-5.6-sol 和 gpt-5.5 的 0.50 / 3.00 美元。既然请求结构相同,把一部分线上流量分到第二个 id 上,用真实请求去比成本和产出,比对着表格拍板更靠谱。

常见问题

/v1/responses 用哪个认证头?
Authorization: Bearer $TOKEN_SHARE_KEY。x-api-key 是 Anthropic 形状的 /v1/messages 路由用的,那条路还要再带一个 anthropic-version 头——在两种形状之间迁移客户端时记住这一点。
这里所有 OpenAI 模型都走 /v1/responses 吗?
八个里有六个是:gpt-5.6-sol、gpt-5.6-terra、gpt-5.6-luna、gpt-5.5、gpt-5.4、gpt-5.4-mini。stable-gpt-6-astra 记录的是 /v1/messages,gpt-image-2 是 /v1/images/generations。看模型页上的路由字段,别从厂商去推。
能把 chat-completions 的 body 发给 /v1/responses 吗?
这是两种不同的请求结构。responses 调用带的是 model 和 input;chat-completions 调用带的是 model 和 messages 数组,那条路由服务的是 Grok 和 Gemini 的 id。请求体要和目标模型记录的路由对上。