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.cjs CHANGED
@@ -265,7 +265,7 @@ function selectPricingPeriod(periods, at, identity) {
265
265
  }
266
266
 
267
267
  // ../../internal/model-registry/src/generated/registry.ts
268
- var REGISTRY_VERSION = "registry-5af85ce1a47be918";
268
+ var REGISTRY_VERSION = "registry-e5f4ec7eb681a235";
269
269
  var MODEL_REGISTRY = [
270
270
  {
271
271
  canonicalId: "claude-fable-5",
@@ -274,9 +274,30 @@ var MODEL_REGISTRY = [
274
274
  family: "fable",
275
275
  contextWindow: 1e6,
276
276
  pricing: [
277
- { "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)."] }
277
+ { "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)."] }
278
278
  ],
279
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05" }
279
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
280
+ },
281
+ {
282
+ canonicalId: "claude-fable-5-1",
283
+ provider: "anthropic",
284
+ aliases: [],
285
+ family: "fable",
286
+ contextWindow: 1e6,
287
+ pricing: [
288
+ { "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)."] }
289
+ ],
290
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
291
+ },
292
+ {
293
+ canonicalId: "claude-haiku-3-5",
294
+ provider: "anthropic",
295
+ aliases: [],
296
+ family: "haiku",
297
+ pricing: [
298
+ { "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)."] }
299
+ ],
300
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
280
301
  },
281
302
  {
282
303
  canonicalId: "claude-haiku-4-5-20251001",
@@ -285,9 +306,59 @@ var MODEL_REGISTRY = [
285
306
  family: "haiku",
286
307
  contextWindow: 2e5,
287
308
  pricing: [
288
- { "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)."] }
309
+ { "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)."] }
289
310
  ],
290
- 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.'] }
311
+ 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."] }
312
+ },
313
+ {
314
+ canonicalId: "claude-mythos-5",
315
+ provider: "anthropic",
316
+ aliases: [],
317
+ family: "mythos",
318
+ pricing: [
319
+ { "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)."] }
320
+ ],
321
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
322
+ },
323
+ {
324
+ canonicalId: "claude-mythos-5-1",
325
+ provider: "anthropic",
326
+ aliases: [],
327
+ family: "mythos",
328
+ pricing: [
329
+ { "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)."] }
330
+ ],
331
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
332
+ },
333
+ {
334
+ canonicalId: "claude-opus-4",
335
+ provider: "anthropic",
336
+ aliases: [],
337
+ family: "opus",
338
+ pricing: [
339
+ { "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)."] }
340
+ ],
341
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
342
+ },
343
+ {
344
+ canonicalId: "claude-opus-4-1",
345
+ provider: "anthropic",
346
+ aliases: [],
347
+ family: "opus",
348
+ pricing: [
349
+ { "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)."] }
350
+ ],
351
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
352
+ },
353
+ {
354
+ canonicalId: "claude-opus-4-5",
355
+ provider: "anthropic",
356
+ aliases: [],
357
+ family: "opus",
358
+ pricing: [
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" }
291
362
  },
292
363
  {
293
364
  canonicalId: "claude-opus-4-6",
@@ -296,9 +367,9 @@ var MODEL_REGISTRY = [
296
367
  family: "opus",
297
368
  contextWindow: 1e6,
298
369
  pricing: [
299
- { "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)."] }
370
+ { "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)."] }
300
371
  ],
301
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05" }
372
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
302
373
  },
303
374
  {
304
375
  canonicalId: "claude-opus-4-7",
@@ -307,9 +378,9 @@ var MODEL_REGISTRY = [
307
378
  family: "opus",
308
379
  contextWindow: 1e6,
309
380
  pricing: [
310
- { "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)."] }
381
+ { "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)."] }
311
382
  ],
312
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05" }
383
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
313
384
  },
314
385
  {
315
386
  canonicalId: "claude-opus-4-8",
@@ -318,9 +389,9 @@ var MODEL_REGISTRY = [
318
389
  family: "opus",
319
390
  contextWindow: 1e6,
320
391
  pricing: [
321
- { "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)."] }
392
+ { "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)."] }
322
393
  ],
323
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05" }
394
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
324
395
  },
325
396
  {
326
397
  canonicalId: "claude-opus-5",
@@ -329,9 +400,29 @@ var MODEL_REGISTRY = [
329
400
  family: "opus",
330
401
  contextWindow: 1e6,
331
402
  pricing: [
332
- { "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)."] }
403
+ { "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)."] }
404
+ ],
405
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
406
+ },
407
+ {
408
+ canonicalId: "claude-sonnet-4",
409
+ provider: "anthropic",
410
+ aliases: [],
411
+ family: "sonnet",
412
+ pricing: [
413
+ { "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)."] }
333
414
  ],
334
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05" }
415
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
416
+ },
417
+ {
418
+ canonicalId: "claude-sonnet-4-5",
419
+ provider: "anthropic",
420
+ aliases: [],
421
+ family: "sonnet",
422
+ pricing: [
423
+ { "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)."] }
424
+ ],
425
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
335
426
  },
336
427
  {
337
428
  canonicalId: "claude-sonnet-4-6",
@@ -340,9 +431,9 @@ var MODEL_REGISTRY = [
340
431
  family: "sonnet",
341
432
  contextWindow: 1e6,
342
433
  pricing: [
343
- { "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)."] }
434
+ { "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)."] }
344
435
  ],
345
- source: { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "observedAt": "2026-08-05" }
436
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
346
437
  },
347
438
  {
348
439
  canonicalId: "claude-sonnet-5",
@@ -351,10 +442,9 @@ var MODEL_REGISTRY = [
351
442
  family: "sonnet",
352
443
  contextWindow: 1e6,
353
444
  pricing: [
354
- { "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)."] },
355
- { "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)."] }
445
+ { "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)."] }
356
446
  ],
357
- 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."] }
447
+ source: { "url": "https://platform.claude.com/docs/en/about-claude/pricing", "observedAt": "2026-09-07" }
358
448
  },
359
449
  {
360
450
  canonicalId: "amazon-nova-lite",
@@ -362,7 +452,7 @@ var MODEL_REGISTRY = [
362
452
  aliases: [],
363
453
  family: "amazon-nova",
364
454
  pricing: [
365
- { "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."] }
455
+ { "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."] }
366
456
  ],
367
457
  source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
368
458
  },
@@ -372,7 +462,7 @@ var MODEL_REGISTRY = [
372
462
  aliases: [],
373
463
  family: "amazon-nova",
374
464
  pricing: [
375
- { "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.`] }
465
+ { "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."] }
376
466
  ],
377
467
  source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
378
468
  },
@@ -382,7 +472,7 @@ var MODEL_REGISTRY = [
382
472
  aliases: [],
383
473
  family: "amazon-nova",
384
474
  pricing: [
385
- { "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."] }
475
+ { "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."] }
386
476
  ],
387
477
  source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
388
478
  },
@@ -392,9 +482,9 @@ var MODEL_REGISTRY = [
392
482
  aliases: [],
393
483
  family: "anthropic-claude",
394
484
  pricing: [
395
- { "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."] }
485
+ { "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."] }
396
486
  ],
397
- source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
487
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
398
488
  },
399
489
  {
400
490
  canonicalId: "claude-3.5-sonnet-v2",
@@ -402,9 +492,29 @@ var MODEL_REGISTRY = [
402
492
  aliases: [],
403
493
  family: "anthropic-claude",
404
494
  pricing: [
405
- { "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)."] }
495
+ { "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."] }
406
496
  ],
407
- source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
497
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
498
+ },
499
+ {
500
+ canonicalId: "gemma-3-12b",
501
+ provider: "aws-bedrock",
502
+ aliases: [],
503
+ family: "gemma",
504
+ pricing: [
505
+ { "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."] }
506
+ ],
507
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
508
+ },
509
+ {
510
+ canonicalId: "gemma-3-27b",
511
+ provider: "aws-bedrock",
512
+ aliases: [],
513
+ family: "gemma",
514
+ pricing: [
515
+ { "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."] }
516
+ ],
517
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
408
518
  },
409
519
  {
410
520
  canonicalId: "gemma-4-31b",
@@ -412,9 +522,9 @@ var MODEL_REGISTRY = [
412
522
  aliases: [],
413
523
  family: "google-gemma",
414
524
  pricing: [
415
- { "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.'] }
525
+ { "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."] }
416
526
  ],
417
- source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
527
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
418
528
  },
419
529
  {
420
530
  canonicalId: "mistral-large-3",
@@ -422,9 +532,19 @@ var MODEL_REGISTRY = [
422
532
  aliases: [],
423
533
  family: "mistral",
424
534
  pricing: [
425
- { "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."] }
535
+ { "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."] }
426
536
  ],
427
- source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
537
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
538
+ },
539
+ {
540
+ canonicalId: "nemotron-3-super-120b",
541
+ provider: "aws-bedrock",
542
+ aliases: [],
543
+ family: "nemotron",
544
+ pricing: [
545
+ { "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."] }
546
+ ],
547
+ source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-09-07" }
428
548
  },
429
549
  {
430
550
  canonicalId: "nemotron-nano-2",
@@ -432,7 +552,7 @@ var MODEL_REGISTRY = [
432
552
  aliases: [],
433
553
  family: "nvidia-nemotron",
434
554
  pricing: [
435
- { "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."] }
555
+ { "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."] }
436
556
  ],
437
557
  source: { "url": "https://aws.amazon.com/bedrock/pricing/", "observedAt": "2026-08-05" }
438
558
  },
@@ -662,9 +782,9 @@ var MODEL_REGISTRY = [
662
782
  aliases: [],
663
783
  family: "gpt-5.6",
664
784
  pricing: [
665
- { "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.`] }
785
+ { "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.`] }
666
786
  ],
667
- source: { "url": "https://prices.azure.com/api/retail/prices?currencyCode='USD'&$filter=contains(productName,%20%27OpenAI%27)", "observedAt": "2026-08-05" }
787
+ source: { "url": "https://prices.azure.com/api/retail/prices?currencyCode='USD'&$filter=contains(productName,%20%27OpenAI%27)", "observedAt": "2026-09-07" }
668
788
  },
669
789
  {
670
790
  canonicalId: "gpt-5.6-terra",
@@ -762,9 +882,9 @@ var MODEL_REGISTRY = [
762
882
  aliases: [],
763
883
  family: "aya-expanse",
764
884
  pricing: [
765
- { "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."] }
885
+ { "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."] }
766
886
  ],
767
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
887
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
768
888
  },
769
889
  {
770
890
  canonicalId: "aya-expanse-8b",
@@ -772,9 +892,9 @@ var MODEL_REGISTRY = [
772
892
  aliases: [],
773
893
  family: "aya-expanse",
774
894
  pricing: [
775
- { "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."] }
895
+ { "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."] }
776
896
  ],
777
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
897
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
778
898
  },
779
899
  {
780
900
  canonicalId: "command",
@@ -782,9 +902,9 @@ var MODEL_REGISTRY = [
782
902
  aliases: [],
783
903
  family: "command",
784
904
  pricing: [
785
- { "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."] }
905
+ { "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."] }
786
906
  ],
787
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
907
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
788
908
  },
789
909
  {
790
910
  canonicalId: "command-light",
@@ -792,9 +912,9 @@ var MODEL_REGISTRY = [
792
912
  aliases: [],
793
913
  family: "command",
794
914
  pricing: [
795
- { "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".'] }
915
+ { "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."] }
796
916
  ],
797
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
917
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
798
918
  },
799
919
  {
800
920
  canonicalId: "command-r-03-2024",
@@ -802,9 +922,9 @@ var MODEL_REGISTRY = [
802
922
  aliases: [],
803
923
  family: "command-r",
804
924
  pricing: [
805
- { "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."] }
925
+ { "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."] }
806
926
  ],
807
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
927
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
808
928
  },
809
929
  {
810
930
  canonicalId: "command-r-plus-04-2024",
@@ -812,9 +932,9 @@ var MODEL_REGISTRY = [
812
932
  aliases: [],
813
933
  family: "command-r-plus",
814
934
  pricing: [
815
- { "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.`] }
935
+ { "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."] }
816
936
  ],
817
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
937
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
818
938
  },
819
939
  {
820
940
  canonicalId: "command-r-plus-08-2024",
@@ -822,9 +942,9 @@ var MODEL_REGISTRY = [
822
942
  aliases: [],
823
943
  family: "command-r-plus",
824
944
  pricing: [
825
- { "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."] }
945
+ { "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."] }
826
946
  ],
827
- source: { "url": "https://cohere.com/pricing", "observedAt": "2026-08-05" }
947
+ source: { "url": "https://cohere.com/pricing", "observedAt": "2026-09-07" }
828
948
  },
829
949
  {
830
950
  canonicalId: "gemini-2.5-flash",
@@ -832,9 +952,9 @@ var MODEL_REGISTRY = [
832
952
  aliases: [],
833
953
  family: "gemini-2.5",
834
954
  pricing: [
835
- { "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)."] }
955
+ { "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."] }
836
956
  ],
837
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
957
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
838
958
  },
839
959
  {
840
960
  canonicalId: "gemini-2.5-flash-lite",
@@ -842,9 +962,9 @@ var MODEL_REGISTRY = [
842
962
  aliases: [],
843
963
  family: "gemini-2.5",
844
964
  pricing: [
845
- { "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)."] }
965
+ { "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."] }
846
966
  ],
847
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
967
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
848
968
  },
849
969
  {
850
970
  canonicalId: "gemini-2.5-pro",
@@ -852,9 +972,19 @@ var MODEL_REGISTRY = [
852
972
  aliases: [],
853
973
  family: "gemini-2.5",
854
974
  pricing: [
855
- { "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."] }
975
+ { "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."] }
976
+ ],
977
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
978
+ },
979
+ {
980
+ canonicalId: "gemini-3.1-flash-lite",
981
+ provider: "google",
982
+ aliases: [],
983
+ family: "gemini-3.1",
984
+ pricing: [
985
+ { "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."] }
856
986
  ],
857
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
987
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
858
988
  },
859
989
  {
860
990
  canonicalId: "gemini-3.1-pro-preview",
@@ -862,9 +992,9 @@ var MODEL_REGISTRY = [
862
992
  aliases: [],
863
993
  family: "gemini-3.1",
864
994
  pricing: [
865
- { "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").'] }
995
+ { "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."] }
866
996
  ],
867
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
997
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
868
998
  },
869
999
  {
870
1000
  canonicalId: "gemini-3.5-flash",
@@ -872,9 +1002,9 @@ var MODEL_REGISTRY = [
872
1002
  aliases: [],
873
1003
  family: "gemini-3.5",
874
1004
  pricing: [
875
- { "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)."] }
1005
+ { "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."] }
876
1006
  ],
877
- 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" }
878
1008
  },
879
1009
  {
880
1010
  canonicalId: "gemini-3.5-flash-lite",
@@ -882,9 +1012,9 @@ var MODEL_REGISTRY = [
882
1012
  aliases: [],
883
1013
  family: "gemini-3.5",
884
1014
  pricing: [
885
- { "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)."] }
1015
+ { "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."] }
886
1016
  ],
887
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
1017
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
888
1018
  },
889
1019
  {
890
1020
  canonicalId: "gemini-3.6-flash",
@@ -892,9 +1022,33 @@ var MODEL_REGISTRY = [
892
1022
  aliases: [],
893
1023
  family: "gemini-3.6",
894
1024
  pricing: [
895
- { "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)."] }
1025
+ { "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."] },
1026
+ { "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."] },
1027
+ { "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."] }
1028
+ ],
1029
+ 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."] }
1030
+ },
1031
+ {
1032
+ canonicalId: "gemini-3.7-flash",
1033
+ provider: "google",
1034
+ aliases: [],
1035
+ family: "gemini-3.7",
1036
+ pricing: [
1037
+ { "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."] },
1038
+ { "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."] }
1039
+ ],
1040
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
1041
+ },
1042
+ {
1043
+ canonicalId: "gemini-3.8-flash",
1044
+ provider: "google",
1045
+ aliases: [],
1046
+ family: "gemini-3.8",
1047
+ pricing: [
1048
+ { "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."] },
1049
+ { "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."] }
896
1050
  ],
897
- source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-08-05" }
1051
+ source: { "url": "https://ai.google.dev/gemini-api/docs/pricing", "observedAt": "2026-09-07" }
898
1052
  },
899
1053
  {
900
1054
  canonicalId: "gpt-oss-120b",
@@ -902,9 +1056,9 @@ var MODEL_REGISTRY = [
902
1056
  aliases: [],
903
1057
  family: "gpt-oss",
904
1058
  pricing: [
905
- { "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)."] }
1059
+ { "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."] }
906
1060
  ],
907
- source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-08-05" }
1061
+ source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-09-07" }
908
1062
  },
909
1063
  {
910
1064
  canonicalId: "gpt-oss-20b",
@@ -912,9 +1066,9 @@ var MODEL_REGISTRY = [
912
1066
  aliases: [],
913
1067
  family: "gpt-oss",
914
1068
  pricing: [
915
- { "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."] }
1069
+ { "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."] }
916
1070
  ],
917
- source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-08-05" }
1071
+ source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-09-07" }
918
1072
  },
919
1073
  {
920
1074
  canonicalId: "llama-3.1-8b-instant",
@@ -922,7 +1076,7 @@ var MODEL_REGISTRY = [
922
1076
  aliases: ["llama-3.1-8b"],
923
1077
  family: "llama-3.1",
924
1078
  pricing: [
925
- { "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."] }
1079
+ { "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."] }
926
1080
  ],
927
1081
  source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-08-05" }
928
1082
  },
@@ -932,7 +1086,7 @@ var MODEL_REGISTRY = [
932
1086
  aliases: ["llama-3.3-70b"],
933
1087
  family: "llama-3.3",
934
1088
  pricing: [
935
- { "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."] }
1089
+ { "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."] }
936
1090
  ],
937
1091
  source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-08-05" }
938
1092
  },
@@ -942,19 +1096,29 @@ var MODEL_REGISTRY = [
942
1096
  aliases: [],
943
1097
  family: "qwen",
944
1098
  pricing: [
945
- { "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."] }
1099
+ { "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."] }
946
1100
  ],
947
- source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-08-05" }
1101
+ source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-09-07" }
1102
+ },
1103
+ {
1104
+ canonicalId: "qwen3.8-27b",
1105
+ provider: "groq",
1106
+ aliases: ["qwen/qwen3.8-27b"],
1107
+ family: "qwen3.8",
1108
+ pricing: [
1109
+ { "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."] }
1110
+ ],
1111
+ source: { "url": "https://console.groq.com/docs/models", "observedAt": "2026-09-07" }
948
1112
  },
949
1113
  {
950
1114
  canonicalId: "codestral",
951
1115
  provider: "mistral",
952
- aliases: [],
1116
+ aliases: ["codestral-latest"],
953
1117
  family: "codestral",
954
1118
  pricing: [
955
- { "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."] }
1119
+ { "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)."] }
956
1120
  ],
957
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1121
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
958
1122
  },
959
1123
  {
960
1124
  canonicalId: "devstral-2",
@@ -962,7 +1126,7 @@ var MODEL_REGISTRY = [
962
1126
  aliases: [],
963
1127
  family: "devstral",
964
1128
  pricing: [
965
- { "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."] }
1129
+ { "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."] }
966
1130
  ],
967
1131
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
968
1132
  },
@@ -972,7 +1136,7 @@ var MODEL_REGISTRY = [
972
1136
  aliases: [],
973
1137
  family: "devstral",
974
1138
  pricing: [
975
- { "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."] }
1139
+ { "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."] }
976
1140
  ],
977
1141
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
978
1142
  },
@@ -982,7 +1146,7 @@ var MODEL_REGISTRY = [
982
1146
  aliases: [],
983
1147
  family: "magistral",
984
1148
  pricing: [
985
- { "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.'] }
1149
+ { "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."] }
986
1150
  ],
987
1151
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
988
1152
  },
@@ -992,59 +1156,59 @@ var MODEL_REGISTRY = [
992
1156
  aliases: [],
993
1157
  family: "magistral",
994
1158
  pricing: [
995
- { "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."] }
1159
+ { "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."] }
996
1160
  ],
997
1161
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
998
1162
  },
999
1163
  {
1000
1164
  canonicalId: "ministral-3-14b",
1001
1165
  provider: "mistral",
1002
- aliases: [],
1166
+ aliases: ["ministral-14b-latest"],
1003
1167
  family: "ministral-3",
1004
1168
  pricing: [
1005
- { "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.`] }
1169
+ { "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)."] }
1006
1170
  ],
1007
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1171
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
1008
1172
  },
1009
1173
  {
1010
1174
  canonicalId: "ministral-3-3b",
1011
1175
  provider: "mistral",
1012
- aliases: [],
1176
+ aliases: ["ministral-3b-latest"],
1013
1177
  family: "ministral-3",
1014
1178
  pricing: [
1015
- { "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."] }
1179
+ { "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)."] }
1016
1180
  ],
1017
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1181
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
1018
1182
  },
1019
1183
  {
1020
1184
  canonicalId: "ministral-3-8b",
1021
1185
  provider: "mistral",
1022
- aliases: [],
1186
+ aliases: ["ministral-8b-latest"],
1023
1187
  family: "ministral-3",
1024
1188
  pricing: [
1025
- { "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."] }
1189
+ { "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)."] }
1026
1190
  ],
1027
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1191
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
1028
1192
  },
1029
1193
  {
1030
1194
  canonicalId: "mistral-large-3",
1031
1195
  provider: "mistral",
1032
- aliases: [],
1196
+ aliases: ["mistral-large-latest"],
1033
1197
  family: "mistral-large",
1034
1198
  pricing: [
1035
- { "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.`] }
1199
+ { "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.`] }
1036
1200
  ],
1037
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1201
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
1038
1202
  },
1039
1203
  {
1040
1204
  canonicalId: "mistral-medium-3.5",
1041
1205
  provider: "mistral",
1042
- aliases: [],
1206
+ aliases: ["mistral-medium-latest"],
1043
1207
  family: "mistral-medium",
1044
1208
  pricing: [
1045
- { "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."] }
1209
+ { "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.`] }
1046
1210
  ],
1047
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1211
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
1048
1212
  },
1049
1213
  {
1050
1214
  canonicalId: "mistral-nemo",
@@ -1052,19 +1216,19 @@ var MODEL_REGISTRY = [
1052
1216
  aliases: [],
1053
1217
  family: "mistral-nemo",
1054
1218
  pricing: [
1055
- { "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."] }
1219
+ { "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."] }
1056
1220
  ],
1057
1221
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1058
1222
  },
1059
1223
  {
1060
1224
  canonicalId: "mistral-small-4",
1061
1225
  provider: "mistral",
1062
- aliases: [],
1226
+ aliases: ["mistral-small-latest"],
1063
1227
  family: "mistral-small",
1064
1228
  pricing: [
1065
- { "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."] }
1229
+ { "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.`] }
1066
1230
  ],
1067
- source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1231
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
1068
1232
  },
1069
1233
  {
1070
1234
  canonicalId: "mixtral-8x22b",
@@ -1072,7 +1236,7 @@ var MODEL_REGISTRY = [
1072
1236
  aliases: [],
1073
1237
  family: "mixtral",
1074
1238
  pricing: [
1075
- { "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."] }
1239
+ { "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."] }
1076
1240
  ],
1077
1241
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1078
1242
  },
@@ -1082,19 +1246,29 @@ var MODEL_REGISTRY = [
1082
1246
  aliases: [],
1083
1247
  family: "mixtral",
1084
1248
  pricing: [
1085
- { "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."] }
1249
+ { "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."] }
1086
1250
  ],
1087
1251
  source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-08-05" }
1088
1252
  },
1253
+ {
1254
+ canonicalId: "zai-glm-5-2",
1255
+ provider: "mistral",
1256
+ aliases: [],
1257
+ family: "glm",
1258
+ pricing: [
1259
+ { "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%."] }
1260
+ ],
1261
+ source: { "url": "https://mistral.ai/pricing/api", "observedAt": "2026-09-07" }
1262
+ },
1089
1263
  {
1090
1264
  canonicalId: "gpt-3.5-turbo",
1091
1265
  provider: "openai",
1092
1266
  aliases: [],
1093
1267
  family: "gpt-3.5",
1094
1268
  pricing: [
1095
- { "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."] }
1269
+ { "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.`] }
1096
1270
  ],
1097
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1271
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1098
1272
  },
1099
1273
  {
1100
1274
  canonicalId: "gpt-4.1",
@@ -1102,9 +1276,9 @@ var MODEL_REGISTRY = [
1102
1276
  aliases: [],
1103
1277
  family: "gpt-4.1",
1104
1278
  pricing: [
1105
- { "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."] }
1279
+ { "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."] }
1106
1280
  ],
1107
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1281
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1108
1282
  },
1109
1283
  {
1110
1284
  canonicalId: "gpt-4.1-mini",
@@ -1112,9 +1286,9 @@ var MODEL_REGISTRY = [
1112
1286
  aliases: [],
1113
1287
  family: "gpt-4.1",
1114
1288
  pricing: [
1115
- { "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."] }
1289
+ { "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."] }
1116
1290
  ],
1117
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1291
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1118
1292
  },
1119
1293
  {
1120
1294
  canonicalId: "gpt-4.1-nano",
@@ -1122,9 +1296,9 @@ var MODEL_REGISTRY = [
1122
1296
  aliases: [],
1123
1297
  family: "gpt-4.1",
1124
1298
  pricing: [
1125
- { "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."] }
1299
+ { "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."] }
1126
1300
  ],
1127
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1301
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1128
1302
  },
1129
1303
  {
1130
1304
  canonicalId: "gpt-4o",
@@ -1132,9 +1306,9 @@ var MODEL_REGISTRY = [
1132
1306
  aliases: [],
1133
1307
  family: "gpt-4o",
1134
1308
  pricing: [
1135
- { "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."] }
1309
+ { "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."] }
1136
1310
  ],
1137
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1311
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1138
1312
  },
1139
1313
  {
1140
1314
  canonicalId: "gpt-4o-mini",
@@ -1142,9 +1316,9 @@ var MODEL_REGISTRY = [
1142
1316
  aliases: [],
1143
1317
  family: "gpt-4o",
1144
1318
  pricing: [
1145
- { "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."] }
1319
+ { "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."] }
1146
1320
  ],
1147
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1321
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1148
1322
  },
1149
1323
  {
1150
1324
  canonicalId: "gpt-5",
@@ -1152,9 +1326,9 @@ var MODEL_REGISTRY = [
1152
1326
  aliases: [],
1153
1327
  family: "gpt-5",
1154
1328
  pricing: [
1155
- { "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."] }
1329
+ { "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."] }
1156
1330
  ],
1157
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1331
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1158
1332
  },
1159
1333
  {
1160
1334
  canonicalId: "gpt-5-mini",
@@ -1162,9 +1336,9 @@ var MODEL_REGISTRY = [
1162
1336
  aliases: [],
1163
1337
  family: "gpt-5",
1164
1338
  pricing: [
1165
- { "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."] }
1339
+ { "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."] }
1166
1340
  ],
1167
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1341
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1168
1342
  },
1169
1343
  {
1170
1344
  canonicalId: "gpt-5-nano",
@@ -1172,9 +1346,9 @@ var MODEL_REGISTRY = [
1172
1346
  aliases: [],
1173
1347
  family: "gpt-5",
1174
1348
  pricing: [
1175
- { "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."] }
1349
+ { "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."] }
1176
1350
  ],
1177
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1351
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1178
1352
  },
1179
1353
  {
1180
1354
  canonicalId: "gpt-5-pro",
@@ -1182,9 +1356,9 @@ var MODEL_REGISTRY = [
1182
1356
  aliases: [],
1183
1357
  family: "gpt-5",
1184
1358
  pricing: [
1185
- { "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."] }
1359
+ { "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.`] }
1186
1360
  ],
1187
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1361
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1188
1362
  },
1189
1363
  {
1190
1364
  canonicalId: "gpt-5.1",
@@ -1192,9 +1366,9 @@ var MODEL_REGISTRY = [
1192
1366
  aliases: [],
1193
1367
  family: "gpt-5.1",
1194
1368
  pricing: [
1195
- { "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."] }
1369
+ { "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."] }
1196
1370
  ],
1197
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1371
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1198
1372
  },
1199
1373
  {
1200
1374
  canonicalId: "gpt-5.2",
@@ -1202,9 +1376,9 @@ var MODEL_REGISTRY = [
1202
1376
  aliases: [],
1203
1377
  family: "gpt-5.2",
1204
1378
  pricing: [
1205
- { "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."] }
1379
+ { "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."] }
1206
1380
  ],
1207
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1381
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1208
1382
  },
1209
1383
  {
1210
1384
  canonicalId: "gpt-5.2-pro",
@@ -1212,9 +1386,9 @@ var MODEL_REGISTRY = [
1212
1386
  aliases: [],
1213
1387
  family: "gpt-5.2",
1214
1388
  pricing: [
1215
- { "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."] }
1389
+ { "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.`] }
1216
1390
  ],
1217
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1391
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1218
1392
  },
1219
1393
  {
1220
1394
  canonicalId: "gpt-5.4",
@@ -1222,9 +1396,9 @@ var MODEL_REGISTRY = [
1222
1396
  aliases: [],
1223
1397
  family: "gpt-5.4",
1224
1398
  pricing: [
1225
- { "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."] }
1399
+ { "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.'] }
1226
1400
  ],
1227
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1401
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1228
1402
  },
1229
1403
  {
1230
1404
  canonicalId: "gpt-5.4-mini",
@@ -1232,9 +1406,9 @@ var MODEL_REGISTRY = [
1232
1406
  aliases: [],
1233
1407
  family: "gpt-5.4",
1234
1408
  pricing: [
1235
- { "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."] }
1409
+ { "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."] }
1236
1410
  ],
1237
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1411
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1238
1412
  },
1239
1413
  {
1240
1414
  canonicalId: "gpt-5.4-nano",
@@ -1242,9 +1416,9 @@ var MODEL_REGISTRY = [
1242
1416
  aliases: [],
1243
1417
  family: "gpt-5.4",
1244
1418
  pricing: [
1245
- { "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."] }
1419
+ { "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."] }
1246
1420
  ],
1247
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1421
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1248
1422
  },
1249
1423
  {
1250
1424
  canonicalId: "gpt-5.4-pro",
@@ -1252,9 +1426,9 @@ var MODEL_REGISTRY = [
1252
1426
  aliases: [],
1253
1427
  family: "gpt-5.4",
1254
1428
  pricing: [
1255
- { "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."] }
1429
+ { "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.'] }
1256
1430
  ],
1257
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1431
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1258
1432
  },
1259
1433
  {
1260
1434
  canonicalId: "gpt-5.5",
@@ -1262,9 +1436,9 @@ var MODEL_REGISTRY = [
1262
1436
  aliases: [],
1263
1437
  family: "gpt-5.5",
1264
1438
  pricing: [
1265
- { "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."] }
1439
+ { "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.'] }
1266
1440
  ],
1267
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1441
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1268
1442
  },
1269
1443
  {
1270
1444
  canonicalId: "gpt-5.5-pro",
@@ -1272,9 +1446,9 @@ var MODEL_REGISTRY = [
1272
1446
  aliases: [],
1273
1447
  family: "gpt-5.5",
1274
1448
  pricing: [
1275
- { "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.`] }
1449
+ { "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.'] }
1276
1450
  ],
1277
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1451
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1278
1452
  },
1279
1453
  {
1280
1454
  canonicalId: "gpt-5.6-luna",
@@ -1282,9 +1456,9 @@ var MODEL_REGISTRY = [
1282
1456
  aliases: [],
1283
1457
  family: "gpt-5.6",
1284
1458
  pricing: [
1285
- { "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."] }
1459
+ { "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."] }
1286
1460
  ],
1287
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1461
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1288
1462
  },
1289
1463
  {
1290
1464
  canonicalId: "gpt-5.6-sol",
@@ -1292,9 +1466,10 @@ var MODEL_REGISTRY = [
1292
1466
  aliases: [],
1293
1467
  family: "gpt-5.6",
1294
1468
  pricing: [
1295
- { "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.`] }
1469
+ { "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."] },
1470
+ { "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.`] }
1296
1471
  ],
1297
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1472
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1298
1473
  },
1299
1474
  {
1300
1475
  canonicalId: "gpt-5.6-terra",
@@ -1302,9 +1477,19 @@ var MODEL_REGISTRY = [
1302
1477
  aliases: [],
1303
1478
  family: "gpt-5.6",
1304
1479
  pricing: [
1305
- { "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."] }
1480
+ { "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."] }
1481
+ ],
1482
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1483
+ },
1484
+ {
1485
+ canonicalId: "gpt-6-astra",
1486
+ provider: "openai",
1487
+ aliases: [],
1488
+ family: "gpt-6",
1489
+ pricing: [
1490
+ { "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.`] }
1306
1491
  ],
1307
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1492
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1308
1493
  },
1309
1494
  {
1310
1495
  canonicalId: "o1",
@@ -1312,9 +1497,9 @@ var MODEL_REGISTRY = [
1312
1497
  aliases: [],
1313
1498
  family: "o-series",
1314
1499
  pricing: [
1315
- { "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."] }
1500
+ { "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."] }
1316
1501
  ],
1317
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1502
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1318
1503
  },
1319
1504
  {
1320
1505
  canonicalId: "o1-pro",
@@ -1322,9 +1507,9 @@ var MODEL_REGISTRY = [
1322
1507
  aliases: [],
1323
1508
  family: "o-series",
1324
1509
  pricing: [
1325
- { "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."] }
1510
+ { "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.`] }
1326
1511
  ],
1327
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1512
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1328
1513
  },
1329
1514
  {
1330
1515
  canonicalId: "o3",
@@ -1332,9 +1517,9 @@ var MODEL_REGISTRY = [
1332
1517
  aliases: [],
1333
1518
  family: "o-series",
1334
1519
  pricing: [
1335
- { "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."] }
1520
+ { "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."] }
1336
1521
  ],
1337
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1522
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1338
1523
  },
1339
1524
  {
1340
1525
  canonicalId: "o3-mini",
@@ -1342,9 +1527,9 @@ var MODEL_REGISTRY = [
1342
1527
  aliases: [],
1343
1528
  family: "o-series",
1344
1529
  pricing: [
1345
- { "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."] }
1530
+ { "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."] }
1346
1531
  ],
1347
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1532
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1348
1533
  },
1349
1534
  {
1350
1535
  canonicalId: "o3-pro",
@@ -1352,9 +1537,9 @@ var MODEL_REGISTRY = [
1352
1537
  aliases: [],
1353
1538
  family: "o-series",
1354
1539
  pricing: [
1355
- { "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."] }
1540
+ { "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.`] }
1356
1541
  ],
1357
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1542
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1358
1543
  },
1359
1544
  {
1360
1545
  canonicalId: "o4-mini",
@@ -1362,9 +1547,9 @@ var MODEL_REGISTRY = [
1362
1547
  aliases: [],
1363
1548
  family: "o-series",
1364
1549
  pricing: [
1365
- { "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."] }
1550
+ { "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."] }
1366
1551
  ],
1367
- source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-08-05" }
1552
+ source: { "url": "https://developers.openai.com/api/docs/pricing", "observedAt": "2026-09-07" }
1368
1553
  },
1369
1554
  {
1370
1555
  canonicalId: "anthropic/claude-sonnet-5",
@@ -1372,9 +1557,9 @@ var MODEL_REGISTRY = [
1372
1557
  aliases: [],
1373
1558
  family: "anthropic-proxy",
1374
1559
  pricing: [
1375
- { "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.`] }
1560
+ { "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."] }
1376
1561
  ],
1377
- source: { "url": "https://openrouter.ai/anthropic/claude-sonnet-5", "observedAt": "2026-08-05" }
1562
+ source: { "url": "https://openrouter.ai/anthropic/claude-sonnet-5", "observedAt": "2026-09-07" }
1378
1563
  },
1379
1564
  {
1380
1565
  canonicalId: "google/gemini-3.1-pro-preview",
@@ -1382,9 +1567,9 @@ var MODEL_REGISTRY = [
1382
1567
  aliases: [],
1383
1568
  family: "google-proxy",
1384
1569
  pricing: [
1385
- { "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).`] }
1570
+ { "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."] }
1386
1571
  ],
1387
- source: { "url": "https://openrouter.ai/google/gemini-3.1-pro-preview", "observedAt": "2026-08-05" }
1572
+ source: { "url": "https://openrouter.ai/google/gemini-3.1-pro-preview", "observedAt": "2026-09-07" }
1388
1573
  },
1389
1574
  {
1390
1575
  canonicalId: "meta-llama/llama-3.3-70b-instruct",
@@ -1392,9 +1577,9 @@ var MODEL_REGISTRY = [
1392
1577
  aliases: [],
1393
1578
  family: "meta-proxy",
1394
1579
  pricing: [
1395
- { "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.`] }
1580
+ { "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.'] }
1396
1581
  ],
1397
- source: { "url": "https://openrouter.ai/meta-llama/llama-3.3-70b-instruct", "observedAt": "2026-08-05" }
1582
+ source: { "url": "https://openrouter.ai/meta-llama/llama-3.3-70b-instruct", "observedAt": "2026-09-07" }
1398
1583
  },
1399
1584
  {
1400
1585
  canonicalId: "openai/gpt-5",
@@ -1402,9 +1587,19 @@ var MODEL_REGISTRY = [
1402
1587
  aliases: [],
1403
1588
  family: "openai-proxy",
1404
1589
  pricing: [
1405
- { "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.`] }
1590
+ { "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."] }
1406
1591
  ],
1407
- source: { "url": "https://openrouter.ai/openai/gpt-5", "observedAt": "2026-08-05" }
1592
+ source: { "url": "https://openrouter.ai/openai/gpt-5", "observedAt": "2026-09-07" }
1593
+ },
1594
+ {
1595
+ canonicalId: "deepseek-v4-flash-0731",
1596
+ provider: "together",
1597
+ aliases: [],
1598
+ family: "deepseek",
1599
+ pricing: [
1600
+ { "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."] }
1601
+ ],
1602
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1408
1603
  },
1409
1604
  {
1410
1605
  canonicalId: "deepseek-v4-pro",
@@ -1412,19 +1607,29 @@ var MODEL_REGISTRY = [
1412
1607
  aliases: [],
1413
1608
  family: "deepseek",
1414
1609
  pricing: [
1415
- { "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."] }
1610
+ { "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.'] }
1416
1611
  ],
1417
1612
  source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1418
1613
  },
1614
+ {
1615
+ canonicalId: "deepseek-v4-pro-0813",
1616
+ provider: "together",
1617
+ aliases: [],
1618
+ family: "deepseek",
1619
+ pricing: [
1620
+ { "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."] }
1621
+ ],
1622
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1623
+ },
1419
1624
  {
1420
1625
  canonicalId: "gemma-4-31b",
1421
1626
  provider: "together",
1422
1627
  aliases: [],
1423
1628
  family: "gemma",
1424
1629
  pricing: [
1425
- { "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.'] }
1630
+ { "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."] }
1426
1631
  ],
1427
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1632
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1428
1633
  },
1429
1634
  {
1430
1635
  canonicalId: "glm-5.2",
@@ -1432,9 +1637,29 @@ var MODEL_REGISTRY = [
1432
1637
  aliases: [],
1433
1638
  family: "glm",
1434
1639
  pricing: [
1435
- { "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."] }
1640
+ { "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."] }
1436
1641
  ],
1437
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1642
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1643
+ },
1644
+ {
1645
+ canonicalId: "glm-5.3",
1646
+ provider: "together",
1647
+ aliases: [],
1648
+ family: "glm",
1649
+ pricing: [
1650
+ { "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."] }
1651
+ ],
1652
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1653
+ },
1654
+ {
1655
+ canonicalId: "glm-5.3-flash",
1656
+ provider: "together",
1657
+ aliases: [],
1658
+ family: "glm",
1659
+ pricing: [
1660
+ { "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."] }
1661
+ ],
1662
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1438
1663
  },
1439
1664
  {
1440
1665
  canonicalId: "gpt-oss-120b",
@@ -1442,9 +1667,9 @@ var MODEL_REGISTRY = [
1442
1667
  aliases: [],
1443
1668
  family: "gpt-oss",
1444
1669
  pricing: [
1445
- { "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.'] }
1670
+ { "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."] }
1446
1671
  ],
1447
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1672
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1448
1673
  },
1449
1674
  {
1450
1675
  canonicalId: "gpt-oss-20b",
@@ -1452,7 +1677,7 @@ var MODEL_REGISTRY = [
1452
1677
  aliases: [],
1453
1678
  family: "gpt-oss",
1454
1679
  pricing: [
1455
- { "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.'] }
1680
+ { "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."] }
1456
1681
  ],
1457
1682
  source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1458
1683
  },
@@ -1462,9 +1687,19 @@ var MODEL_REGISTRY = [
1462
1687
  aliases: [],
1463
1688
  family: "kimi",
1464
1689
  pricing: [
1465
- { "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."] }
1690
+ { "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."] }
1466
1691
  ],
1467
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1692
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1693
+ },
1694
+ {
1695
+ canonicalId: "llama-3-8b-instruct-lite",
1696
+ provider: "together",
1697
+ aliases: [],
1698
+ family: "llama",
1699
+ pricing: [
1700
+ { "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."] }
1701
+ ],
1702
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1468
1703
  },
1469
1704
  {
1470
1705
  canonicalId: "llama-3.3-70b",
@@ -1472,9 +1707,9 @@ var MODEL_REGISTRY = [
1472
1707
  aliases: [],
1473
1708
  family: "llama-3.3",
1474
1709
  pricing: [
1475
- { "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."] }
1710
+ { "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."] }
1476
1711
  ],
1477
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1712
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1478
1713
  },
1479
1714
  {
1480
1715
  canonicalId: "minimax-m3",
@@ -1482,9 +1717,19 @@ var MODEL_REGISTRY = [
1482
1717
  aliases: [],
1483
1718
  family: "minimax",
1484
1719
  pricing: [
1485
- { "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."] }
1720
+ { "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."] }
1486
1721
  ],
1487
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1722
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1723
+ },
1724
+ {
1725
+ canonicalId: "qwen2.5-7b-instruct-turbo",
1726
+ provider: "together",
1727
+ aliases: [],
1728
+ family: "qwen",
1729
+ pricing: [
1730
+ { "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."] }
1731
+ ],
1732
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1488
1733
  },
1489
1734
  {
1490
1735
  canonicalId: "qwen3.5-397b-a17b",
@@ -1492,9 +1737,29 @@ var MODEL_REGISTRY = [
1492
1737
  aliases: [],
1493
1738
  family: "qwen",
1494
1739
  pricing: [
1495
- { "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."] }
1740
+ { "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."] }
1496
1741
  ],
1497
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1742
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1743
+ },
1744
+ {
1745
+ canonicalId: "qwen3.5-9b",
1746
+ provider: "together",
1747
+ aliases: [],
1748
+ family: "qwen",
1749
+ pricing: [
1750
+ { "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."] }
1751
+ ],
1752
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1753
+ },
1754
+ {
1755
+ canonicalId: "qwen3.6-plus",
1756
+ provider: "together",
1757
+ aliases: [],
1758
+ family: "qwen",
1759
+ pricing: [
1760
+ { "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."] }
1761
+ ],
1762
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1498
1763
  },
1499
1764
  {
1500
1765
  canonicalId: "qwen3.7-max",
@@ -1502,9 +1767,39 @@ var MODEL_REGISTRY = [
1502
1767
  aliases: [],
1503
1768
  family: "qwen",
1504
1769
  pricing: [
1505
- { "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."] }
1770
+ { "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."] }
1506
1771
  ],
1507
- source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-08-05" }
1772
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1773
+ },
1774
+ {
1775
+ canonicalId: "qwen3.7-plus",
1776
+ provider: "together",
1777
+ aliases: [],
1778
+ family: "qwen",
1779
+ pricing: [
1780
+ { "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."] }
1781
+ ],
1782
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1783
+ },
1784
+ {
1785
+ canonicalId: "qwen3.8-2.4t-a95b",
1786
+ provider: "together",
1787
+ aliases: [],
1788
+ family: "qwen",
1789
+ pricing: [
1790
+ { "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."] }
1791
+ ],
1792
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1793
+ },
1794
+ {
1795
+ canonicalId: "qwen3.8-flash",
1796
+ provider: "together",
1797
+ aliases: [],
1798
+ family: "qwen",
1799
+ pricing: [
1800
+ { "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."] }
1801
+ ],
1802
+ source: { "url": "https://www.together.ai/pricing", "observedAt": "2026-09-07" }
1508
1803
  }
1509
1804
  ];
1510
1805