Compatibility matrix

56 chat models × 4 client protocols (OpenAI Chat / Anthropic Messages / OpenAI Responses / Gemini Native), marked per model as native / gateway-translated / upstream-converted / unsupported, generated from the live channel table

The platform exposes four client protocol endpoints, all reachable with the same sk-gpushare-* API key:

ProtocolEndpointTypical clients
OpenAI ChatPOST /v1/chat/completionsthe OpenAI SDK and most third-party clients
Anthropic MessagesPOST /v1/messagesthe Anthropic SDK, Claude Code
OpenAI ResponsesPOST /v1/responsesthe OpenAI Responses SDK, Codex CLI
Gemini NativePOST /v1beta/models/{model}:generateContent / :streamGenerateContentGoogle's genai SDK

Not every model supports all four. The matrix is determined by channel wiring — which kind of upstream channel serves a model, and which protocols that channel declares — not by reasoning from "vendor × protocol". The table below is generated per model from the live channel table; see the legend for what each cell means.

Legend#

SymbolMeaning
✅Native pass-through — the client protocol matches the upstream channel's, and the gateway forwards bytes verbatim
🔄 T1 / 🔄 T2Gateway-side translation — the gateway converts; the response carries an X-Protocol-Translation header (see below)
🔄 upstreamUpstream-side conversion — the gateway forwards bytes verbatim and the relay converts internally, so there is no X-Protocol-Translation header
—No channel — returns 503 no_channel_available (note: 503, not 404)

A /v1/responses request with the image_generation / shell / code_interpreter tools works on the models marked for drawing or the cloud sandbox in the model list even where the OpenAI Responses cell below is —: the platform takes such a request over and runs every round on the model's own protocol.

The two kinds of 🔄 can be told apart from the response headers:

  • Gateway-side translation (T1 / T2 below): the gateway converts the request body into the upstream protocol and converts the response back, and the response carries an X-Protocol-Translation header.
  • Upstream-side conversion (marked 🔄 upstream in the table): the gateway forwards bytes verbatim and the conversion happens inside the upstream service, so there is no X-Protocol-Translation header. The protocol shape is complete for the client, but features unique to the other protocol (Anthropic's cache_control, thinking blocks) aren't guaranteed to survive semantically.

Gateway-side translation paths#

PathDirection (client → upstream)X-Protocol-Translation valueCurrently exercised?
T1OpenAI Chat → Anthropic upstreamopenai_chat_to_anthropic_messages✅ in production (/v1/chat/completions traffic on the Claude and trial pools)
T2OpenAI Chat → Gemini upstreamopenai_chat_to_gemini_native✅ in production (/v1/chat/completions traffic on the Gemini pool)
T3Anthropic Messages → OpenAI upstreamanthropic_messages_to_openai_chatimplemented, no channel combination currently triggers it
T4Gemini Native → OpenAI upstreamgemini_native_to_openai_chatimplemented, no channel combination currently triggers it
T6Gemini Native → Anthropic upstreamanthropic_messages_to_gemini_nativeimplemented, no channel combination currently triggers it

T3, T4 and T6 are reserved for future wiring: today all cross-protocol Anthropic Messages and Gemini Native traffic is absorbed by upstream-side conversion, so routing never reaches those three gateway translators.

Matrix (per model)#

The Source column uses opaque codes: x1 = in-house account pool, x2 = third-party relay, x3 = Tencent. Several codes on one model means it has several channels for failover (the column is the union over all of them).

Anthropic (14)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
claude-fable-5🔄 T1✅——x2
claude-fable-5-1🔄 T1✅——x2
claude-haiku-4-5-20251001🔄 T1✅🔄 upstream—x1 x2
claude-haiku-5-5🔄 T1✅——x2
claude-opus-4-5-20251101🔄 T1✅——x2
claude-opus-4-6🔄 T1✅🔄 upstream—x1 x2
claude-opus-4-7🔄 T1✅🔄 upstream—x1 x2
claude-opus-4-8🔄 T1✅🔄 upstream—x1 x2
claude-opus-5🔄 T1✅——x2
claude-opus-5-5🔄 T1✅——x2
claude-sonnet-4-5-20250929🔄 T1✅——x2
claude-sonnet-4-6🔄 T1✅🔄 upstream—x1 x2
claude-sonnet-5🔄 T1✅🔄 upstream—x1 x2
claude-sonnet-5-5🔄 T1✅——x2

OpenAI (17)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
codex-auto-review✅🔄 upstream🔄 upstream—x1
gpt-5.6-luna✅🔄 upstream🔄 upstream—x1
gpt-5.6-sol✅🔄 upstream🔄 upstream—x1
gpt-5.6-terra✅🔄 upstream🔄 upstream—x1
gpt-6✅🔄 upstream🔄 upstream—x1
gpt-6-astra✅🔄 upstream🔄 upstream—x1
gpt-6-luna✅🔄 upstream🔄 upstream—x1
gpt-6-sol✅🔄 upstream🔄 upstream—x1
gpt-6.1-sol✅🔄 upstream🔄 upstream—x1
gpt-6.1-terra✅🔄 upstream🔄 upstream—x1
gpt-5.6-luna-bd✅—✅—x2
gpt-5.6-sol-bd✅—✅—x2
gpt-5.6-terra-bd✅—✅—x2
gpt-6-astra-bd✅—✅—x2
gpt-6-luna-bd✅—✅—x2
gpt-6-sol-bd✅—✅—x2
gpt-6.1-sol-bd✅—✅—x2

xiaozhanAI (1)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
xiaozhanAI✅—✅—x2

Google (6)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
gemini-3.1-pro-low✅✅—✅x1 x2
gemini-3.8-flash✅——✅x2
gemini-4-argon✅——✅x2
gemini-3.1-pro-preview-1020🔄 T2——✅x2
gemini-3.8-flash-nx🔄 T2——✅x2
gemini-4-argon-nx🔄 T2——✅x2

xAI (3)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
grok-4.5✅—🔄 upstream—x1 x2
grok-4.6✅—🔄 upstream—x1 x2
grok-4.7✅—🔄 upstream—x1 x2

Zhipu GLM (4)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
glm-5.3✅———x2
glm-5.3-1022✅✅✅—x2
glm-5.3-flash✅———x2
glm-5.3-flash-1022✅✅✅—x2

DeepSeek (3)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
deepseek-v4-flash✅———x2 x3
deepseek-v4-pro✅———x2 x3
deepseek-v4.1-flash✅———x2

Moonshot Kimi (5)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
kimi-k2.5✅———x2 x3
kimi-k2.6✅———x2 x3
kimi-k2.7-code✅———x2
kimi-k3✅✅✅—x2
kimi-k3-1013✅✅✅—x2

MiniMax (1)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
MiniMax-M2.7✅———x3

Alibaba Qwen (4)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
qwen3.8-max-cjx✅—✅—x2
qwen3.8-omni-flash✅———x2

Side effects of a translated path#

On a gateway-side translation (T1 / T2) the response carries diagnostic headers:

X-Protocol-Translation: openai_chat_to_anthropic_messages
X-Protocol-Warning: response_format=json_object dropped (Anthropic has no equivalent); n=2 dropped (Anthropic returns one completion)
  • The X-Protocol-Translation value is {client protocol}_to_{upstream protocol} (see the table above).
  • X-Protocol-Warning is generated from the fields actually dropped on this request, joined with ; . The header is absent when nothing was dropped. Common drops:
    • OpenAI Chat → Anthropic (T1): response_format, n, tools.image_generation and other fields Anthropic has no concept of
    • Anthropic → OpenAI (T3, reserved): cache_control markers
    • Gemini → Anthropic (T6, reserved): safetySettings / cachedContent / codeExecution

If your request depends heavily on those fields, pick a protocol endpoint that carries them natively (the ✅ columns). Upstream-side conversion (the "upstream conversion" cells) carries neither header — the gateway only sees a byte stream, and what gets dropped is up to the upstream.

Checking a combination yourself#

# send a request with your key and look at the HTTP status and response headers
curl -i https://api.dflop.top/v1/chat/completions \
  -H "Authorization: Bearer sk-gpushare-xxx" \
  -H "Content-Type: application/json" \
  -d '{"model":"<model-id>","messages":[{"role":"user","content":"hi"}]}'
  • 200 — the combination works. An X-Protocol-Translation header means a gateway-side translation path; its absence means native pass-through or upstream-side conversion.
  • 400 model_not_found — the model id isn't in the registry at all (typo, or retired). Identical on every protocol, with a message like model `xxx` is not available.
  • 503 no_channel_available — the model exists but has no channel on the protocol you used. Try an endpoint marked ✅ or 🔄 in the matrix (/v1/messages, /v1/responses or /v1beta/models/{id}:generateContent).

If a — cell returns 200 in practice, trust the response — channel wiring changes ahead of the docs. Note that the three protocols return differently shaped error bodies (each follows its own official schema) — see Error codes.

How current is this?#

The tables on this page are generated from the live channel table (last generated 2026-08-18); they need regenerating whenever channel wiring changes. For the latest model list: