@oonacode/win32-x64 0.3.131 → 0.3.132
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -11
- package/oona.exe +2 -2
- package/oonacode-release.json +4 -4
- package/package.json +2 -1
- package/registry.json +1226 -0
- package/web-ui/assets/index-DsdziiwW.css +2 -0
- package/web-ui/assets/index-Dx6o2M64.js +128 -0
- package/web-ui/index.html +2 -2
- package/web-ui/assets/index-C7wJUfTV.css +0 -2
- package/web-ui/assets/index-CYPRAWKz.js +0 -109
package/registry.json
ADDED
|
@@ -0,0 +1,1226 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./registry.schema.json",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"updatedAt": "2026-08-29T12:00:00Z",
|
|
5
|
+
"providers": [
|
|
6
|
+
{
|
|
7
|
+
"id": "anthropic-subscription",
|
|
8
|
+
"displayName": "Claude Subscription",
|
|
9
|
+
"kind": "anthropic-passthrough",
|
|
10
|
+
"route": "direct",
|
|
11
|
+
"credentialClass": "subscription",
|
|
12
|
+
"baseUrl": "https://api.anthropic.com",
|
|
13
|
+
"auth": {
|
|
14
|
+
"header": "none"
|
|
15
|
+
},
|
|
16
|
+
"models": [
|
|
17
|
+
{
|
|
18
|
+
"id": "claude-fable-5-1",
|
|
19
|
+
"displayName": "Claude Fable 5.1",
|
|
20
|
+
"contextWindow": 1000000,
|
|
21
|
+
"supportsTools": true,
|
|
22
|
+
"supportsThinking": true,
|
|
23
|
+
"supportsVision": true
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "claude-opus-5",
|
|
27
|
+
"displayName": "Claude Opus 5",
|
|
28
|
+
"contextWindow": 1000000,
|
|
29
|
+
"supportsTools": true,
|
|
30
|
+
"supportsThinking": true,
|
|
31
|
+
"supportsVision": true
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "claude-opus-5-5",
|
|
35
|
+
"displayName": "Claude Opus 5.5",
|
|
36
|
+
"contextWindow": 1000000,
|
|
37
|
+
"supportsTools": true,
|
|
38
|
+
"supportsThinking": true,
|
|
39
|
+
"supportsVision": true
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "claude-sonnet-5",
|
|
43
|
+
"displayName": "Claude Sonnet 5",
|
|
44
|
+
"contextWindow": 1000000,
|
|
45
|
+
"supportsTools": true,
|
|
46
|
+
"supportsThinking": true,
|
|
47
|
+
"supportsVision": true
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "claude-haiku-4-5",
|
|
51
|
+
"displayName": "Claude Haiku 4.5",
|
|
52
|
+
"contextWindow": 200000,
|
|
53
|
+
"supportsTools": true,
|
|
54
|
+
"supportsThinking": true,
|
|
55
|
+
"supportsVision": true
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"defaultModel": "claude-opus-5",
|
|
59
|
+
"capabilities": {
|
|
60
|
+
"streaming": true,
|
|
61
|
+
"tools": true,
|
|
62
|
+
"thinking": true,
|
|
63
|
+
"vision": true,
|
|
64
|
+
"countTokens": true,
|
|
65
|
+
"promptCaching": true,
|
|
66
|
+
"promptCacheTtlSec": 300
|
|
67
|
+
},
|
|
68
|
+
"phase": 1,
|
|
69
|
+
"enabled": true,
|
|
70
|
+
"docsUrl": "https://code.claude.com/docs",
|
|
71
|
+
"notes": "Runs the genuine Claude Code engine DIRECT to api.anthropic.com with the user's own OAuth token (claude setup-token). Never proxied through the OonaCode gateway. Single active host per subscription.",
|
|
72
|
+
"adminGroup": "anthropic",
|
|
73
|
+
"clientGroup": "anthropic",
|
|
74
|
+
"recordLabel": "Subscription"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "anthropic",
|
|
78
|
+
"displayName": "Claude",
|
|
79
|
+
"effortLevels": ["low", "medium", "high", "xhigh", "max", "ultracode"],
|
|
80
|
+
"kind": "anthropic-passthrough",
|
|
81
|
+
"route": "gateway",
|
|
82
|
+
"credentialClass": "api_key",
|
|
83
|
+
"baseUrl": "https://api.anthropic.com",
|
|
84
|
+
"messagesPath": "/v1/messages",
|
|
85
|
+
"modelsPath": "/v1/models",
|
|
86
|
+
"auth": {
|
|
87
|
+
"header": "x-api-key"
|
|
88
|
+
},
|
|
89
|
+
"models": [
|
|
90
|
+
{
|
|
91
|
+
"id": "claude-fable-5-1",
|
|
92
|
+
"displayName": "Claude Fable 5.1",
|
|
93
|
+
"contextWindow": 1000000,
|
|
94
|
+
"supportsTools": true,
|
|
95
|
+
"supportsThinking": true,
|
|
96
|
+
"supportsVision": true,
|
|
97
|
+
"inputPricePerM": 10,
|
|
98
|
+
"outputPricePerM": 50
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "claude-opus-5",
|
|
102
|
+
"displayName": "Claude Opus 5",
|
|
103
|
+
"contextWindow": 1000000,
|
|
104
|
+
"supportsTools": true,
|
|
105
|
+
"supportsThinking": true,
|
|
106
|
+
"supportsVision": true,
|
|
107
|
+
"inputPricePerM": 5,
|
|
108
|
+
"outputPricePerM": 25
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"id": "claude-opus-5-5",
|
|
112
|
+
"displayName": "Claude Opus 5.5",
|
|
113
|
+
"contextWindow": 1000000,
|
|
114
|
+
"supportsTools": true,
|
|
115
|
+
"supportsThinking": true,
|
|
116
|
+
"supportsVision": true,
|
|
117
|
+
"inputPricePerM": 4,
|
|
118
|
+
"outputPricePerM": 20,
|
|
119
|
+
"notes": "The Opus after Opus 5, cheaper than it: $4 / $20 per MTok, cache reads $0.20, 1M context, 128K output (Anthropic's model table, 2026-09-23). Needs Claude Code 2.1.280 or newer: Anthropic answers any request carrying an older engine's identity with 400 'version 2.1.280 or newer is required', on the API key and the subscription alike (measured 2026-09-23 with engine 2.1.272), which is why it arrived with the move to Agent SDK 0.3.280. Thinking cannot be disabled and forced tool_choice is refused; its effort default is medium, one below Opus 5's high. Listed AFTER Opus 5 on purpose, on both Claude entries: neither declares modelAliases, so the 'opus' family (ANTHROPIC_DEFAULT_OPUS_MODEL, and an unlisted old Opus id asked of the pool) resolves to the first listed model whose id says opus, and it stays on Opus 5, the default (2026-09-23 review)."
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "claude-sonnet-5",
|
|
123
|
+
"displayName": "Claude Sonnet 5",
|
|
124
|
+
"contextWindow": 1000000,
|
|
125
|
+
"supportsTools": true,
|
|
126
|
+
"supportsThinking": true,
|
|
127
|
+
"supportsVision": true,
|
|
128
|
+
"inputPricePerM": 2,
|
|
129
|
+
"outputPricePerM": 10
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": "claude-haiku-4-5",
|
|
133
|
+
"displayName": "Claude Haiku 4.5",
|
|
134
|
+
"contextWindow": 200000,
|
|
135
|
+
"supportsTools": true,
|
|
136
|
+
"supportsThinking": true,
|
|
137
|
+
"supportsVision": true,
|
|
138
|
+
"inputPricePerM": 1,
|
|
139
|
+
"outputPricePerM": 5
|
|
140
|
+
}
|
|
141
|
+
],
|
|
142
|
+
"defaultModel": "claude-opus-5",
|
|
143
|
+
"capabilities": {
|
|
144
|
+
"streaming": true,
|
|
145
|
+
"tools": true,
|
|
146
|
+
"thinking": true,
|
|
147
|
+
"vision": true,
|
|
148
|
+
"countTokens": true,
|
|
149
|
+
"promptCaching": true,
|
|
150
|
+
"promptCacheTtlSec": 300
|
|
151
|
+
},
|
|
152
|
+
"passthrough": {
|
|
153
|
+
"stripCacheControl": false,
|
|
154
|
+
"allowedBetas": ["*"],
|
|
155
|
+
"anthropicVersion": "2023-06-01"
|
|
156
|
+
},
|
|
157
|
+
"directCapable": true,
|
|
158
|
+
"phase": 1,
|
|
159
|
+
"enabled": true,
|
|
160
|
+
"docsUrl": "https://platform.claude.com/docs",
|
|
161
|
+
"credentialVariants": [
|
|
162
|
+
{
|
|
163
|
+
"id": "payg",
|
|
164
|
+
"label": "Pay-as-you-go (API key)",
|
|
165
|
+
"header": "x-api-key",
|
|
166
|
+
"keyFormat": "sk-ant-api03-...",
|
|
167
|
+
"operatorOnly": true
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"id": "token-plan",
|
|
171
|
+
"label": "Claude subscription (long-lived token)",
|
|
172
|
+
"header": "authorization-bearer",
|
|
173
|
+
"extraHeaders": {
|
|
174
|
+
"anthropic-beta": "oauth-2025-04-20"
|
|
175
|
+
},
|
|
176
|
+
"requiresClaudeCodeIdentity": true,
|
|
177
|
+
"keyFormat": "sk-ant-oat01-...",
|
|
178
|
+
"claudeCodeShape": {
|
|
179
|
+
"betas": "claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,prompt-caching-scope-2026-01-05,effort-2025-11-24",
|
|
180
|
+
"userAgent": "claude-cli/2.1.280 (external, sdk-ts)",
|
|
181
|
+
"billingHeader": "x-anthropic-billing-header: cc_version=2.1.280; cc_entrypoint=sdk-ts;",
|
|
182
|
+
"headers": {
|
|
183
|
+
"x-app": "cli"
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"notes": "The token `claude setup-token` prints. Anthropic honours it only for requests shaped like its own client: the OAuth + claude-code betas and the attribution block as the first `system` entry (measured 2026-09-01 as 'needs the Claude Code system prompt' — the engine's system prompt CARRIES that block, which is what actually mattered; confirmed 2026-09-13 against claude.exe 2.1.245 and the aicontrol server, which serves plain callers this way in production). The engine's own requests already have the shape; any other caller's request is given it by the gateway (`claudeCodeShape`), so the subscription serves everyone first and the pay-as-you-go key is the fallback when this record is full or cooling. Bump `cc_version` / `userAgent` with the engine.",
|
|
187
|
+
"operatorOnly": true
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
"recordLabel": "API"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"id": "openai",
|
|
194
|
+
"displayName": "OpenAI",
|
|
195
|
+
"effortLevels": ["low", "medium", "high"],
|
|
196
|
+
"kind": "openai-compatible",
|
|
197
|
+
"route": "gateway",
|
|
198
|
+
"credentialClass": "api_key",
|
|
199
|
+
"baseUrl": "https://api.openai.com",
|
|
200
|
+
"messagesPath": "/v1/chat/completions",
|
|
201
|
+
"modelsPath": "/v1/models",
|
|
202
|
+
"auth": {
|
|
203
|
+
"header": "authorization-bearer"
|
|
204
|
+
},
|
|
205
|
+
"models": [
|
|
206
|
+
{
|
|
207
|
+
"id": "gpt-5",
|
|
208
|
+
"displayName": "GPT-5",
|
|
209
|
+
"contextWindow": 400000,
|
|
210
|
+
"supportsTools": true,
|
|
211
|
+
"supportsThinking": true,
|
|
212
|
+
"supportsVision": true
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"id": "gpt-5-mini",
|
|
216
|
+
"displayName": "GPT-5 mini",
|
|
217
|
+
"contextWindow": 400000,
|
|
218
|
+
"supportsTools": true,
|
|
219
|
+
"supportsThinking": true,
|
|
220
|
+
"supportsVision": true
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"id": "gpt-4.1",
|
|
224
|
+
"displayName": "GPT-4.1",
|
|
225
|
+
"contextWindow": 1000000,
|
|
226
|
+
"supportsTools": true,
|
|
227
|
+
"supportsThinking": false,
|
|
228
|
+
"supportsVision": true
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"id": "o4-mini",
|
|
232
|
+
"displayName": "o4-mini",
|
|
233
|
+
"contextWindow": 200000,
|
|
234
|
+
"supportsTools": true,
|
|
235
|
+
"supportsThinking": true,
|
|
236
|
+
"supportsVision": true
|
|
237
|
+
}
|
|
238
|
+
],
|
|
239
|
+
"defaultModel": "gpt-5",
|
|
240
|
+
"modelAliases": {
|
|
241
|
+
"opus": "gpt-5",
|
|
242
|
+
"sonnet": "gpt-5",
|
|
243
|
+
"haiku": "gpt-5-mini"
|
|
244
|
+
},
|
|
245
|
+
"capabilities": {
|
|
246
|
+
"streaming": true,
|
|
247
|
+
"tools": true,
|
|
248
|
+
"thinking": true,
|
|
249
|
+
"vision": true,
|
|
250
|
+
"countTokens": false,
|
|
251
|
+
"promptCaching": true,
|
|
252
|
+
"promptCacheTtlSec": 300
|
|
253
|
+
},
|
|
254
|
+
"translate": {
|
|
255
|
+
"maxTokensParam": "max_completion_tokens",
|
|
256
|
+
"reasoningEffortFromBudget": true,
|
|
257
|
+
"reasoningContentField": null,
|
|
258
|
+
"supportsParallelToolCalls": true,
|
|
259
|
+
"systemRole": "developer",
|
|
260
|
+
"streamIncludeUsage": true
|
|
261
|
+
},
|
|
262
|
+
"phase": 1,
|
|
263
|
+
"enabled": true,
|
|
264
|
+
"docsUrl": "https://platform.openai.com/docs"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"id": "openai-subscription",
|
|
268
|
+
"displayName": "ChatGPT Subscription (Codex)",
|
|
269
|
+
"effortLevels": ["low", "medium", "high", "xhigh"],
|
|
270
|
+
"kind": "openai-compatible",
|
|
271
|
+
"route": "direct",
|
|
272
|
+
"credentialClass": "subscription",
|
|
273
|
+
"baseUrl": "https://chatgpt.com/backend-api/codex",
|
|
274
|
+
"messagesPath": "/responses",
|
|
275
|
+
"defaultModel": "gpt-5.5",
|
|
276
|
+
"auth": {
|
|
277
|
+
"header": "authorization-bearer",
|
|
278
|
+
"extraHeaders": {
|
|
279
|
+
"originator": "codex_cli_rs",
|
|
280
|
+
"OpenAI-Beta": "responses=experimental"
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
"models": [
|
|
284
|
+
{
|
|
285
|
+
"id": "gpt-6-astra",
|
|
286
|
+
"displayName": "GPT-6 Astra",
|
|
287
|
+
"contextWindow": 400000,
|
|
288
|
+
"supportsTools": true,
|
|
289
|
+
"supportsThinking": true,
|
|
290
|
+
"supportsVision": true,
|
|
291
|
+
"notes": "Served from the ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs."
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"id": "gpt-5.6-sol",
|
|
295
|
+
"displayName": "GPT-5.6 Sol",
|
|
296
|
+
"contextWindow": 400000,
|
|
297
|
+
"supportsTools": true,
|
|
298
|
+
"supportsThinking": true,
|
|
299
|
+
"supportsVision": true,
|
|
300
|
+
"notes": "Served from the ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs."
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"id": "gpt-5.6-terra",
|
|
304
|
+
"displayName": "GPT-5.6 Terra",
|
|
305
|
+
"contextWindow": 400000,
|
|
306
|
+
"supportsTools": true,
|
|
307
|
+
"supportsThinking": true,
|
|
308
|
+
"supportsVision": true,
|
|
309
|
+
"notes": "Served from the ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs."
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"id": "gpt-5.6-luna",
|
|
313
|
+
"displayName": "GPT-5.6 Luna",
|
|
314
|
+
"contextWindow": 400000,
|
|
315
|
+
"supportsTools": true,
|
|
316
|
+
"supportsThinking": true,
|
|
317
|
+
"supportsVision": true,
|
|
318
|
+
"notes": "Served from the ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs."
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"id": "gpt-5.5",
|
|
322
|
+
"displayName": "GPT-5.5",
|
|
323
|
+
"contextWindow": 400000,
|
|
324
|
+
"supportsTools": true,
|
|
325
|
+
"supportsThinking": true,
|
|
326
|
+
"supportsVision": true,
|
|
327
|
+
"notes": "Served from the ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs."
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"id": "gpt-5.2",
|
|
331
|
+
"displayName": "GPT-5.2",
|
|
332
|
+
"contextWindow": 400000,
|
|
333
|
+
"supportsTools": true,
|
|
334
|
+
"supportsThinking": true,
|
|
335
|
+
"supportsVision": true,
|
|
336
|
+
"notes": "Served from the ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs."
|
|
337
|
+
}
|
|
338
|
+
],
|
|
339
|
+
"rateLimits": {
|
|
340
|
+
"maxConcurrent": 4,
|
|
341
|
+
"requestsPerMinute": 60
|
|
342
|
+
},
|
|
343
|
+
"capabilities": {
|
|
344
|
+
"streaming": true,
|
|
345
|
+
"tools": true,
|
|
346
|
+
"thinking": true,
|
|
347
|
+
"vision": true,
|
|
348
|
+
"countTokens": false,
|
|
349
|
+
"promptCaching": true
|
|
350
|
+
},
|
|
351
|
+
"translate": {
|
|
352
|
+
"wire": "responses",
|
|
353
|
+
"systemRole": "developer",
|
|
354
|
+
"reasoningEffortFromBudget": true,
|
|
355
|
+
"supportsParallelToolCalls": true
|
|
356
|
+
},
|
|
357
|
+
"phase": 1,
|
|
358
|
+
"enabled": true,
|
|
359
|
+
"clientGroup": "openai",
|
|
360
|
+
"adminGroup": "openai",
|
|
361
|
+
"recordLabel": "Subscription",
|
|
362
|
+
"subscriptionLogin": {
|
|
363
|
+
"type": "openai-device",
|
|
364
|
+
"deviceAuthorizationUrl": "https://auth.openai.com/api/accounts/deviceauth/usercode",
|
|
365
|
+
"pollUrl": "https://auth.openai.com/api/accounts/deviceauth/token",
|
|
366
|
+
"tokenUrl": "https://auth.openai.com/oauth/token",
|
|
367
|
+
"verificationUri": "https://auth.openai.com/codex/device",
|
|
368
|
+
"redirectUri": "https://auth.openai.com/deviceauth/callback",
|
|
369
|
+
"clientId": "app_EMoamEEZ73f0CkXaXp7hrann",
|
|
370
|
+
"signInLabel": "Sign in with ChatGPT"
|
|
371
|
+
},
|
|
372
|
+
"docsUrl": "https://developers.openai.com/codex",
|
|
373
|
+
"notes": "The user's OWN ChatGPT plan (Plus, Pro, Team), signed in with OpenAI's device flow as `codex login --device-auth` runs it (docs/codex-engine.md section 6, 2026-09-19): the host asks auth.openai.com for a code, the person types it at auth.openai.com/codex/device, the host polls, exchanges the code with the verifier OpenAI's server minted, and keeps the access + refresh pair in the vault, refreshed two minutes before expiry. The backend a ChatGPT token belongs to is chatgpt.com/backend-api/codex, which speaks ONLY the Responses API (translate.wire = responses) and wants the chatgpt-account-id header (a claim of the id token, kept beside the pair), an originator and the responses=experimental beta - so the engine reaches it through the host's loopback upstream, which translates every request. route=direct: the token never reaches the gateway (guardrail 4) and this entry seeds no server rows. The client id is Codex's PUBLIC one; OpenAI names third-party harnesses (OpenCode, pi) as tolerated users of a ChatGPT plan and the owner accepted that standing on 2026-09-19 - the residual risk is OpenAI changing its mind. Models are what Codex's own model/list answered on 2026-09-17; a plan is flat-rate, so no prices. Its x-codex-primary/secondary-used-percent answer headers are the plan's usage."
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
"id": "xai",
|
|
377
|
+
"displayName": "xAI (Grok)",
|
|
378
|
+
"kind": "anthropic-passthrough",
|
|
379
|
+
"route": "gateway",
|
|
380
|
+
"credentialClass": "api_key",
|
|
381
|
+
"baseUrl": "https://api.x.ai",
|
|
382
|
+
"messagesPath": "/v1/messages",
|
|
383
|
+
"modelsPath": "/v1/models",
|
|
384
|
+
"auth": {
|
|
385
|
+
"header": "authorization-bearer"
|
|
386
|
+
},
|
|
387
|
+
"models": [
|
|
388
|
+
{
|
|
389
|
+
"id": "grok-4.6",
|
|
390
|
+
"displayName": "Grok 4.6",
|
|
391
|
+
"contextWindow": 500000,
|
|
392
|
+
"supportsTools": true,
|
|
393
|
+
"supportsThinking": true,
|
|
394
|
+
"supportsVision": false,
|
|
395
|
+
"inputPricePerM": 4,
|
|
396
|
+
"outputPricePerM": 12,
|
|
397
|
+
"notes": "xAI's recommendation for code and chat. TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it. The cheaper tier is `models.price_tier_rule` (migration 0054)."
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"id": "grok-4.5",
|
|
401
|
+
"displayName": "Grok 4.5",
|
|
402
|
+
"contextWindow": 500000,
|
|
403
|
+
"supportsTools": true,
|
|
404
|
+
"supportsThinking": true,
|
|
405
|
+
"supportsVision": false,
|
|
406
|
+
"inputPricePerM": 4,
|
|
407
|
+
"outputPricePerM": 12,
|
|
408
|
+
"notes": "TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it. The cheaper tier is `models.price_tier_rule` (migration 0054)."
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"id": "grok-4.3",
|
|
412
|
+
"displayName": "Grok 4.3 (1M context)",
|
|
413
|
+
"contextWindow": 1000000,
|
|
414
|
+
"supportsTools": true,
|
|
415
|
+
"supportsThinking": true,
|
|
416
|
+
"supportsVision": false,
|
|
417
|
+
"inputPricePerM": 2.5,
|
|
418
|
+
"outputPricePerM": 5,
|
|
419
|
+
"notes": "TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it. The cheaper tier is `models.price_tier_rule` (migration 0054)."
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"id": "grok-build-0.1",
|
|
423
|
+
"displayName": "Grok Build 0.1",
|
|
424
|
+
"contextWindow": 256000,
|
|
425
|
+
"supportsTools": true,
|
|
426
|
+
"supportsThinking": true,
|
|
427
|
+
"supportsVision": false,
|
|
428
|
+
"inputPricePerM": 2,
|
|
429
|
+
"outputPricePerM": 4,
|
|
430
|
+
"notes": "TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it. The cheaper tier is `models.price_tier_rule` (migration 0054)."
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
"id": "grok-4.20-0309-reasoning",
|
|
434
|
+
"displayName": "Grok 4.20 Reasoning (1M context)",
|
|
435
|
+
"contextWindow": 1000000,
|
|
436
|
+
"supportsTools": true,
|
|
437
|
+
"supportsThinking": true,
|
|
438
|
+
"supportsVision": false,
|
|
439
|
+
"inputPricePerM": 2.5,
|
|
440
|
+
"outputPricePerM": 5,
|
|
441
|
+
"notes": "Grok 4.20 (0309 build), the reasoning variant. TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it ($1.25 in / $0.20 cached / $2.50 out). The cheaper tier is `models.price_tier_rule` (migration 0099). Read from docs.x.ai/docs/models on 2026-09-18 (owner: \"read x.ai/pricing and add all models\")."
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"id": "grok-4.20-0309-non-reasoning",
|
|
445
|
+
"displayName": "Grok 4.20 Non-Reasoning (1M context)",
|
|
446
|
+
"contextWindow": 1000000,
|
|
447
|
+
"supportsTools": true,
|
|
448
|
+
"supportsThinking": false,
|
|
449
|
+
"supportsVision": false,
|
|
450
|
+
"inputPricePerM": 2.5,
|
|
451
|
+
"outputPricePerM": 5,
|
|
452
|
+
"notes": "Grok 4.20 (0309 build) without reasoning: same prices, faster, no thinking. TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it ($1.25 in / $0.20 cached / $2.50 out). The cheaper tier is `models.price_tier_rule` (migration 0099). Read from docs.x.ai/docs/models on 2026-09-18 (owner: \"read x.ai/pricing and add all models\"). NOT LISTED: `grok-4.20-multi-agent-0309` — every request from the engine carries tools and xAI answers `400 Client-side tools for multi-agent models require beta access` (measured 2026-09-19 through the pool on the owner's SuperGrok); delisted by migration 0100 until xAI opens that beta."
|
|
453
|
+
}
|
|
454
|
+
],
|
|
455
|
+
"defaultModel": "grok-4.6",
|
|
456
|
+
"modelAliases": {
|
|
457
|
+
"opus": "grok-4.6",
|
|
458
|
+
"sonnet": "grok-4.6",
|
|
459
|
+
"haiku": "grok-4.3"
|
|
460
|
+
},
|
|
461
|
+
"capabilities": {
|
|
462
|
+
"streaming": true,
|
|
463
|
+
"tools": true,
|
|
464
|
+
"thinking": true,
|
|
465
|
+
"vision": false,
|
|
466
|
+
"countTokens": false,
|
|
467
|
+
"promptCaching": false
|
|
468
|
+
},
|
|
469
|
+
"passthrough": {
|
|
470
|
+
"toolSchemaRequiredArray": true,
|
|
471
|
+
"stripCacheControl": true,
|
|
472
|
+
"allowedBetas": [],
|
|
473
|
+
"anthropicVersion": "2023-06-01",
|
|
474
|
+
"toolDescriptionRequired": true
|
|
475
|
+
},
|
|
476
|
+
"directCapable": true,
|
|
477
|
+
"phase": 1,
|
|
478
|
+
"enabled": true,
|
|
479
|
+
"docsUrl": "https://docs.x.ai/docs/overview",
|
|
480
|
+
"keyFormat": "xai-...",
|
|
481
|
+
"notes": "xAI serves an Anthropic-compatible Messages endpoint at https://api.x.ai/v1/messages (verified: it answers 401, not 404, so the route exists), authenticated with a bearer token. That makes it pass-through rather than translated, so a user's own key runs host-direct and never reaches the gateway. No count_tokens endpoint, so the gateway estimates. Prices here are the BASE tier; xAI doubles them for prompts over 200k tokens, which the flat per-model price cannot express — the models catalogue is where a real peak/off-peak split belongs.",
|
|
482
|
+
"credentialVariants": [
|
|
483
|
+
{
|
|
484
|
+
"id": "payg",
|
|
485
|
+
"label": "Pay-as-you-go (API key)",
|
|
486
|
+
"header": "authorization-bearer",
|
|
487
|
+
"keyFormat": "xai-..."
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
"id": "token-plan",
|
|
491
|
+
"label": "SuperGrok subscription (sign in)",
|
|
492
|
+
"header": "authorization-bearer",
|
|
493
|
+
"operatorOnly": true,
|
|
494
|
+
"subscriptionLogin": {
|
|
495
|
+
"type": "oauth-device",
|
|
496
|
+
"deviceAuthorizationUrl": "https://auth.x.ai/oauth2/device/code",
|
|
497
|
+
"tokenUrl": "https://auth.x.ai/oauth2/token",
|
|
498
|
+
"clientId": "b1a00492-073a-47ea-816f-4c329264a828",
|
|
499
|
+
"scopes": [
|
|
500
|
+
"openid",
|
|
501
|
+
"profile",
|
|
502
|
+
"email",
|
|
503
|
+
"offline_access",
|
|
504
|
+
"grok-cli:access",
|
|
505
|
+
"api:access"
|
|
506
|
+
],
|
|
507
|
+
"signInLabel": "Sign in with SuperGrok",
|
|
508
|
+
"referrer": "oonacode"
|
|
509
|
+
},
|
|
510
|
+
"notes": "A SuperGrok / X Premium token is NOT accepted by the developer API: api.x.ai bills it against the account's prepaid API credits and answers 402 personal-team-blocked:spending-limit (measured 2026-09-18). The surface a subscription belongs to is xAI's Grok CLI chat proxy, https://cli-chat-proxy.grok.com — the host Grok Build itself talks to — which serves the same Grok models from the subscription's weekly pool, speaks the Anthropic Messages shape at /v1/messages (thinking blocks and all; measured), and wants the Grok CLI identity headers (x-xai-token-auth, x-grok-client-identifier, x-grok-client-version — the proxy refuses versions older than what the current grok binary sends, so bump the version when it does). A FREE account gets a small quota there (21 requests / 1M tokens per window, measured); `grok-build` answers 403 'requires a Grok subscription' until the plan is paid. The operator's own SuperGrok / X Premium subscription in the pool (owner, 2026-09-18: \"the server should use it for oonacode pool models\"). Signed in from the admin's Subscription tab with the same OAuth device-code flow the app uses for a user's subscription (`xai-subscription`) — Grok Build's public client id; the gateway keeps the access + refresh pair as one sealed secret and refreshes it two minutes before expiry, so the row needs no pasted key and no expiry date. The token is an ordinary bearer for api.x.ai: the same pass-through as the API key, on the subscription lane first. operatorOnly: a user's own SuperGrok is `xai-subscription`, direct from the PC (guardrail 4).",
|
|
511
|
+
"baseUrl": "https://cli-chat-proxy.grok.com",
|
|
512
|
+
"extraHeaders": {
|
|
513
|
+
"x-xai-token-auth": "xai-grok-cli",
|
|
514
|
+
"x-grok-client-identifier": "grok-pager",
|
|
515
|
+
"x-grok-client-version": "0.2.111",
|
|
516
|
+
"user-agent": "grok-pager/0.2.111 grok-shell/0.2.111 (windows; x86_64)"
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
]
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
"id": "xai-subscription",
|
|
523
|
+
"displayName": "xAI Subscription (SuperGrok)",
|
|
524
|
+
"kind": "anthropic-passthrough",
|
|
525
|
+
"route": "direct",
|
|
526
|
+
"credentialClass": "subscription",
|
|
527
|
+
"baseUrl": "https://cli-chat-proxy.grok.com",
|
|
528
|
+
"messagesPath": "/v1/messages",
|
|
529
|
+
"auth": {
|
|
530
|
+
"header": "authorization-bearer",
|
|
531
|
+
"extraHeaders": {
|
|
532
|
+
"x-xai-token-auth": "xai-grok-cli",
|
|
533
|
+
"x-grok-client-identifier": "grok-pager",
|
|
534
|
+
"x-grok-client-version": "0.2.111",
|
|
535
|
+
"user-agent": "grok-pager/0.2.111 grok-shell/0.2.111 (windows; x86_64)"
|
|
536
|
+
}
|
|
537
|
+
},
|
|
538
|
+
"models": [
|
|
539
|
+
{
|
|
540
|
+
"id": "grok-4.6",
|
|
541
|
+
"displayName": "Grok 4.6",
|
|
542
|
+
"contextWindow": 500000,
|
|
543
|
+
"supportsTools": true,
|
|
544
|
+
"supportsThinking": true,
|
|
545
|
+
"supportsVision": false,
|
|
546
|
+
"inputPricePerM": 4,
|
|
547
|
+
"outputPricePerM": 12
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
"id": "grok-4.5",
|
|
551
|
+
"displayName": "Grok 4.5",
|
|
552
|
+
"contextWindow": 500000,
|
|
553
|
+
"supportsTools": true,
|
|
554
|
+
"supportsThinking": true,
|
|
555
|
+
"supportsVision": false,
|
|
556
|
+
"inputPricePerM": 4,
|
|
557
|
+
"outputPricePerM": 12
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
"id": "grok-4.3",
|
|
561
|
+
"displayName": "Grok 4.3 (1M context)",
|
|
562
|
+
"contextWindow": 1000000,
|
|
563
|
+
"supportsTools": true,
|
|
564
|
+
"supportsThinking": true,
|
|
565
|
+
"supportsVision": false,
|
|
566
|
+
"inputPricePerM": 2.5,
|
|
567
|
+
"outputPricePerM": 5
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"id": "grok-build-0.1",
|
|
571
|
+
"displayName": "Grok Build 0.1",
|
|
572
|
+
"contextWindow": 256000,
|
|
573
|
+
"supportsTools": true,
|
|
574
|
+
"supportsThinking": true,
|
|
575
|
+
"supportsVision": false,
|
|
576
|
+
"inputPricePerM": 2,
|
|
577
|
+
"outputPricePerM": 4
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
"id": "grok-4.20-0309-reasoning",
|
|
581
|
+
"displayName": "Grok 4.20 Reasoning (1M context)",
|
|
582
|
+
"contextWindow": 1000000,
|
|
583
|
+
"supportsTools": true,
|
|
584
|
+
"supportsThinking": true,
|
|
585
|
+
"supportsVision": false,
|
|
586
|
+
"notes": "Served from the subscription pool through the Grok CLI chat proxy; no per-token price — the weekly pool is what it costs."
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"id": "grok-4.20-0309-non-reasoning",
|
|
590
|
+
"displayName": "Grok 4.20 Non-Reasoning (1M context)",
|
|
591
|
+
"contextWindow": 1000000,
|
|
592
|
+
"supportsTools": true,
|
|
593
|
+
"supportsThinking": false,
|
|
594
|
+
"supportsVision": false,
|
|
595
|
+
"notes": "Served from the subscription pool through the Grok CLI chat proxy; no per-token price — the weekly pool is what it costs."
|
|
596
|
+
}
|
|
597
|
+
],
|
|
598
|
+
"defaultModel": "grok-4.6",
|
|
599
|
+
"modelAliases": {
|
|
600
|
+
"opus": "grok-4.6",
|
|
601
|
+
"sonnet": "grok-4.6",
|
|
602
|
+
"haiku": "grok-4.3"
|
|
603
|
+
},
|
|
604
|
+
"capabilities": {
|
|
605
|
+
"streaming": true,
|
|
606
|
+
"tools": true,
|
|
607
|
+
"thinking": true,
|
|
608
|
+
"vision": false,
|
|
609
|
+
"countTokens": false,
|
|
610
|
+
"promptCaching": false
|
|
611
|
+
},
|
|
612
|
+
"passthrough": {
|
|
613
|
+
"toolSchemaRequiredArray": true,
|
|
614
|
+
"stripCacheControl": true,
|
|
615
|
+
"allowedBetas": [],
|
|
616
|
+
"anthropicVersion": "2023-06-01",
|
|
617
|
+
"toolDescriptionRequired": true
|
|
618
|
+
},
|
|
619
|
+
"phase": 1,
|
|
620
|
+
"enabled": true,
|
|
621
|
+
"clientGroup": "xai",
|
|
622
|
+
"adminGroup": "xai",
|
|
623
|
+
"recordLabel": "Subscription",
|
|
624
|
+
"subscriptionLogin": {
|
|
625
|
+
"type": "oauth-device",
|
|
626
|
+
"deviceAuthorizationUrl": "https://auth.x.ai/oauth2/device/code",
|
|
627
|
+
"tokenUrl": "https://auth.x.ai/oauth2/token",
|
|
628
|
+
"clientId": "b1a00492-073a-47ea-816f-4c329264a828",
|
|
629
|
+
"scopes": ["openid", "profile", "email", "offline_access", "grok-cli:access", "api:access"],
|
|
630
|
+
"signInLabel": "Sign in with SuperGrok",
|
|
631
|
+
"referrer": "oonacode"
|
|
632
|
+
},
|
|
633
|
+
"docsUrl": "https://x.ai/news/grok-opencode",
|
|
634
|
+
"notes": "A SuperGrok / X Premium token is NOT accepted by the developer API: api.x.ai bills it against the account's prepaid API credits and answers 402 personal-team-blocked:spending-limit (measured 2026-09-18). The surface a subscription belongs to is xAI's Grok CLI chat proxy, https://cli-chat-proxy.grok.com — the host Grok Build itself talks to — which serves the same Grok models from the subscription's weekly pool, speaks the Anthropic Messages shape at /v1/messages (thinking blocks and all; measured), and wants the Grok CLI identity headers (x-xai-token-auth, x-grok-client-identifier, x-grok-client-version — the proxy refuses versions older than what the current grok binary sends, so bump the version when it does). A FREE account gets a small quota there (21 requests / 1M tokens per window, measured); `grok-build` answers 403 'requires a Grok subscription' until the plan is paid. The user's own SuperGrok / X Premium subscription (owner, 2026-09-18: \"lets do xai first because it works with token and refresh token only\"). Signed in with the OAuth device-code flow xAI opened to third-party coding agents (its OpenCode announcement; Hermes, Kilo Code, Warp and pi ship the same flow) using Grok Build's own PUBLIC client id, taken from xai-org/grok-build crates/codegen/xai-grok-login/src/config.rs - a device-code client has no secret. The access token is an ordinary bearer for api.x.ai, so the engine runs the same pass-through as an xAI API key; the host injects the CURRENT token per request through its loopback upstream and refreshes it (the refresh token rotates) two minutes before expiry. route=direct: the token never reaches the gateway (guardrail 4) and this entry seeds no server rows. Some $30 SuperGrok tiers answer 403 from the OAuth backend (reported by Hermes users) - the provider page shows that refusal in words. Prices are the API list (a subscription is flat-rate; the figures only size the catalogue)."
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
"id": "deepseek",
|
|
638
|
+
"displayName": "DeepSeek",
|
|
639
|
+
"kind": "anthropic-passthrough",
|
|
640
|
+
"route": "gateway",
|
|
641
|
+
"credentialClass": "api_key",
|
|
642
|
+
"baseUrl": "https://api.deepseek.com/anthropic",
|
|
643
|
+
"messagesPath": "/v1/messages",
|
|
644
|
+
"auth": {
|
|
645
|
+
"header": "x-api-key"
|
|
646
|
+
},
|
|
647
|
+
"models": [
|
|
648
|
+
{
|
|
649
|
+
"id": "deepseek-v4.1-flash",
|
|
650
|
+
"displayName": "DeepSeek V4.1 Flash",
|
|
651
|
+
"upstreamId": "deepseek-flash",
|
|
652
|
+
"contextWindow": 1000000,
|
|
653
|
+
"maxOutputTokens": 384000,
|
|
654
|
+
"supportsTools": true,
|
|
655
|
+
"supportsThinking": true,
|
|
656
|
+
"supportsVision": false,
|
|
657
|
+
"notes": "DeepSeek's current Flash model (its API calls it `deepseek-flash`, the docs name it DeepSeek-V4.1-Flash; the legacy `deepseek-v4-flash` ids still answer and now cost the same). Listed under the canonical id Alibaba and everyone else use so the pool can fold the two backends into one entry; `upstreamId` is what DeepSeek is sent. Peak price in the row ($0.30 in / $1.20 out, cache hit $0.006); off-peak is half, outside 01:00-04:00 and 06:00-10:00 UTC Mon-Fri. Owner, 2026-09-18: \"add deepseek 4.1 in oonacode pool\"."
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
"id": "deepseek-v4-pro",
|
|
661
|
+
"displayName": "DeepSeek V4 Pro",
|
|
662
|
+
"contextWindow": 1000000,
|
|
663
|
+
"maxOutputTokens": 384000,
|
|
664
|
+
"supportsTools": true,
|
|
665
|
+
"supportsThinking": true,
|
|
666
|
+
"supportsVision": false
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
"id": "deepseek-v4-flash",
|
|
670
|
+
"displayName": "DeepSeek V4 Flash",
|
|
671
|
+
"contextWindow": 1000000,
|
|
672
|
+
"maxOutputTokens": 384000,
|
|
673
|
+
"supportsTools": true,
|
|
674
|
+
"supportsThinking": true,
|
|
675
|
+
"supportsVision": false
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
"id": "deepseek-v4-flash-vision-exp",
|
|
679
|
+
"displayName": "DeepSeek V4 Flash Vision (experimental)",
|
|
680
|
+
"contextWindow": 1000000,
|
|
681
|
+
"maxOutputTokens": 384000,
|
|
682
|
+
"supportsTools": true,
|
|
683
|
+
"supportsThinking": true,
|
|
684
|
+
"supportsVision": true
|
|
685
|
+
}
|
|
686
|
+
],
|
|
687
|
+
"defaultModel": "deepseek-v4.1-flash",
|
|
688
|
+
"modelAliases": {
|
|
689
|
+
"opus": "deepseek-v4-pro",
|
|
690
|
+
"sonnet": "deepseek-v4.1-flash",
|
|
691
|
+
"haiku": "deepseek-v4.1-flash"
|
|
692
|
+
},
|
|
693
|
+
"capabilities": {
|
|
694
|
+
"streaming": true,
|
|
695
|
+
"tools": true,
|
|
696
|
+
"thinking": true,
|
|
697
|
+
"vision": true,
|
|
698
|
+
"countTokens": false,
|
|
699
|
+
"promptCaching": true
|
|
700
|
+
},
|
|
701
|
+
"passthrough": {
|
|
702
|
+
"stripCacheControl": false,
|
|
703
|
+
"allowedBetas": [],
|
|
704
|
+
"anthropicVersion": "2023-06-01"
|
|
705
|
+
},
|
|
706
|
+
"directCapable": true,
|
|
707
|
+
"phase": 1,
|
|
708
|
+
"enabled": true,
|
|
709
|
+
"docsUrl": "https://api-docs.deepseek.com/guides/anthropic_api"
|
|
710
|
+
},
|
|
711
|
+
{
|
|
712
|
+
"id": "kimi",
|
|
713
|
+
"displayName": "Kimi (Moonshot)",
|
|
714
|
+
"kind": "anthropic-passthrough",
|
|
715
|
+
"route": "gateway",
|
|
716
|
+
"credentialClass": "api_key",
|
|
717
|
+
"baseUrl": "https://api.moonshot.ai/anthropic",
|
|
718
|
+
"messagesPath": "/v1/messages",
|
|
719
|
+
"auth": {
|
|
720
|
+
"header": "x-api-key"
|
|
721
|
+
},
|
|
722
|
+
"models": [
|
|
723
|
+
{
|
|
724
|
+
"id": "kimi-k3",
|
|
725
|
+
"displayName": "Kimi K3",
|
|
726
|
+
"contextWindow": 1000000,
|
|
727
|
+
"supportsTools": true,
|
|
728
|
+
"supportsThinking": true,
|
|
729
|
+
"supportsVision": false
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
"id": "kimi-k2.7-code",
|
|
733
|
+
"displayName": "Kimi K2.7 Code",
|
|
734
|
+
"contextWindow": 262144,
|
|
735
|
+
"supportsTools": true,
|
|
736
|
+
"supportsThinking": true,
|
|
737
|
+
"supportsVision": false
|
|
738
|
+
},
|
|
739
|
+
{
|
|
740
|
+
"id": "kimi-k2.7-code-highspeed",
|
|
741
|
+
"displayName": "Kimi K2.7 Code (high speed)",
|
|
742
|
+
"contextWindow": 262144,
|
|
743
|
+
"supportsTools": true,
|
|
744
|
+
"supportsThinking": true,
|
|
745
|
+
"supportsVision": false
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
"id": "kimi-k2.6",
|
|
749
|
+
"displayName": "Kimi K2.6",
|
|
750
|
+
"contextWindow": 262144,
|
|
751
|
+
"supportsTools": true,
|
|
752
|
+
"supportsThinking": true,
|
|
753
|
+
"supportsVision": false
|
|
754
|
+
}
|
|
755
|
+
],
|
|
756
|
+
"defaultModel": "kimi-k2.7-code",
|
|
757
|
+
"modelAliases": {
|
|
758
|
+
"opus": "kimi-k3",
|
|
759
|
+
"sonnet": "kimi-k2.7-code",
|
|
760
|
+
"haiku": "kimi-k2.6"
|
|
761
|
+
},
|
|
762
|
+
"capabilities": {
|
|
763
|
+
"streaming": true,
|
|
764
|
+
"tools": true,
|
|
765
|
+
"thinking": true,
|
|
766
|
+
"vision": false,
|
|
767
|
+
"countTokens": false,
|
|
768
|
+
"promptCaching": false
|
|
769
|
+
},
|
|
770
|
+
"passthrough": {
|
|
771
|
+
"stripCacheControl": true,
|
|
772
|
+
"allowedBetas": [],
|
|
773
|
+
"anthropicVersion": "2023-06-01"
|
|
774
|
+
},
|
|
775
|
+
"directCapable": true,
|
|
776
|
+
"phase": 1,
|
|
777
|
+
"enabled": true,
|
|
778
|
+
"docsUrl": "https://platform.kimi.ai/docs",
|
|
779
|
+
"credentialVariants": [
|
|
780
|
+
{
|
|
781
|
+
"id": "payg",
|
|
782
|
+
"label": "Pay-as-you-go (API key)",
|
|
783
|
+
"baseUrl": "https://api.moonshot.ai/anthropic"
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"id": "token-plan",
|
|
787
|
+
"label": "Kimi For Coding (subscription)",
|
|
788
|
+
"baseUrl": "https://api.moonshot.ai/anthropic",
|
|
789
|
+
"notes": "Same endpoint and same key shape as pay-as-you-go — the plan changes how the calls are billed, not where they go. Kept as its own record so its prices, limits and cache TTL are set independently."
|
|
790
|
+
}
|
|
791
|
+
]
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
"id": "glm",
|
|
795
|
+
"displayName": "GLM (Zhipu / Z.ai)",
|
|
796
|
+
"kind": "anthropic-passthrough",
|
|
797
|
+
"route": "gateway",
|
|
798
|
+
"credentialClass": "api_key",
|
|
799
|
+
"baseUrl": "https://api.z.ai/api/anthropic",
|
|
800
|
+
"messagesPath": "/v1/messages",
|
|
801
|
+
"auth": {
|
|
802
|
+
"header": "authorization-bearer"
|
|
803
|
+
},
|
|
804
|
+
"models": [
|
|
805
|
+
{
|
|
806
|
+
"id": "glm-5.3",
|
|
807
|
+
"displayName": "GLM-5.3",
|
|
808
|
+
"contextWindow": 1000000,
|
|
809
|
+
"maxOutputTokens": 128000,
|
|
810
|
+
"supportsTools": true,
|
|
811
|
+
"supportsThinking": true,
|
|
812
|
+
"supportsVision": false,
|
|
813
|
+
"inputPricePerM": 1.4,
|
|
814
|
+
"outputPricePerM": 4.4,
|
|
815
|
+
"notes": "Flagship, text-only, reasoning always on. Verified against the Coding Plan on 2026-09-03: the API answers and reports model=glm-5.3."
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
"id": "glm-5.3-flash",
|
|
819
|
+
"displayName": "GLM-5.3 Flash",
|
|
820
|
+
"contextWindow": 1000000,
|
|
821
|
+
"maxOutputTokens": 128000,
|
|
822
|
+
"supportsTools": true,
|
|
823
|
+
"supportsThinking": true,
|
|
824
|
+
"supportsVision": true,
|
|
825
|
+
"inputPricePerM": 0.15,
|
|
826
|
+
"outputPricePerM": 0.5,
|
|
827
|
+
"notes": "320B/18B MoE, natively multimodal, 3x the Coding Plan quota of GLM-5.3. Priced at the UNDISCOUNTED rate: z.ai's listed $0.075/$0.25 is a 50% promotion ending 2026-09-09."
|
|
828
|
+
}
|
|
829
|
+
],
|
|
830
|
+
"defaultModel": "glm-5.3",
|
|
831
|
+
"modelAliases": {
|
|
832
|
+
"opus": "glm-5.3",
|
|
833
|
+
"sonnet": "glm-5.3",
|
|
834
|
+
"haiku": "glm-5.3-flash"
|
|
835
|
+
},
|
|
836
|
+
"capabilities": {
|
|
837
|
+
"streaming": true,
|
|
838
|
+
"tools": true,
|
|
839
|
+
"thinking": true,
|
|
840
|
+
"vision": false,
|
|
841
|
+
"countTokens": false,
|
|
842
|
+
"promptCaching": true
|
|
843
|
+
},
|
|
844
|
+
"passthrough": {
|
|
845
|
+
"stripCacheControl": false,
|
|
846
|
+
"allowedBetas": [],
|
|
847
|
+
"anthropicVersion": "2023-06-01"
|
|
848
|
+
},
|
|
849
|
+
"engineEnv": {
|
|
850
|
+
"API_TIMEOUT_MS": "3000000"
|
|
851
|
+
},
|
|
852
|
+
"directCapable": true,
|
|
853
|
+
"phase": 1,
|
|
854
|
+
"enabled": true,
|
|
855
|
+
"docsUrl": "https://docs.z.ai/devpack/tool/claude",
|
|
856
|
+
"references": [
|
|
857
|
+
{
|
|
858
|
+
"label": "Claude Code integration (GLM Coding Plan)",
|
|
859
|
+
"url": "https://docs.z.ai/devpack/tool/claude",
|
|
860
|
+
"kind": "docs"
|
|
861
|
+
}
|
|
862
|
+
],
|
|
863
|
+
"notes": "Z.ai GLM Coding Plan speaks the Anthropic Messages API natively. Per the Z.ai Claude Code guide the opus/sonnet aliases map to GLM-4.7 and the engine needs a long API_TIMEOUT_MS (3000000). Plan tiers (Lite/Pro/Max) are concurrency-limited, not token-limited.",
|
|
864
|
+
"credentialVariants": [
|
|
865
|
+
{
|
|
866
|
+
"id": "payg",
|
|
867
|
+
"label": "Pay-as-you-go (API key)",
|
|
868
|
+
"baseUrl": "https://api.z.ai/api/anthropic"
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
"id": "token-plan",
|
|
872
|
+
"label": "GLM Coding Plan (subscription)",
|
|
873
|
+
"baseUrl": "https://api.z.ai/api/anthropic",
|
|
874
|
+
"notes": "Same endpoint and same key shape as pay-as-you-go — the plan changes how the calls are billed, not where they go. Kept as its own record so its prices, limits and cache TTL are set independently."
|
|
875
|
+
}
|
|
876
|
+
]
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
"id": "qwen",
|
|
880
|
+
"displayName": "Alibaba Cloud (Qwen)",
|
|
881
|
+
"kind": "anthropic-passthrough",
|
|
882
|
+
"route": "gateway",
|
|
883
|
+
"credentialClass": "api_key",
|
|
884
|
+
"baseUrl": "https://dashscope-intl.aliyuncs.com/apps/anthropic",
|
|
885
|
+
"messagesPath": "/v1/messages",
|
|
886
|
+
"auth": {
|
|
887
|
+
"header": "x-api-key"
|
|
888
|
+
},
|
|
889
|
+
"models": [
|
|
890
|
+
{
|
|
891
|
+
"id": "qwen3.8-max",
|
|
892
|
+
"displayName": "Qwen3.8 Max",
|
|
893
|
+
"contextWindow": 1000000,
|
|
894
|
+
"supportsTools": true,
|
|
895
|
+
"supportsThinking": true,
|
|
896
|
+
"supportsVision": true,
|
|
897
|
+
"inputPricePerM": 2,
|
|
898
|
+
"outputPricePerM": 6,
|
|
899
|
+
"notes": "Flagship. Singapore/International list price, flat (no context tier). Verified against the owner's Token Plan 2026-09-03: the API answers and reports model=qwen3.8-max. Console tag (owner, 2026-09-18): Visual Understanding."
|
|
900
|
+
},
|
|
901
|
+
{
|
|
902
|
+
"id": "qwen3.8-flash",
|
|
903
|
+
"displayName": "Qwen3.8 Flash",
|
|
904
|
+
"contextWindow": 1000000,
|
|
905
|
+
"supportsTools": true,
|
|
906
|
+
"supportsThinking": true,
|
|
907
|
+
"supportsVision": true,
|
|
908
|
+
"inputPricePerM": 0.15,
|
|
909
|
+
"outputPricePerM": 0.47,
|
|
910
|
+
"notes": "Fast tier. Singapore/International list price, flat. Verified on the Token Plan 2026-09-03. Console tag (owner, 2026-09-18): Visual Understanding."
|
|
911
|
+
},
|
|
912
|
+
{
|
|
913
|
+
"id": "qwen3.7-plus",
|
|
914
|
+
"displayName": "Qwen3.7 Plus",
|
|
915
|
+
"contextWindow": 1000000,
|
|
916
|
+
"supportsTools": true,
|
|
917
|
+
"supportsThinking": true,
|
|
918
|
+
"supportsVision": true,
|
|
919
|
+
"inputPricePerM": 1.2,
|
|
920
|
+
"outputPricePerM": 4.8,
|
|
921
|
+
"notes": "TIERED upstream: this is the >=256k price ($1.20/$4.80); below 256k prompt tokens Alibaba charges $0.40/$1.60. The cheaper tier is `models.price_tier_rule` (migration 0054); before it existed the row was declared at the high tier outright (the owner’s ruling of 2026-09-03). Console tag (owner, 2026-09-18): Visual Understanding."
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
"id": "qwen3.7-max",
|
|
925
|
+
"displayName": "Qwen3.7 Max",
|
|
926
|
+
"contextWindow": 1000000,
|
|
927
|
+
"supportsTools": true,
|
|
928
|
+
"supportsThinking": true,
|
|
929
|
+
"supportsVision": false,
|
|
930
|
+
"inputPricePerM": 2.5,
|
|
931
|
+
"outputPricePerM": 7.5,
|
|
932
|
+
"notes": "Previous flagship. Singapore/International list price, flat. Verified on the Token Plan 2026-09-03."
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"id": "qwen3.6-flash",
|
|
936
|
+
"displayName": "Qwen3.6 Flash",
|
|
937
|
+
"contextWindow": 1000000,
|
|
938
|
+
"supportsTools": true,
|
|
939
|
+
"supportsThinking": true,
|
|
940
|
+
"supportsVision": true,
|
|
941
|
+
"inputPricePerM": 1,
|
|
942
|
+
"outputPricePerM": 4,
|
|
943
|
+
"notes": "TIERED upstream: this is the >=256k price ($1.00/$4.00); below 256k prompt tokens Alibaba charges $0.25/$1.50. The cheaper tier is `models.price_tier_rule` (migration 0054). Console tags (owner, 2026-09-18): Reasoning Model, Visual Understanding."
|
|
944
|
+
},
|
|
945
|
+
{
|
|
946
|
+
"id": "deepseek-v4.1-flash",
|
|
947
|
+
"displayName": "DeepSeek V4.1 Flash (Alibaba)",
|
|
948
|
+
"contextWindow": 1000000,
|
|
949
|
+
"maxOutputTokens": 393216,
|
|
950
|
+
"supportsTools": true,
|
|
951
|
+
"supportsThinking": true,
|
|
952
|
+
"supportsVision": true,
|
|
953
|
+
"inputPricePerM": 0.3,
|
|
954
|
+
"outputPricePerM": 1.2,
|
|
955
|
+
"notes": "Served by Alibaba Cloud Model Studio on its own cloud (a hosted DeepSeek weight, not a broker — the same Anthropic-compatible endpoint and credential as Qwen; Alibaba's Anthropic Messages API page lists it). Singapore/International list price at the BUSY-hours rate; Alibaba charges half in idle hours ($0.15 in / $0.60 out), which is the off-peak cell for the admin. Cached input $0.03 busy, $0.015 idle. Owner, 2026-09-18: \"the alibaba has very interesting models we should add all followings\". Input modality: text and image (Alibaba's model page)."
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
"id": "deepseek-v4-pro-0813",
|
|
959
|
+
"displayName": "DeepSeek V4 Pro 0813 (Alibaba)",
|
|
960
|
+
"contextWindow": 1000000,
|
|
961
|
+
"maxOutputTokens": 393216,
|
|
962
|
+
"supportsTools": true,
|
|
963
|
+
"supportsThinking": true,
|
|
964
|
+
"supportsVision": false,
|
|
965
|
+
"inputPricePerM": 1.32,
|
|
966
|
+
"outputPricePerM": 3.96,
|
|
967
|
+
"notes": "Served by Alibaba Cloud Model Studio on its own cloud (a hosted DeepSeek weight, not a broker — the same Anthropic-compatible endpoint and credential as Qwen; Alibaba's Anthropic Messages API page lists it). Singapore/International list price at the BUSY-hours rate; Alibaba charges half in idle hours ($0.66 in / $1.98 out), which is the off-peak cell for the admin. Cached input $0.132 busy, $0.066 idle. Owner, 2026-09-18: \"the alibaba has very interesting models we should add all followings\". Thinking mode with a 393,216-token chain of thought (Alibaba's model page)."
|
|
968
|
+
},
|
|
969
|
+
{
|
|
970
|
+
"id": "deepseek-v4-pro",
|
|
971
|
+
"displayName": "DeepSeek V4 Pro (Alibaba)",
|
|
972
|
+
"contextWindow": 1000000,
|
|
973
|
+
"maxOutputTokens": 393216,
|
|
974
|
+
"supportsTools": true,
|
|
975
|
+
"supportsThinking": false,
|
|
976
|
+
"supportsVision": false,
|
|
977
|
+
"inputPricePerM": 2.4,
|
|
978
|
+
"outputPricePerM": 4.8,
|
|
979
|
+
"notes": "Served by Alibaba Cloud Model Studio on its own cloud (a hosted DeepSeek weight, not a broker — the same Anthropic-compatible endpoint and credential as Qwen). Singapore/International list price, flat ($2.40 in / $4.80 out, cached input $0.20). Alibaba's model page gives thinking mode to the 0813 snapshot only, so this row does not offer it even though the console tags the model 'Reasoning Model' (owner, 2026-09-18) — flip supportsThinking once a call with `thinking` is seen to succeed."
|
|
980
|
+
},
|
|
981
|
+
{
|
|
982
|
+
"id": "deepseek-v4-flash-0731",
|
|
983
|
+
"displayName": "DeepSeek V4 Flash 0731 (Alibaba)",
|
|
984
|
+
"contextWindow": 1000000,
|
|
985
|
+
"maxOutputTokens": 393216,
|
|
986
|
+
"supportsTools": true,
|
|
987
|
+
"supportsThinking": true,
|
|
988
|
+
"supportsVision": false,
|
|
989
|
+
"inputPricePerM": 0.44,
|
|
990
|
+
"outputPricePerM": 1.32,
|
|
991
|
+
"notes": "Served by Alibaba Cloud Model Studio on its own cloud (a hosted DeepSeek weight, not a broker — the same Anthropic-compatible endpoint and credential as Qwen; Alibaba's Anthropic Messages API page lists it). Singapore/International list price at the BUSY-hours rate; Alibaba charges half in idle hours ($0.22 in / $0.66 out), which is the off-peak cell for the admin. Cached input $0.044 busy, $0.022 idle. Owner, 2026-09-18: \"the alibaba has very interesting models we should add all followings\"."
|
|
992
|
+
},
|
|
993
|
+
{
|
|
994
|
+
"id": "glm-5.3",
|
|
995
|
+
"displayName": "GLM-5.3 (Alibaba)",
|
|
996
|
+
"contextWindow": 1048576,
|
|
997
|
+
"maxOutputTokens": 131072,
|
|
998
|
+
"supportsTools": true,
|
|
999
|
+
"supportsThinking": true,
|
|
1000
|
+
"supportsVision": false,
|
|
1001
|
+
"inputPricePerM": 1.4,
|
|
1002
|
+
"outputPricePerM": 4.4,
|
|
1003
|
+
"notes": "Served by Alibaba Cloud Model Studio on its own cloud (a hosted Zhipu weight, not a broker — the same Anthropic-compatible endpoint and credential as Qwen). Singapore/International list price, flat; cached input $0.28. 1,048,576 context, 131,072 output and chain-of-thought. Owner, 2026-09-18."
|
|
1004
|
+
},
|
|
1005
|
+
{
|
|
1006
|
+
"id": "glm-5.2",
|
|
1007
|
+
"displayName": "GLM-5.2 (Alibaba)",
|
|
1008
|
+
"contextWindow": 1048576,
|
|
1009
|
+
"maxOutputTokens": 131072,
|
|
1010
|
+
"supportsTools": true,
|
|
1011
|
+
"supportsThinking": true,
|
|
1012
|
+
"supportsVision": false,
|
|
1013
|
+
"inputPricePerM": 1.4,
|
|
1014
|
+
"outputPricePerM": 4.4,
|
|
1015
|
+
"notes": "Served by Alibaba Cloud Model Studio on its own cloud (a hosted Zhipu weight, not a broker — the same Anthropic-compatible endpoint and credential as Qwen). Singapore/International list price, flat; cached input $0.28. 1,048,576 context, 131,072 output and chain-of-thought. Owner, 2026-09-18."
|
|
1016
|
+
}
|
|
1017
|
+
],
|
|
1018
|
+
"defaultModel": "qwen3.8-max",
|
|
1019
|
+
"modelAliases": {
|
|
1020
|
+
"opus": "qwen3.8-max",
|
|
1021
|
+
"sonnet": "qwen3.8-max",
|
|
1022
|
+
"haiku": "qwen3.8-flash"
|
|
1023
|
+
},
|
|
1024
|
+
"capabilities": {
|
|
1025
|
+
"streaming": true,
|
|
1026
|
+
"tools": true,
|
|
1027
|
+
"thinking": true,
|
|
1028
|
+
"vision": false,
|
|
1029
|
+
"countTokens": false,
|
|
1030
|
+
"promptCaching": true,
|
|
1031
|
+
"promptCacheTtlSec": 300
|
|
1032
|
+
},
|
|
1033
|
+
"passthrough": {
|
|
1034
|
+
"stripCacheControl": false,
|
|
1035
|
+
"cacheChain": true,
|
|
1036
|
+
"allowedBetas": [],
|
|
1037
|
+
"anthropicVersion": "2023-06-01"
|
|
1038
|
+
},
|
|
1039
|
+
"directCapable": true,
|
|
1040
|
+
"userBaseUrl": true,
|
|
1041
|
+
"phase": 1,
|
|
1042
|
+
"enabled": true,
|
|
1043
|
+
"docsUrl": "https://www.alibabacloud.com/help/en/model-studio/claude-code",
|
|
1044
|
+
"notes": "Alibaba Cloud Model Studio (DashScope) serves Qwen over an Anthropic-compatible Messages endpoint, so a user’s own key runs host-direct and the pool needs no translator. Two credential records: a pay-as-you-go API key on the shared international host, and a Token Plan whose host is workspace-specific and must be pasted per credential. Mainland-China endpoint: https://dashscope.aliyuncs.com/apps/anthropic. Since 2026-09-18 the entry also lists the DeepSeek and Zhipu GLM models Alibaba hosts on its own cloud and serves over the same Anthropic-compatible endpoint (its Anthropic Messages API page lists them; the Token Plan covers them) — owner: \"the alibaba has very interesting models we should add all followings, and no need other qwen old models\". Guardrail 8 reads 'the company that trains OR SERVES the model': Model Studio runs these weights itself, which is serving, not brokering.",
|
|
1045
|
+
"keyFormat": "sk-... (Model Studio API key) / sk-ws-... (workspace key)",
|
|
1046
|
+
"credentialVariants": [
|
|
1047
|
+
{
|
|
1048
|
+
"id": "payg",
|
|
1049
|
+
"label": "Pay-as-you-go (API key)",
|
|
1050
|
+
"baseUrl": "https://dashscope-intl.aliyuncs.com/apps/anthropic",
|
|
1051
|
+
"keyFormat": "sk-...",
|
|
1052
|
+
"notes": "Mainland China is a different host: https://dashscope.aliyuncs.com/apps/anthropic. Paste it into Base URL on the credential."
|
|
1053
|
+
},
|
|
1054
|
+
{
|
|
1055
|
+
"id": "token-plan",
|
|
1056
|
+
"label": "Token Plan (subscription)",
|
|
1057
|
+
"keyFormat": "sk-ws-...",
|
|
1058
|
+
"notes": "A Token Plan is issued against a DEDICATED WORKSPACE and its host carries that workspace id — https://ws-<workspace>.<region>.maas.aliyuncs.com/apps/anthropic. It is therefore per-credential and deliberately has no default here: paste the console’s own Anthropic URL into Base URL when adding the key, or the request goes to the wrong workspace. Alibaba states the plan is for use inside coding tools only.",
|
|
1059
|
+
"baseUrl": "https://token-plan.ap-southeast-1.maas.aliyuncs.com/apps/anthropic"
|
|
1060
|
+
}
|
|
1061
|
+
],
|
|
1062
|
+
"references": [
|
|
1063
|
+
{
|
|
1064
|
+
"label": "Claude Code integration (Model Studio)",
|
|
1065
|
+
"url": "https://www.alibabacloud.com/help/en/model-studio/claude-code",
|
|
1066
|
+
"kind": "docs"
|
|
1067
|
+
},
|
|
1068
|
+
{
|
|
1069
|
+
"label": "Model Studio console",
|
|
1070
|
+
"url": "https://bailian.console.alibabacloud.com/",
|
|
1071
|
+
"kind": "console"
|
|
1072
|
+
},
|
|
1073
|
+
{
|
|
1074
|
+
"label": "Model pricing",
|
|
1075
|
+
"url": "https://www.alibabacloud.com/help/en/model-studio/models",
|
|
1076
|
+
"kind": "pricing"
|
|
1077
|
+
}
|
|
1078
|
+
]
|
|
1079
|
+
},
|
|
1080
|
+
{
|
|
1081
|
+
"id": "mimo",
|
|
1082
|
+
"displayName": "Xiaomi MiMo",
|
|
1083
|
+
"kind": "anthropic-passthrough",
|
|
1084
|
+
"route": "gateway",
|
|
1085
|
+
"credentialClass": "api_key",
|
|
1086
|
+
"baseUrl": "https://api.xiaomimimo.com/anthropic",
|
|
1087
|
+
"messagesPath": "/v1/messages",
|
|
1088
|
+
"auth": {
|
|
1089
|
+
"header": "authorization-bearer"
|
|
1090
|
+
},
|
|
1091
|
+
"models": [
|
|
1092
|
+
{
|
|
1093
|
+
"id": "mimo-v2.6-pro",
|
|
1094
|
+
"displayName": "MiMo v2.6 Pro",
|
|
1095
|
+
"contextWindow": 1000000,
|
|
1096
|
+
"maxOutputTokens": 128000,
|
|
1097
|
+
"supportsTools": true,
|
|
1098
|
+
"supportsThinking": true,
|
|
1099
|
+
"supportsVision": true,
|
|
1100
|
+
"notes": "The flagship of the V2.6 series, and what replaces mimo-v2.5-pro when that is withdrawn on 2026-10-21. 1M context, 128K max output, RPM 100 / TPM 10M, same price as the model it replaces ($0.435 / $0.87 per MTok overseas). Read from mimo.mi.com/models/en-US/mimo-v2.6-pro on 2026-09-22."
|
|
1101
|
+
},
|
|
1102
|
+
{
|
|
1103
|
+
"id": "mimo-v2.6-flash",
|
|
1104
|
+
"displayName": "MiMo v2.6 Flash",
|
|
1105
|
+
"contextWindow": 1000000,
|
|
1106
|
+
"maxOutputTokens": 128000,
|
|
1107
|
+
"supportsTools": true,
|
|
1108
|
+
"supportsThinking": true,
|
|
1109
|
+
"supportsVision": true,
|
|
1110
|
+
"notes": "The cheap half of the V2.6 series and what replaces mimo-v2.5. Same 1M context and 128K output as the Pro, a fifth of the price ($0.14 / $0.28 per MTok overseas). Read from mimo.mi.com/models/en-US/mimo-v2.6-flash on 2026-09-22."
|
|
1111
|
+
},
|
|
1112
|
+
{
|
|
1113
|
+
"id": "mimo-v2.5",
|
|
1114
|
+
"displayName": "MiMo v2.5",
|
|
1115
|
+
"supportsTools": true,
|
|
1116
|
+
"supportsThinking": true,
|
|
1117
|
+
"supportsVision": false,
|
|
1118
|
+
"notes": "WITHDRAWN BY XIAOMI on 2026-10-21 at 10:00 GMT+8 — the name stops working, so a chat pinned to it fails from that moment. mimo-v2.6-flash is the replacement at the same price. Verified present on api.xiaomimimo.com/v1/models 2026-08-31; it was missing here because this list is hand-maintained. Xiaomi's image-understanding guide lists this model as accepting images, which contradicts the false below; left as it stands because the model has weeks to live and changing it would change what the host lets you attach."
|
|
1119
|
+
},
|
|
1120
|
+
{
|
|
1121
|
+
"id": "mimo-v2.5-pro",
|
|
1122
|
+
"displayName": "MiMo v2.5 Pro",
|
|
1123
|
+
"supportsTools": true,
|
|
1124
|
+
"supportsThinking": true,
|
|
1125
|
+
"supportsVision": false,
|
|
1126
|
+
"notes": "WITHDRAWN BY XIAOMI on 2026-10-21 at 10:00 GMT+8, together with mimo-v2.5. mimo-v2.6-pro is the replacement, at the same price."
|
|
1127
|
+
}
|
|
1128
|
+
],
|
|
1129
|
+
"defaultModel": "mimo-v2.6-pro",
|
|
1130
|
+
"modelAliases": {
|
|
1131
|
+
"opus": "mimo-v2.6-pro",
|
|
1132
|
+
"sonnet": "mimo-v2.6-pro",
|
|
1133
|
+
"haiku": "mimo-v2.6-flash"
|
|
1134
|
+
},
|
|
1135
|
+
"capabilities": {
|
|
1136
|
+
"streaming": true,
|
|
1137
|
+
"tools": true,
|
|
1138
|
+
"thinking": true,
|
|
1139
|
+
"vision": true,
|
|
1140
|
+
"countTokens": false,
|
|
1141
|
+
"promptCaching": true
|
|
1142
|
+
},
|
|
1143
|
+
"passthrough": {
|
|
1144
|
+
"stripCacheControl": false,
|
|
1145
|
+
"allowedBetas": [],
|
|
1146
|
+
"anthropicVersion": "2023-06-01"
|
|
1147
|
+
},
|
|
1148
|
+
"directCapable": true,
|
|
1149
|
+
"phase": 1,
|
|
1150
|
+
"enabled": true,
|
|
1151
|
+
"docsUrl": "https://mimo.mi.com/docs/en-US/tokenplan/integration/claudecode",
|
|
1152
|
+
"keyFormat": "sk-... (pay-as-you-go) / tp-... (Token Plan)",
|
|
1153
|
+
"credentialVariants": [
|
|
1154
|
+
{
|
|
1155
|
+
"id": "payg",
|
|
1156
|
+
"label": "Pay-as-you-go (API key)",
|
|
1157
|
+
"baseUrl": "https://api.xiaomimimo.com/anthropic",
|
|
1158
|
+
"keyFormat": "sk-..."
|
|
1159
|
+
},
|
|
1160
|
+
{
|
|
1161
|
+
"id": "token-plan",
|
|
1162
|
+
"label": "Token Plan (subscription)",
|
|
1163
|
+
"baseUrl": "https://token-plan-sgp.xiaomimimo.com/anthropic",
|
|
1164
|
+
"keyFormat": "tp-...",
|
|
1165
|
+
"notes": "MiMo issues a DEDICATED base URL per plan and it is region-specific — the console shows it under 'Dedicated Base URL'. SGP is the default here because that is what a Token Plan is issued on outside mainland China; a plan on another region must paste its own URL into the Base URL field, which overrides this."
|
|
1166
|
+
}
|
|
1167
|
+
],
|
|
1168
|
+
"references": [
|
|
1169
|
+
{
|
|
1170
|
+
"label": "Claude Code integration (Token Plan)",
|
|
1171
|
+
"url": "https://mimo.mi.com/docs/en-US/tokenplan/integration/claudecode",
|
|
1172
|
+
"kind": "docs"
|
|
1173
|
+
}
|
|
1174
|
+
],
|
|
1175
|
+
"notes": "Xiaomi MiMo speaks the Anthropic Messages API natively. Two credential variants: pay-as-you-go API keys (sk-..., https://api.xiaomimimo.com/anthropic) and fixed Token Plan subscriptions (tp-..., https://token-plan-cn.xiaomimimo.com/anthropic). The V2 series is deprecated, and the V2.5 series follows it: Xiaomi withdraws mimo-v2.5 and mimo-v2.5-pro on 2026-10-21 at 10:00 GMT+8, after which those names stop working (mimo.mi.com/docs/en-US/price/pay-as-you-go, read 2026-09-22) - mimo-v2.6-flash and mimo-v2.6-pro replace them at identical prices. A third V2.6 model exists, mimo-v2.6-pro-ultraspeed, at ten times the Pro rate ($4.35 / $8.70); it is not listed here because nobody asked for it. A user's own key runs host-direct and the active variant's baseUrl is applied automatically. Model listing is NOT under this base URL: it answers at https://api.xiaomimimo.com/v1/models while chat is at /anthropic/v1/messages, and `modelsPath` can only be appended to `baseUrl` — so it is deliberately unset here, and the credential test uses its one-token ping instead.",
|
|
1176
|
+
"userBaseUrl": true
|
|
1177
|
+
},
|
|
1178
|
+
{
|
|
1179
|
+
"id": "gemini",
|
|
1180
|
+
"displayName": "Google Gemini",
|
|
1181
|
+
"kind": "gemini",
|
|
1182
|
+
"route": "gateway",
|
|
1183
|
+
"credentialClass": "api_key",
|
|
1184
|
+
"baseUrl": "https://generativelanguage.googleapis.com",
|
|
1185
|
+
"messagesPath": "/v1beta/models",
|
|
1186
|
+
"auth": {
|
|
1187
|
+
"header": "x-api-key"
|
|
1188
|
+
},
|
|
1189
|
+
"models": [
|
|
1190
|
+
{
|
|
1191
|
+
"id": "gemini-2.5-pro",
|
|
1192
|
+
"displayName": "Gemini 2.5 Pro",
|
|
1193
|
+
"contextWindow": 1048576,
|
|
1194
|
+
"supportsTools": true,
|
|
1195
|
+
"supportsThinking": true,
|
|
1196
|
+
"supportsVision": true
|
|
1197
|
+
},
|
|
1198
|
+
{
|
|
1199
|
+
"id": "gemini-2.5-flash",
|
|
1200
|
+
"displayName": "Gemini 2.5 Flash",
|
|
1201
|
+
"contextWindow": 1048576,
|
|
1202
|
+
"supportsTools": true,
|
|
1203
|
+
"supportsThinking": true,
|
|
1204
|
+
"supportsVision": true
|
|
1205
|
+
}
|
|
1206
|
+
],
|
|
1207
|
+
"defaultModel": "gemini-2.5-pro",
|
|
1208
|
+
"modelAliases": {
|
|
1209
|
+
"opus": "gemini-2.5-pro",
|
|
1210
|
+
"sonnet": "gemini-2.5-pro",
|
|
1211
|
+
"haiku": "gemini-2.5-flash"
|
|
1212
|
+
},
|
|
1213
|
+
"capabilities": {
|
|
1214
|
+
"streaming": true,
|
|
1215
|
+
"tools": true,
|
|
1216
|
+
"thinking": true,
|
|
1217
|
+
"vision": true,
|
|
1218
|
+
"countTokens": true,
|
|
1219
|
+
"promptCaching": true
|
|
1220
|
+
},
|
|
1221
|
+
"phase": 2,
|
|
1222
|
+
"enabled": false,
|
|
1223
|
+
"docsUrl": "https://ai.google.dev/gemini-api/docs"
|
|
1224
|
+
}
|
|
1225
|
+
]
|
|
1226
|
+
}
|