Compatibility matrix

103 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)

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 (11)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
claude-fable-5🔄 T1x2
claude-haiku-4-5-20251001🔄 T1🔄 upstreamx1 x2
claude-opus-4-5-thinking🔄 T1x2
claude-opus-4-6🔄 T1🔄 upstreamx1 x2
claude-opus-4-6-thinkingx1 x2
claude-opus-4-7🔄 T1🔄 upstreamx1 x2
claude-opus-4-8🔄 T1🔄 upstreamx1 x2
claude-opus-5🔄 T1x2
claude-sonnet-4-5-20250929🔄 T1x2
claude-sonnet-4-6🔄 T1🔄 upstreamx1 x2
claude-sonnet-5🔄 T1🔄 upstreamx1 x2

OpenAI (7)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
gpt-5.5🔄 upstream🔄 upstreamx1 x2
gpt-5.6-luna🔄 upstream🔄 upstreamx1
gpt-5.6-sol🔄 upstream🔄 upstreamx1
gpt-5.6-terra🔄 upstream🔄 upstreamx1
gpt-6🔄 upstream🔄 upstreamx1
gpt-6-astra🔄 upstream🔄 upstreamx1
gpt-oss-120b-mediumx1

Google (9)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
gemini-3-flashx1 x2
gemini-3-flash-agentx1
gemini-3-prox2
gemini-3.1-flash-litex1
gemini-3.1-pro-lowx1 x2
gemini-3.5-flash-lowx1 x2
gemini-3.6-flashx1 x2
gemini-3.7-flashx1
gemini-pro-agentx1

xAI (10)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
grok-3-mini🔄 upstreamx1
grok-3-mini-fast🔄 upstreamx1
grok-4.20-0309-non-reasoning🔄 upstreamx1
grok-4.20-0309-reasoning🔄 upstreamx1
grok-4.20-multi-agent-0309🔄 upstreamx1
grok-4.3🔄 upstreamx1
grok-4.5🔄 upstreamx1
grok-4.6🔄 upstreamx1
grok-build-0.1🔄 upstreamx1
grok-composer-2.5-fast🔄 upstreamx1

Zhipu GLM (8)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
glm-4.7🔄 upstream🔄 upstreamx2
glm-5🔄 upstream🔄 upstreamx2 x3
glm-5-turbo🔄 upstream🔄 upstreamx2
glm-5.1🔄 upstream🔄 upstreamx2 x3
glm-5.2🔄 upstream🔄 upstreamx2
glm-5.3x2
glm-5.3-flashx2
glm-5v-turbox2

DeepSeek (6)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
deepseek-v3-0324x3
deepseek-v3.1x2
deepseek-v3.1-terminusx3
deepseek-v3.2x3
deepseek-v4-flashx2 x3
deepseek-v4-prox2 x3

ByteDance Doubao (14)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
doubao-1-5-lite-32k-250115x2
doubao-1-5-pro-32k-250115x2
doubao-seed-1-6-250615x2
doubao-seed-1-6-flash-250828x2
doubao-seed-1-6-visionx2
doubao-seed-1-8-251228x2
doubao-seed-2-0-code-preview-260215x2
doubao-seed-2-0-lite-260215x2
doubao-seed-2-0-lite-260428x2
doubao-seed-2-0-mini-260215x2
doubao-seed-2-0-mini-260428x2
doubao-seed-2-0-pro-260215x2
doubao-seed-2-1-pro-260628x2
doubao-seed-2-1-turbo-260628x2

Tencent Hunyuan (4)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
hunyuan-2.0-instruct-20251111x3
hunyuan-2.0-thinking-20251109x3
hunyuan-role-latestx3
hy3x2

Moonshot Kimi (4)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
kimi-k2.5x2 x3
kimi-k2.6x2 x3
kimi-k2.7-codex2
kimi-k3x2

MiniMax (3)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
MiniMax-M2.5x3
MiniMax-M2.7x3
MiniMax-M3x2

Alibaba Qwen (25)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
qwen-flashx2
qwen-longx2
qwen-mt-turbox2
qwen-plusx2
qwen3-coder-plusx2
qwen3-maxx2
qwen3-max-previewx2
qwen3-omni-flashx2
qwen3-vl-flashx2
qwen3-vl-plusx2
qwen3.5-122b-a10bx2
qwen3.5-27bx2
qwen3.5-35b-a3bx2
qwen3.5-397b-a17bx2
qwen3.5-flashx2
qwen3.5-plusx2
qwen3.6-27bx2
qwen3.6-35b-a3bx2
qwen3.6-flashx2
qwen3.6-max-previewx2
qwen3.6-plusx2
qwen3.7-flashx2
qwen3.7-maxx2
qwen3.7-plusx2
qwen3.8-27bx2
qwen3.8-maxx2

Xiaomi MiMo (1)#

ModelOpenAI ChatAnthropic MessagesOpenAI ResponsesGemini NativeSource
mimo-v2.5-prox2

Image / video / music / voice SKUs use their own endpoint families and are outside this 4-protocol matrix — see Image / video APIs and Full model list.

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://zhonkezhonkeapi.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: