usage-tab 1.1.0 → 1.2.0

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/dist/index.js CHANGED
@@ -221,7 +221,7 @@ function selectPricingPeriod(periods, at, identity) {
221
221
  }
222
222
 
223
223
  // ../../internal/model-registry/src/generated/registry.ts
224
- var REGISTRY_VERSION = "registry-5af85ce1a47be918";
224
+ var REGISTRY_VERSION = "registry-e5f4ec7eb681a235";
225
225
  var MODEL_REGISTRY = [
226
226
  {
227
227
  canonicalId: "claude-fable-5",
@@ -230,9 +230,30 @@ var MODEL_REGISTRY = [
230
230
  family: "fable",
231
231
  contextWindow: 1e6,
232
232
  pricing: [
233
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "10.00", "output": "50.00", "cachedInput": "1.00", "cacheWrite": "12.50", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
233
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "10.00", "output": "50.00", "cachedInput": "1.00", "cacheWrite": "12.50", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
234
234
  ],
235
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05" }
235
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
236
+ },
237
+ {
238
+ canonicalId: "claude-fable-5-1",
239
+ provider: "anthropic",
240
+ aliases: [],
241
+ family: "fable",
242
+ contextWindow: 1e6,
243
+ pricing: [
244
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "10.00", "output": "50.00", "cachedInput": "0.25", "cacheWrite": "12.50", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "Cache hits are priced at 0.025x base input on this model (page footnote 1), not the 0.1x every other model uses - cachedInput is read from the table, not derived.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
245
+ ],
246
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
247
+ },
248
+ {
249
+ canonicalId: "claude-haiku-3-5",
250
+ provider: "anthropic",
251
+ aliases: [],
252
+ family: "haiku",
253
+ pricing: [
254
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.80", "output": "4.00", "cachedInput": "0.08", "cacheWrite": "1.00", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "Retired on Anthropic-operated platforms; the pricing page still publishes its rate and notes it remains available on Amazon Bedrock and Google Cloud. Included so historical usage can still be priced.", "This model predates 2026, so the conservative 2026-01-01 effectiveFrom cannot price usage from its actual lifetime; no rollout date was published on the source page. A future pass should source real dates before relying on historical lookups for it.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
255
+ ],
256
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
236
257
  },
237
258
  {
238
259
  canonicalId: "claude-haiku-4-5-20251001",
@@ -241,9 +262,59 @@ var MODEL_REGISTRY = [
241
262
  family: "haiku",
242
263
  contextWindow: 2e5,
243
264
  pricing: [
244
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.00", "output": "5.00", "cachedInput": "0.10", "cacheWrite": "1.25", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
265
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.00", "output": "5.00", "cachedInput": "0.10", "cacheWrite": "1.25", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
245
266
  ],
246
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05", "notes": ['canonicalId is the full dated snapshot id; "claude-haiku-4-5" is the short alias Anthropic documents alongside it \u2014 a genuine alias/canonical-ID resolution case.'] }
267
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["canonicalId is the dated snapshot id published on the models overview page; claude-haiku-4-5 is the alias that resolves to it."] }
268
+ },
269
+ {
270
+ canonicalId: "claude-mythos-5",
271
+ provider: "anthropic",
272
+ aliases: [],
273
+ family: "mythos",
274
+ pricing: [
275
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "10.00", "output": "50.00", "cachedInput": "1.00", "cacheWrite": "12.50", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "Limited availability model (page links it to anthropic.com/glasswing); its published rate is recorded as-is.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
276
+ ],
277
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
278
+ },
279
+ {
280
+ canonicalId: "claude-mythos-5-1",
281
+ provider: "anthropic",
282
+ aliases: [],
283
+ family: "mythos",
284
+ pricing: [
285
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "10.00", "output": "50.00", "cachedInput": "0.25", "cacheWrite": "12.50", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "Limited availability model (page links it to anthropic.com/glasswing); its published rate is recorded as-is.", "Cache hits are priced at 0.025x base input on this model (page footnote 1), not the 0.1x every other model uses - cachedInput is read from the table, not derived.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
286
+ ],
287
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
288
+ },
289
+ {
290
+ canonicalId: "claude-opus-4",
291
+ provider: "anthropic",
292
+ aliases: [],
293
+ family: "opus",
294
+ pricing: [
295
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "15.00", "output": "75.00", "cachedInput": "1.50", "cacheWrite": "18.75", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "Retired on Anthropic-operated platforms; the pricing page still publishes its rate and notes it remains available on Google Cloud. Included so historical usage can still be priced.", "This model predates 2026, so the conservative 2026-01-01 effectiveFrom cannot price usage from its actual lifetime; no rollout date was published on the source page. A future pass should source real dates before relying on historical lookups for it.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
296
+ ],
297
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
298
+ },
299
+ {
300
+ canonicalId: "claude-opus-4-1",
301
+ provider: "anthropic",
302
+ aliases: [],
303
+ family: "opus",
304
+ pricing: [
305
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "15.00", "output": "75.00", "cachedInput": "1.50", "cacheWrite": "18.75", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "Retired on Anthropic-operated platforms; the pricing page still publishes its rate and notes it remains available on Amazon Bedrock and Google Cloud. Included so historical usage can still be priced.", "This model predates 2026, so the conservative 2026-01-01 effectiveFrom cannot price usage from its actual lifetime; no rollout date was published on the source page. A future pass should source real dates before relying on historical lookups for it.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
306
+ ],
307
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
308
+ },
309
+ {
310
+ canonicalId: "claude-opus-4-5",
311
+ provider: "anthropic",
312
+ aliases: [],
313
+ family: "opus",
314
+ pricing: [
315
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "25.00", "cachedInput": "0.50", "cacheWrite": "6.25", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
316
+ ],
317
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
247
318
  },
248
319
  {
249
320
  canonicalId: "claude-opus-4-6",
@@ -252,9 +323,9 @@ var MODEL_REGISTRY = [
252
323
  family: "opus",
253
324
  contextWindow: 1e6,
254
325
  pricing: [
255
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "25.00", "cachedInput": "0.50", "cacheWrite": "6.25", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
326
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "25.00", "cachedInput": "0.50", "cacheWrite": "6.25", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
256
327
  ],
257
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05" }
328
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
258
329
  },
259
330
  {
260
331
  canonicalId: "claude-opus-4-7",
@@ -263,9 +334,9 @@ var MODEL_REGISTRY = [
263
334
  family: "opus",
264
335
  contextWindow: 1e6,
265
336
  pricing: [
266
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "25.00", "cachedInput": "0.50", "cacheWrite": "6.25", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
337
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "25.00", "cachedInput": "0.50", "cacheWrite": "6.25", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
267
338
  ],
268
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05" }
339
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
269
340
  },
270
341
  {
271
342
  canonicalId: "claude-opus-4-8",
@@ -274,9 +345,9 @@ var MODEL_REGISTRY = [
274
345
  family: "opus",
275
346
  contextWindow: 1e6,
276
347
  pricing: [
277
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "25.00", "cachedInput": "0.50", "cacheWrite": "6.25", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
348
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "25.00", "cachedInput": "0.50", "cacheWrite": "6.25", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
278
349
  ],
279
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05" }
350
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
280
351
  },
281
352
  {
282
353
  canonicalId: "claude-opus-5",
@@ -285,9 +356,29 @@ var MODEL_REGISTRY = [
285
356
  family: "opus",
286
357
  contextWindow: 1e6,
287
358
  pricing: [
288
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "25.00", "cachedInput": "0.50", "cacheWrite": "6.25", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
359
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "25.00", "cachedInput": "0.50", "cacheWrite": "6.25", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
360
+ ],
361
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
362
+ },
363
+ {
364
+ canonicalId: "claude-sonnet-4",
365
+ provider: "anthropic",
366
+ aliases: [],
367
+ family: "sonnet",
368
+ pricing: [
369
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "3.00", "output": "15.00", "cachedInput": "0.30", "cacheWrite": "3.75", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "Retired on Anthropic-operated platforms; the pricing page still publishes its rate and notes it remains available on Amazon Bedrock and Google Cloud. Included so historical usage can still be priced.", "This model predates 2026, so the conservative 2026-01-01 effectiveFrom cannot price usage from its actual lifetime; no rollout date was published on the source page. A future pass should source real dates before relying on historical lookups for it.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
289
370
  ],
290
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05" }
371
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
372
+ },
373
+ {
374
+ canonicalId: "claude-sonnet-4-5",
375
+ provider: "anthropic",
376
+ aliases: [],
377
+ family: "sonnet",
378
+ pricing: [
379
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "3.00", "output": "15.00", "cachedInput": "0.30", "cacheWrite": "3.75", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
380
+ ],
381
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
291
382
  },
292
383
  {
293
384
  canonicalId: "claude-sonnet-4-6",
@@ -296,9 +387,9 @@ var MODEL_REGISTRY = [
296
387
  family: "sonnet",
297
388
  contextWindow: 1e6,
298
389
  pricing: [
299
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "3.00", "output": "15.00", "cachedInput": "0.30", "cacheWrite": "3.75", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
390
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "3.00", "output": "15.00", "cachedInput": "0.30", "cacheWrite": "3.75", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ["Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
300
391
  ],
301
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05" }
392
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
302
393
  },
303
394
  {
304
395
  canonicalId: "claude-sonnet-5",
@@ -307,10 +398,9 @@ var MODEL_REGISTRY = [
307
398
  family: "sonnet",
308
399
  contextWindow: 1e6,
309
400
  pricing: [
310
- { "effectiveFrom": "2026-01-01", "effectiveTo": "2026-09-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "10.00", "cachedInput": "0.20", "cacheWrite": "2.50", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05", "notes": ["Introductory rate, confirmed active through 2026-08-31. This is the golden fixture for effective-date selection (see test/pricing-period.test.ts): a lookup dated 2026-08-15 must select this period.", "effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true introductory-rate start date; only the 2026-08-31 end date was observed.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] },
311
- { "effectiveFrom": "2026-09-01", "currency": "USD", "unit": "per-million-tokens", "input": "3.00", "output": "15.00", "cachedInput": "0.30", "cacheWrite": "3.75", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05", "notes": ["Standard rate, effective 2026-09-01 immediately after the introductory-rate window (through 2026-08-31) ends. A lookup dated 2026-09-15 must select this period.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
401
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "10.00", "cachedInput": "0.20", "cacheWrite": "2.50", "batchMultiplier": "0.5", "sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07", "notes": ['$2.00/$10.00 launched as an introductory rate through 2026-08-31. On 2026-09-07 the pricing page states it "is now the standard price" and that "the previously scheduled increase to $3/$15 per million input/output tokens on September 1, 2026 will not occur", so the rate continues open-ended rather than ending 2026-08-31.', "Supersedes the two-period shape recorded on 2026-08-05 (introductory $2.00/$10.00 to 2026-09-01, then standard $3.00/$15.00). That second period was removed, not closed: the higher rate never took effect, so no date range may report it.", "Anthropic did not publish an explicit effective date for this rate as observed; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "cacheWrite reflects the 5-minute cache TTL (1.25x input). The 1-hour TTL write multiplier is 2x input and is not separately modeled by this schema (a single cacheWrite field)."] }
312
402
  ],
313
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05", "notes": ["Two pricing periods on purpose: an introductory rate ($2.00/$10.00) through 2026-08-31, then the standard rate ($3.00/$15.00) from 2026-09-01."] }
403
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
314
404
  },
315
405
  {
316
406
  canonicalId: "amazon-nova-lite",
@@ -318,7 +408,7 @@ var MODEL_REGISTRY = [
318
408
  aliases: [],
319
409
  family: "amazon-nova",
320
410
  pricing: [
321
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.60", "output": "2.40", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05", "notes": ["No explicit effective date published for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Same cross-region/in-region caveat as amazon-nova-micro."] }
411
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.60", "output": "2.40", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05", "notes": ["No explicit effective date published for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Same cross-region/in-region caveat as amazon-nova-micro.", "Not surfaced by the 2026-09-07 fetch of the same page, whose accessible sections did not include this model. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal."] }
322
412
  ],
323
413
  source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
324
414
  },
@@ -328,7 +418,7 @@ var MODEL_REGISTRY = [
328
418
  aliases: [],
329
419
  family: "amazon-nova",
330
420
  pricing: [
331
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "1.20", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05", "notes": [`AWS's own first-party model (Amazon publishes both Bedrock and Nova), so "aws-bedrock" is effectively first-party pricing here, unlike the resold third-party models in this file.`, "No explicit effective date published for this specific rate (unlike the Claude 3.5 Sonnet rows above, which do carry a stated Dec 2025 date); effectiveFrom is set conservatively to 2026-01-01.", `Bedrock's pricing page also distinguishes "Global cross-region" vs "in-region" inference pricing for Nova; this rate was not confirmed to be specifically the in-region (vs cross-region) figure \u2014 treat as the headline on-demand rate observed.`] }
421
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "1.20", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05", "notes": [`AWS's own first-party model (Amazon publishes both Bedrock and Nova), so "aws-bedrock" is effectively first-party pricing here, unlike the resold third-party models in this file.`, "No explicit effective date published for this specific rate (unlike the Claude 3.5 Sonnet rows above, which do carry a stated Dec 2025 date); effectiveFrom is set conservatively to 2026-01-01.", `Bedrock's pricing page also distinguishes "Global cross-region" vs "in-region" inference pricing for Nova; this rate was not confirmed to be specifically the in-region (vs cross-region) figure \u2014 treat as the headline on-demand rate observed.`, "Not surfaced by the 2026-09-07 fetch of the same page, whose accessible sections did not include this model. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal."] }
332
422
  ],
333
423
  source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
334
424
  },
@@ -338,7 +428,7 @@ var MODEL_REGISTRY = [
338
428
  aliases: [],
339
429
  family: "amazon-nova",
340
430
  pricing: [
341
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.20", "output": "4.80", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05", "notes": ["No explicit effective date published for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Same cross-region/in-region caveat as amazon-nova-micro."] }
431
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.20", "output": "4.80", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05", "notes": ["No explicit effective date published for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Same cross-region/in-region caveat as amazon-nova-micro.", "Not surfaced by the 2026-09-07 fetch of the same page, whose accessible sections did not include this model. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal."] }
342
432
  ],
343
433
  source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
344
434
  },
@@ -348,9 +438,9 @@ var MODEL_REGISTRY = [
348
438
  aliases: [],
349
439
  family: "anthropic-claude",
350
440
  pricing: [
351
- { "effectiveFrom": "2025-12-01", "currency": "USD", "unit": "per-million-tokens", "input": "6.00", "output": "30.00", "batchMultiplier": "0.5", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05", "notes": [`AWS Bedrock's own rate card for this Anthropic model, explicitly labeled "Effective 1 Dec 2025" on the pricing page \u2014 a real, confirmed effective date, not the conservative default used elsewhere in this file.`, "Batch: $3.00/$15.00 (confirmed 0.5x standard) as observed on the same page.", "This is Bedrock's own price for an older Claude generation (3.5 Sonnet), not the current claude-sonnet-5 model in anthropic.json \u2014 no comparable first-party entry exists in this registry for the same model, so no direct parity claim is possible or intended. Bedrock and Azure resell other vendors' models under their own rate cards, so a first-party price is never a safe proxy for theirs."] }
441
+ { "effectiveFrom": "2025-12-01", "currency": "USD", "unit": "per-million-tokens", "input": "6.00", "output": "30.00", "batchMultiplier": "0.5", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07", "notes": [`AWS Bedrock's own rate card for this Anthropic model, explicitly labeled "Effective 1 Dec 2025" on the pricing page \u2014 a real, confirmed effective date, not the conservative default used elsewhere in this file.`, "Batch: $3.00/$15.00 (confirmed 0.5x standard) as observed on the same page.", "This is Bedrock's own price for an older Claude generation (3.5 Sonnet), not the current claude-sonnet-5 model in anthropic.json \u2014 no comparable first-party entry exists in this registry for the same model, so no direct parity claim is possible or intended. Bedrock and Azure resell other vendors' models under their own rate cards, so a first-party price is never a safe proxy for theirs.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
352
442
  ],
353
- source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
443
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
354
444
  },
355
445
  {
356
446
  canonicalId: "claude-3.5-sonnet-v2",
@@ -358,9 +448,29 @@ var MODEL_REGISTRY = [
358
448
  aliases: [],
359
449
  family: "anthropic-claude",
360
450
  pricing: [
361
- { "effectiveFrom": "2025-12-01", "currency": "USD", "unit": "per-million-tokens", "input": "6.00", "output": "30.00", "cachedInput": "0.60", "cacheWrite": "7.50", "batchMultiplier": "0.5", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05", "notes": [`AWS Bedrock's own rate card, explicitly labeled "Effective 1 Dec 2025" on the pricing page.`, "Batch: $3.00/$15.00 (confirmed 0.5x standard) as observed on the same page.", "Bedrock's own price for an older Claude generation; not comparable to any first-party entry currently in anthropic.json (which covers 4.x/5.x models only)."] }
451
+ { "effectiveFrom": "2025-12-01", "currency": "USD", "unit": "per-million-tokens", "input": "6.00", "output": "30.00", "cachedInput": "0.60", "cacheWrite": "7.50", "batchMultiplier": "0.5", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07", "notes": [`AWS Bedrock's own rate card, explicitly labeled "Effective 1 Dec 2025" on the pricing page.`, "Batch: $3.00/$15.00 (confirmed 0.5x standard) as observed on the same page.", "Bedrock's own price for an older Claude generation; not comparable to any first-party entry currently in anthropic.json (which covers 4.x/5.x models only).", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
362
452
  ],
363
- source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
453
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
454
+ },
455
+ {
456
+ canonicalId: "gemma-3-12b",
457
+ provider: "aws-bedrock",
458
+ aliases: [],
459
+ family: "gemma",
460
+ pricing: [
461
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.09", "output": "0.29", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07", "notes": ["Bedrock's own resale rate for this google model, read from Bedrock's pricing page - never copied from that vendor's first-party file.", "Added from the 2026-09-07 fetch; effectiveFrom is the observation date, since the 2026-08-05 fetch of the same page did not surface it.", "US East on-demand rate as printed; Bedrock prices some models per region and this schema has no region dimension."] }
462
+ ],
463
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
464
+ },
465
+ {
466
+ canonicalId: "gemma-3-27b",
467
+ provider: "aws-bedrock",
468
+ aliases: [],
469
+ family: "gemma",
470
+ pricing: [
471
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.23", "output": "0.38", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07", "notes": ["Bedrock's own resale rate for this google model, read from Bedrock's pricing page - never copied from that vendor's first-party file.", "Added from the 2026-09-07 fetch; effectiveFrom is the observation date, since the 2026-08-05 fetch of the same page did not surface it.", "US East on-demand rate as printed; Bedrock prices some models per region and this schema has no region dimension."] }
472
+ ],
473
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
364
474
  },
365
475
  {
366
476
  canonicalId: "gemma-4-31b",
@@ -368,9 +478,9 @@ var MODEL_REGISTRY = [
368
478
  aliases: [],
369
479
  family: "google-gemma",
370
480
  pricing: [
371
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.14", "output": "0.40", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05", "notes": ["No explicit effective date published for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'Cross-provider alias/canonicalId collision (allowed, not an error): Together AI also lists "Gemma 4 31B" (together.json: gemma-4-31b) at a different, higher rate ($0.39/$0.97 as observed) \u2014 same underlying Google open-weight model, independently priced by each reseller; do not assume parity.'] }
481
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.14", "output": "0.40", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07", "notes": ["No explicit effective date published for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'Cross-provider alias/canonicalId collision (allowed, not an error): Together AI also lists "Gemma 4 31B" (together.json: gemma-4-31b) at a different, higher rate ($0.39/$0.97 as observed) \u2014 same underlying Google open-weight model, independently priced by each reseller; do not assume parity.', "Re-confirmed unchanged on 2026-09-07 against the same page."] }
372
482
  ],
373
- source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
483
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
374
484
  },
375
485
  {
376
486
  canonicalId: "mistral-large-3",
@@ -378,9 +488,19 @@ var MODEL_REGISTRY = [
378
488
  aliases: [],
379
489
  family: "mistral",
380
490
  pricing: [
381
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05", "notes": ["No explicit effective date published for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Cross-provider alias/canonicalId collision (allowed, not an error): Mistral's own first-party pricing (mistral.json: mistral-large-3) shows the identical $0.50/$1.50 figure as independently observed \u2014 coincidental agreement between the two independently fetched sources, not assumed; both were confirmed directly."] }
491
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07", "notes": ["No explicit effective date published for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Cross-provider alias/canonicalId collision (allowed, not an error): Mistral's own first-party pricing (mistral.json: mistral-large-3) shows the identical $0.50/$1.50 figure as independently observed \u2014 coincidental agreement between the two independently fetched sources, not assumed; both were confirmed directly.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
382
492
  ],
383
- source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
493
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
494
+ },
495
+ {
496
+ canonicalId: "nemotron-3-super-120b",
497
+ provider: "aws-bedrock",
498
+ aliases: [],
499
+ family: "nemotron",
500
+ pricing: [
501
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.65", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07", "notes": ["Bedrock's own resale rate for this nvidia model, read from Bedrock's pricing page - never copied from that vendor's first-party file.", "Added from the 2026-09-07 fetch; effectiveFrom is the observation date, since the 2026-08-05 fetch of the same page did not surface it.", "US East on-demand rate as printed; Bedrock prices some models per region and this schema has no region dimension."] }
502
+ ],
503
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
384
504
  },
385
505
  {
386
506
  canonicalId: "nemotron-nano-2",
@@ -388,7 +508,7 @@ var MODEL_REGISTRY = [
388
508
  aliases: [],
389
509
  family: "nvidia-nemotron",
390
510
  pricing: [
391
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.06", "output": "0.23", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05", "notes": ["No explicit effective date published for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
511
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.06", "output": "0.23", "sourceUrl": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05", "notes": ["No explicit effective date published for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Not surfaced by the 2026-09-07 fetch of the same page, whose accessible sections did not include this model. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal."] }
392
512
  ],
393
513
  source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
394
514
  },
@@ -618,9 +738,9 @@ var MODEL_REGISTRY = [
618
738
  aliases: [],
619
739
  family: "gpt-5.6",
620
740
  pricing: [
621
- { "effectiveFrom": "2026-07-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "30.00", "cachedInput": "0.50", "cacheWrite": "6.25", "cheapestTier": true, "sourceUrl": "https://prices.azure.com/api/retail/prices?currencyCode='USD'&$filter=contains(productName,%20%27OpenAI%27)", "observedAt": "2026-08-05", "notes": ["retailPrice confirmed identical across all 24 Azure regions returned for this Global-deployment SKU (spot-checked programmatically, not just a couple of regions) \u2014 no regional price variation observed for the Global tier.", "No Batch API meter was found for this model/SKU in the Retail Prices API response; batchMultiplier is intentionally omitted rather than assumed.", `Matches OpenAI's own first-party rate for "gpt-5.6-sol" in openai.json exactly as observed ($5.00/$30.00/$0.50 cached) \u2014 no markup detected for this model on Azure's Global deployment tier.`, `canonicalId "gpt-5.6-sol" is deliberately identical to the same model's entry in openai.json \u2014 Azure genuinely resells the identical first-party OpenAI model, unlike AWS Bedrock's or OpenRouter's differently-branded catalogues. Following the aws-bedrock.json precedent (e.g. its "mistral-large-3" and "gemma-4-31b" entries) rather than OpenRouter's provider-prefixed-slug convention: this is an intentional cross-provider canonicalId collision, not an error. A bare lookup of this id without a provider qualifier is ambiguous by design and must fail, exactly as already documented for the aws-bedrock.json collisions, since a lookup with a duplicated canonicalId requires a provider qualifier to resolve unambiguously. Per this task's ownership boundary, openai.json itself was not modified to cross-reference this note; a follow-up pass should add a mirroring note there.`] }
741
+ { "effectiveFrom": "2026-07-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "30.00", "cachedInput": "0.50", "cacheWrite": "6.25", "cheapestTier": true, "sourceUrl": "https://prices.azure.com/api/retail/prices?currencyCode='USD'&$filter=contains(productName,%20%27OpenAI%27)", "observedAt": "2026-09-07", "notes": ["retailPrice confirmed identical across all 24 Azure regions returned for this Global-deployment SKU (spot-checked programmatically, not just a couple of regions) \u2014 no regional price variation observed for the Global tier.", "No Batch API meter was found for this model/SKU in the Retail Prices API response; batchMultiplier is intentionally omitted rather than assumed.", `canonicalId "gpt-5.6-sol" is deliberately identical to the same model's entry in openai.json \u2014 Azure genuinely resells the identical first-party OpenAI model, unlike AWS Bedrock's or OpenRouter's differently-branded catalogues. Following the aws-bedrock.json precedent (e.g. its "mistral-large-3" and "gemma-4-31b" entries) rather than OpenRouter's provider-prefixed-slug convention: this is an intentional cross-provider canonicalId collision, not an error. A bare lookup of this id without a provider qualifier is ambiguous by design and must fail, exactly as already documented for the aws-bedrock.json collisions, since a lookup with a duplicated canonicalId requires a provider qualifier to resolve unambiguously. Per this task's ownership boundary, openai.json itself was not modified to cross-reference this note; a follow-up pass should add a mirroring note there.`, `Re-observed 2026-09-07 via the Retail Prices API filtered to this model's meters ("5.6 sol ShortCo Inp Std Gl" $5.00, "5.6 sol ShortCo Opt Std Gl" $30.00, "5.6 sol ShortCo Cd Inp Std Gl" $0.50): unchanged.`, `NOW DIFFERS from OpenAI's own first-party rate in openai.json for the same canonicalId "gpt-5.6-sol". Both files recorded $5.00/$30.00/$0.50 on 2026-08-05; on 2026-09-07 OpenAI's pricing page published $4.00/$20.00/$0.40 while Azure's meters stayed at $5.00/$30.00/$0.50. Azure did not follow the first-party cut, so this joins gpt-5.6-terra and gpt-5.6-luna as a confirmed same-id price divergence rather than a transcription error.`, `The API also exposes "LongCo" (long-context) meters for this model at $10.00 input / $45.00 output Global Standard, alongside the "ShortCo" rates recorded here - the same context tiering OpenAI's page labels "<272K". This schema has no context-length dimension, so only the ShortCo tier is recorded.`] }
622
742
  ],
623
- source: { "url": "https://prices.azure.com/api/retail/prices?currencyCode='USD'&$filter=contains(productName,%20%27OpenAI%27)", "observedAt": "2026-08-05" }
743
+ source: { "url": "https://prices.azure.com/api/retail/prices?currencyCode='USD'&$filter=contains(productName,%20%27OpenAI%27)", "observedAt": "2026-09-07" }
624
744
  },
625
745
  {
626
746
  canonicalId: "gpt-5.6-terra",
@@ -718,9 +838,9 @@ var MODEL_REGISTRY = [
718
838
  aliases: [],
719
839
  family: "aya-expanse",
720
840
  pricing: [
721
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-08-05", "notes": ["Cohere's pricing page publishes an identical $0.50/$1.50 rate for both the 8B and 32B Aya Expanse sizes (confirmed by two independent re-fetches of the same page); this was double-checked rather than assumed to be an extraction error.", "effectiveFrom set conservatively to 2026-01-01; exact rate-effective date not published."] }
841
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-09-07", "notes": ["Cohere's pricing page publishes an identical $0.50/$1.50 rate for both the 8B and 32B Aya Expanse sizes (confirmed by two independent re-fetches of the same page); this was double-checked rather than assumed to be an extraction error.", "effectiveFrom set conservatively to 2026-01-01; exact rate-effective date not published.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
722
842
  ],
723
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
843
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
724
844
  },
725
845
  {
726
846
  canonicalId: "aya-expanse-8b",
@@ -728,9 +848,9 @@ var MODEL_REGISTRY = [
728
848
  aliases: [],
729
849
  family: "aya-expanse",
730
850
  pricing: [
731
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-08-05", "notes": ["Cohere's pricing page publishes an identical $0.50/$1.50 rate for both the 8B and 32B Aya Expanse sizes (confirmed by two independent re-fetches of the same page); this was double-checked rather than assumed to be an extraction error.", "effectiveFrom set conservatively to 2026-01-01; exact rate-effective date not published."] }
851
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-09-07", "notes": ["Cohere's pricing page publishes an identical $0.50/$1.50 rate for both the 8B and 32B Aya Expanse sizes (confirmed by two independent re-fetches of the same page); this was double-checked rather than assumed to be an extraction error.", "effectiveFrom set conservatively to 2026-01-01; exact rate-effective date not published.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
732
852
  ],
733
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
853
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
734
854
  },
735
855
  {
736
856
  canonicalId: "command",
@@ -738,9 +858,9 @@ var MODEL_REGISTRY = [
738
858
  aliases: [],
739
859
  family: "command",
740
860
  pricing: [
741
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.00", "output": "2.00", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-08-05", "notes": ["Cohere's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "This rate appears in the pricing page's FAQ/legacy-rates section, not a headline pricing table; it is nonetheless the only per-token price Cohere currently publishes for this model."] }
861
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.00", "output": "2.00", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-09-07", "notes": ["Cohere's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "This rate appears in the pricing page's FAQ/legacy-rates section, not a headline pricing table; it is nonetheless the only per-token price Cohere currently publishes for this model.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
742
862
  ],
743
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
863
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
744
864
  },
745
865
  {
746
866
  canonicalId: "command-light",
@@ -748,9 +868,9 @@ var MODEL_REGISTRY = [
748
868
  aliases: [],
749
869
  family: "command",
750
870
  pricing: [
751
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "0.60", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-08-05", "notes": ["Cohere's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'FAQ/legacy-rates section pricing, per the same caveat as "command".'] }
871
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "0.60", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-09-07", "notes": ["Cohere's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'FAQ/legacy-rates section pricing, per the same caveat as "command".', "Re-confirmed unchanged on 2026-09-07 against the same page."] }
752
872
  ],
753
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
873
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
754
874
  },
755
875
  {
756
876
  canonicalId: "command-r-03-2024",
@@ -758,9 +878,9 @@ var MODEL_REGISTRY = [
758
878
  aliases: [],
759
879
  family: "command-r",
760
880
  pricing: [
761
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-08-05", "notes": [`"03-2024" is Cohere's own dated-snapshot naming for this model, not a confirmed price-effective date; effectiveFrom is set conservatively to 2026-01-01 per this repository's convention (a too-early effectiveFrom is safe; the price could have applied earlier than 2026 but was not independently confirmed).`, "FAQ/legacy-rates section pricing."] }
881
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-09-07", "notes": [`"03-2024" is Cohere's own dated-snapshot naming for this model, not a confirmed price-effective date; effectiveFrom is set conservatively to 2026-01-01 per this repository's convention (a too-early effectiveFrom is safe; the price could have applied earlier than 2026 but was not independently confirmed).`, "FAQ/legacy-rates section pricing.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
762
882
  ],
763
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
883
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
764
884
  },
765
885
  {
766
886
  canonicalId: "command-r-plus-04-2024",
@@ -768,9 +888,9 @@ var MODEL_REGISTRY = [
768
888
  aliases: [],
769
889
  family: "command-r-plus",
770
890
  pricing: [
771
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "3.00", "output": "15.00", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-08-05", "notes": [`"04-2024" is Cohere's own dated-snapshot naming for this model, not a confirmed price-effective date; effectiveFrom is set conservatively to 2026-01-01.`, `FAQ/legacy-rates section pricing. Superseded in Cohere's catalogue by "Command R+ 08-2024" (below), a distinct dated snapshot with its own price \u2014 the two are not the same PricingPeriod for one model, they are two different canonicalIds, matching how Cohere itself lists them.`] }
891
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "3.00", "output": "15.00", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-09-07", "notes": [`"04-2024" is Cohere's own dated-snapshot naming for this model, not a confirmed price-effective date; effectiveFrom is set conservatively to 2026-01-01.`, `FAQ/legacy-rates section pricing. Superseded in Cohere's catalogue by "Command R+ 08-2024" (below), a distinct dated snapshot with its own price \u2014 the two are not the same PricingPeriod for one model, they are two different canonicalIds, matching how Cohere itself lists them.`, "Re-confirmed unchanged on 2026-09-07 against the same page."] }
772
892
  ],
773
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
893
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
774
894
  },
775
895
  {
776
896
  canonicalId: "command-r-plus-08-2024",
@@ -778,9 +898,9 @@ var MODEL_REGISTRY = [
778
898
  aliases: [],
779
899
  family: "command-r-plus",
780
900
  pricing: [
781
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.50", "output": "10.00", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-08-05", "notes": [`"08-2024" is Cohere's own dated-snapshot naming for this model, not a confirmed price-effective date; effectiveFrom is set conservatively to 2026-01-01.`, "FAQ/legacy-rates section pricing."] }
901
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.50", "output": "10.00", "sourceUrl": "https://cohere.com/pricing", "observedAt": "2026-09-07", "notes": [`"08-2024" is Cohere's own dated-snapshot naming for this model, not a confirmed price-effective date; effectiveFrom is set conservatively to 2026-01-01.`, "FAQ/legacy-rates section pricing.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
782
902
  ],
783
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
903
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
784
904
  },
785
905
  {
786
906
  canonicalId: "gemini-2.5-flash",
@@ -788,9 +908,9 @@ var MODEL_REGISTRY = [
788
908
  aliases: [],
789
909
  family: "gemini-2.5",
790
910
  pricing: [
791
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "2.50", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05", "notes": ["Standard (paid) tier rate. Priority tier is $0.54/$4.50 (1.8x standard); not modeled as a separate field.", "effectiveFrom set conservatively to 2026-01-01; exact rate-effective date not published.", "cachedInput omitted: not confirmed per-model.", "batchMultiplier of 0.5 verified directly from this model's own Batch row ($0.15/$1.25 vs standard $0.30/$2.50)."] }
911
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "2.50", "cachedInput": "0.03", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Google's page does not state when this rate took effect; effectiveFrom is set conservatively to 2026-01-01.", "Input and context-caching rates are the text/image/video rates. The page prices audio input separately ($1.00 input, $0.10 context caching); this schema has no per-modality dimension, so the audio rate is not recorded.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($0.15 / $1.25), not from a blanket statement.", "cachedInput is this model's own published context-caching rate. The page also charges a separate per-hour cache storage fee, which this per-token schema does not model."] }
792
912
  ],
793
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
913
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
794
914
  },
795
915
  {
796
916
  canonicalId: "gemini-2.5-flash-lite",
@@ -798,9 +918,9 @@ var MODEL_REGISTRY = [
798
918
  aliases: [],
799
919
  family: "gemini-2.5",
800
920
  pricing: [
801
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.10", "output": "0.40", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05", "notes": ["Standard (paid) tier rate.", "effectiveFrom set conservatively to 2026-01-01; exact rate-effective date not published.", "cachedInput omitted: not confirmed per-model.", "batchMultiplier of 0.5 verified directly from this model's own Batch row ($0.05/$0.20 vs standard $0.10/$0.40)."] }
921
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.10", "output": "0.40", "cachedInput": "0.01", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Google's page does not state when this rate took effect; effectiveFrom is set conservatively to 2026-01-01.", "Input and context-caching rates are the text/image/video rates. The page prices audio input separately ($0.30 input, $0.03 context caching); this schema has no per-modality dimension, so the audio rate is not recorded.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($0.05 / $0.20), not from a blanket statement.", "cachedInput is this model's own published context-caching rate. The page also charges a separate per-hour cache storage fee, which this per-token schema does not model."] }
802
922
  ],
803
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
923
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
804
924
  },
805
925
  {
806
926
  canonicalId: "gemini-2.5-pro",
@@ -808,9 +928,19 @@ var MODEL_REGISTRY = [
808
928
  aliases: [],
809
929
  family: "gemini-2.5",
810
930
  pricing: [
811
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.25", "output": "10.00", "cheapestTier": true, "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05", "notes": ["This is the standard-tier rate for prompts <= 200k tokens. For prompts > 200k tokens the page publishes a higher rate ($2.50 input / $15.00 output per 1M tokens) \u2014 this schema has no context-length-tiered pricing field, so only the <=200k (lower) tier is recorded here. Do not use this entry for long-context (>200k) requests.", "cachedInput and batchMultiplier are omitted: not confirmed for this Pro-tier model (the page states Batch/Flex give a general 50% reduction on input/output pricing, but no explicit per-model Batch row for this model was independently verified).", "effectiveFrom set conservatively to 2026-01-01; exact rate-effective date not published."] }
931
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.25", "output": "10.00", "cachedInput": "0.125", "batchMultiplier": "0.5", "cheapestTier": true, "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Google's page does not state when this rate took effect; effectiveFrom is set conservatively to 2026-01-01.", "The page prices prompts >200k tokens higher ($2.50 input / $15.00 output / $0.25 context caching); only the <=200k tier is recorded, since this schema has no context-length dimension.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($0.625 / $5.00), not from a blanket statement.", "cachedInput is this model's own published context-caching rate. The page also charges a separate per-hour cache storage fee, which this per-token schema does not model.", "batchMultiplier and cachedInput added on 2026-09-07: the page now publishes this model's own Batch and context-caching rows, which were not confirmed per-model on 2026-08-05."] }
932
+ ],
933
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
934
+ },
935
+ {
936
+ canonicalId: "gemini-3.1-flash-lite",
937
+ provider: "google",
938
+ aliases: [],
939
+ family: "gemini-3.1",
940
+ pricing: [
941
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.25", "output": "1.50", "cachedInput": "0.025", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["New model: absent from the pricing page on 2026-08-05, present on 2026-09-07. effectiveFrom is the observation date rather than a backdated guess.", "Input and context-caching rates are the text/image/video rates. The page prices audio input separately ($0.50 input, $0.05 context caching); this schema has no per-modality dimension, so the audio rate is not recorded.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($0.125 / $0.75), not from a blanket statement.", "cachedInput is this model's own published context-caching rate. The page also charges a separate per-hour cache storage fee, which this per-token schema does not model."] }
812
942
  ],
813
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
943
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
814
944
  },
815
945
  {
816
946
  canonicalId: "gemini-3.1-pro-preview",
@@ -818,9 +948,9 @@ var MODEL_REGISTRY = [
818
948
  aliases: [],
819
949
  family: "gemini-3.1",
820
950
  pricing: [
821
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "12.00", "cheapestTier": true, "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05", "notes": ["This is the standard-tier rate for prompts <= 200k tokens. For prompts > 200k tokens the page publishes a higher rate ($4.00 input / $18.00 output per 1M tokens) \u2014 this schema has no context-length-tiered pricing field, so only the <=200k (lower) tier is recorded here. Do not use this entry for long-context (>200k) requests.", "cachedInput and batchMultiplier are omitted: not confirmed for this Pro-tier model (unlike the Flash-tier models above, no explicit per-model Batch row was found for this model).", 'effectiveFrom set conservatively to 2026-01-01; exact rate-effective date not published. "-preview" in the model name suggests this may be short-lived/subject to change.', 'canonicalId uses the exact model name Google publishes on the pricing page ("Gemini 3.1 Pro Preview").'] }
951
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "12.00", "cachedInput": "0.20", "batchMultiplier": "0.5", "cheapestTier": true, "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Google's page does not state when this rate took effect; effectiveFrom is set conservatively to 2026-01-01.", "The page prices prompts >200k tokens higher ($4.00 input / $18.00 output / $0.40 context caching); only the <=200k tier is recorded, since this schema has no context-length dimension.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($1.00 / $6.00), not from a blanket statement.", "cachedInput is this model's own published context-caching rate. The page also charges a separate per-hour cache storage fee, which this per-token schema does not model.", "batchMultiplier and cachedInput added on 2026-09-07: the page now publishes this model's own Batch and context-caching rows, which were not confirmed per-model on 2026-08-05."] }
822
952
  ],
823
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
953
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
824
954
  },
825
955
  {
826
956
  canonicalId: "gemini-3.5-flash",
@@ -828,9 +958,9 @@ var MODEL_REGISTRY = [
828
958
  aliases: [],
829
959
  family: "gemini-3.5",
830
960
  pricing: [
831
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.50", "output": "9.00", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05", "notes": ["Standard (paid) tier rate. Priority tier is $2.70/$16.20 (1.8x standard); not modeled as a separate field.", 'effectiveFrom set conservatively to 2026-01-01; page shows a "Last Updated: July 30, 2026" stamp but not a rate-specific effective date.', "cachedInput omitted: not confirmed per-model (see gemini-3.6-flash notes for the same caveat).", "batchMultiplier of 0.5 verified directly from this model's own Batch row ($0.75/$4.50 vs standard $1.50/$9.00)."] }
961
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.50", "output": "9.00", "cachedInput": "0.15", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Google's page does not state when this rate took effect; effectiveFrom is set conservatively to 2026-01-01.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($0.75 / $4.50), not from a blanket statement.", "cachedInput is this model's own published context-caching rate. The page also charges a separate per-hour cache storage fee, which this per-token schema does not model.", "cachedInput added on 2026-09-07: the page now publishes a per-model context-caching rate, which it did not on 2026-08-05."] }
832
962
  ],
833
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
963
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
834
964
  },
835
965
  {
836
966
  canonicalId: "gemini-3.5-flash-lite",
@@ -838,9 +968,9 @@ var MODEL_REGISTRY = [
838
968
  aliases: [],
839
969
  family: "gemini-3.5",
840
970
  pricing: [
841
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "2.50", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05", "notes": ["Standard (paid) tier rate. Priority tier is $0.54/$4.50 (1.8x standard); not modeled as a separate field.", "effectiveFrom set conservatively to 2026-01-01; exact rate-effective date not published.", "cachedInput omitted: not confirmed per-model.", "batchMultiplier of 0.5 verified directly from this model's own Batch row ($0.15/$1.25 vs standard $0.30/$2.50)."] }
971
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "2.50", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Google's page does not state when this rate took effect; effectiveFrom is set conservatively to 2026-01-01.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($0.15 / $1.25), not from a blanket statement.", "No context-caching rate is published for this model; cachedInput is omitted rather than inferred from a sibling model."] }
842
972
  ],
843
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
973
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
844
974
  },
845
975
  {
846
976
  canonicalId: "gemini-3.6-flash",
@@ -848,9 +978,33 @@ var MODEL_REGISTRY = [
848
978
  aliases: [],
849
979
  family: "gemini-3.6",
850
980
  pricing: [
851
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.50", "output": "7.50", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05", "notes": ["Standard (paid) tier rate. The page also lists Flex and Priority tiers, which this schema does not model as separate fields: Flex is priced the same as Batch ($0.75/$3.75); Priority is $2.70/$13.50 (1.8x standard).", `Google's page shows "Last Updated: July 30, 2026 UTC" but does not state when this specific rate took effect; effectiveFrom is set conservatively to 2026-01-01.`, `cachedInput (context caching) is omitted: the page states a general "$0.15 per 1M cached input tokens" figure covering multiple models but does not confirm it is this specific model's rate, plus a separate per-hour storage fee this schema does not model. Recording an unconfirmed number would be worse than omitting it.`, "batchMultiplier of 0.5 was verified directly from this model's own Batch row ($0.75/$3.75 vs standard $1.50/$7.50)."] }
981
+ { "effectiveFrom": "2026-01-01", "effectiveTo": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "1.50", "output": "7.50", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Supersedes the single $1.50 / $7.50 period recorded on 2026-08-05. That rate was live then and is scheduled to return on 2027-01-01, so it is kept as a closed historical period rather than deleted.", "Recorded 2026-08-05 at $1.50 / $7.50 with no cachedInput; the page did not then publish a per-model context-caching rate. Closed at the 2026-09-07 observation date, the last date the promotional rate is known not to have applied being 2026-08-05.", "Google's page does not state when this rate took effect; effectiveFrom is set conservatively to 2026-01-01."] },
982
+ { "effectiveFrom": "2026-09-07", "effectiveTo": "2027-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.75", "output": "3.75", "cachedInput": "0.075", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Promotional rate published as running through 2026-12-31, with the standard rate resuming 2027-01-01 - both dates are stated on the page, so this period's effectiveTo and the next period's effectiveFrom are sourced, not conservative placeholders.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($0.375 / $1.875 promo, $0.75 / $3.75 standard), not from a blanket statement.", "cachedInput is this model's own published context-caching rate. The page also charges a separate per-hour cache storage fee, which this per-token schema does not model."] },
983
+ { "effectiveFrom": "2027-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.50", "output": "7.50", "cachedInput": "0.15", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Standard rate resuming 2027-01-01, the date the page publishes for the end of the promotional rate.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($0.375 / $1.875 promo, $0.75 / $3.75 standard), not from a blanket statement.", "cachedInput is this model's own published context-caching rate. The page also charges a separate per-hour cache storage fee, which this per-token schema does not model."] }
984
+ ],
985
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Three periods: the $1.50/$7.50 rate observed 2026-08-05, the $0.75/$3.75 promotional rate observed 2026-09-07 and published as running through 2026-12-31, then the standard rate resuming 2027-01-01."] }
986
+ },
987
+ {
988
+ canonicalId: "gemini-3.7-flash",
989
+ provider: "google",
990
+ aliases: [],
991
+ family: "gemini-3.7",
992
+ pricing: [
993
+ { "effectiveFrom": "2026-09-07", "effectiveTo": "2027-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.75", "output": "3.75", "cachedInput": "0.075", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["New model: absent from the pricing page on 2026-08-05, present on 2026-09-07. effectiveFrom is the observation date rather than a backdated guess.", "Promotional rate published as running through 2026-12-31, with the standard rate resuming 2027-01-01 - both dates are stated on the page, so this period's effectiveTo and the next period's effectiveFrom are sourced, not conservative placeholders.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($0.375 / $1.875 promo, $0.75 / $3.75 standard), not from a blanket statement.", "cachedInput is this model's own published context-caching rate. The page also charges a separate per-hour cache storage fee, which this per-token schema does not model."] },
994
+ { "effectiveFrom": "2027-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.50", "output": "7.50", "cachedInput": "0.15", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Standard rate resuming 2027-01-01, the date the page publishes for the end of the promotional rate.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($0.375 / $1.875 promo, $0.75 / $3.75 standard), not from a blanket statement.", "cachedInput is this model's own published context-caching rate. The page also charges a separate per-hour cache storage fee, which this per-token schema does not model."] }
995
+ ],
996
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
997
+ },
998
+ {
999
+ canonicalId: "gemini-3.8-flash",
1000
+ provider: "google",
1001
+ aliases: [],
1002
+ family: "gemini-3.8",
1003
+ pricing: [
1004
+ { "effectiveFrom": "2026-09-07", "effectiveTo": "2027-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.75", "output": "3.75", "cachedInput": "0.075", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["New model: absent from the pricing page on 2026-08-05, present on 2026-09-07. effectiveFrom is the observation date rather than a backdated guess.", "Promotional rate published as running through 2026-12-31, with the standard rate resuming 2027-01-01 - both dates are stated on the page, so this period's effectiveTo and the next period's effectiveFrom are sourced, not conservative placeholders.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($0.375 / $1.875 promo, $0.75 / $3.75 standard), not from a blanket statement.", "cachedInput is this model's own published context-caching rate. The page also charges a separate per-hour cache storage fee, which this per-token schema does not model."] },
1005
+ { "effectiveFrom": "2027-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.50", "output": "7.50", "cachedInput": "0.15", "batchMultiplier": "0.5", "sourceUrl": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Standard rate resuming 2027-01-01, the date the page publishes for the end of the promotional rate.", "batchMultiplier of 0.5 was verified from this model's own Batch rows ($0.375 / $1.875 promo, $0.75 / $3.75 standard), not from a blanket statement.", "cachedInput is this model's own published context-caching rate. The page also charges a separate per-hour cache storage fee, which this per-token schema does not model."] }
852
1006
  ],
853
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
1007
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
854
1008
  },
855
1009
  {
856
1010
  canonicalId: "gpt-oss-120b",
@@ -858,9 +1012,9 @@ var MODEL_REGISTRY = [
858
1012
  aliases: [],
859
1013
  family: "gpt-oss",
860
1014
  pricing: [
861
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.60", "sourceUrl": "https://console.groq.com/docs/models", "observedAt": "2026-08-05", "notes": ["Groq's docs page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "No prompt-caching or Batch API discount is documented for Groq in the fetched page.", "OpenAI's open-weight gpt-oss-120b model, hosted independently by Groq under Groq's own rate card (also hosted by Together AI, at the same $0.15/$0.60 rate as observed \u2014 coincidental agreement, not assumed parity)."] }
1015
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.60", "sourceUrl": "https://console.groq.com/docs/models", "observedAt": "2026-09-07", "notes": ["Groq's docs page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "No prompt-caching or Batch API discount is documented for Groq in the fetched page.", "OpenAI's open-weight gpt-oss-120b model, hosted independently by Groq under Groq's own rate card (also hosted by Together AI, at the same $0.15/$0.60 rate as observed \u2014 coincidental agreement, not assumed parity).", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
862
1016
  ],
863
- source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-08-05" }
1017
+ source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-09-07" }
864
1018
  },
865
1019
  {
866
1020
  canonicalId: "gpt-oss-20b",
@@ -868,9 +1022,9 @@ var MODEL_REGISTRY = [
868
1022
  aliases: [],
869
1023
  family: "gpt-oss",
870
1024
  pricing: [
871
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.075", "output": "0.30", "sourceUrl": "https://console.groq.com/docs/models", "observedAt": "2026-08-05", "notes": ["Groq's docs page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "No prompt-caching or Batch API discount is documented for Groq in the fetched page.", "Also hosted by Together AI at a different rate ($0.05/$0.20 as observed) \u2014 each host prices it independently; do not assume parity."] }
1025
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.075", "output": "0.30", "sourceUrl": "https://console.groq.com/docs/models", "observedAt": "2026-09-07", "notes": ["Groq's docs page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "No prompt-caching or Batch API discount is documented for Groq in the fetched page.", "Also hosted by Together AI at a different rate ($0.05/$0.20 as observed) \u2014 each host prices it independently; do not assume parity.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
872
1026
  ],
873
- source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-08-05" }
1027
+ source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-09-07" }
874
1028
  },
875
1029
  {
876
1030
  canonicalId: "llama-3.1-8b-instant",
@@ -878,7 +1032,7 @@ var MODEL_REGISTRY = [
878
1032
  aliases: ["llama-3.1-8b"],
879
1033
  family: "llama-3.1",
880
1034
  pricing: [
881
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.05", "output": "0.08", "sourceUrl": "https://console.groq.com/docs/models", "observedAt": "2026-08-05", "notes": ["Groq's docs page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "No prompt-caching or Batch API discount is documented for Groq in the fetched page, so cachedInput and batchMultiplier are omitted rather than assumed."] }
1035
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.05", "output": "0.08", "sourceUrl": "https://console.groq.com/docs/models", "observedAt": "2026-08-05", "notes": ["Groq's docs page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "No prompt-caching or Batch API discount is documented for Groq in the fetched page, so cachedInput and batchMultiplier are omitted rather than assumed.", "Not surfaced by the 2026-09-07 fetch of the same page, which listed only the gpt-oss and Qwen models with per-token prices. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal. Re-check before relying on this entry."] }
882
1036
  ],
883
1037
  source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-08-05" }
884
1038
  },
@@ -888,7 +1042,7 @@ var MODEL_REGISTRY = [
888
1042
  aliases: ["llama-3.3-70b"],
889
1043
  family: "llama-3.3",
890
1044
  pricing: [
891
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.59", "output": "0.79", "sourceUrl": "https://console.groq.com/docs/models", "observedAt": "2026-08-05", "notes": ["Groq's docs page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "No prompt-caching or Batch API discount is documented for Groq in the fetched page, so cachedInput and batchMultiplier are omitted rather than assumed.", "This is Groq's own hosted rate for the same open-weight model Together AI also hosts (see together.json's llama-3.3-70b at a different, higher price) and AWS Bedrock resells \u2014 each host prices it independently; do not assume parity."] }
1045
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.59", "output": "0.79", "sourceUrl": "https://console.groq.com/docs/models", "observedAt": "2026-08-05", "notes": ["Groq's docs page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "No prompt-caching or Batch API discount is documented for Groq in the fetched page, so cachedInput and batchMultiplier are omitted rather than assumed.", "This is Groq's own hosted rate for the same open-weight model Together AI also hosts (see together.json's llama-3.3-70b at a different, higher price) and AWS Bedrock resells \u2014 each host prices it independently; do not assume parity.", "Not surfaced by the 2026-09-07 fetch of the same page, which listed only the gpt-oss and Qwen models with per-token prices. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal. Re-check before relying on this entry."] }
892
1046
  ],
893
1047
  source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-08-05" }
894
1048
  },
@@ -898,19 +1052,29 @@ var MODEL_REGISTRY = [
898
1052
  aliases: [],
899
1053
  family: "qwen",
900
1054
  pricing: [
901
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.60", "output": "3.00", "sourceUrl": "https://console.groq.com/docs/models", "observedAt": "2026-08-05", "notes": [`Listed under Groq's "Preview" models section, not "Production" \u2014 preview models on Groq are explicitly subject to change or removal without notice. Included because a real price was published, but treat this one as less stable than the production-tier entries in this file.`, "Groq's docs page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1055
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.60", "output": "3.00", "sourceUrl": "https://console.groq.com/docs/models", "observedAt": "2026-09-07", "notes": [`Listed under Groq's "Preview" models section, not "Production" \u2014 preview models on Groq are explicitly subject to change or removal without notice. Included because a real price was published, but treat this one as less stable than the production-tier entries in this file.`, "Groq's docs page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
902
1056
  ],
903
- source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-08-05" }
1057
+ source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-09-07" }
1058
+ },
1059
+ {
1060
+ canonicalId: "qwen3.8-27b",
1061
+ provider: "groq",
1062
+ aliases: ["qwen/qwen3.8-27b"],
1063
+ family: "qwen3.8",
1064
+ pricing: [
1065
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.80", "output": "4.00", "sourceUrl": "https://console.groq.com/docs/models", "observedAt": "2026-09-07", "notes": ["New model: absent from this page on 2026-08-05, present on 2026-09-07. effectiveFrom is the observation date rather than this file's conservative 2026-01-01, since the earlier fetch proves it was not listed then.", "Marked Preview on Groq's page - less stable than a Production model, and its price may move accordingly.", "No cached-input rate and no batch discount are published for Groq models; both fields are omitted rather than guessed."] }
1066
+ ],
1067
+ source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-09-07" }
904
1068
  },
905
1069
  {
906
1070
  canonicalId: "codestral",
907
1071
  provider: "mistral",
908
- aliases: [],
1072
+ aliases: ["codestral-latest"],
909
1073
  family: "codestral",
910
1074
  pricing: [
911
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "0.90", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1075
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "0.90", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Re-confirmed unchanged on 2026-09-07 against the same page, which prints the API id as 'codestral-latest' (recorded as an alias)."] }
912
1076
  ],
913
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1077
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
914
1078
  },
915
1079
  {
916
1080
  canonicalId: "devstral-2",
@@ -918,7 +1082,7 @@ var MODEL_REGISTRY = [
918
1082
  aliases: [],
919
1083
  family: "devstral",
920
1084
  pricing: [
921
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.40", "output": "2.00", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1085
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.40", "output": "2.00", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Not surfaced by the 2026-09-07 fetch of the same page, which listed only the Medium/Small/Large, Ministral, Codestral, embedding and third-party GLM entries. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal. Re-check before relying on this entry."] }
922
1086
  ],
923
1087
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
924
1088
  },
@@ -928,7 +1092,7 @@ var MODEL_REGISTRY = [
928
1092
  aliases: [],
929
1093
  family: "devstral",
930
1094
  pricing: [
931
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.10", "output": "0.30", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1095
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.10", "output": "0.30", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Not surfaced by the 2026-09-07 fetch of the same page, which listed only the Medium/Small/Large, Ministral, Codestral, embedding and third-party GLM entries. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal. Re-check before relying on this entry."] }
932
1096
  ],
933
1097
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
934
1098
  },
@@ -938,7 +1102,7 @@ var MODEL_REGISTRY = [
938
1102
  aliases: [],
939
1103
  family: "magistral",
940
1104
  pricing: [
941
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "5.00", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'Listed as a reasoning model on the pricing page; no separate "reasoning" surcharge is published, so the reasoning field is omitted.'] }
1105
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "5.00", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'Listed as a reasoning model on the pricing page; no separate "reasoning" surcharge is published, so the reasoning field is omitted.', "Not surfaced by the 2026-09-07 fetch of the same page, which listed only the Medium/Small/Large, Ministral, Codestral, embedding and third-party GLM entries. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal. Re-check before relying on this entry."] }
942
1106
  ],
943
1107
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
944
1108
  },
@@ -948,59 +1112,59 @@ var MODEL_REGISTRY = [
948
1112
  aliases: [],
949
1113
  family: "magistral",
950
1114
  pricing: [
951
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1115
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Not surfaced by the 2026-09-07 fetch of the same page, which listed only the Medium/Small/Large, Ministral, Codestral, embedding and third-party GLM entries. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal. Re-check before relying on this entry."] }
952
1116
  ],
953
1117
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
954
1118
  },
955
1119
  {
956
1120
  canonicalId: "ministral-3-14b",
957
1121
  provider: "mistral",
958
- aliases: [],
1122
+ aliases: ["ministral-14b-latest"],
959
1123
  family: "ministral-3",
960
1124
  pricing: [
961
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.20", "output": "0.20", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", `AWS Bedrock resells a "Ministral 14B 3.0" at the same $0.20/$0.20 figure as independently observed on Bedrock's pricing page \u2014 likely the same model, coincidental agreement not assumed; Bedrock's variant was not added to aws-bedrock.json in this pass since the version suffix ("3.0") was not cross-checked against this "ministral-3-14b" naming.`] }
1125
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.20", "output": "0.20", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", `AWS Bedrock resells a "Ministral 14B 3.0" at the same $0.20/$0.20 figure as independently observed on Bedrock's pricing page \u2014 likely the same model, coincidental agreement not assumed; Bedrock's variant was not added to aws-bedrock.json in this pass since the version suffix ("3.0") was not cross-checked against this "ministral-3-14b" naming.`, "Re-confirmed unchanged on 2026-09-07 against the same page, which prints the API id as 'ministral-14b-latest' (recorded as an alias)."] }
962
1126
  ],
963
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1127
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
964
1128
  },
965
1129
  {
966
1130
  canonicalId: "ministral-3-3b",
967
1131
  provider: "mistral",
968
- aliases: [],
1132
+ aliases: ["ministral-3b-latest"],
969
1133
  family: "ministral-3",
970
1134
  pricing: [
971
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.10", "output": "0.10", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1135
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.10", "output": "0.10", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Re-confirmed unchanged on 2026-09-07 against the same page, which prints the API id as 'ministral-3b-latest' (recorded as an alias)."] }
972
1136
  ],
973
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1137
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
974
1138
  },
975
1139
  {
976
1140
  canonicalId: "ministral-3-8b",
977
1141
  provider: "mistral",
978
- aliases: [],
1142
+ aliases: ["ministral-8b-latest"],
979
1143
  family: "ministral-3",
980
1144
  pricing: [
981
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.15", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1145
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.15", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Re-confirmed unchanged on 2026-09-07 against the same page, which prints the API id as 'ministral-8b-latest' (recorded as an alias)."] }
982
1146
  ],
983
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1147
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
984
1148
  },
985
1149
  {
986
1150
  canonicalId: "mistral-large-3",
987
1151
  provider: "mistral",
988
- aliases: [],
1152
+ aliases: ["mistral-large-latest"],
989
1153
  family: "mistral-large",
990
1154
  pricing: [
991
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", `This is Mistral's own first-party rate. AWS Bedrock also resells "Mistral Large 3" under its own rate card at the same $0.50/$1.50 figure as independently observed on Bedrock's pricing page \u2014 coincidental agreement between the two sources, not assumed; see aws-bedrock.json.`] }
1155
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "cachedInput": "0.05", "batchMultiplier": "0.5", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", `This is Mistral's own first-party rate. AWS Bedrock also resells "Mistral Large 3" under its own rate card at the same $0.50/$1.50 figure as independently observed on Bedrock's pricing page \u2014 coincidental agreement between the two sources, not assumed; see aws-bedrock.json.`, "Re-confirmed unchanged on 2026-09-07 against the same page, which prints the API id as 'mistral-large-latest' (recorded as an alias).", `cachedInput and batchMultiplier added on 2026-09-07: the page publishes "Cached input: 90% discount" and "Batch: 50% discount" for this model, so cachedInput is 0.1x this model's own input rate (0.50 -> 0.05), computed as an exact decimal, and batchMultiplier is 0.5. Both come from this model's own row, not from a sibling's rate.`] }
992
1156
  ],
993
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1157
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
994
1158
  },
995
1159
  {
996
1160
  canonicalId: "mistral-medium-3.5",
997
1161
  provider: "mistral",
998
- aliases: [],
1162
+ aliases: ["mistral-medium-latest"],
999
1163
  family: "mistral-medium",
1000
1164
  pricing: [
1001
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.50", "output": "7.50", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "No cachedInput or batchMultiplier is documented on the fetched page for this model; omitted rather than assumed."] }
1165
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.50", "output": "7.50", "cachedInput": "0.15", "batchMultiplier": "0.5", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "No cachedInput or batchMultiplier is documented on the fetched page for this model; omitted rather than assumed.", "Re-confirmed unchanged on 2026-09-07 against the same page, which prints the API id as 'mistral-medium-latest' (recorded as an alias).", `cachedInput and batchMultiplier added on 2026-09-07: the page publishes "Cached input: 90% discount" and "Batch: 50% discount" for this model, so cachedInput is 0.1x this model's own input rate (1.50 -> 0.15), computed as an exact decimal, and batchMultiplier is 0.5. Both come from this model's own row, not from a sibling's rate.`] }
1002
1166
  ],
1003
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1167
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
1004
1168
  },
1005
1169
  {
1006
1170
  canonicalId: "mistral-nemo",
@@ -1008,19 +1172,19 @@ var MODEL_REGISTRY = [
1008
1172
  aliases: [],
1009
1173
  family: "mistral-nemo",
1010
1174
  pricing: [
1011
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.15", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "An older model generation still listed with a live price on the current pricing page as fetched; included because it is confidently sourced, not because it is a current flagship."] }
1175
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.15", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "An older model generation still listed with a live price on the current pricing page as fetched; included because it is confidently sourced, not because it is a current flagship.", "Not surfaced by the 2026-09-07 fetch of the same page, which listed only the Medium/Small/Large, Ministral, Codestral, embedding and third-party GLM entries. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal. Re-check before relying on this entry."] }
1012
1176
  ],
1013
1177
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1014
1178
  },
1015
1179
  {
1016
1180
  canonicalId: "mistral-small-4",
1017
1181
  provider: "mistral",
1018
- aliases: [],
1182
+ aliases: ["mistral-small-latest"],
1019
1183
  family: "mistral-small",
1020
1184
  pricing: [
1021
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.60", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1185
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.60", "cachedInput": "0.015", "batchMultiplier": "0.5", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Re-confirmed unchanged on 2026-09-07 against the same page, which prints the API id as 'mistral-small-latest' (recorded as an alias).", `cachedInput and batchMultiplier added on 2026-09-07: the page publishes "Cached input: 90% discount" and "Batch: 50% discount" for this model, so cachedInput is 0.1x this model's own input rate (0.15 -> 0.015), computed as an exact decimal, and batchMultiplier is 0.5. Both come from this model's own row, not from a sibling's rate.`] }
1022
1186
  ],
1023
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1187
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
1024
1188
  },
1025
1189
  {
1026
1190
  canonicalId: "mixtral-8x22b",
@@ -1028,7 +1192,7 @@ var MODEL_REGISTRY = [
1028
1192
  aliases: [],
1029
1193
  family: "mixtral",
1030
1194
  pricing: [
1031
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "6.00", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "An older model generation still listed with a live price on the current pricing page as fetched."] }
1195
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "6.00", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "An older model generation still listed with a live price on the current pricing page as fetched.", "Not surfaced by the 2026-09-07 fetch of the same page, which listed only the Medium/Small/Large, Ministral, Codestral, embedding and third-party GLM entries. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal. Re-check before relying on this entry."] }
1032
1196
  ],
1033
1197
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1034
1198
  },
@@ -1038,19 +1202,29 @@ var MODEL_REGISTRY = [
1038
1202
  aliases: [],
1039
1203
  family: "mixtral",
1040
1204
  pricing: [
1041
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.70", "output": "0.70", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "An older model generation still listed with a live price on the current pricing page as fetched."] }
1205
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.70", "output": "0.70", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05", "notes": ["Mistral's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "An older model generation still listed with a live price on the current pricing page as fetched.", "Not surfaced by the 2026-09-07 fetch of the same page, which listed only the Medium/Small/Large, Ministral, Codestral, embedding and third-party GLM entries. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal. Re-check before relying on this entry."] }
1042
1206
  ],
1043
1207
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1044
1208
  },
1209
+ {
1210
+ canonicalId: "zai-glm-5-2",
1211
+ provider: "mistral",
1212
+ aliases: [],
1213
+ family: "glm",
1214
+ pricing: [
1215
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "1.40", "output": "4.40", "cachedInput": "0.14", "sourceUrl": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07", "notes": ["New entry: absent from this page on 2026-08-05, present on 2026-09-07. effectiveFrom is the observation date rather than this file's conservative 2026-01-01.", `Listed under "Third-Party Models" on Mistral's own pricing page - a Z.ai GLM model resold through La Plateforme, so this is Mistral's resale rate, not Z.ai's first-party rate.`, "All three rates are printed per-model on the page. No batch discount is stated for the third-party section, so batchMultiplier is omitted rather than assumed from the first-party models' 50%."] }
1216
+ ],
1217
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
1218
+ },
1045
1219
  {
1046
1220
  canonicalId: "gpt-3.5-turbo",
1047
1221
  provider: "openai",
1048
1222
  aliases: [],
1049
1223
  family: "gpt-3.5",
1050
1224
  pricing: [
1051
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["Found on https://developers.openai.com/api/docs/pricing during a second confirmation pass.", "No cached-input rate is published for gpt-3.5-turbo on the current pricing page; cachedInput is intentionally omitted rather than guessed.", "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date."] }
1225
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "1.50", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Found on https://developers.openai.com/api/docs/pricing during a second confirmation pass.", "No cached-input rate is published for gpt-3.5-turbo on the current pricing page; cachedInput is intentionally omitted rather than guessed.", "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", `batchMultiplier is "0.5" per the pricing page's Batch API section, which states the 50% saving "applies to all text models listed above in the Standard table" - an explicit all-model statement, so the pro tiers are covered too.`] }
1052
1226
  ],
1053
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1227
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1054
1228
  },
1055
1229
  {
1056
1230
  canonicalId: "gpt-4.1",
@@ -1058,9 +1232,9 @@ var MODEL_REGISTRY = [
1058
1232
  aliases: [],
1059
1233
  family: "gpt-4.1",
1060
1234
  pricing: [
1061
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "8.00", "cachedInput": "0.50", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1235
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "8.00", "cachedInput": "0.50", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1062
1236
  ],
1063
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1237
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1064
1238
  },
1065
1239
  {
1066
1240
  canonicalId: "gpt-4.1-mini",
@@ -1068,9 +1242,9 @@ var MODEL_REGISTRY = [
1068
1242
  aliases: [],
1069
1243
  family: "gpt-4.1",
1070
1244
  pricing: [
1071
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.40", "output": "1.60", "cachedInput": "0.10", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1245
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.40", "output": "1.60", "cachedInput": "0.10", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1072
1246
  ],
1073
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1247
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1074
1248
  },
1075
1249
  {
1076
1250
  canonicalId: "gpt-4.1-nano",
@@ -1078,9 +1252,9 @@ var MODEL_REGISTRY = [
1078
1252
  aliases: [],
1079
1253
  family: "gpt-4.1",
1080
1254
  pricing: [
1081
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.10", "output": "0.40", "cachedInput": "0.025", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1255
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.10", "output": "0.40", "cachedInput": "0.025", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1082
1256
  ],
1083
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1257
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1084
1258
  },
1085
1259
  {
1086
1260
  canonicalId: "gpt-4o",
@@ -1088,9 +1262,9 @@ var MODEL_REGISTRY = [
1088
1262
  aliases: [],
1089
1263
  family: "gpt-4o",
1090
1264
  pricing: [
1091
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.50", "output": "10.00", "cachedInput": "1.25", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1265
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.50", "output": "10.00", "cachedInput": "1.25", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1092
1266
  ],
1093
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1267
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1094
1268
  },
1095
1269
  {
1096
1270
  canonicalId: "gpt-4o-mini",
@@ -1098,9 +1272,9 @@ var MODEL_REGISTRY = [
1098
1272
  aliases: [],
1099
1273
  family: "gpt-4o",
1100
1274
  pricing: [
1101
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.60", "cachedInput": "0.075", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1275
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.60", "cachedInput": "0.075", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1102
1276
  ],
1103
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1277
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1104
1278
  },
1105
1279
  {
1106
1280
  canonicalId: "gpt-5",
@@ -1108,9 +1282,9 @@ var MODEL_REGISTRY = [
1108
1282
  aliases: [],
1109
1283
  family: "gpt-5",
1110
1284
  pricing: [
1111
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.25", "output": "10.00", "cachedInput": "0.125", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model.", "Lead-supplied verified table (observed 2026-08-05) matches this rate exactly; independently re-confirmed against https://developers.openai.com/api/docs/pricing on the same date."] }
1285
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.25", "output": "10.00", "cachedInput": "0.125", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model.", "Lead-supplied verified table (observed 2026-08-05) matches this rate exactly; independently re-confirmed against https://developers.openai.com/api/docs/pricing on the same date."] }
1112
1286
  ],
1113
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1287
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1114
1288
  },
1115
1289
  {
1116
1290
  canonicalId: "gpt-5-mini",
@@ -1118,9 +1292,9 @@ var MODEL_REGISTRY = [
1118
1292
  aliases: [],
1119
1293
  family: "gpt-5",
1120
1294
  pricing: [
1121
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.25", "output": "2.00", "cachedInput": "0.025", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1295
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.25", "output": "2.00", "cachedInput": "0.025", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1122
1296
  ],
1123
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1297
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1124
1298
  },
1125
1299
  {
1126
1300
  canonicalId: "gpt-5-nano",
@@ -1128,9 +1302,9 @@ var MODEL_REGISTRY = [
1128
1302
  aliases: [],
1129
1303
  family: "gpt-5",
1130
1304
  pricing: [
1131
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.05", "output": "0.40", "cachedInput": "0.005", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1305
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.05", "output": "0.40", "cachedInput": "0.005", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1132
1306
  ],
1133
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1307
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1134
1308
  },
1135
1309
  {
1136
1310
  canonicalId: "gpt-5-pro",
@@ -1138,9 +1312,9 @@ var MODEL_REGISTRY = [
1138
1312
  aliases: [],
1139
1313
  family: "gpt-5",
1140
1314
  pricing: [
1141
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "15.00", "output": "120.00", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ['No cached-input rate is published for gpt-5-pro (shown as "\u2014"); cachedInput is intentionally omitted rather than guessed.', "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier is intentionally omitted for this pro-tier model; not independently confirmed to apply."] }
1315
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "15.00", "output": "120.00", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ['No cached-input rate is published for gpt-5-pro (shown as "\u2014"); cachedInput is intentionally omitted rather than guessed.', "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", `batchMultiplier is "0.5" per the pricing page's Batch API section, which states the 50% saving "applies to all text models listed above in the Standard table" - an explicit all-model statement, so the pro tiers are covered too.`] }
1142
1316
  ],
1143
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1317
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1144
1318
  },
1145
1319
  {
1146
1320
  canonicalId: "gpt-5.1",
@@ -1148,9 +1322,9 @@ var MODEL_REGISTRY = [
1148
1322
  aliases: [],
1149
1323
  family: "gpt-5.1",
1150
1324
  pricing: [
1151
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.25", "output": "10.00", "cachedInput": "0.125", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1325
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.25", "output": "10.00", "cachedInput": "0.125", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1152
1326
  ],
1153
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1327
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1154
1328
  },
1155
1329
  {
1156
1330
  canonicalId: "gpt-5.2",
@@ -1158,9 +1332,9 @@ var MODEL_REGISTRY = [
1158
1332
  aliases: [],
1159
1333
  family: "gpt-5.2",
1160
1334
  pricing: [
1161
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.75", "output": "14.00", "cachedInput": "0.175", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1335
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.75", "output": "14.00", "cachedInput": "0.175", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1162
1336
  ],
1163
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1337
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1164
1338
  },
1165
1339
  {
1166
1340
  canonicalId: "gpt-5.2-pro",
@@ -1168,9 +1342,9 @@ var MODEL_REGISTRY = [
1168
1342
  aliases: [],
1169
1343
  family: "gpt-5.2",
1170
1344
  pricing: [
1171
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "21.00", "output": "168.00", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ['No cached-input rate is published for gpt-5.2-pro (shown as "\u2014"); cachedInput is intentionally omitted rather than guessed.', "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier is intentionally omitted for this pro-tier model; not independently confirmed to apply."] }
1345
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "21.00", "output": "168.00", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ['No cached-input rate is published for gpt-5.2-pro (shown as "\u2014"); cachedInput is intentionally omitted rather than guessed.', "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", `batchMultiplier is "0.5" per the pricing page's Batch API section, which states the 50% saving "applies to all text models listed above in the Standard table" - an explicit all-model statement, so the pro tiers are covered too.`] }
1172
1346
  ],
1173
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1347
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1174
1348
  },
1175
1349
  {
1176
1350
  canonicalId: "gpt-5.4",
@@ -1178,9 +1352,9 @@ var MODEL_REGISTRY = [
1178
1352
  aliases: [],
1179
1353
  family: "gpt-5.4",
1180
1354
  pricing: [
1181
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.50", "output": "15.00", "cachedInput": "0.25", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1355
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.50", "output": "15.00", "cachedInput": "0.25", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model.", 'The pricing page qualifies this rate as the "<272K" context tier. A higher tier above 272K tokens is implied by that label but no rate for it was published in the fetched table, and this schema has no context-length dimension, so only the <272K rate is recorded.'] }
1182
1356
  ],
1183
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1357
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1184
1358
  },
1185
1359
  {
1186
1360
  canonicalId: "gpt-5.4-mini",
@@ -1188,9 +1362,9 @@ var MODEL_REGISTRY = [
1188
1362
  aliases: [],
1189
1363
  family: "gpt-5.4",
1190
1364
  pricing: [
1191
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.75", "output": "4.50", "cachedInput": "0.075", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1365
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.75", "output": "4.50", "cachedInput": "0.075", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1192
1366
  ],
1193
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1367
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1194
1368
  },
1195
1369
  {
1196
1370
  canonicalId: "gpt-5.4-nano",
@@ -1198,9 +1372,9 @@ var MODEL_REGISTRY = [
1198
1372
  aliases: [],
1199
1373
  family: "gpt-5.4",
1200
1374
  pricing: [
1201
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.20", "output": "1.25", "cachedInput": "0.02", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1375
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.20", "output": "1.25", "cachedInput": "0.02", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1202
1376
  ],
1203
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1377
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1204
1378
  },
1205
1379
  {
1206
1380
  canonicalId: "gpt-5.4-pro",
@@ -1208,9 +1382,9 @@ var MODEL_REGISTRY = [
1208
1382
  aliases: [],
1209
1383
  family: "gpt-5.4",
1210
1384
  pricing: [
1211
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "30.00", "output": "180.00", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ['No cached-input rate is published for gpt-5.4-pro (shown as "\u2014"); cachedInput is intentionally omitted rather than guessed.', "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier is intentionally omitted for this pro-tier model; not independently confirmed to apply."] }
1385
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "30.00", "output": "180.00", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ['No cached-input rate is published for gpt-5.4-pro (shown as "\u2014"); cachedInput is intentionally omitted rather than guessed.', "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", `batchMultiplier is "0.5" per the pricing page's Batch API section, which states the 50% saving "applies to all text models listed above in the Standard table" - an explicit all-model statement, so the pro tiers are covered too.`, 'The pricing page qualifies this rate as the "<272K" context tier. A higher tier above 272K tokens is implied by that label but no rate for it was published in the fetched table, and this schema has no context-length dimension, so only the <272K rate is recorded.'] }
1212
1386
  ],
1213
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1387
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1214
1388
  },
1215
1389
  {
1216
1390
  canonicalId: "gpt-5.5",
@@ -1218,9 +1392,9 @@ var MODEL_REGISTRY = [
1218
1392
  aliases: [],
1219
1393
  family: "gpt-5.5",
1220
1394
  pricing: [
1221
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "30.00", "cachedInput": "0.50", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1395
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "30.00", "cachedInput": "0.50", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model.", 'The pricing page qualifies this rate as the "<272K" context tier. A higher tier above 272K tokens is implied by that label but no rate for it was published in the fetched table, and this schema has no context-length dimension, so only the <272K rate is recorded.'] }
1222
1396
  ],
1223
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1397
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1224
1398
  },
1225
1399
  {
1226
1400
  canonicalId: "gpt-5.5-pro",
@@ -1228,9 +1402,9 @@ var MODEL_REGISTRY = [
1228
1402
  aliases: [],
1229
1403
  family: "gpt-5.5",
1230
1404
  pricing: [
1231
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "30.00", "output": "180.00", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ['No cached-input rate is published for gpt-5.5-pro (shown as "\u2014" on the pricing page); cachedInput is intentionally omitted rather than guessed.', "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", `batchMultiplier is intentionally omitted for this pro-tier model: the pricing page's blanket "50% off Batch" statement was not independently confirmed to apply to the -pro tier, unlike the base tiers.`] }
1405
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "30.00", "output": "180.00", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ['No cached-input rate is published for gpt-5.5-pro (shown as "\u2014" on the pricing page); cachedInput is intentionally omitted rather than guessed.', "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", `batchMultiplier is "0.5" per the pricing page's Batch API section, which states the 50% saving "applies to all text models listed above in the Standard table" - an explicit all-model statement, so the pro tiers are covered too.`, 'The pricing page qualifies this rate as the "<272K" context tier. A higher tier above 272K tokens is implied by that label but no rate for it was published in the fetched table, and this schema has no context-length dimension, so only the <272K rate is recorded.'] }
1232
1406
  ],
1233
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1407
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1234
1408
  },
1235
1409
  {
1236
1410
  canonicalId: "gpt-5.6-luna",
@@ -1238,9 +1412,9 @@ var MODEL_REGISTRY = [
1238
1412
  aliases: [],
1239
1413
  family: "gpt-5.6",
1240
1414
  pricing: [
1241
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.20", "output": "1.20", "cachedInput": "0.02", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1415
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.20", "output": "1.20", "cachedInput": "0.02", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1242
1416
  ],
1243
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1417
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1244
1418
  },
1245
1419
  {
1246
1420
  canonicalId: "gpt-5.6-sol",
@@ -1248,9 +1422,10 @@ var MODEL_REGISTRY = [
1248
1422
  aliases: [],
1249
1423
  family: "gpt-5.6",
1250
1424
  pricing: [
1251
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "30.00", "cachedInput": "0.50", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": [`OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date (this model's naming implies a later release, but a conservative too-early effectiveFrom only ever makes a historical lookup succeed when it should return "no period found", never the reverse).`, `batchMultiplier reflects OpenAI's general Batch API policy ("a 50% discount to Standard pricing rates across all models") as stated on the pricing page; not independently confirmed per-model.`] }
1425
+ { "effectiveFrom": "2026-01-01", "effectiveTo": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "5.00", "output": "30.00", "cachedInput": "0.50", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": [`OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date (this model's naming implies a later release, but a conservative too-early effectiveFrom only ever makes a historical lookup succeed when it should return "no period found", never the reverse).`, `batchMultiplier reflects OpenAI's general Batch API policy ("a 50% discount to Standard pricing rates across all models") as stated on the pricing page; not independently confirmed per-model.`, "Closed on 2026-09-07: the pricing page published a lower rate (4.00 input / 20.00 output) on that date. The old rate was last confirmed 2026-08-05, so the true change date lies in (2026-08-05, 2026-09-07]; effectiveTo is the observation date, which keeps every confirmed observation correct and approximates only the unobserved gap, toward the last confirmed value."] },
1426
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "4.00", "output": "20.00", "cachedInput": "0.40", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Price cut observed on 2026-09-07: input 5.00 -> 4.00, output 30.00 -> 20.00, cached input 0.50 -> 0.40. OpenAI publishes no effective date, so effectiveFrom is the observation date rather than a guess at when the cut actually landed.", `batchMultiplier is "0.5" per the pricing page's Batch API section, which states the 50% saving "applies to all text models listed above in the Standard table" - an explicit all-model statement, so the pro tiers are covered too.`] }
1252
1427
  ],
1253
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1428
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1254
1429
  },
1255
1430
  {
1256
1431
  canonicalId: "gpt-5.6-terra",
@@ -1258,9 +1433,19 @@ var MODEL_REGISTRY = [
1258
1433
  aliases: [],
1259
1434
  family: "gpt-5.6",
1260
1435
  pricing: [
1261
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "12.00", "cachedInput": "0.20", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1436
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "12.00", "cachedInput": "0.20", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1437
+ ],
1438
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1439
+ },
1440
+ {
1441
+ canonicalId: "gpt-6-astra",
1442
+ provider: "openai",
1443
+ aliases: [],
1444
+ family: "gpt-6",
1445
+ pricing: [
1446
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "10.00", "output": "50.00", "cachedInput": "1.00", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["New model: absent from the pricing page on 2026-08-05, present on 2026-09-07. effectiveFrom is the observation date rather than this file's usual conservative 2026-01-01 - the model demonstrably did not exist at that rate a month earlier, so backdating it would invent a period.", `batchMultiplier is "0.5" per the pricing page's Batch API section, which states the 50% saving "applies to all text models listed above in the Standard table" - an explicit all-model statement, so the pro tiers are covered too.`] }
1262
1447
  ],
1263
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1448
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1264
1449
  },
1265
1450
  {
1266
1451
  canonicalId: "o1",
@@ -1268,9 +1453,9 @@ var MODEL_REGISTRY = [
1268
1453
  aliases: [],
1269
1454
  family: "o-series",
1270
1455
  pricing: [
1271
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "15.00", "output": "60.00", "cachedInput": "7.50", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1456
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "15.00", "output": "60.00", "cachedInput": "7.50", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1272
1457
  ],
1273
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1458
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1274
1459
  },
1275
1460
  {
1276
1461
  canonicalId: "o1-pro",
@@ -1278,9 +1463,9 @@ var MODEL_REGISTRY = [
1278
1463
  aliases: [],
1279
1464
  family: "o-series",
1280
1465
  pricing: [
1281
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "150.00", "output": "600.00", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["Found on https://developers.openai.com/api/docs/pricing during a second confirmation pass.", 'No cached-input rate is published for o1-pro (shown as "\u2014"); cachedInput is intentionally omitted rather than guessed.', "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier is intentionally omitted for this pro-tier model; not independently confirmed to apply."] }
1466
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "150.00", "output": "600.00", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["Found on https://developers.openai.com/api/docs/pricing during a second confirmation pass.", 'No cached-input rate is published for o1-pro (shown as "\u2014"); cachedInput is intentionally omitted rather than guessed.', "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", `batchMultiplier is "0.5" per the pricing page's Batch API section, which states the 50% saving "applies to all text models listed above in the Standard table" - an explicit all-model statement, so the pro tiers are covered too.`] }
1282
1467
  ],
1283
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1468
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1284
1469
  },
1285
1470
  {
1286
1471
  canonicalId: "o3",
@@ -1288,9 +1473,9 @@ var MODEL_REGISTRY = [
1288
1473
  aliases: [],
1289
1474
  family: "o-series",
1290
1475
  pricing: [
1291
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "8.00", "cachedInput": "0.50", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1476
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "8.00", "cachedInput": "0.50", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1292
1477
  ],
1293
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1478
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1294
1479
  },
1295
1480
  {
1296
1481
  canonicalId: "o3-mini",
@@ -1298,9 +1483,9 @@ var MODEL_REGISTRY = [
1298
1483
  aliases: [],
1299
1484
  family: "o-series",
1300
1485
  pricing: [
1301
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.10", "output": "4.40", "cachedInput": "0.55", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1486
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.10", "output": "4.40", "cachedInput": "0.55", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1302
1487
  ],
1303
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1488
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1304
1489
  },
1305
1490
  {
1306
1491
  canonicalId: "o3-pro",
@@ -1308,9 +1493,9 @@ var MODEL_REGISTRY = [
1308
1493
  aliases: [],
1309
1494
  family: "o-series",
1310
1495
  pricing: [
1311
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "20.00", "output": "80.00", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ['No cached-input rate is published for o3-pro (shown as "\u2014"); cachedInput is intentionally omitted rather than guessed.', "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier is intentionally omitted for this pro-tier model; not independently confirmed to apply."] }
1496
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "20.00", "output": "80.00", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ['No cached-input rate is published for o3-pro (shown as "\u2014"); cachedInput is intentionally omitted rather than guessed.', "OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", `batchMultiplier is "0.5" per the pricing page's Batch API section, which states the 50% saving "applies to all text models listed above in the Standard table" - an explicit all-model statement, so the pro tiers are covered too.`] }
1312
1497
  ],
1313
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1498
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1314
1499
  },
1315
1500
  {
1316
1501
  canonicalId: "o4-mini",
@@ -1318,9 +1503,9 @@ var MODEL_REGISTRY = [
1318
1503
  aliases: [],
1319
1504
  family: "o-series",
1320
1505
  pricing: [
1321
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.10", "output": "4.40", "cachedInput": "0.275", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1506
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.10", "output": "4.40", "cachedInput": "0.275", "batchMultiplier": "0.5", "sourceUrl": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07", "notes": ["OpenAI's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01 pending confirmation of the true rollout date.", "batchMultiplier reflects OpenAI's general Batch API policy as stated on the pricing page; not independently confirmed per-model."] }
1322
1507
  ],
1323
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1508
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1324
1509
  },
1325
1510
  {
1326
1511
  canonicalId: "anthropic/claude-sonnet-5",
@@ -1328,9 +1513,9 @@ var MODEL_REGISTRY = [
1328
1513
  aliases: [],
1329
1514
  family: "anthropic-proxy",
1330
1515
  pricing: [
1331
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "10.00", "sourceUrl": "https://openrouter.ai/anthropic/claude-sonnet-5", "observedAt": "2026-08-05", "notes": ["UNCERTAIN \u2014 flagged explicitly: this rate ($2.00/$10.00) matches Anthropic's own INTRODUCTORY rate for claude-sonnet-5, which anthropic.json records as expiring 2026-08-31 and being replaced by a $3.00/$15.00 standard rate from 2026-09-01 (see anthropic.json). It is not clear from the OpenRouter page alone whether OpenRouter (a) has simply not yet updated its listing to the post-introductory rate, (b) is genuinely offering a different long-term rate than Anthropic's own API, or (c) this reflects a caching/rounding artifact in the page. Recorded as fetched and observed on 2026-08-05, but a follow-up reviewer should re-check this specific model close to and after 2026-09-01.", "OpenRouter's per-model page does not publish an effective date; effectiveFrom is set conservatively to 2026-01-01.", `canonicalId uses OpenRouter's own slug format, deliberately distinct from Anthropic's first-party canonicalId "claude-sonnet-5" (anthropic.json) to avoid a canonicalId collision; this is a legitimate cross-provider situation, not an error.`] }
1516
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "10.00", "cachedInput": "0.20", "cacheWrite": "2.50", "sourceUrl": "https://openrouter.ai/anthropic/claude-sonnet-5", "observedAt": "2026-09-07", "notes": ["Recorded 2026-08-05 flagged UNCERTAIN: $2.00/$10.00 matched what anthropic.json then held as an introductory rate expiring 2026-08-31, so it was unclear whether OpenRouter had simply not updated its listing. Resolved on 2026-09-07 - Anthropic's pricing page states the scheduled $3.00/$15.00 increase will not occur and $2.00/$10.00 is the standard rate, so this listing was correct all along and the flag is withdrawn.", "OpenRouter's per-model page does not publish an effective date; effectiveFrom is set conservatively to 2026-01-01.", `canonicalId uses OpenRouter's own slug format, deliberately distinct from Anthropic's first-party canonicalId "claude-sonnet-5" (anthropic.json) to avoid a canonicalId collision; this is a legitimate cross-provider situation, not an error.`, "Re-confirmed unchanged on 2026-09-07 against the same model page.", "cachedInput added on 2026-09-07: the model page now prints a Cache Read rate of 0.20 per million tokens for this model.", "cacheWrite added on 2026-09-07: the model page prints a 5-minute Cache Write rate of 2.50 per million tokens (and $4.00 for the 1-hour TTL, which this single-field schema does not model).", "Resolves the 2026-08-05 caveat on this entry: $2.00/$10.00 was flagged as possibly Anthropic's introductory rate, due to be superseded by $3.00/$15.00 on 2026-09-01. Anthropic's own pricing page now states that increase will not occur and $2.00/$10.00 is the standard rate, so OpenRouter's rate matches the first-party standard rate, not a stale introductory one.", "The page notes Google Vertex (US/Europe) and Amazon Bedrock (US) upstreams charge $2.20/$11.00 through OpenRouter; the default cross-provider rate is recorded, since this schema has no upstream dimension."] }
1332
1517
  ],
1333
- source: { "url": "https://openrouter.ai/anthropic/claude-sonnet-5", "observedAt": "2026-08-05" }
1518
+ source: { "url": "https://openrouter.ai/anthropic/claude-sonnet-5", "observedAt": "2026-09-07" }
1334
1519
  },
1335
1520
  {
1336
1521
  canonicalId: "google/gemini-3.1-pro-preview",
@@ -1338,9 +1523,9 @@ var MODEL_REGISTRY = [
1338
1523
  aliases: [],
1339
1524
  family: "google-proxy",
1340
1525
  pricing: [
1341
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "12.00", "cheapestTier": true, "sourceUrl": "https://openrouter.ai/google/gemini-3.1-pro-preview", "observedAt": "2026-08-05", "notes": ["OpenRouter's per-model page does not publish an effective date; effectiveFrom is set conservatively to 2026-01-01.", "Matches Google's own first-party <=200k-token-tier rate for gemini-3.1-pro-preview ($2.00/$12.00, see google.json) exactly as observed. Google's >200k-token tier ($4.00/$18.00) is not represented here (or, evidently, distinguished by OpenRouter's listing either) \u2014 same context-length-tiering limitation as google.json.", `canonicalId uses OpenRouter's own slug format, deliberately distinct from Google's first-party canonicalId "gemini-3.1-pro-preview" (google.json).`] }
1526
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "12.00", "cachedInput": "0.20", "cheapestTier": true, "sourceUrl": "https://openrouter.ai/google/gemini-3.1-pro-preview", "observedAt": "2026-09-07", "notes": ["OpenRouter's per-model page does not publish an effective date; effectiveFrom is set conservatively to 2026-01-01.", "Matches Google's own first-party <=200k-token-tier rate for gemini-3.1-pro-preview ($2.00/$12.00, see google.json) exactly as observed. Google's >200k-token tier ($4.00/$18.00) is not represented here (or, evidently, distinguished by OpenRouter's listing either) \u2014 same context-length-tiering limitation as google.json.", `canonicalId uses OpenRouter's own slug format, deliberately distinct from Google's first-party canonicalId "gemini-3.1-pro-preview" (google.json).`, "Re-confirmed unchanged on 2026-09-07 against the same model page.", "cachedInput added on 2026-09-07: the model page now prints a Cache Read rate of 0.20 per million tokens for this model."] }
1342
1527
  ],
1343
- source: { "url": "https://openrouter.ai/google/gemini-3.1-pro-preview", "observedAt": "2026-08-05" }
1528
+ source: { "url": "https://openrouter.ai/google/gemini-3.1-pro-preview", "observedAt": "2026-09-07" }
1344
1529
  },
1345
1530
  {
1346
1531
  canonicalId: "meta-llama/llama-3.3-70b-instruct",
@@ -1348,9 +1533,9 @@ var MODEL_REGISTRY = [
1348
1533
  aliases: [],
1349
1534
  family: "meta-proxy",
1350
1535
  pricing: [
1351
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.10", "output": "0.32", "sourceUrl": "https://openrouter.ai/meta-llama/llama-3.3-70b-instruct", "observedAt": "2026-08-05", "notes": ["OpenRouter's per-model page does not publish an effective date; effectiveFrom is set conservatively to 2026-01-01.", `Meta does not sell first-party API access to Llama, so there is no first-party "llama-3.3-70b" entry in this registry to compare against; Groq (groq.json: llama-3.3-70b-versatile, $0.59/$0.79) and Together AI (together.json: llama-3.3-70b, $1.04/$1.04) each host the same open-weight model at their own, different rates. OpenRouter's rate here is the lowest of the three observed, plausibly because OpenRouter itself proxies to one of several underlying hosts and shows a blended/lowest-cost route; not independently confirmed which underlying host this routes to.`] }
1536
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.10", "output": "0.32", "sourceUrl": "https://openrouter.ai/meta-llama/llama-3.3-70b-instruct", "observedAt": "2026-09-07", "notes": ["OpenRouter's per-model page does not publish an effective date; effectiveFrom is set conservatively to 2026-01-01.", `Meta does not sell first-party API access to Llama, so there is no first-party "llama-3.3-70b" entry in this registry to compare against; Groq (groq.json: llama-3.3-70b-versatile, $0.59/$0.79) and Together AI (together.json: llama-3.3-70b, $1.04/$1.04) each host the same open-weight model at their own, different rates. OpenRouter's rate here is the lowest of the three observed, plausibly because OpenRouter itself proxies to one of several underlying hosts and shows a blended/lowest-cost route; not independently confirmed which underlying host this routes to.`, "Re-confirmed unchanged on 2026-09-07 against the same model page.", 'The page labels this "the average price customers actually pay" and warns caching and discounts often put the effective price below it; recorded as printed.'] }
1352
1537
  ],
1353
- source: { "url": "https://openrouter.ai/meta-llama/llama-3.3-70b-instruct", "observedAt": "2026-08-05" }
1538
+ source: { "url": "https://openrouter.ai/meta-llama/llama-3.3-70b-instruct", "observedAt": "2026-09-07" }
1354
1539
  },
1355
1540
  {
1356
1541
  canonicalId: "openai/gpt-5",
@@ -1358,9 +1543,19 @@ var MODEL_REGISTRY = [
1358
1543
  aliases: [],
1359
1544
  family: "openai-proxy",
1360
1545
  pricing: [
1361
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.25", "output": "10.00", "sourceUrl": "https://openrouter.ai/openai/gpt-5", "observedAt": "2026-08-05", "notes": ["OpenRouter's per-model page does not publish an effective date; effectiveFrom is set conservatively to 2026-01-01.", "Matches OpenAI's own first-party rate for gpt-5 ($1.25/$10.00, see openai.json) exactly as observed \u2014 no markup detected for this model.", `canonicalId uses OpenRouter's own slug format ("openai/gpt-5"), deliberately distinct from OpenAI's first-party canonicalId "gpt-5" (openai.json) \u2014 this avoids a canonicalId collision while still allowing a cross-provider alias collision if a caller looks up the bare id "gpt-5" without a provider qualifier; no bare "gpt-5" alias was added to this entry to keep that surface area minimal.`] }
1546
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.25", "output": "10.00", "cachedInput": "0.125", "sourceUrl": "https://openrouter.ai/openai/gpt-5", "observedAt": "2026-09-07", "notes": ["OpenRouter's per-model page does not publish an effective date; effectiveFrom is set conservatively to 2026-01-01.", "Matches OpenAI's own first-party rate for gpt-5 ($1.25/$10.00, see openai.json) exactly as observed \u2014 no markup detected for this model.", `canonicalId uses OpenRouter's own slug format ("openai/gpt-5"), deliberately distinct from OpenAI's first-party canonicalId "gpt-5" (openai.json) \u2014 this avoids a canonicalId collision while still allowing a cross-provider alias collision if a caller looks up the bare id "gpt-5" without a provider qualifier; no bare "gpt-5" alias was added to this entry to keep that surface area minimal.`, "Re-confirmed unchanged on 2026-09-07 against the same model page.", "cachedInput added on 2026-09-07: the model page now prints a Cache Read rate of 0.125 per million tokens for this model."] }
1362
1547
  ],
1363
- source: { "url": "https://openrouter.ai/openai/gpt-5", "observedAt": "2026-08-05" }
1548
+ source: { "url": "https://openrouter.ai/openai/gpt-5", "observedAt": "2026-09-07" }
1549
+ },
1550
+ {
1551
+ canonicalId: "deepseek-v4-flash-0731",
1552
+ provider: "together",
1553
+ aliases: [],
1554
+ family: "deepseek",
1555
+ pricing: [
1556
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.14", "output": "0.28", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Added from the 2026-09-07 fetch. effectiveFrom is the observation date rather than this file's conservative 2026-01-01, since the 2026-08-05 fetch of the same page did not list it.", "Together publishes no cached-input rate or batch discount for serverless models; both fields are omitted rather than guessed."] }
1557
+ ],
1558
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1364
1559
  },
1365
1560
  {
1366
1561
  canonicalId: "deepseek-v4-pro",
@@ -1368,19 +1563,29 @@ var MODEL_REGISTRY = [
1368
1563
  aliases: [],
1369
1564
  family: "deepseek",
1370
1565
  pricing: [
1371
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.74", "output": "3.48", "cachedInput": "0.20", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-08-05", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1566
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.74", "output": "3.48", "cachedInput": "0.20", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-08-05", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'Not re-confirmed on 2026-09-07: that fetch listed "DeepSeek V4 Pro 0813" at $1.32 / $3.96 and no undated "DeepSeek V4 Pro" row. Whether the dated build is this same model repriced or a separate snapshot is not stated on the page, so this entry keeps its 2026-08-05 rate and the dated build is recorded separately as deepseek-v4-pro-0813 rather than silently overwriting this one.'] }
1372
1567
  ],
1373
1568
  source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1374
1569
  },
1570
+ {
1571
+ canonicalId: "deepseek-v4-pro-0813",
1572
+ provider: "together",
1573
+ aliases: [],
1574
+ family: "deepseek",
1575
+ pricing: [
1576
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "1.32", "output": "3.96", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Dated build listed on the page on 2026-09-07; see deepseek-v4-pro's notes for why it is a separate entry rather than a reprice of that one.", "Added from the 2026-09-07 fetch. effectiveFrom is the observation date rather than this file's conservative 2026-01-01, since the 2026-08-05 fetch of the same page did not list it.", "Together publishes no cached-input rate or batch discount for serverless models; both fields are omitted rather than guessed."] }
1577
+ ],
1578
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1579
+ },
1375
1580
  {
1376
1581
  canonicalId: "gemma-4-31b",
1377
1582
  provider: "together",
1378
1583
  aliases: [],
1379
1584
  family: "gemma",
1380
1585
  pricing: [
1381
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.39", "output": "0.97", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-08-05", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'Cross-provider alias/canonicalId collision (allowed, not an error): AWS Bedrock also lists "Gemma 4 31B" (aws-bedrock.json: gemma-4-31b) at a different, lower rate ($0.14/$0.40 as observed on Bedrock) \u2014 same underlying Google open-weight model, independently priced by each reseller; do not assume parity.'] }
1586
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.39", "output": "0.97", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'Cross-provider alias/canonicalId collision (allowed, not an error): AWS Bedrock also lists "Gemma 4 31B" (aws-bedrock.json: gemma-4-31b) at a different, lower rate ($0.14/$0.40 as observed on Bedrock) \u2014 same underlying Google open-weight model, independently priced by each reseller; do not assume parity.', "Re-confirmed unchanged on 2026-09-07 against the same page."] }
1382
1587
  ],
1383
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1588
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1384
1589
  },
1385
1590
  {
1386
1591
  canonicalId: "glm-5.2",
@@ -1388,9 +1593,29 @@ var MODEL_REGISTRY = [
1388
1593
  aliases: [],
1389
1594
  family: "glm",
1390
1595
  pricing: [
1391
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.40", "output": "4.40", "cachedInput": "0.26", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-08-05", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1596
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.40", "output": "4.40", "cachedInput": "0.26", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
1392
1597
  ],
1393
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1598
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1599
+ },
1600
+ {
1601
+ canonicalId: "glm-5.3",
1602
+ provider: "together",
1603
+ aliases: [],
1604
+ family: "glm",
1605
+ pricing: [
1606
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "1.40", "output": "4.40", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Added from the 2026-09-07 fetch. effectiveFrom is the observation date rather than this file's conservative 2026-01-01, since the 2026-08-05 fetch of the same page did not list it.", "Together publishes no cached-input rate or batch discount for serverless models; both fields are omitted rather than guessed."] }
1607
+ ],
1608
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1609
+ },
1610
+ {
1611
+ canonicalId: "glm-5.3-flash",
1612
+ provider: "together",
1613
+ aliases: [],
1614
+ family: "glm",
1615
+ pricing: [
1616
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.50", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Added from the 2026-09-07 fetch. effectiveFrom is the observation date rather than this file's conservative 2026-01-01, since the 2026-08-05 fetch of the same page did not list it.", "Together publishes no cached-input rate or batch discount for serverless models; both fields are omitted rather than guessed."] }
1617
+ ],
1618
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1394
1619
  },
1395
1620
  {
1396
1621
  canonicalId: "gpt-oss-120b",
@@ -1398,9 +1623,9 @@ var MODEL_REGISTRY = [
1398
1623
  aliases: [],
1399
1624
  family: "gpt-oss",
1400
1625
  pricing: [
1401
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.60", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-08-05", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'Cross-provider alias/canonicalId collision (allowed, not an error): Groq also publishes a model with canonicalId "gpt-oss-120b" (groq.json), independently priced at the same $0.15/$0.60 figure as observed. The identical string "gpt-oss-120b" is used as the canonicalId on both providers because that is the actual model name each provider publishes; resolving "gpt-oss-120b" without a provider qualifier is ambiguous across providers by design and the resolver requires a provider qualifier to disambiguate it.'] }
1626
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.60", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'Cross-provider alias/canonicalId collision (allowed, not an error): Groq also publishes a model with canonicalId "gpt-oss-120b" (groq.json), independently priced at the same $0.15/$0.60 figure as observed. The identical string "gpt-oss-120b" is used as the canonicalId on both providers because that is the actual model name each provider publishes; resolving "gpt-oss-120b" without a provider qualifier is ambiguous across providers by design and the resolver requires a provider qualifier to disambiguate it.', "Re-confirmed unchanged on 2026-09-07 against the same page."] }
1402
1627
  ],
1403
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1628
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1404
1629
  },
1405
1630
  {
1406
1631
  canonicalId: "gpt-oss-20b",
@@ -1408,7 +1633,7 @@ var MODEL_REGISTRY = [
1408
1633
  aliases: [],
1409
1634
  family: "gpt-oss",
1410
1635
  pricing: [
1411
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.05", "output": "0.20", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-08-05", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'Cross-provider alias/canonicalId collision (allowed, not an error): Groq also publishes "gpt-oss-20b" (groq.json) at a different rate ($0.075/$0.30 as observed) \u2014 same model name, independently priced by each host; do not assume parity.'] }
1636
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.05", "output": "0.20", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-08-05", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", 'Cross-provider alias/canonicalId collision (allowed, not an error): Groq also publishes "gpt-oss-20b" (groq.json) at a different rate ($0.075/$0.30 as observed) \u2014 same model name, independently priced by each host; do not assume parity.', "Not surfaced by the 2026-09-07 fetch of the same page. observedAt is deliberately left at 2026-08-05: the rate was not re-observed, and an absence in one page fetch is not evidence of a withdrawal."] }
1412
1637
  ],
1413
1638
  source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1414
1639
  },
@@ -1418,9 +1643,19 @@ var MODEL_REGISTRY = [
1418
1643
  aliases: [],
1419
1644
  family: "kimi",
1420
1645
  pricing: [
1421
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "3.00", "output": "15.00", "cachedInput": "0.30", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-08-05", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1646
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "3.00", "output": "15.00", "cachedInput": "0.30", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
1422
1647
  ],
1423
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1648
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1649
+ },
1650
+ {
1651
+ canonicalId: "llama-3-8b-instruct-lite",
1652
+ provider: "together",
1653
+ aliases: [],
1654
+ family: "llama",
1655
+ pricing: [
1656
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.14", "output": "0.14", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Added from the 2026-09-07 fetch. effectiveFrom is the observation date rather than this file's conservative 2026-01-01, since the 2026-08-05 fetch of the same page did not list it.", "Together publishes no cached-input rate or batch discount for serverless models; both fields are omitted rather than guessed."] }
1657
+ ],
1658
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1424
1659
  },
1425
1660
  {
1426
1661
  canonicalId: "llama-3.3-70b",
@@ -1428,9 +1663,9 @@ var MODEL_REGISTRY = [
1428
1663
  aliases: [],
1429
1664
  family: "llama-3.3",
1430
1665
  pricing: [
1431
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.04", "output": "1.04", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-08-05", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Also hosted by Groq (groq.json: llama-3.3-70b-versatile, $0.59/$0.79) and resold by AWS Bedrock \u2014 each host prices this same open-weight model independently; do not assume parity across providers."] }
1666
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.04", "output": "1.04", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Also hosted by Groq (groq.json: llama-3.3-70b-versatile, $0.59/$0.79) and resold by AWS Bedrock \u2014 each host prices this same open-weight model independently; do not assume parity across providers.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
1432
1667
  ],
1433
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1668
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1434
1669
  },
1435
1670
  {
1436
1671
  canonicalId: "minimax-m3",
@@ -1438,9 +1673,19 @@ var MODEL_REGISTRY = [
1438
1673
  aliases: [],
1439
1674
  family: "minimax",
1440
1675
  pricing: [
1441
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "1.20", "cachedInput": "0.06", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-08-05", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1676
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "1.20", "cachedInput": "0.06", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
1442
1677
  ],
1443
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1678
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1679
+ },
1680
+ {
1681
+ canonicalId: "qwen2.5-7b-instruct-turbo",
1682
+ provider: "together",
1683
+ aliases: [],
1684
+ family: "qwen",
1685
+ pricing: [
1686
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.30", "output": "0.30", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Added from the 2026-09-07 fetch. effectiveFrom is the observation date rather than this file's conservative 2026-01-01, since the 2026-08-05 fetch of the same page did not list it.", "Together publishes no cached-input rate or batch discount for serverless models; both fields are omitted rather than guessed."] }
1687
+ ],
1688
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1444
1689
  },
1445
1690
  {
1446
1691
  canonicalId: "qwen3.5-397b-a17b",
@@ -1448,9 +1693,29 @@ var MODEL_REGISTRY = [
1448
1693
  aliases: [],
1449
1694
  family: "qwen",
1450
1695
  pricing: [
1451
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.60", "output": "3.60", "cachedInput": "0.35", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-08-05", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1696
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "0.60", "output": "3.60", "cachedInput": "0.35", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
1452
1697
  ],
1453
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1698
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1699
+ },
1700
+ {
1701
+ canonicalId: "qwen3.5-9b",
1702
+ provider: "together",
1703
+ aliases: [],
1704
+ family: "qwen",
1705
+ pricing: [
1706
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.17", "output": "0.25", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Added from the 2026-09-07 fetch. effectiveFrom is the observation date rather than this file's conservative 2026-01-01, since the 2026-08-05 fetch of the same page did not list it.", "Together publishes no cached-input rate or batch discount for serverless models; both fields are omitted rather than guessed."] }
1707
+ ],
1708
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1709
+ },
1710
+ {
1711
+ canonicalId: "qwen3.6-plus",
1712
+ provider: "together",
1713
+ aliases: [],
1714
+ family: "qwen",
1715
+ pricing: [
1716
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.50", "output": "3.00", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Added from the 2026-09-07 fetch. effectiveFrom is the observation date rather than this file's conservative 2026-01-01, since the 2026-08-05 fetch of the same page did not list it.", "Together publishes no cached-input rate or batch discount for serverless models; both fields are omitted rather than guessed."] }
1717
+ ],
1718
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1454
1719
  },
1455
1720
  {
1456
1721
  canonicalId: "qwen3.7-max",
@@ -1458,9 +1723,39 @@ var MODEL_REGISTRY = [
1458
1723
  aliases: [],
1459
1724
  family: "qwen",
1460
1725
  pricing: [
1461
- { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.25", "output": "3.75", "cachedInput": "0.13", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-08-05", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01."] }
1726
+ { "effectiveFrom": "2026-01-01", "currency": "USD", "unit": "per-million-tokens", "input": "1.25", "output": "3.75", "cachedInput": "0.13", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Together's pricing page does not publish an effective date for this rate; effectiveFrom is set conservatively to 2026-01-01.", "Re-confirmed unchanged on 2026-09-07 against the same page."] }
1462
1727
  ],
1463
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1728
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1729
+ },
1730
+ {
1731
+ canonicalId: "qwen3.7-plus",
1732
+ provider: "together",
1733
+ aliases: [],
1734
+ family: "qwen",
1735
+ pricing: [
1736
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.32", "output": "1.28", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Added from the 2026-09-07 fetch. effectiveFrom is the observation date rather than this file's conservative 2026-01-01, since the 2026-08-05 fetch of the same page did not list it.", "Together publishes no cached-input rate or batch discount for serverless models; both fields are omitted rather than guessed."] }
1737
+ ],
1738
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1739
+ },
1740
+ {
1741
+ canonicalId: "qwen3.8-2.4t-a95b",
1742
+ provider: "together",
1743
+ aliases: [],
1744
+ family: "qwen",
1745
+ pricing: [
1746
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "2.00", "output": "6.00", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Added from the 2026-09-07 fetch. effectiveFrom is the observation date rather than this file's conservative 2026-01-01, since the 2026-08-05 fetch of the same page did not list it.", "Together publishes no cached-input rate or batch discount for serverless models; both fields are omitted rather than guessed."] }
1747
+ ],
1748
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1749
+ },
1750
+ {
1751
+ canonicalId: "qwen3.8-flash",
1752
+ provider: "together",
1753
+ aliases: [],
1754
+ family: "qwen",
1755
+ pricing: [
1756
+ { "effectiveFrom": "2026-09-07", "currency": "USD", "unit": "per-million-tokens", "input": "0.15", "output": "0.47", "sourceUrl": "https://www.together.ai/pricing", "observedAt": "2026-09-07", "notes": ["Added from the 2026-09-07 fetch. effectiveFrom is the observation date rather than this file's conservative 2026-01-01, since the 2026-08-05 fetch of the same page did not list it.", "Together publishes no cached-input rate or batch discount for serverless models; both fields are omitted rather than guessed."] }
1757
+ ],
1758
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1464
1759
  }
1465
1760
  ];
1466
1761