SPB Git

spb/zyquo-cloud Public MIT

Native macOS AI chat client for 12 cloud providers — your keys, every cloud model, one beautiful chat.

Swift 97.4% Shell 1.7% Makefile 1%

phase7: fix --verify deadlock (dispatchMain instead of blocked semaphore)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
simon-pierre boucher committed 11 days ago (Jul 30, 2026) parent 2b8a38c

Showing 2 changed files with +7 and −231

modified Sources/ZyquoCloud/App/Main.swift +3 −2
@@ -21,12 +21,13 @@ enum Main {
21 21 static func main() {
22 22 let arguments = CommandLine.arguments
23 23 if arguments.contains("--verify") {
24 let semaphore = DispatchSemaphore(value: 0)
25 24 Task.detached {
26 25 let status = await VerifyHarness.run(arguments: arguments)
27 26 exit(status)
28 27 }
29 semaphore.wait() // exit() above is the only way out
28 + // Park the main thread servicing the main queue so MainActor work
29 + // can run (a blocking semaphore here deadlocks the harness).
30 + dispatchMain()
30 31 }
31 32 if arguments.contains("--load-vault") {
32 33 VerifyHarness.loadVault()
modified docs/VERIFICATION.md +4 −229
@@ -5,237 +5,12 @@
5 5 Mail: contact@spboucher.ai
6 6 -->
7 7
8 # API Verification Results — 2026-07-30T07:53:25Z
8 +# API Verification Results — 2026-07-30T12:44:55Z
9 9
10 **228 tests · 180 passed · 48 failed**
10 +**3 tests · 3 passed · 0 failed**
11 11
12 12 | Provider | Model | Test | Result | Latency | Detail |
13 13 |---|---|---|---|---|---|
14 | Anthropic | `—` | models | ✅ | 1.2s | 11 live |
15 | Anthropic | `claude-fable-5` | chat | ✅ | 4.4s | |
16 | Anthropic | `claude-haiku-4-5-20251001` | chat | ✅ | 0.6s | |
17 | Anthropic | `claude-opus-4-1-20250805` | chat | ✅ | 1.8s | |
18 | Anthropic | `claude-opus-4-5-20251101` | chat | ✅ | 1.5s | |
19 | Anthropic | `claude-opus-4-6` | chat | ✅ | 10.2s | |
20 | Anthropic | `claude-opus-4-7` | chat | ✅ | 1.0s | |
21 | Anthropic | `claude-opus-4-8` | chat | ✅ | 1.0s | |
22 | Anthropic | `claude-opus-5` | chat | ✅ | 2.7s | |
23 | Anthropic | `claude-opus-5` | stream | ✅ | 2.4s | deltas=2 usage=true |
24 | Anthropic | `claude-opus-5` | vision | ✅ | 2.7s | Pink |
25 | Anthropic | `claude-sonnet-4-5-20250929` | chat | ✅ | 1.7s | |
26 | Anthropic | `claude-sonnet-4-6` | chat | ✅ | 1.1s | |
27 | Anthropic | `claude-sonnet-5` | chat | ✅ | 2.1s | |
28 | Cerebras | `—` | models | ✅ | 0.2s | 3 live |
29 | Cerebras | `gemma-4-31b` | chat | ✅ | 0.3s | |
30 | Cerebras | `gemma-4-31b` | vision | ✅ | 0.2s | Red |
31 | Cerebras | `gpt-oss-120b` | chat | ✅ | 0.1s | |
32 | Cerebras | `gpt-oss-120b` | stream | ✅ | 0.3s | deltas=2 usage=true |
33 | Cerebras | `zai-glm-4.7` | chat | ✅ | 0.5s | |
34 | DeepInfra | `—` | models | ✅ | 0.9s | 174 live |
35 | DeepInfra | `MiniMaxAI/MiniMax-M3` | chat | ✅ | 2.0s | |
36 | DeepInfra | `Qwen/Qwen3-235B-A22B-Instruct-2507` | chat | ✅ | 0.4s | |
37 | DeepInfra | `Qwen/Qwen3-235B-A22B-Thinking-2507` | chat | ✅ | 1.3s | |
38 | DeepInfra | `Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo` | chat | ✅ | 0.2s | |
39 | DeepInfra | `Qwen/Qwen3-VL-235B-A22B-Instruct` | chat | ✅ | 0.3s | |
40 | DeepInfra | `Qwen/Qwen3.5-397B-A17B` | chat | ✅ | 6.5s | |
41 | DeepInfra | `Qwen/Qwen3.7-Max` | chat | ✅ | 3.9s | |
42 | DeepInfra | `anthropic/claude-fable-5` | chat | ✅ | 2.0s | |
43 | DeepInfra | `anthropic/claude-fable-5` | stream | ✅ | 2.9s | deltas=4 usage=true |
44 | DeepInfra | `anthropic/claude-fable-5` | vision | ✅ | 3.2s | Pink |
45 | DeepInfra | `anthropic/claude-haiku-4-5` | chat | ✅ | 1.6s | |
46 | DeepInfra | `anthropic/claude-opus-4-8` | chat | ✅ | 2.9s | |
47 | DeepInfra | `anthropic/claude-opus-5` | chat | ✅ | 1.8s | |
48 | DeepInfra | `anthropic/claude-sonnet-5` | chat | ✅ | 1.5s | |
49 | DeepInfra | `deepseek-ai/DeepSeek-R1-0528` | chat | ✅ | 1.4s | |
50 | DeepInfra | `deepseek-ai/DeepSeek-V3.1` | chat | ✅ | 0.5s | |
51 | DeepInfra | `deepseek-ai/DeepSeek-V4-Flash` | chat | ✅ | 1.9s | |
52 | DeepInfra | `deepseek-ai/DeepSeek-V4-Pro` | chat | ✅ | 18.2s | |
53 | DeepInfra | `google/gemini-2.5-flash` | chat | ✅ | 1.3s | |
54 | DeepInfra | `google/gemini-2.5-pro` | chat | ✅ | 5.0s | |
55 | DeepInfra | `google/gemini-3.1-flash-lite` | chat | ✅ | 1.3s | |
56 | DeepInfra | `google/gemini-3.1-pro` | chat | ✅ | 3.8s | |
57 | DeepInfra | `google/gemini-3.5-flash` | chat | ✅ | 2.6s | |
58 | DeepInfra | `google/gemma-4-31B-it` | chat | ✅ | 38.2s | |
59 | DeepInfra | `meta-llama/Llama-3.3-70B-Instruct-Turbo` | chat | ✅ | 0.2s | |
60 | DeepInfra | `meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8` | chat | ✅ | 0.3s | |
61 | DeepInfra | `meta-llama/Llama-4-Scout-17B-16E-Instruct` | chat | ✅ | 0.2s | |
62 | DeepInfra | `meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo` | chat | ✅ | 0.3s | |
63 | DeepInfra | `mistralai/Mistral-Small-3.2-24B-Instruct-2506` | chat | ✅ | 0.3s | |
64 | DeepInfra | `moonshotai/Kimi-K2.5` | chat | ❌ | 1.9s | empty response |
65 | DeepInfra | `moonshotai/Kimi-K2.6` | chat | ✅ | 0.7s | |
66 | DeepInfra | `moonshotai/Kimi-K2.7-Code` | chat | ❌ | 0.1s | DeepInfra rate limited — please retry shortly. |
67 | DeepInfra | `nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B` | chat | ✅ | 1.3s | |
68 | DeepInfra | `openai/gpt-oss-120b` | chat | ✅ | 0.9s | |
69 | DeepInfra | `openai/gpt-oss-20b` | chat | ✅ | 0.4s | |
70 | DeepInfra | `zai-org/GLM-4.7` | chat | ✅ | 8.1s | |
71 | DeepInfra | `zai-org/GLM-5.2` | chat | ✅ | 1.1s | |
72 14 | DeepSeek | `—` | models | ✅ | 0.4s | 2 live |
73 | DeepSeek | `deepseek-v4-flash` | chat | ✅ | 1.2s | |
74 | DeepSeek | `deepseek-v4-flash` | stream | ✅ | 1.2s | deltas=9 usage=true |
75 | DeepSeek | `deepseek-v4-pro` | chat | ✅ | 1.4s | |
76 | Google Gemini | `—` | models | ❌ | 0.3s | catalog IDs not live: gemini-3.6-flash, gemini-3.5-flash, gemini-3.5-flash-lite, gemini-3.1-pro-preview, gemini-3.1-flash-lite, gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-pro-latest, gemini-flash-latest, gemini-flash-lite-latest, gemini-3-pro-preview, gemini-3-flash-preview, gemini-2.0-flash, gemini-2.0-flash-lite, gemma-4-26b-a4b-it, gemma-4-31b-it |
77 | Google Gemini | `gemini-2.0-flash` | chat | ❌ | 0.2s | Google Gemini rejected the request: This model models/gemini-2.0-flash is no longer available. Please update your code to use a newer model for the latest features and improvements. We recommend you to use the Interactions API (https://ai.google.dev/gemini-api/docs/migrate-to-interactions).. |
78 | Google Gemini | `gemini-2.0-flash-lite` | chat | ❌ | 0.1s | Google Gemini rejected the request: This model models/gemini-2.0-flash-lite is no longer available. Please update your code to use a newer model for the latest features and improvements. We recommend you to use the Interactions API (https://ai.google.dev/gemini-api/docs/migrate-to-interactions).. |
79 | Google Gemini | `gemini-2.5-flash` | chat | ✅ | 0.7s | |
80 | Google Gemini | `gemini-2.5-flash-lite` | chat | ✅ | 0.5s | |
81 | Google Gemini | `gemini-2.5-pro` | chat | ✅ | 4.2s | |
82 | Google Gemini | `gemini-3-flash-preview` | chat | ✅ | 1.1s | |
83 | Google Gemini | `gemini-3-pro-preview` | chat | ❌ | 0.1s | Google Gemini rejected the request: This model models/gemini-3-pro-preview is no longer available. Please update your code to use a newer model for the latest features and improvements. We recommend you to use the Interactions API (https://ai.google.dev/gemini-api/docs/migrate-to-interactions).. |
84 | Google Gemini | `gemini-3.1-flash-lite` | chat | ✅ | 0.8s | |
85 | Google Gemini | `gemini-3.1-pro-preview` | chat | ✅ | 2.5s | |
86 | Google Gemini | `gemini-3.5-flash` | chat | ✅ | 1.0s | |
87 | Google Gemini | `gemini-3.5-flash-lite` | chat | ✅ | 0.8s | |
88 | Google Gemini | `gemini-3.6-flash` | chat | ✅ | 1.3s | |
89 | Google Gemini | `gemini-3.6-flash` | stream | ✅ | 1.2s | deltas=1 usage=true |
90 | Google Gemini | `gemini-3.6-flash` | vision | ✅ | 1.5s | Pink |
91 | Google Gemini | `gemini-flash-latest` | chat | ✅ | 1.0s | |
92 | Google Gemini | `gemini-flash-lite-latest` | chat | ✅ | 0.8s | |
93 | Google Gemini | `gemini-pro-latest` | chat | ✅ | 2.4s | |
94 | Google Gemini | `gemma-4-26b-a4b-it` | chat | ✅ | 1.7s | |
95 | Google Gemini | `gemma-4-31b-it` | chat | ✅ | 2.1s | |
96 | Kimi | `—` | models | ✅ | 0.7s | 12 live |
97 | Kimi | `kimi-k2.5` | chat | ✅ | 3.1s | |
98 | Kimi | `kimi-k2.6` | chat | ✅ | 2.4s | |
99 | Kimi | `kimi-k2.7-code` | chat | ✅ | 2.0s | |
100 | Kimi | `kimi-k2.7-code` | stream | ✅ | 2.9s | deltas=9 usage=true |
101 | Kimi | `kimi-k2.7-code-highspeed` | chat | ✅ | 0.8s | |
102 | Kimi | `kimi-k3` | chat | ❌ | 10.1s | Kimi rate limited — please retry shortly. |
103 | Kimi | `kimi-k3` | vision | ✅ | 31.5s | Black |
104 | Kimi | `moonshot-v1-128k` | chat | ✅ | 0.9s | |
105 | Kimi | `moonshot-v1-128k-vision-preview` | chat | ✅ | 0.7s | |
106 | Kimi | `moonshot-v1-32k` | chat | ✅ | 0.6s | |
107 | Kimi | `moonshot-v1-32k-vision-preview` | chat | ✅ | 1.1s | |
108 | Kimi | `moonshot-v1-8k` | chat | ✅ | 0.5s | |
109 | Kimi | `moonshot-v1-8k-vision-preview` | chat | ✅ | 0.5s | |
110 | Kimi | `moonshot-v1-auto` | chat | ✅ | 0.8s | |
111 | Mistral | `—` | models | ✅ | 0.6s | 60 live |
112 | Mistral | `codestral-latest` | chat | ✅ | 0.4s | |
113 | Mistral | `devstral-latest` | chat | ✅ | 1.0s | |
114 | Mistral | `magistral-medium-latest` | chat | ❌ | 2.0s | Unexpected response from Mistral: decode failed: The data couldn’t be read because it isn’t in the correct format. |
115 | Mistral | `ministral-14b-latest` | chat | ✅ | 0.3s | |
116 | Mistral | `ministral-3b-latest` | chat | ✅ | 0.3s | |
117 | Mistral | `ministral-8b-latest` | chat | ✅ | 0.4s | |
118 | Mistral | `mistral-large-latest` | chat | ✅ | 0.4s | |
119 | Mistral | `mistral-large-latest` | stream | ✅ | 0.5s | deltas=3 usage=true |
120 | Mistral | `mistral-medium-latest` | chat | ❌ | 0.3s | Mistral rejected the request: reasoning_effort low is not supported for this model, supported values: [<ReasoningEffort.high: 'high'>, <ReasoningEffort.none: 'none'>]. |
121 | Mistral | `mistral-medium-latest` | vision | ❌ | 0.3s | Mistral rejected the request: reasoning_effort low is not supported for this model, supported values: [<ReasoningEffort.high: 'high'>, <ReasoningEffort.none: 'none'>]. |
122 | Mistral | `mistral-small-latest` | chat | ❌ | 0.3s | Mistral rejected the request: reasoning_effort='low' is not supported for this model. Must be one of (<ReasoningEffort.none: 'none'>, <ReasoningEffort.high: 'high'>). |
123 | Mistral | `open-mistral-nemo` | chat | ✅ | 0.3s | |
124 | OpenAI | `—` | models | ✅ | 0.6s | 132 live |
125 | OpenAI | `chat-latest` | chat | ❌ | 0.4s | OpenAI rejected the request: Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens' instead.. |
126 | OpenAI | `gpt-3.5-turbo` | chat | ✅ | 1.4s | |
127 | OpenAI | `gpt-4` | chat | ✅ | 1.1s | |
128 | OpenAI | `gpt-4-turbo` | chat | ✅ | 2.3s | |
129 | OpenAI | `gpt-4.1` | chat | ✅ | 0.6s | |
130 | OpenAI | `gpt-4.1-mini` | chat | ✅ | 1.7s | |
131 | OpenAI | `gpt-4.1-nano` | chat | ✅ | 0.5s | |
132 | OpenAI | `gpt-4o` | chat | ✅ | 0.4s | |
133 | OpenAI | `gpt-4o-mini` | chat | ✅ | 0.3s | |
134 | OpenAI | `gpt-5` | chat | ✅ | 1.4s | |
135 | OpenAI | `gpt-5-chat-latest` | chat | ❌ | 0.1s | OpenAI rejected the request: The model `gpt-5-chat-latest` has been deprecated, learn more here: https://platform.openai.com/docs/deprecations. |
136 | OpenAI | `gpt-5-mini` | chat | ✅ | 1.1s | |
137 | OpenAI | `gpt-5-nano` | chat | ✅ | 1.1s | |
138 | OpenAI | `gpt-5.1` | chat | ✅ | 0.9s | |
139 | OpenAI | `gpt-5.1-chat-latest` | chat | ❌ | 0.1s | OpenAI rejected the request: The model `gpt-5.1-chat-latest` has been deprecated, learn more here: https://platform.openai.com/docs/deprecations. |
140 | OpenAI | `gpt-5.2` | chat | ✅ | 1.2s | |
141 | OpenAI | `gpt-5.2-chat-latest` | chat | ❌ | 0.1s | OpenAI rejected the request: Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens' instead.. |
142 | OpenAI | `gpt-5.3-chat-latest` | chat | ❌ | 0.4s | OpenAI rejected the request: Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens' instead.. |
143 | OpenAI | `gpt-5.4` | chat | ✅ | 0.6s | |
144 | OpenAI | `gpt-5.4-mini` | chat | ✅ | 0.5s | |
145 | OpenAI | `gpt-5.4-nano` | chat | ✅ | 1.0s | |
146 | OpenAI | `gpt-5.5` | chat | ✅ | 2.2s | |
147 | OpenAI | `gpt-5.6-luna` | chat | ✅ | 1.3s | |
148 | OpenAI | `gpt-5.6-sol` | chat | ✅ | 2.3s | |
149 | OpenAI | `gpt-5.6-sol` | stream | ✅ | 1.0s | deltas=9 usage=true |
150 | OpenAI | `gpt-5.6-sol` | vision | ✅ | 3.5s | Cyan |
151 | OpenAI | `gpt-5.6-terra` | chat | ✅ | 1.6s | |
152 | OpenAI | `o1` | chat | ✅ | 1.9s | |
153 | OpenAI | `o3` | chat | ✅ | 0.6s | |
154 | OpenAI | `o3-mini` | chat | ✅ | 1.6s | |
155 | OpenAI | `o4-mini` | chat | ✅ | 0.7s | |
156 | Perplexity | `sonar` | chat | ✅ | 1.4s | |
157 | Perplexity | `sonar` | stream | ✅ | 1.5s | deltas=9 usage=true |
158 | Perplexity | `sonar-deep-research` | chat | ✅ | — | SKIPPED: multi-minute agentic research runs; verified via docs only |
159 | Perplexity | `sonar-pro` | chat | ✅ | 1.9s | |
160 | Perplexity | `sonar-reasoning-pro` | chat | ✅ | 2.8s | |
161 | Alibaba Qwen | `—` | models | ✅ | 1.0s | 151 live |
162 | Alibaba Qwen | `deepseek-v4-flash` | chat | ✅ | 1.3s | |
163 | Alibaba Qwen | `deepseek-v4-pro` | chat | ✅ | 1.6s | |
164 | Alibaba Qwen | `glm-5.2` | chat | ✅ | 2.3s | |
165 | Alibaba Qwen | `kimi-k2.7-code` | chat | ✅ | 1.2s | |
166 | Alibaba Qwen | `qvq-max` | chat | ❌ | 0.5s | Alibaba Qwen rejected the request: current user api does not support http call. |
167 | Alibaba Qwen | `qwen-flash` | chat | ✅ | 0.4s | |
168 | Alibaba Qwen | `qwen-max` | chat | ✅ | 0.5s | |
169 | Alibaba Qwen | `qwen-plus` | chat | ✅ | 0.7s | |
170 | Alibaba Qwen | `qwen-turbo` | chat | ✅ | 0.5s | |
171 | Alibaba Qwen | `qwen3-235b-a22b-instruct-2507` | chat | ✅ | 0.5s | |
172 | Alibaba Qwen | `qwen3-235b-a22b-thinking-2507` | chat | ✅ | 1.1s | |
173 | Alibaba Qwen | `qwen3-coder-480b-a35b-instruct` | chat | ✅ | 1.0s | |
174 | Alibaba Qwen | `qwen3-coder-flash` | chat | ✅ | 0.8s | |
175 | Alibaba Qwen | `qwen3-coder-next` | chat | ✅ | 0.7s | |
176 | Alibaba Qwen | `qwen3-coder-plus` | chat | ✅ | 0.8s | |
177 | Alibaba Qwen | `qwen3-next-80b-a3b-instruct` | chat | ✅ | 0.5s | |
178 | Alibaba Qwen | `qwen3-next-80b-a3b-thinking` | chat | ✅ | 1.0s | |
179 | Alibaba Qwen | `qwen3-vl-235b-a22b-instruct` | chat | ✅ | 0.5s | |
180 | Alibaba Qwen | `qwen3-vl-235b-a22b-thinking` | chat | ✅ | 102.1s | |
181 | Alibaba Qwen | `qwen3-vl-flash` | chat | ✅ | 0.8s | |
182 | Alibaba Qwen | `qwen3-vl-plus` | chat | ✅ | 0.8s | |
183 | Alibaba Qwen | `qwen3.5-122b-a10b` | chat | ✅ | 1.1s | |
184 | Alibaba Qwen | `qwen3.5-35b-a3b` | chat | ✅ | 1.3s | |
185 | Alibaba Qwen | `qwen3.5-397b-a17b` | chat | ✅ | 4.6s | |
186 | Alibaba Qwen | `qwen3.5-flash` | chat | ✅ | 1.4s | |
187 | Alibaba Qwen | `qwen3.5-plus` | chat | ✅ | 5.5s | |
188 | Alibaba Qwen | `qwen3.6-flash` | chat | ✅ | 1.8s | |
189 | Alibaba Qwen | `qwen3.6-plus` | chat | ✅ | 4.0s | |
190 | Alibaba Qwen | `qwen3.7-flash` | chat | ✅ | 1.5s | |
191 | Alibaba Qwen | `qwen3.7-max` | chat | ✅ | 3.4s | |
192 | Alibaba Qwen | `qwen3.7-max` | stream | ✅ | 5.9s | deltas=3 usage=true |
193 | Alibaba Qwen | `qwen3.7-plus` | chat | ✅ | 3.3s | |
194 | Alibaba Qwen | `qwen3.7-plus` | vision | ❌ | 1.0s | Alibaba Qwen rejected the request: <400> InternalError.Algo.InvalidParameter: The image length and width do not meet the model restrictions. [height:1 or width:1 must be larger than 10]. |
195 | Alibaba Qwen | `qwq-plus` | chat | ❌ | 3.8s | empty response |
196 | Together AI | `—` | models | ✅ | 0.4s | 270 live |
197 | Together AI | `MiniMaxAI/MiniMax-M3` | chat | ✅ | 1.6s | |
198 | Together AI | `Qwen/QwQ-32B` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model Qwen/QwQ-32B. Please visit https://api.together.ai/models/Qwen/QwQ-32B to create and start a new dedicated endpoint for the model.. |
199 | Together AI | `Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8` | chat | ❌ | 0.5s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8. Please visit https://api.together.ai/models/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 to create and start a new dedicated endpoint for the model.. |
200 | Together AI | `Qwen/Qwen3-Coder-Next-FP8` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-Coder-Next-FP8. Please visit https://api.together.ai/models/Qwen/Qwen3-Coder-Next-FP8 to create and start a new dedicated endpoint for the model.. |
201 | Together AI | `Qwen/Qwen3-Next-80B-A3B-Instruct` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-Next-80B-A3B-Instruct. Please visit https://api.together.ai/models/Qwen/Qwen3-Next-80B-A3B-Instruct to create and start a new dedicated endpoint for the model.. |
202 | Together AI | `Qwen/Qwen3-Next-80B-A3B-Thinking` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-Next-80B-A3B-Thinking. Please visit https://api.together.ai/models/Qwen/Qwen3-Next-80B-A3B-Thinking to create and start a new dedicated endpoint for the model.. |
203 | Together AI | `Qwen/Qwen3-VL-32B-Instruct` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-VL-32B-Instruct. Please visit https://api.together.ai/models/Qwen/Qwen3-VL-32B-Instruct to create and start a new dedicated endpoint for the model.. |
204 | Together AI | `Qwen/Qwen3-VL-32B-Instruct` | vision | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-VL-32B-Instruct. Please visit https://api.together.ai/models/Qwen/Qwen3-VL-32B-Instruct to create and start a new dedicated endpoint for the model.. |
205 | Together AI | `Qwen/Qwen3-VL-8B-Instruct` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-VL-8B-Instruct. Please visit https://api.together.ai/models/Qwen/Qwen3-VL-8B-Instruct to create and start a new dedicated endpoint for the model.. |
206 | Together AI | `Qwen/Qwen3.5-397B-A17B` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3.5-397B-A17B. Please visit https://api.together.ai/models/Qwen/Qwen3.5-397B-A17B to create and start a new dedicated endpoint for the model.. |
207 | Together AI | `Qwen/Qwen3.5-9B` | chat | ❌ | 1.1s | empty response |
208 | Together AI | `Qwen/Qwen3.6-Plus` | chat | ❌ | 0.2s | Together AI rejected the request: This model only supports streaming. Set "stream": true.. |
209 | Together AI | `Qwen/Qwen3.7-Max` | chat | ❌ | 0.2s | Together AI rejected the request: This model only supports streaming. Set "stream": true.. |
210 | Together AI | `Qwen/Qwen3.7-Plus` | chat | ❌ | 0.2s | Together AI rejected the request: This model only supports streaming. Set "stream": true.. |
211 | Together AI | `deepseek-ai/DeepSeek-R1-0528` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model deepseek-ai/DeepSeek-R1-0528. Please visit https://api.together.ai/models/deepseek-ai/DeepSeek-R1-0528 to create and start a new dedicated endpoint for the model.. |
212 | Together AI | `deepseek-ai/DeepSeek-R1-Distill-Llama-70B` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model deepseek-ai/DeepSeek-R1-Distill-Llama-70B. Please visit https://api.together.ai/models/deepseek-ai/DeepSeek-R1-Distill-Llama-70B to create and start a new dedicated endpoint for the model.. |
213 | Together AI | `deepseek-ai/DeepSeek-V3.1` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model deepseek-ai/DeepSeek-V3.1. Please visit https://api.together.ai/models/deepseek-ai/DeepSeek-V3.1 to create and start a new dedicated endpoint for the model.. |
214 | Together AI | `deepseek-ai/DeepSeek-V4-Pro` | chat | ✅ | 1.0s | |
215 | Together AI | `google/gemma-4-31B-it` | chat | ❌ | 1.4s | empty response |
216 | Together AI | `meta-llama/Llama-3.3-70B-Instruct-Turbo` | chat | ✅ | 1.3s | |
217 | Together AI | `meta-llama/Llama-4-Scout-17B-16E-Instruct` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model meta-llama/Llama-4-Scout-17B-16E-Instruct. Please visit https://api.together.ai/models/meta-llama/Llama-4-Scout-17B-16E-Instruct to create and start a new dedicated endpoint for the model.. |
218 | Together AI | `meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo. Please visit https://api.together.ai/models/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo to create and start a new dedicated endpoint for the model.. |
219 | Together AI | `mistralai/Ministral-3-14B-Instruct-2512` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model mistralai/Ministral-3-14B-Instruct-2512. Please visit https://api.together.ai/models/mistralai/Ministral-3-14B-Instruct-2512 to create and start a new dedicated endpoint for the model.. |
220 | Together AI | `mistralai/Mixtral-8x7B-Instruct-v0.1` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model mistralai/Mixtral-8x7B-Instruct-v0.1. Please visit https://api.together.ai/models/mistralai/Mixtral-8x7B-Instruct-v0.1 to create and start a new dedicated endpoint for the model.. |
221 | Together AI | `moonshotai/Kimi-K2.6` | chat | ✅ | 1.5s | |
222 | Together AI | `moonshotai/Kimi-K2.7-Code` | chat | ✅ | 1.0s | |
223 | Together AI | `moonshotai/Kimi-K3` | chat | ✅ | 2.2s | |
224 | Together AI | `moonshotai/Kimi-K3` | stream | ✅ | 3.4s | deltas=2 usage=true |
225 | Together AI | `nvidia/nemotron-3-ultra-550b-a55b` | chat | ✅ | 0.8s | |
226 | Together AI | `openai/gpt-oss-120b` | chat | ✅ | 0.5s | |
227 | Together AI | `openai/gpt-oss-20b` | chat | ✅ | 0.4s | |
228 | Together AI | `thinkingmachines/Inkling` | chat | ✅ | 0.5s | |
229 | Together AI | `zai-org/GLM-4.7` | chat | ❌ | 0.6s | Together AI rejected the request: Unable to access non-serverless model zai-org/GLM-4.7. Please visit https://api.together.ai/models/zai-org/GLM-4.7 to create and start a new dedicated endpoint for the model.. |
230 | Together AI | `zai-org/GLM-5` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model zai-org/GLM-5. Please visit https://api.together.ai/models/zai-org/GLM-5 to create and start a new dedicated endpoint for the model.. |
231 | Together AI | `zai-org/GLM-5.1` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model zai-org/GLM-5.1. Please visit https://api.together.ai/models/zai-org/GLM-5.1 to create and start a new dedicated endpoint for the model.. |
232 | Together AI | `zai-org/GLM-5.2` | chat | ✅ | 1.1s | |
233 | xAI | `—` | models | ❌ | 0.3s | catalog IDs not live: grok-4.20, grok-4.20-non-reasoning, grok-4.20-multi-agent, grok-code-fast-1 |
234 | xAI | `grok-4.20` | chat | ❌ | 0.1s | xAI rejected the request: Model grok-4.20 does not support parameter reasoningEffort.. |
235 | xAI | `grok-4.20-multi-agent` | chat | ❌ | 0.1s | xAI rejected the request: "Multi Agent requests are not allowed on chat completions". |
236 | xAI | `grok-4.20-non-reasoning` | chat | ✅ | 0.3s | |
237 | xAI | `grok-4.3` | chat | ✅ | 1.3s | |
238 | xAI | `grok-4.5` | chat | ✅ | 0.7s | |
239 | xAI | `grok-4.5` | stream | ✅ | 1.3s | deltas=9 usage=true |
240 | xAI | `grok-4.5` | vision | ❌ | 0.3s | xAI rejected the request: Image dimensions 1x1 are too small. Both width and height must be at least 8 pixels.. |
241 | xAI | `grok-code-fast-1` | chat | ❌ | 0.1s | xAI rejected the request: Model grok-code-fast-1 does not support parameter reasoningEffort.. |
15 +| DeepSeek | `deepseek-v4-flash` | chat | ✅ | 1.1s | |
16 +| DeepSeek | `deepseek-v4-flash` | stream | ✅ | 0.9s | deltas=9 usage=true |
242 17