diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 399f5b08..6078062f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,6 +20,7 @@ repos: rev: v2.3.0 hooks: - id: codespell + exclude: "^tests/cassettes/" additional_dependencies: - tomli diff --git a/packages/js/src/__tests__/calcPrice.test.ts b/packages/js/src/__tests__/calcPrice.test.ts index d383bc02..7fe23ff6 100644 --- a/packages/js/src/__tests__/calcPrice.test.ts +++ b/packages/js/src/__tests__/calcPrice.test.ts @@ -64,14 +64,18 @@ describe('Core Price Calculation Function', () => { } const modelPrice: ModelPrice = { input_audio_mtok: 10.0, + input_mtok: 5.0, output_audio_mtok: 20.0, + output_mtok: 10.0, } const result = calcPrice(usage, modelPrice) + // input leaf: 100 - 100 = 0 non-audio text, 100 audio + // output leaf: 50 - 50 = 0 non-audio text, 50 audio expect(result).toMatchObject({ - input_price: 0.001, // 100 * 10.0 / 1_000_000 - output_price: 0.001, // 50 * 20.0 / 1_000_000 + input_price: 0.001, // (0 * 5.0 + 100 * 10.0) / 1_000_000 + output_price: 0.001, // (0 * 10.0 + 50 * 20.0) / 1_000_000 total_price: 0.002, }) }) diff --git a/packages/js/src/__tests__/decompose.test.ts b/packages/js/src/__tests__/decompose.test.ts new file mode 100644 index 00000000..1ed7c28c --- /dev/null +++ b/packages/js/src/__tests__/decompose.test.ts @@ -0,0 +1,176 @@ +import { describe, expect, it } from 'vitest' + +import type { Usage } from '../types' + +import { computeLeafValues, isDescendantOrSelf, validateAncestorCoverage } from '../decompose' +import { getUnit, TOKENS_FAMILY } from '../units' + +describe('Containment', () => { + it('self is descendant-or-self', () => { + const unit = getUnit('input_mtok') + expect(isDescendantOrSelf(unit, unit)).toBe(true) + }) + + it('child is descendant', () => { + expect(isDescendantOrSelf(getUnit('input_mtok'), getUnit('cache_read_mtok'))).toBe(true) + }) + + it('parent is NOT descendant of child', () => { + expect(isDescendantOrSelf(getUnit('cache_read_mtok'), getUnit('input_mtok'))).toBe(false) + }) + + it('grandchild is descendant', () => { + expect(isDescendantOrSelf(getUnit('input_mtok'), getUnit('cache_audio_read_mtok'))).toBe(true) + }) + + it('sibling not descendant', () => { + expect(isDescendantOrSelf(getUnit('cache_read_mtok'), getUnit('cache_write_mtok'))).toBe(false) + }) + + it('different direction not descendant', () => { + expect(isDescendantOrSelf(getUnit('input_mtok'), getUnit('output_mtok'))).toBe(false) + }) +}) + +describe('Leaf Values', () => { + const family = TOKENS_FAMILY + + it('simple text model', () => { + const priced = new Set(['input_mtok', 'output_mtok']) + const usage = { input_tokens: 1000, output_tokens: 500 } + expect(computeLeafValues(priced, usage, family)).toEqual({ input_mtok: 1000, output_mtok: 500 }) + }) + + it('with cache', () => { + const priced = new Set(['cache_read_mtok', 'cache_write_mtok', 'input_mtok', 'output_mtok']) + const usage = { cache_read_tokens: 200, cache_write_tokens: 100, input_tokens: 1000, output_tokens: 500 } + expect(computeLeafValues(priced, usage, family)).toEqual({ + cache_read_mtok: 200, + cache_write_mtok: 100, + input_mtok: 700, + output_mtok: 500, + }) + }) + + it('with audio', () => { + const priced = new Set(['input_audio_mtok', 'input_mtok', 'output_mtok']) + const usage = { input_audio_tokens: 300, input_tokens: 1000, output_tokens: 500 } + expect(computeLeafValues(priced, usage, family)).toEqual({ + input_audio_mtok: 300, + input_mtok: 700, + output_mtok: 500, + }) + }) + + it('lattice: cache_read_audio carved from both', () => { + const priced = new Set(['cache_audio_read_mtok', 'cache_read_mtok', 'input_audio_mtok', 'input_mtok']) + const usage = { + cache_audio_read_tokens: 50, + cache_read_tokens: 200, + input_audio_tokens: 300, + input_tokens: 1000, + } + expect(computeLeafValues(priced, usage, family)).toEqual({ + cache_audio_read_mtok: 50, + cache_read_mtok: 150, + input_audio_mtok: 250, + input_mtok: 550, + }) + }) + + it('unpriced audio stays in catch-all', () => { + const priced = new Set(['cache_read_mtok', 'input_mtok', 'output_mtok']) + const usage = { + cache_read_tokens: 200, + input_audio_tokens: 300, + input_tokens: 1000, + output_tokens: 500, + } + expect(computeLeafValues(priced, usage, family)).toEqual({ + cache_read_mtok: 200, + input_mtok: 800, + output_mtok: 500, + }) + }) + + it('unpriced cache stays in catch-all', () => { + const priced = new Set(['input_mtok', 'output_mtok']) + const usage = { cache_read_tokens: 200, input_tokens: 1000, output_tokens: 500 } + expect(computeLeafValues(priced, usage, family)).toEqual({ + input_mtok: 1000, + output_mtok: 500, + }) + }) + + it('negative leaf raises error', () => { + const priced = new Set(['cache_read_mtok', 'input_mtok']) + const usage = { cache_read_tokens: 200, input_tokens: 100 } + expect(() => computeLeafValues(priced, usage, family)).toThrow(/Negative leaf value.*input_mtok/) + }) + + it('full 7-unit model', () => { + const priced = new Set([ + 'cache_audio_read_mtok', + 'cache_read_mtok', + 'cache_write_mtok', + 'input_audio_mtok', + 'input_mtok', + 'output_audio_mtok', + 'output_mtok', + ]) + const usage = { + cache_audio_read_tokens: 50, + cache_read_tokens: 200, + cache_write_tokens: 100, + input_audio_tokens: 300, + input_tokens: 1000, + output_audio_tokens: 150, + output_tokens: 800, + } + expect(computeLeafValues(priced, usage, family)).toEqual({ + cache_audio_read_mtok: 50, + cache_read_mtok: 150, + cache_write_mtok: 100, + input_audio_mtok: 250, + input_mtok: 450, + output_audio_mtok: 150, + output_mtok: 650, + }) + }) + + it('accepts Usage object (optional fields)', () => { + const priced = new Set(['cache_read_mtok', 'input_mtok', 'output_mtok']) + const usage: Usage = { cache_read_tokens: 200, input_tokens: 1000, output_tokens: 500 } + expect(computeLeafValues(priced, usage as Record, family)).toEqual({ + cache_read_mtok: 200, + input_mtok: 800, + output_mtok: 500, + }) + }) +}) + +describe('Ancestor Coverage', () => { + it('valid: input + output', () => { + expect(() => { + validateAncestorCoverage(new Set(['input_mtok', 'output_mtok']), TOKENS_FAMILY) + }).not.toThrow() + }) + + it('valid: with cache', () => { + expect(() => { + validateAncestorCoverage(new Set(['cache_read_mtok', 'input_mtok', 'output_mtok']), TOKENS_FAMILY) + }).not.toThrow() + }) + + it('missing ancestor: cache_read without input', () => { + expect(() => { + validateAncestorCoverage(new Set(['cache_read_mtok', 'output_mtok']), TOKENS_FAMILY) + }).toThrow(/ancestor.*input_mtok/) + }) + + it('missing intermediate ancestor', () => { + expect(() => { + validateAncestorCoverage(new Set(['cache_audio_read_mtok', 'input_mtok', 'output_mtok']), TOKENS_FAMILY) + }).toThrow(/ancestor/) + }) +}) diff --git a/packages/js/src/__tests__/units.test.ts b/packages/js/src/__tests__/units.test.ts new file mode 100644 index 00000000..9a8d1a3c --- /dev/null +++ b/packages/js/src/__tests__/units.test.ts @@ -0,0 +1,60 @@ +import { describe, expect, it } from 'vitest' + +import { getFamily, getUnit, TOKENS_FAMILY } from '../units' + +describe('Unit Registry', () => { + it('should load the tokens family', () => { + const family = getFamily('tokens') + expect(family.id).toBe('tokens') + expect(family.per).toBe(1_000_000) + }) + + it('should have 20 token units', () => { + const family = getFamily('tokens') + expect(Object.keys(family.units)).toHaveLength(20) + }) + + it('should look up a unit by ID', () => { + const unit = getUnit('input_mtok') + expect(unit.familyId).toBe('tokens') + expect(unit.usageKey).toBe('input_tokens') + expect(unit.dimensions).toEqual({ direction: 'input' }) + }) + + it('should throw on unknown unit', () => { + expect(() => getUnit('nonexistent')).toThrow() + }) + + it('should throw on unknown family', () => { + expect(() => getFamily('nonexistent')).toThrow() + }) + + it('should have all 7 currently-used units', () => { + for (const unitId of [ + 'input_mtok', + 'output_mtok', + 'cache_read_mtok', + 'cache_write_mtok', + 'input_audio_mtok', + 'cache_audio_read_mtok', + 'output_audio_mtok', + ]) { + expect(TOKENS_FAMILY.units[unitId]).toBeDefined() + } + }) + + it('should have correct usage_key for cache_audio_read_mtok', () => { + const unit = getUnit('cache_audio_read_mtok') + expect(unit.usageKey).toBe('cache_audio_read_tokens') + }) + + it('should validate all unit dimensions against family dimensions', () => { + const family = getFamily('tokens') + for (const unit of Object.values(family.units)) { + for (const [dimKey, dimVal] of Object.entries(unit.dimensions)) { + expect(family.dimensions[dimKey]).toBeDefined() + expect(family.dimensions[dimKey]).toContain(dimVal) + } + } + }) +}) diff --git a/packages/js/src/data.ts b/packages/js/src/data.ts index 619d7677..b774a4c3 100644 --- a/packages/js/src/data.ts +++ b/packages/js/src/data.ts @@ -9432,7 +9432,9 @@ export const data: Provider[] = [ starts_with: 'gpt-4o-audio-preview', }, context_window: 128000, + price_comments: 'input_mtok set equal to input_audio_mtok (audio-only input model, catch-all required by ancestor coverage rule)', prices: { + input_mtok: 2.5, output_mtok: 10, input_audio_mtok: 2.5, }, @@ -9483,7 +9485,9 @@ export const data: Provider[] = [ match: { starts_with: 'gpt-4o-mini-audio', }, + price_comments: 'input_mtok set equal to input_audio_mtok (audio-only input model, catch-all required by ancestor coverage rule)', prices: { + input_mtok: 0.15, output_mtok: 0.6, input_audio_mtok: 0.15, }, @@ -9518,8 +9522,11 @@ export const data: Provider[] = [ match: { equals: 'gpt-4o-mini-tts', }, + price_comments: + 'output_mtok set equal to output_audio_mtok (audio-only output model, catch-all required by ancestor coverage rule)', prices: { input_mtok: 0.6, + output_mtok: 12, output_audio_mtok: 12, }, }, diff --git a/packages/js/src/decompose.ts b/packages/js/src/decompose.ts new file mode 100644 index 00000000..88e5baeb --- /dev/null +++ b/packages/js/src/decompose.ts @@ -0,0 +1,83 @@ +import type { UnitDef, UnitFamily } from './units' + +/** + * True if candidate's dimensions are a (non-strict) superset of ancestor's. + */ +export function isDescendantOrSelf(ancestor: UnitDef, candidate: UnitDef): boolean { + if (ancestor.familyId !== candidate.familyId) return false + return Object.entries(ancestor.dimensions).every(([k, v]) => candidate.dimensions[k] === v) +} + +/** + * Get a usage value by key from a plain object. Returns 0 for missing/undefined/null. + */ +function getUsageValue(usage: Record, key: string): number { + const val = usage[key] + return typeof val === 'number' ? val : 0 +} + +/** + * Validate that every priced unit has all its ancestors also priced. + * Throws if any ancestor is missing. + */ +export function validateAncestorCoverage(pricedUnitIds: Set, family: UnitFamily): void { + for (const unitId of pricedUnitIds) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const unit = family.units[unitId]! + for (const [otherId, other] of Object.entries(family.units)) { + if (otherId !== unitId && isDescendantOrSelf(other, unit) && !pricedUnitIds.has(otherId)) { + throw new Error( + `Unit '${unitId}' is priced but its ancestor '${otherId}' is not. ` + `All ancestors of a priced unit must also be priced.` + ) + } + } + } +} + +/** + * Compute leaf values for each priced unit via Mobius inversion on the containment poset. + * + * Only priced units participate. Unpriced units' tokens stay in the nearest + * priced ancestor's catch-all. Throws on negative leaf values. + * + * Precondition: ancestor coverage — if a unit is priced, all its ancestors must + * also be priced. Validated by validateAncestorCoverage() called from calcPrice. + */ +export function computeLeafValues(pricedUnitIds: Set, usage: Record, family: UnitFamily): Record { + const result: Record = {} + + for (const unitId of pricedUnitIds) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const unit = family.units[unitId]! + const targetDepth = Object.keys(unit.dimensions).length + + let leafValue = 0 + for (const otherId of pricedUnitIds) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const other = family.units[otherId]! + if (!isDescendantOrSelf(unit, other)) continue + const depthDiff = Object.keys(other.dimensions).length - targetDepth + const coefficient = (-1) ** depthDiff + leafValue += coefficient * getUsageValue(usage, other.usageKey) + } + + if (leafValue < 0) { + const involved = [...pricedUnitIds] + .filter((oid) => { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const o = family.units[oid]! + return isDescendantOrSelf(unit, o) && getUsageValue(usage, o.usageKey) !== 0 + }) + .map((oid) => { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const o = family.units[oid]! + return `${o.usageKey}=${String(getUsageValue(usage, o.usageKey))}` + }) + throw new Error(`Negative leaf value (${String(leafValue)}) for ${unitId}: inconsistent usage values: ${involved.join(', ')}`) + } + + result[unitId] = leafValue + } + + return result +} diff --git a/packages/js/src/engine.ts b/packages/js/src/engine.ts index dd564f9b..fc669587 100644 --- a/packages/js/src/engine.ts +++ b/packages/js/src/engine.ts @@ -1,4 +1,6 @@ +import { computeLeafValues, validateAncestorCoverage } from './decompose' import { MatchLogic, ModelInfo, ModelPrice, ModelPriceCalculationResult, Provider, ProviderFindOptions, TieredPrices, Usage } from './types' +import { getUnit, TOKENS_FAMILY } from './units' /** * Calculate price using threshold-based (cliff) pricing model. @@ -30,7 +32,6 @@ function calcTieredPrice(tiered: TieredPrices, tokens: number, totalInputTokens: return (applicablePrice * tokens) / 1_000_000 } -// eslint-disable-next-line @typescript-eslint/no-unused-vars function calcMtokPrice( price: number | TieredPrices | undefined, tokens: number | undefined, @@ -45,50 +46,36 @@ function calcMtokPrice( } export function calcPrice(usage: Usage, modelPrice: ModelPrice): ModelPriceCalculationResult { - let inputPrice = 0 - let outputPrice = 0 - - // Calculate total input tokens for tier determination - const totalInputTokens = usage.input_tokens ?? 0 - - const cacheReadTokens = usage.cache_read_tokens ?? 0 - const cacheWriteTokens = usage.cache_write_tokens ?? 0 - const cacheAudioReadTokens = usage.cache_audio_read_tokens ?? 0 - const outputAudioTokens = usage.output_audio_tokens ?? 0 - - let uncachedAudioInputTokens = usage.input_audio_tokens ?? 0 - uncachedAudioInputTokens -= cacheAudioReadTokens - if (uncachedAudioInputTokens < 0) { - throw new Error('cache_audio_read_tokens cannot be greater than input_audio_tokens') + // Build the set of priced unit IDs from ModelPrice fields + const priced = new Map() + for (const unitId of Object.keys(TOKENS_FAMILY.units)) { + const price = modelPrice[unitId as keyof ModelPrice] + if (price !== undefined) { + priced.set(unitId, price) + } } - let uncachedTextInputTokens = usage.input_tokens ?? 0 - uncachedTextInputTokens -= cacheReadTokens - uncachedTextInputTokens -= cacheWriteTokens - uncachedTextInputTokens -= uncachedAudioInputTokens - if (uncachedTextInputTokens < 0) { - throw new Error('Uncached text input tokens cannot be negative') - } + const pricedUnitIds = new Set(priced.keys()) + validateAncestorCoverage(pricedUnitIds, TOKENS_FAMILY) - let cachedTextInputTokens = cacheReadTokens - cachedTextInputTokens -= cacheAudioReadTokens - if (cachedTextInputTokens < 0) { - throw new Error('cache_audio_read_tokens cannot be greater than cache_read_tokens') - } + const totalInputTokens = usage.input_tokens ?? 0 + const leafValues = computeLeafValues(pricedUnitIds, usage as unknown as Record, TOKENS_FAMILY) + + let inputPrice = 0 + let outputPrice = 0 - inputPrice += calcMtokPrice(modelPrice.input_mtok, uncachedTextInputTokens, 'input_mtok', totalInputTokens) - inputPrice += calcMtokPrice(modelPrice.cache_read_mtok, cachedTextInputTokens, 'cache_read_mtok', totalInputTokens) - inputPrice += calcMtokPrice(modelPrice.cache_write_mtok, cacheWriteTokens, 'cache_write_mtok', totalInputTokens) - inputPrice += calcMtokPrice(modelPrice.input_audio_mtok, uncachedAudioInputTokens, 'input_audio_mtok', totalInputTokens) - inputPrice += calcMtokPrice(modelPrice.cache_audio_read_mtok, cacheAudioReadTokens, 'cache_audio_read_mtok', totalInputTokens) + for (const [unitId, leafCount] of Object.entries(leafValues)) { + const unit = getUnit(unitId) + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const price = priced.get(unitId)! + const cost = calcMtokPrice(price, leafCount, '', totalInputTokens) - let textOutputTokens = usage.output_tokens ?? 0 - textOutputTokens -= outputAudioTokens - if (textOutputTokens < 0) { - throw new Error('output_audio_tokens cannot be greater than output_tokens') + if (unit.dimensions.direction === 'input') { + inputPrice += cost + } else { + outputPrice += cost + } } - outputPrice += calcMtokPrice(modelPrice.output_mtok, textOutputTokens, 'output_mtok', totalInputTokens) - outputPrice += calcMtokPrice(modelPrice.output_audio_mtok, usage.output_audio_tokens, 'output_audio_mtok', totalInputTokens) let totalPrice = inputPrice + outputPrice if (modelPrice.requests_kcount !== undefined) { diff --git a/packages/js/src/units-data.json b/packages/js/src/units-data.json new file mode 100644 index 00000000..63fcc959 --- /dev/null +++ b/packages/js/src/units-data.json @@ -0,0 +1,161 @@ +{ + "families": { + "tokens": { + "per": 1000000, + "description": "Token counts", + "dimensions": { + "direction": ["input", "output"], + "modality": ["text", "audio", "image", "video"], + "cache": ["read", "write"] + }, + "units": { + "input_mtok": { + "usage_key": "input_tokens", + "dimensions": { + "direction": "input" + } + }, + "output_mtok": { + "usage_key": "output_tokens", + "dimensions": { + "direction": "output" + } + }, + "cache_read_mtok": { + "usage_key": "cache_read_tokens", + "dimensions": { + "direction": "input", + "cache": "read" + } + }, + "cache_write_mtok": { + "usage_key": "cache_write_tokens", + "dimensions": { + "direction": "input", + "cache": "write" + } + }, + "input_text_mtok": { + "usage_key": "input_text_tokens", + "dimensions": { + "direction": "input", + "modality": "text" + } + }, + "output_text_mtok": { + "usage_key": "output_text_tokens", + "dimensions": { + "direction": "output", + "modality": "text" + } + }, + "cache_text_read_mtok": { + "usage_key": "cache_text_read_tokens", + "dimensions": { + "direction": "input", + "modality": "text", + "cache": "read" + } + }, + "cache_text_write_mtok": { + "usage_key": "cache_text_write_tokens", + "dimensions": { + "direction": "input", + "modality": "text", + "cache": "write" + } + }, + "input_audio_mtok": { + "usage_key": "input_audio_tokens", + "dimensions": { + "direction": "input", + "modality": "audio" + } + }, + "output_audio_mtok": { + "usage_key": "output_audio_tokens", + "dimensions": { + "direction": "output", + "modality": "audio" + } + }, + "cache_audio_read_mtok": { + "usage_key": "cache_audio_read_tokens", + "dimensions": { + "direction": "input", + "modality": "audio", + "cache": "read" + } + }, + "cache_audio_write_mtok": { + "usage_key": "cache_audio_write_tokens", + "dimensions": { + "direction": "input", + "modality": "audio", + "cache": "write" + } + }, + "input_image_mtok": { + "usage_key": "input_image_tokens", + "dimensions": { + "direction": "input", + "modality": "image" + } + }, + "output_image_mtok": { + "usage_key": "output_image_tokens", + "dimensions": { + "direction": "output", + "modality": "image" + } + }, + "cache_image_read_mtok": { + "usage_key": "cache_image_read_tokens", + "dimensions": { + "direction": "input", + "modality": "image", + "cache": "read" + } + }, + "cache_image_write_mtok": { + "usage_key": "cache_image_write_tokens", + "dimensions": { + "direction": "input", + "modality": "image", + "cache": "write" + } + }, + "input_video_mtok": { + "usage_key": "input_video_tokens", + "dimensions": { + "direction": "input", + "modality": "video" + } + }, + "output_video_mtok": { + "usage_key": "output_video_tokens", + "dimensions": { + "direction": "output", + "modality": "video" + } + }, + "cache_video_read_mtok": { + "usage_key": "cache_video_read_tokens", + "dimensions": { + "direction": "input", + "modality": "video", + "cache": "read" + } + }, + "cache_video_write_mtok": { + "usage_key": "cache_video_write_tokens", + "dimensions": { + "direction": "input", + "modality": "video", + "cache": "write" + } + } + } + } + } +} diff --git a/packages/js/src/units.ts b/packages/js/src/units.ts new file mode 100644 index 00000000..7072200c --- /dev/null +++ b/packages/js/src/units.ts @@ -0,0 +1,80 @@ +import unitsData from './units-data.json' + +export interface UnitDef { + dimensions: Record + familyId: string + id: string + usageKey: string +} + +export interface UnitFamily { + description: string + dimensions: Record + id: string + per: number + units: Record +} + +interface RawUnitData { + dimensions: Record + usage_key: string +} + +interface RawFamilyData { + description: string + dimensions: Record + per: number + units: Record +} + +interface RawUnitsData { + families: Record +} + +function loadFamilies(): Record { + const families: Record = {} + const raw = unitsData as RawUnitsData + + for (const [familyId, famData] of Object.entries(raw.families)) { + const units: Record = {} + for (const [unitId, unitData] of Object.entries(famData.units)) { + units[unitId] = { + dimensions: unitData.dimensions, + familyId, + id: unitId, + usageKey: unitData.usage_key, + } + } + families[familyId] = { + description: famData.description, + dimensions: famData.dimensions, + id: familyId, + per: famData.per, + units, + } + } + return families +} + +const FAMILIES = loadFamilies() +// eslint-disable-next-line @typescript-eslint/no-non-null-assertion +export const TOKENS_FAMILY = FAMILIES.tokens! + +const ALL_UNITS: Record = {} +for (const family of Object.values(FAMILIES)) { + for (const [unitId, unit] of Object.entries(family.units)) { + ALL_UNITS[unitId] = unit + } +} + +export function getFamily(familyId: string): UnitFamily { + const family = FAMILIES[familyId] + if (!family) throw new Error(`Unknown family: ${familyId}`) + return family +} + +export function getUnit(unitId: string): UnitDef { + const unit = ALL_UNITS[unitId] + if (!unit) throw new Error(`Unknown unit: ${unitId}`) + return unit +} diff --git a/packages/python/genai_prices/data.py b/packages/python/genai_prices/data.py index 21d81e81..d7e2343c 100644 --- a/packages/python/genai_prices/data.py +++ b/packages/python/genai_prices/data.py @@ -5276,7 +5276,10 @@ name='gpt 4o audio preview', description='Audio model for gpt-4o', context_window=128000, - prices=ModelPrice(output_mtok=Decimal('10'), input_audio_mtok=Decimal('2.5')), + price_comments='input_mtok set equal to input_audio_mtok (audio-only input model, catch-all required by ancestor coverage rule)', + prices=ModelPrice( + input_mtok=Decimal('2.5'), output_mtok=Decimal('10'), input_audio_mtok=Decimal('2.5') + ), ), ModelInfo( id='gpt-4o-mini', @@ -5306,7 +5309,10 @@ match=ClauseStartsWith(starts_with='gpt-4o-mini-audio'), name='gpt 4o mini audio preview', description='Audio model for gpt-4o mini', - prices=ModelPrice(output_mtok=Decimal('0.6'), input_audio_mtok=Decimal('0.15')), + price_comments='input_mtok set equal to input_audio_mtok (audio-only input model, catch-all required by ancestor coverage rule)', + prices=ModelPrice( + input_mtok=Decimal('0.15'), output_mtok=Decimal('0.6'), input_audio_mtok=Decimal('0.15') + ), ), ModelInfo( id='gpt-4o-mini-realtime-preview', @@ -5328,7 +5334,10 @@ ModelInfo( id='gpt-4o-mini-tts', match=ClauseEquals(equals='gpt-4o-mini-tts'), - prices=ModelPrice(input_mtok=Decimal('0.6'), output_audio_mtok=Decimal('12')), + price_comments='output_mtok set equal to output_audio_mtok (audio-only output model, catch-all required by ancestor coverage rule)', + prices=ModelPrice( + input_mtok=Decimal('0.6'), output_mtok=Decimal('12'), output_audio_mtok=Decimal('12') + ), ), ModelInfo( id='gpt-4o-realtime-preview', diff --git a/packages/python/genai_prices/decompose.py b/packages/python/genai_prices/decompose.py new file mode 100644 index 00000000..69d34a79 --- /dev/null +++ b/packages/python/genai_prices/decompose.py @@ -0,0 +1,97 @@ +"""Decomposition engine — computes leaf values for overlapping usage via Mobius inversion.""" + +from __future__ import annotations as _annotations + +from collections.abc import Mapping + +from .units import UnitDef, UnitFamily + + +def is_descendant_or_self(ancestor: UnitDef, candidate: UnitDef) -> bool: + """True if candidate's dimensions are a (non-strict) superset of ancestor's within the same family.""" + if ancestor.family_id != candidate.family_id: + return False + return all(candidate.dimensions.get(k) == v for k, v in ancestor.dimensions.items()) + + +def get_priced_descendants(unit_id: str, priced_ids: set[str], family: UnitFamily) -> set[str]: + """Return all priced unit IDs that are strict descendants of the given unit.""" + unit = family.units[unit_id] + return {uid for uid in priced_ids if uid != unit_id and is_descendant_or_self(unit, family.units[uid])} + + +def validate_ancestor_coverage(priced_unit_ids: set[str], family: UnitFamily) -> None: + """Raise ValueError if any priced unit is missing a priced ancestor. + + Spec Section 8, rule 4: if a model prices a unit, it must also price all ancestors + of that unit within the same family. + """ + for unit_id in priced_unit_ids: + unit = family.units[unit_id] + for other_id, other in family.units.items(): + if other_id != unit_id and is_descendant_or_self(other, unit) and other_id not in priced_unit_ids: + raise ValueError( + f'Unit {unit_id!r} is priced but its ancestor {other_id!r} is not. ' + f'All ancestors of a priced unit must also be priced.' + ) + + +def get_usage_value(usage: object, key: str) -> int: + """Get a usage value by key. Supports both Mapping and attribute access. Returns 0 for missing/None.""" + if isinstance(usage, Mapping): + val: int | None = usage.get(key) # pyright: ignore[reportUnknownMemberType,reportUnknownVariableType] + return val or 0 # pyright: ignore[reportUnknownVariableType] + result: int | None = getattr(usage, key, None) + return result or 0 + + +def compute_leaf_values( + priced_unit_ids: set[str], + usage: object, + family: UnitFamily, +) -> dict[str, int]: + """Compute the leaf value for each priced unit via Mobius inversion on the containment poset. + + Only priced units participate. If a unit is not priced, its usage stays in the + nearest priced ancestor's catch-all. Raises ValueError on negative leaf values + (inconsistent usage data). + + The coefficient (-1)^depth_diff is the Mobius function for a product of chains, + which holds because our dimensions are independent categorical axes. Each step + in the poset adds exactly one dimension. + + Precondition: ancestor coverage — if a unit is priced, all its ancestors must + also be priced. Validated by ModelPrice.__post_init__ (Python) and + validateAncestorCoverage (JS) at construction/calc time. + """ + result: dict[str, int] = {} + + for unit_id in priced_unit_ids: + unit = family.units[unit_id] + target_depth = len(unit.dimensions) + + # Mobius inversion: sum over all priced descendants (including self) + # coefficient = (-1)^(depth difference) + leaf_value = 0 + for other_id in priced_unit_ids: + other = family.units[other_id] + if not is_descendant_or_self(unit, other): + continue + depth_diff = len(other.dimensions) - target_depth + coefficient = (-1) ** depth_diff + leaf_value += coefficient * get_usage_value(usage, other.usage_key) + + if leaf_value < 0: + involved = [ + f'{family.units[oid].usage_key}={get_usage_value(usage, family.units[oid].usage_key)}' + for oid in priced_unit_ids + if is_descendant_or_self(unit, family.units[oid]) + and get_usage_value(usage, family.units[oid].usage_key) != 0 + ] + raise ValueError( + f'Negative leaf value ({leaf_value}) for {unit_id}: inconsistent usage values: {", ".join(involved)}' + ) + + result[unit_id] = leaf_value + + return result diff --git a/packages/python/genai_prices/types.py b/packages/python/genai_prices/types.py index db411d23..e16233c4 100644 --- a/packages/python/genai_prices/types.py +++ b/packages/python/genai_prices/types.py @@ -6,7 +6,7 @@ from dataclasses import dataclass from datetime import date, datetime, time, timezone from decimal import Decimal -from typing import Annotated, Any, Literal, Protocol, TypeVar, Union, cast, overload +from typing import Annotated, Any, Literal, TypeVar, Union, cast, overload import pydantic from typing_extensions import TypedDict, TypeGuard @@ -188,47 +188,16 @@ def __radd__(self, other: ExtractedUsage | Any) -> ExtractedUsage: return self + other -class AbstractUsage(Protocol): - """Abstract definition of data about token usage for a single LLM call.""" +AbstractUsage = object +"""Usage can be any object with numeric token-count attributes, or any Mapping. - @property - def input_tokens(self) -> int | None: - """Total number of input/prompt tokens. - - Note this should INCLUDE both uncached and cached tokens. - """ - - @property - def cache_write_tokens(self) -> int | None: - """Number of tokens written to the cache.""" - - @property - def cache_read_tokens(self) -> int | None: - """Number of tokens read from the cache. - - For many models this is described as just "cached tokens". - """ - - @property - def output_tokens(self) -> int | None: - """Number of output/completion tokens.""" - - @property - def input_audio_tokens(self) -> int | None: - """Number of audio input tokens.""" - - @property - def cache_audio_read_tokens(self) -> int | None: - """Number of audio tokens read from the cache.""" - - @property - def output_audio_tokens(self) -> int | None: - """Number of output audio tokens.""" +Values are accessed dynamically via getattr/Mapping.get — no typed Protocol needed. +""" @dataclass class Usage: - """Simple implementation of `AbstractUsage` as a dataclass.""" + """Dataclass holding token usage counts for a single LLM call.""" input_tokens: int | None = None """Number of input/prompt tokens.""" @@ -608,48 +577,50 @@ class ModelPrice: requests_kcount: Decimal | None = None """price in USD per thousand requests""" + def __post_init__(self) -> None: + from .decompose import validate_ancestor_coverage + from .units import TOKENS_FAMILY + + priced_unit_ids: set[str] = set() + for unit_id in TOKENS_FAMILY.units: + if getattr(self, unit_id, None) is not None: + priced_unit_ids.add(unit_id) + + if priced_unit_ids: + validate_ancestor_coverage(priced_unit_ids, TOKENS_FAMILY) + def calc_price(self, usage: AbstractUsage) -> CalcPrice: - """Calculate the price of usage in USD with this model price.""" + """Calculate the price of usage in USD with this model price. + + Uses registry-driven decomposition: builds a dict of priced units from + fixed fields, computes leaf values via Mobius inversion, then prices each leaf. + """ + from .decompose import compute_leaf_values, get_usage_value + from .units import TOKENS_FAMILY, get_unit + + # Build priced units dict from fixed fields + priced: dict[str, Decimal | TieredPrices] = {} + for unit_id in TOKENS_FAMILY.units: + price = getattr(self, unit_id, None) + if price is not None: + priced[unit_id] = price + + # Total input tokens for tier determination (before decomposition) + total_input_tokens = get_usage_value(usage, 'input_tokens') + + # Compute leaf values via decomposition + leaf_values = compute_leaf_values(set(priced.keys()), usage, TOKENS_FAMILY) + + # Price each unit and bucket by direction input_price = Decimal(0) output_price = Decimal(0) - - # Calculate total input tokens for tier determination - total_input_tokens = usage.input_tokens or 0 - - uncached_audio_input_tokens = usage.input_audio_tokens or 0 - if cache_audio_read_tokens := (usage.cache_audio_read_tokens or 0): - uncached_audio_input_tokens -= cache_audio_read_tokens - - if uncached_audio_input_tokens < 0: - raise ValueError('cache_audio_read_tokens cannot be greater than input_audio_tokens') - input_price += calc_mtok_price(self.input_audio_mtok, uncached_audio_input_tokens, total_input_tokens) - - uncached_text_input_tokens = usage.input_tokens or 0 - uncached_text_input_tokens -= uncached_audio_input_tokens - if cache_write_tokens := usage.cache_write_tokens: - uncached_text_input_tokens -= cache_write_tokens - if cache_read_tokens := usage.cache_read_tokens: - uncached_text_input_tokens -= cache_read_tokens - - if uncached_text_input_tokens < 0: - raise ValueError('Uncached text input tokens cannot be negative') - input_price += calc_mtok_price(self.input_mtok, uncached_text_input_tokens, total_input_tokens) - input_price += calc_mtok_price(self.cache_write_mtok, usage.cache_write_tokens, total_input_tokens) - - cached_text_input_tokens = usage.cache_read_tokens or 0 - cached_text_input_tokens -= cache_audio_read_tokens - - if cached_text_input_tokens < 0: - raise ValueError('cache_audio_read_tokens cannot be greater than cache_read_tokens') - input_price += calc_mtok_price(self.cache_read_mtok, cached_text_input_tokens, total_input_tokens) - input_price += calc_mtok_price(self.cache_audio_read_mtok, usage.cache_audio_read_tokens, total_input_tokens) - - text_output_tokens = usage.output_tokens or 0 - text_output_tokens -= usage.output_audio_tokens or 0 - if text_output_tokens < 0: - raise ValueError('output_audio_tokens cannot be greater than output_tokens') - output_price += calc_mtok_price(self.output_mtok, text_output_tokens, total_input_tokens) - output_price += calc_mtok_price(self.output_audio_mtok, usage.output_audio_tokens, total_input_tokens) + for unit_id, leaf_count in leaf_values.items(): + unit = get_unit(unit_id) + cost = calc_mtok_price(priced[unit_id], leaf_count, total_input_tokens) + if unit.dimensions.get('direction') == 'input': + input_price += cost + else: + output_price += cost total_price = input_price + output_price diff --git a/packages/python/genai_prices/units.py b/packages/python/genai_prices/units.py new file mode 100644 index 00000000..19a15ceb --- /dev/null +++ b/packages/python/genai_prices/units.py @@ -0,0 +1,101 @@ +"""Token unit registry — defines unit families, dimensions, and unit definitions. + +Unit data is loaded from units_data.json, generated from prices/units.yml via `make package-data`. +""" + +from __future__ import annotations as _annotations + +from pathlib import Path + +from pydantic import BaseModel, ConfigDict, model_validator + + +class UnitDef(BaseModel): + """Definition of a single pricing unit.""" + + model_config = ConfigDict(frozen=True) + + id: str + family_id: str + usage_key: str + dimensions: dict[str, str] + + +class RawUnitDef(BaseModel): + """JSON shape for a unit definition (no id/family_id — those come from dict keys).""" + + usage_key: str + dimensions: dict[str, str] + + +class UnitFamily(BaseModel): + """A family of pricing units that share a normalization factor.""" + + model_config = ConfigDict(frozen=True) + + id: str + per: int + description: str + dimensions: dict[str, list[str]] + units: dict[str, UnitDef] + + +class RawUnitFamily(BaseModel): + per: int + description: str + dimensions: dict[str, list[str]] + units: dict[str, RawUnitDef] + + +class RawUnitsData(BaseModel): + families: dict[str, RawUnitFamily] + + @model_validator(mode='after') + def _validate_dimensions(self) -> RawUnitsData: + for family_id, fam in self.families.items(): + for unit_id, unit in fam.units.items(): + for dim_key, dim_val in unit.dimensions.items(): + if dim_key not in fam.dimensions: + raise ValueError(f'{family_id}/{unit_id}: unknown dimension key {dim_key!r}') + if dim_val not in fam.dimensions[dim_key]: + raise ValueError(f'{family_id}/{unit_id}: invalid value {dim_val!r} for dimension {dim_key!r}') + return self + + +def _load_families() -> dict[str, UnitFamily]: + """Load and validate unit families from the generated JSON data file.""" + data_path = Path(__file__).parent / 'units_data.json' + raw = RawUnitsData.model_validate_json(data_path.read_bytes()) + families: dict[str, UnitFamily] = {} + for family_id, fam_data in raw.families.items(): + units: dict[str, UnitDef] = {} + for unit_id, unit_data in fam_data.units.items(): + units[unit_id] = UnitDef( + id=unit_id, + family_id=family_id, + usage_key=unit_data.usage_key, + dimensions=unit_data.dimensions, + ) + families[family_id] = UnitFamily( + id=family_id, + per=fam_data.per, + description=fam_data.description, + dimensions=fam_data.dimensions, + units=units, + ) + return families + + +_FAMILIES = _load_families() +TOKENS_FAMILY = _FAMILIES['tokens'] +_ALL_UNITS: dict[str, UnitDef] = {uid: unit for fam in _FAMILIES.values() for uid, unit in fam.units.items()} + + +def get_family(family_id: str) -> UnitFamily: + """Look up a unit family by ID. Raises KeyError if not found.""" + return _FAMILIES[family_id] + + +def get_unit(unit_id: str) -> UnitDef: + """Look up a unit definition by ID. Raises KeyError if not found.""" + return _ALL_UNITS[unit_id] diff --git a/packages/python/genai_prices/units_data.json b/packages/python/genai_prices/units_data.json new file mode 100644 index 00000000..63fcc959 --- /dev/null +++ b/packages/python/genai_prices/units_data.json @@ -0,0 +1,161 @@ +{ + "families": { + "tokens": { + "per": 1000000, + "description": "Token counts", + "dimensions": { + "direction": ["input", "output"], + "modality": ["text", "audio", "image", "video"], + "cache": ["read", "write"] + }, + "units": { + "input_mtok": { + "usage_key": "input_tokens", + "dimensions": { + "direction": "input" + } + }, + "output_mtok": { + "usage_key": "output_tokens", + "dimensions": { + "direction": "output" + } + }, + "cache_read_mtok": { + "usage_key": "cache_read_tokens", + "dimensions": { + "direction": "input", + "cache": "read" + } + }, + "cache_write_mtok": { + "usage_key": "cache_write_tokens", + "dimensions": { + "direction": "input", + "cache": "write" + } + }, + "input_text_mtok": { + "usage_key": "input_text_tokens", + "dimensions": { + "direction": "input", + "modality": "text" + } + }, + "output_text_mtok": { + "usage_key": "output_text_tokens", + "dimensions": { + "direction": "output", + "modality": "text" + } + }, + "cache_text_read_mtok": { + "usage_key": "cache_text_read_tokens", + "dimensions": { + "direction": "input", + "modality": "text", + "cache": "read" + } + }, + "cache_text_write_mtok": { + "usage_key": "cache_text_write_tokens", + "dimensions": { + "direction": "input", + "modality": "text", + "cache": "write" + } + }, + "input_audio_mtok": { + "usage_key": "input_audio_tokens", + "dimensions": { + "direction": "input", + "modality": "audio" + } + }, + "output_audio_mtok": { + "usage_key": "output_audio_tokens", + "dimensions": { + "direction": "output", + "modality": "audio" + } + }, + "cache_audio_read_mtok": { + "usage_key": "cache_audio_read_tokens", + "dimensions": { + "direction": "input", + "modality": "audio", + "cache": "read" + } + }, + "cache_audio_write_mtok": { + "usage_key": "cache_audio_write_tokens", + "dimensions": { + "direction": "input", + "modality": "audio", + "cache": "write" + } + }, + "input_image_mtok": { + "usage_key": "input_image_tokens", + "dimensions": { + "direction": "input", + "modality": "image" + } + }, + "output_image_mtok": { + "usage_key": "output_image_tokens", + "dimensions": { + "direction": "output", + "modality": "image" + } + }, + "cache_image_read_mtok": { + "usage_key": "cache_image_read_tokens", + "dimensions": { + "direction": "input", + "modality": "image", + "cache": "read" + } + }, + "cache_image_write_mtok": { + "usage_key": "cache_image_write_tokens", + "dimensions": { + "direction": "input", + "modality": "image", + "cache": "write" + } + }, + "input_video_mtok": { + "usage_key": "input_video_tokens", + "dimensions": { + "direction": "input", + "modality": "video" + } + }, + "output_video_mtok": { + "usage_key": "output_video_tokens", + "dimensions": { + "direction": "output", + "modality": "video" + } + }, + "cache_video_read_mtok": { + "usage_key": "cache_video_read_tokens", + "dimensions": { + "direction": "input", + "modality": "video", + "cache": "read" + } + }, + "cache_video_write_mtok": { + "usage_key": "cache_video_write_tokens", + "dimensions": { + "direction": "input", + "modality": "video", + "cache": "write" + } + } + } + } + } +} diff --git a/prices/data.json b/prices/data.json index e8c7056b..4aadd110 100644 --- a/prices/data.json +++ b/prices/data.json @@ -1 +1 @@ -[{"id":"anthropic","name":"Anthropic","pricing_urls":["https://www.anthropic.com/pricing#api"],"api_pattern":"https://api\\.anthropic\\.com","model_match":{"contains":"claude"},"provider_match":{"contains":"anthropic"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"cached_tokens","dest":"cache_read_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"claude-2","name":"Claude 2.0 / 2.1","description":"Claude 2 is Anthropic's previous generation model, offering reliable performance for various tasks. This includes Claude 2.0 and Claude 2.1.\n","match":{"or":[{"starts_with":"claude-2"},{"contains":"claude-v2"}]},"context_window":200000,"prices":{"input_mtok":8,"output_mtok":24}},{"id":"claude-3-5-haiku-latest","name":"Claude Haiku 3.5","description":"Fastest, most cost-effective model","match":{"or":[{"starts_with":"claude-3-5-haiku"},{"starts_with":"claude-3.5-haiku"}]},"context_window":200000,"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"claude-3-5-sonnet","name":"Claude Sonnet 3.5","description":"Claude 3.5 Sonnet is an ideal balance of intelligence and speed for enterprise workloads. Maximum utility at a lower price, dependable, balanced for scaled deployments.","match":{"or":[{"starts_with":"claude-3-5-sonnet"},{"starts_with":"claude-3.5-sonnet"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-7-sonnet-latest","name":"Claude Sonnet 3.7","description":"Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities.","match":{"or":[{"starts_with":"claude-3-7-sonnet"},{"starts_with":"claude-3.7-sonnet"},{"starts_with":"claude-sonnet-3.7"},{"starts_with":"claude-sonnet-3-7"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-haiku","name":"Claude Haiku 3","description":"Fastest, most cost-effective model","match":{"starts_with":"claude-3-haiku"},"context_window":200000,"prices":{"input_mtok":0.25,"cache_write_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":1.25}},{"id":"claude-3-opus-latest","name":"Claude Opus 3","description":"Claude 3 Opus was Anthropic's most powerful model for highly complex tasks. It boasts top-level performance, intelligence, fluency, and understanding.","match":{"starts_with":"claude-3-opus"},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-3-sonnet","name":"Claude 3 Sonnet","description":"Claude 3 Sonnet is an ideal balance of intelligence and speed for enterprise workloads. Maximum utility at a lower price, dependable, balanced for scaled deployments.","match":{"starts_with":"claude-3-sonnet"},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","description":"Fastest and most intelligent Haiku model","match":{"or":[{"starts_with":"claude-haiku-4-5"},{"starts_with":"claude-haiku-4.5"},{"starts_with":"claude-4-5-haiku"},{"starts_with":"claude-4.5-haiku"}]},"context_window":200000,"prices":{"input_mtok":1,"cache_write_mtok":1.25,"cache_read_mtok":0.1,"output_mtok":5}},{"id":"claude-opus-4-0","name":"Claude Opus 4","description":"Most intelligent model for complex tasks","match":{"or":[{"starts_with":"claude-opus-4-0"},{"starts_with":"claude-4-opus"},{"equals":"claude-opus-4"},{"equals":"claude-opus-4-20250514"}]},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-opus-4-1","name":"Claude Opus 4.1","description":"Most intelligent model for complex tasks","match":{"or":[{"starts_with":"claude-opus-4-1"},{"starts_with":"claude-opus-4.1"}]},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-opus-4-5","name":"Claude Opus 4.5","description":"Premium model combining maximum intelligence with practical performance","match":{"or":[{"starts_with":"claude-opus-4-5"},{"starts_with":"claude-opus-4.5"},{"starts_with":"claude-4-5-opus"},{"starts_with":"claude-4.5-opus"}]},"context_window":200000,"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"claude-opus-4-6","name":"Claude Opus 4.6","description":"Our most intelligent model for building agents and coding","match":{"or":[{"starts_with":"claude-opus-4-6"},{"starts_with":"claude-opus-4.6"},{"starts_with":"claude-4-6-opus"},{"starts_with":"claude-4.6-opus"}]},"context_window":200000,"prices":[{"prices":{"input_mtok":{"base":5,"tiers":[{"start":200000,"price":10}]},"cache_write_mtok":{"base":6.25,"tiers":[{"start":200000,"price":12.5}]},"cache_read_mtok":{"base":0.5,"tiers":[{"start":200000,"price":1}]},"output_mtok":{"base":25,"tiers":[{"start":200000,"price":37.5}]}}},{"constraint":{"start_date":"2026-03-13"},"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}}]},{"id":"claude-sonnet-4-0","name":"Claude Sonnet 4","description":"Optimal balance of intelligence, cost, and speed","match":{"or":[{"starts_with":"claude-sonnet-4-2025"},{"starts_with":"claude-sonnet-4-0"},{"starts_with":"claude-sonnet-4@"},{"equals":"claude-sonnet-4"},{"starts_with":"claude-4-sonnet"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","description":"Our best combination of speed and intelligence","match":{"or":[{"starts_with":"claude-sonnet-4-5"},{"starts_with":"claude-sonnet-4.5"}]},"context_window":1000000,"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","description":"Our best combination of speed and intelligence","match":{"or":[{"starts_with":"claude-sonnet-4-6"},{"starts_with":"claude-sonnet-4.6"}]},"context_window":1000000,"prices":[{"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"constraint":{"start_date":"2026-03-13"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}}]},{"id":"claude-v1","description":"Retired, here to match price sources","match":{"equals":"claude-v1"},"prices":{"input_mtok":8,"output_mtok":24}}]},{"id":"avian","name":"Avian","pricing_urls":["https://avian.io/pricing/"],"api_pattern":"https://api\\.avian\\.io","models":[{"id":"Meta-Llama-3.1-405B-Instruct","match":{"equals":"Meta-Llama-3.1-405B-Instruct"},"prices":{"input_mtok":1.5,"output_mtok":1.5}},{"id":"Meta-Llama-3.1-70B-Instruct","match":{"equals":"Meta-Llama-3.1-70B-Instruct"},"prices":{"input_mtok":0.45,"output_mtok":0.45}},{"id":"Meta-Llama-3.1-8B-Instruct","match":{"equals":"Meta-Llama-3.1-8B-Instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Meta-Llama-3.3-70B-Instruct","match":{"equals":"Meta-Llama-3.3-70B-Instruct"},"prices":{"input_mtok":0.45,"output_mtok":0.45}}]},{"id":"aws","name":"AWS Bedrock","pricing_urls":["https://aws.amazon.com/bedrock/pricing/"],"api_pattern":"https://bedrock-runtime\\.[a-z0-9-]+\\.amazonaws\\.com/","provider_match":{"contains":"bedrock"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"inputTokens","dest":"input_tokens","required":true},{"path":"outputTokens","dest":"output_tokens","required":true}]},{"api_flavor":"anthropic","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"amazon.nova-lite-v1:0","name":"Nova Lite","description":"Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite can handle real-time customer interactions, document analysis, and visual question-answering tasks with high accuracy.","match":{"contains":"amazon.nova-lite"},"prices":{"input_mtok":0.06,"cache_read_mtok":0.015,"output_mtok":0.24}},{"id":"amazon.nova-micro-v1:0","name":"Nova Micro","description":"Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length of 128K tokens and optimized for speed and cost, Amazon Nova Micro excels at tasks such as text summarization, translation, content classification, interactive chat, and brainstorming. It has simple mathematical reasoning and coding abilities.","match":{"contains":"amazon.nova-micro"},"prices":{"input_mtok":0.035,"cache_read_mtok":0.00875,"output_mtok":0.14}},{"id":"amazon.nova-premier-v1:0","name":"Nova Premier","match":{"contains":"amazon.nova-premier"},"prices":{"input_mtok":2.5,"cache_read_mtok":0.625,"output_mtok":12.5}},{"id":"amazon.nova-pro-v1:0","name":"Nova Pro","description":"Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December 2024, it achieves state-of-the-art performance on key benchmarks including visual question answering (TextVQA) and video understanding (VATEX).","match":{"contains":"amazon.nova-pro"},"prices":{"input_mtok":0.8,"cache_read_mtok":0.2,"output_mtok":3.2}},{"id":"amazon.nova-sonic-v1:0","name":"Nova Sonic","match":{"contains":"amazon.nova-sonic"},"prices":{"input_mtok":0.06,"output_mtok":0.24,"input_audio_mtok":3.4,"output_audio_mtok":13.6}},{"id":"amazon.titan-embed-text-v1","name":"Titan Embeddings G1 - Text","match":{"contains":"amazon.titan-embed-text"},"prices":{"input_mtok":0.1}},{"id":"amazon.titan-text-express-v1","name":"Titan Text G1 - Express","match":{"contains":"titan-text-express"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"amazon.titan-text-lite-v1","name":"Titan Text G1 - Lite","match":{"contains":"titan-text-lite"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"deepseek.r1-v1:0","name":"DeepSeek-R1","match":{"contains":"deepseek.r1"},"prices":{"input_mtok":1.35,"output_mtok":5.4}},{"id":"global.anthropic.claude-haiku-4-5-20251001-v1:0","match":{"contains":"global.anthropic.claude-haiku-4-5-20251001"},"prices":{"input_mtok":1,"cache_write_mtok":1.25,"cache_read_mtok":0.1,"output_mtok":5}},{"id":"global.anthropic.claude-opus-4-5-v1:0","match":{"contains":"global.anthropic.claude-opus-4-5"},"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"global.anthropic.claude-opus-4-6-v1:0","match":{"contains":"global.anthropic.claude-opus-4-6"},"prices":{"input_mtok":{"base":5,"tiers":[{"start":200000,"price":10}]},"cache_write_mtok":{"base":6.25,"tiers":[{"start":200000,"price":12.5}]},"cache_read_mtok":{"base":0.5,"tiers":[{"start":200000,"price":1}]},"output_mtok":{"base":25,"tiers":[{"start":200000,"price":37.5}]}}},{"id":"global.anthropic.claude-sonnet-4-20250514-v1:0","match":{"contains":"global.anthropic.claude-sonnet-4-20250514"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","match":{"contains":"global.anthropic.claude-sonnet-4-5-20250929"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"global.anthropic.claude-sonnet-4-6-v1:0","match":{"contains":"global.anthropic.claude-sonnet-4-6"},"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"id":"meta.llama3-1-70b-instruct-v1:0","name":"Llama 3.1 70B Instruct","match":{"contains":"meta.llama3-1-70b-instruct"},"prices":{"input_mtok":0.72,"output_mtok":0.72}},{"id":"meta.llama3-1-8b-instruct-v1:0","name":"Llama 3.1 8B Instruct","match":{"contains":"meta.llama3-1-8b-instruct"},"prices":{"input_mtok":0.22,"output_mtok":0.22}},{"id":"meta.llama3-2-11b-instruct-v1:0","name":"Llama 3.2 11B Instruct","match":{"contains":"meta.llama3-2-11b-instruct"},"prices":{"input_mtok":0.16,"output_mtok":0.16}},{"id":"meta.llama3-2-1b-instruct-v1:0","name":"Llama 3.2 1B Instruct","match":{"contains":"meta.llama3-2-1b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"meta.llama3-2-3b-instruct-v1:0","name":"Llama 3.2 3B Instruct","match":{"contains":"meta.llama3-2-3b-instruct"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"meta.llama3-2-90b-instruct-v1:0","name":"Llama 3.2 90B Instruct","match":{"contains":"meta.llama3-2-90b-instruct"},"prices":{"input_mtok":0.72,"output_mtok":0.72}},{"id":"meta.llama3-3-70b-instruct-v1:0","name":"Llama 3.3 70B Instruct","match":{"contains":"meta.llama3-3-70b-instruct"},"prices":{"input_mtok":0.72,"output_mtok":0.72}},{"id":"meta.llama3-70b-instruct-v1:0","name":"Llama 3 70B Instruct","match":{"contains":"meta.llama3-70b-instruct"},"prices":{"input_mtok":2.65,"output_mtok":3.5}},{"id":"meta.llama3-8b-instruct-v1:0","name":"Llama 3 8B Instruct","match":{"contains":"meta.llama3-8b-instruct"},"prices":{"input_mtok":0.3,"output_mtok":0.6}},{"id":"meta.llama4-maverick-17b-instruct-v1:0","name":"Llama 4 Maverick 17B Instruct","match":{"contains":"meta.llama4-maverick-17b-instruct"},"prices":{"input_mtok":0.24,"output_mtok":0.97}},{"id":"meta.llama4-scout-17b-instruct-v1:0","name":"Llama 4 Scout 17B Instruct","match":{"contains":"meta.llama4-scout-17b-instruct"},"prices":{"input_mtok":0.17,"output_mtok":0.66}},{"id":"mistral.mistral-7b-instruct-v0:2","name":"Mistral 7B Instruct","match":{"contains":"mistral.mistral-7b-instruct-v0"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"mistral.mistral-large-2402-v1:0","name":"Mistral Large (24.02)","match":{"contains":"mistral.mistral-large-2402"},"prices":{"input_mtok":4,"output_mtok":12}},{"id":"mistral.mistral-small-2402-v1:0","name":"Mistral Small (24.02)","match":{"contains":"mistral.mistral-small-2402"},"prices":{"input_mtok":1,"output_mtok":3}},{"id":"mistral.mixtral-8x7b-instruct-v0:1","name":"Mixtral 8x7B Instruct","match":{"contains":"mistral.mixtral-8x7b-instruct-v0"},"prices":{"input_mtok":0.45,"output_mtok":0.7}},{"id":"mistral.pixtral-large-2502-v1:0","name":"Pixtral Large (25.02)","match":{"contains":"mistral.pixtral-large-2502"},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"openai.gpt-oss-120b-1:0","name":"gpt-oss-120b","match":{"contains":"openai.gpt-oss-120b-1"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai.gpt-oss-20b-1:0","name":"gpt-oss-20b","match":{"contains":"openai.gpt-oss-20b-1"},"prices":{"input_mtok":0.07,"output_mtok":0.3}},{"id":"qwen.qwen3-32b-v1:0","name":"Qwen3 32B (dense)","match":{"contains":"qwen.qwen3-32b"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"qwen.qwen3-coder-30b-a3b-v1:0","name":"Qwen3-Coder-30B-A3B-Instruct","match":{"contains":"qwen.qwen3-coder-30b-a3b"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"qwen.qwen3-coder-480b-a35b-v1:0","name":"Qwen3-Coder-480B-A35B-Instruct","match":{"contains":"qwen.qwen3-coder-480b-a35b"},"prices":{"input_mtok":0.45,"output_mtok":1.8}},{"id":"qwen.qwen3-vl-235b-a22b-v1:0","name":"Qwen3-VL-235B-A22B-Instruct","match":{"contains":"qwen.qwen3-vl-235b-a22b"},"prices":{"input_mtok":0.53,"output_mtok":2.66}},{"id":"regional.anthropic.claude-3-5-haiku-20241022-v1:0","match":{"contains":"claude-3-5-haiku-20241022"},"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"regional.anthropic.claude-3-5-sonnet-20240620-v1:0","match":{"contains":"claude-3-5-sonnet-20240620"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-3-5-sonnet-20241022-v2:0","match":{"contains":"claude-3-5-sonnet-20241022"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-3-7-sonnet-20250219-v1:0","match":{"contains":"claude-3-7-sonnet-20250219"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-3-haiku-20240307-v1:0","match":{"contains":"claude-3-haiku-20240307"},"prices":{"input_mtok":0.25,"output_mtok":1.25}},{"id":"regional.anthropic.claude-3-opus-20240229-v1:0","match":{"contains":"claude-3-opus-20240229"},"prices":{"input_mtok":15,"output_mtok":75}},{"id":"regional.anthropic.claude-3-sonnet-20240229-v1:0","match":{"contains":"claude-3-sonnet-20240229"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-haiku-4-5-20251001-v1:0","match":{"or":[{"starts_with":"anthropic.claude-haiku-4-5-20251001"},{"starts_with":"claude-haiku-4-5-20251001"},{"contains":"us.anthropic.claude-haiku-4-5-20251001"},{"contains":"au.anthropic.claude-haiku-4-5-20251001"},{"contains":"apac.anthropic.claude-haiku-4-5-20251001"},{"contains":"eu.anthropic.claude-haiku-4-5-20251001"},{"contains":"us-gov.anthropic.claude-haiku-4-5-20251001"},{"contains":"jp.anthropic.claude-haiku-4-5-20251001"}]},"prices":{"input_mtok":1.1,"cache_write_mtok":1.375,"cache_read_mtok":0.11,"output_mtok":5.5}},{"id":"regional.anthropic.claude-opus-4-1-20250805-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-1-20250805"},{"starts_with":"claude-opus-4-1-20250805"},{"contains":"us.anthropic.claude-opus-4-1-20250805"},{"contains":"au.anthropic.claude-opus-4-1-20250805"},{"contains":"apac.anthropic.claude-opus-4-1-20250805"},{"contains":"eu.anthropic.claude-opus-4-1-20250805"},{"contains":"us-gov.anthropic.claude-opus-4-1-20250805"},{"contains":"jp.anthropic.claude-opus-4-1-20250805"}]},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"regional.anthropic.claude-opus-4-20250514-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-20250514"},{"starts_with":"claude-opus-4-20250514"},{"contains":"us.anthropic.claude-opus-4-20250514"},{"contains":"au.anthropic.claude-opus-4-20250514"},{"contains":"apac.anthropic.claude-opus-4-20250514"},{"contains":"eu.anthropic.claude-opus-4-20250514"},{"contains":"us-gov.anthropic.claude-opus-4-20250514"},{"contains":"jp.anthropic.claude-opus-4-20250514"}]},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"regional.anthropic.claude-opus-4-5-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-5"},{"starts_with":"claude-opus-4-5"},{"contains":"us.anthropic.claude-opus-4-5"},{"contains":"au.anthropic.claude-opus-4-5"},{"contains":"apac.anthropic.claude-opus-4-5"},{"contains":"eu.anthropic.claude-opus-4-5"},{"contains":"us-gov.anthropic.claude-opus-4-5"},{"contains":"jp.anthropic.claude-opus-4-5"}]},"prices":{"input_mtok":5.5,"cache_write_mtok":6.875,"cache_read_mtok":0.55,"output_mtok":27.5}},{"id":"regional.anthropic.claude-opus-4-6-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-6"},{"starts_with":"claude-opus-4-6"},{"contains":"us.anthropic.claude-opus-4-6"},{"contains":"au.anthropic.claude-opus-4-6"},{"contains":"apac.anthropic.claude-opus-4-6"},{"contains":"eu.anthropic.claude-opus-4-6"},{"contains":"us-gov.anthropic.claude-opus-4-6"},{"contains":"jp.anthropic.claude-opus-4-6"}]},"prices":{"input_mtok":{"base":5.5,"tiers":[{"start":200000,"price":11}]},"cache_write_mtok":{"base":6.875,"tiers":[{"start":200000,"price":13.75}]},"cache_read_mtok":{"base":0.55,"tiers":[{"start":200000,"price":1.1}]},"output_mtok":{"base":27.5,"tiers":[{"start":200000,"price":41.25}]}}},{"id":"regional.anthropic.claude-sonnet-4-20250514-v1:0","match":{"or":[{"starts_with":"anthropic.claude-sonnet-4-20250514"},{"starts_with":"claude-sonnet-4-20250514"},{"contains":"us.anthropic.claude-sonnet-4-20250514"},{"contains":"au.anthropic.claude-sonnet-4-20250514"},{"contains":"apac.anthropic.claude-sonnet-4-20250514"},{"contains":"eu.anthropic.claude-sonnet-4-20250514"},{"contains":"us-gov.anthropic.claude-sonnet-4-20250514"},{"contains":"jp.anthropic.claude-sonnet-4-20250514"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-sonnet-4-5-20250929-v1:0","match":{"or":[{"starts_with":"anthropic.claude-sonnet-4-5-20250929"},{"starts_with":"claude-sonnet-4-5-20250929"},{"contains":"us.anthropic.claude-sonnet-4-5-20250929"},{"contains":"au.anthropic.claude-sonnet-4-5-20250929"},{"contains":"apac.anthropic.claude-sonnet-4-5-20250929"},{"contains":"eu.anthropic.claude-sonnet-4-5-20250929"},{"contains":"us-gov.anthropic.claude-sonnet-4-5-20250929"},{"contains":"jp.anthropic.claude-sonnet-4-5-20250929"}]},"prices":{"input_mtok":3.3,"cache_write_mtok":4.125,"cache_read_mtok":0.33,"output_mtok":16.5}},{"id":"regional.anthropic.claude-sonnet-4-6-v1:0","match":{"or":[{"starts_with":"anthropic.claude-sonnet-4-6"},{"starts_with":"claude-sonnet-4-6"},{"contains":"us.anthropic.claude-sonnet-4-6"},{"contains":"au.anthropic.claude-sonnet-4-6"},{"contains":"apac.anthropic.claude-sonnet-4-6"},{"contains":"eu.anthropic.claude-sonnet-4-6"},{"contains":"us-gov.anthropic.claude-sonnet-4-6"},{"contains":"jp.anthropic.claude-sonnet-4-6"}]},"prices":{"input_mtok":{"base":3.3,"tiers":[{"start":200000,"price":6.6}]},"cache_write_mtok":{"base":4.125,"tiers":[{"start":200000,"price":8.25}]},"cache_read_mtok":{"base":0.33,"tiers":[{"start":200000,"price":0.66}]},"output_mtok":{"base":16.5,"tiers":[{"start":200000,"price":24.75}]}}}]},{"id":"azure","name":"Microsoft Azure","pricing_urls":["https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/#pricing"],"api_pattern":"(https?://)?([^.]*\\.)?(?:openai\\.azure\\.com|azure-api\\.net|cognitiveservices\\.azure\\.com)","price_comments":"These are prices for \"*-Global\" models, prices for \"Regional\" models are often slightly higher. Retired models are listed at https://learn.microsoft.com/th-th/azure/ai-foundry/openai/concepts/legacy-models","extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"responses","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":["input_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"embeddings","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true}]},{"api_flavor":"anthropic","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]}],"fallback_model_providers":["openai","anthropic"],"models":[{"id":"ada","match":{"or":[{"equals":"ada"},{"equals":"text-embedding-ada"},{"equals":"text-embedding-ada-002"},{"equals":"text-embedding-ada-002-v2"}]},"prices":{"input_mtok":0.1}},{"id":"babbage","match":{"or":[{"equals":"babbage"},{"equals":"babbage-002"}]},"prices":{"input_mtok":0.4}},{"id":"curie","match":{"or":[{"equals":"curie"},{"equals":"text-curie"},{"equals":"text-curie-001"}]},"prices":{"input_mtok":2}},{"id":"davinci","match":{"or":[{"equals":"davinci"},{"equals":"davinci-002"},{"equals":"text-davinci"},{"equals":"text-davinci-002"}]},"prices":{"input_mtok":2}},{"id":"mai-ds-r1:free","name":"MAI DS R1 (free)","description":"MAI-DS-R1 is a post-trained variant of DeepSeek-R1 developed by the Microsoft AI team to improve the model's responsiveness on previously blocked topics while enhancing its safety profile. Built on top of DeepSeek-R1's reasoning foundation, it integrates 110k examples from the Tulu-3 SFT dataset and 350k internally curated multilingual safety-alignment samples. The model retains strong reasoning, coding, and problem-solving capabilities, while unblocking a wide range of prompts previously restricted in R1.","match":{"equals":"mai-ds-r1:free"},"prices":{}},{"id":"o1","match":{"or":[{"equals":"o1"},{"equals":"o1-2024-12-17"},{"equals":"o1-preview"},{"equals":"o1-preview-2024-09-12"}]},"prices":{"input_mtok":15,"cache_read_mtok":7.5,"output_mtok":60}},{"id":"o1-mini","match":{"or":[{"equals":"o1-mini"},{"equals":"o1-mini-2024-09-12"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o3-2025-04-16","match":{"or":[{"equals":"o3"},{"equals":"o3-2025-04-16"}]},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"o3-mini","match":{"or":[{"equals":"o3-mini"},{"equals":"o3-mini-2025-01-31"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o4-mini","match":{"or":[{"contains":"o4-mini"},{"contains":"o4-mini-2025-04-16"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.28,"output_mtok":4.4}},{"id":"phi-3-medium-128k-instruct","name":"Phi-3 Medium 128K Instruct","description":"Phi-3 128K Medium is a powerful 14-billion parameter model designed for advanced language understanding, reasoning, and instruction following. Optimized through supervised fine-tuning and preference adjustments, it excels in tasks involving common sense, mathematics, logical reasoning, and code processing.","match":{"equals":"phi-3-medium-128k-instruct"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"phi-3-mini-128k-instruct","name":"Phi-3 Mini 128K Instruct","description":"Phi-3 Mini is a powerful 3.8B parameter model designed for advanced language understanding, reasoning, and instruction following. Optimized through supervised fine-tuning and preference adjustments, it excels in tasks involving common sense, mathematics, logical reasoning, and code processing.","match":{"equals":"phi-3-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-3.5-mini-128k-instruct","name":"Phi-3.5 Mini 128K Instruct","description":"Phi-3.5 models are lightweight, state-of-the-art open models. These models were trained with Phi-3 datasets that include both synthetic data and the filtered, publicly available websites data, with a focus on high quality and reasoning-dense properties. Phi-3.5 Mini uses 3.8B parameters, and is a dense decoder-only transformer model using the same tokenizer as Phi-3 Mini.","match":{"equals":"phi-3.5-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-4","name":"Phi 4","description":"Microsoft Research Phi-4 is designed to perform well in complex reasoning tasks and can operate efficiently in situations with limited memory or where quick responses are needed.","match":{"equals":"phi-4"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"phi-4-multimodal-instruct","name":"Phi 4 Multimodal Instruct","description":"Phi-4 Multimodal Instruct is a versatile 5.6B parameter foundation model that combines advanced reasoning and instruction-following capabilities across both text and visual inputs, providing accurate text outputs. The unified architecture enables efficient, low-latency inference, suitable for edge and mobile deployments. Phi-4 Multimodal Instruct supports text inputs in multiple languages including Arabic, Chinese, English, French, German, Japanese, Spanish, and more, with visual input optimized primarily for English. It delivers impressive performance on multimodal tasks involving mathematical, scientific, and document reasoning, providing developers and enterprises a powerful yet compact model for sophisticated interactive applications. For more information, see the Phi-4 Multimodal blog post.","match":{"equals":"phi-4-multimodal-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"phi-4-reasoning-plus","name":"Phi 4 Reasoning Plus","description":"Phi-4-reasoning-plus is an enhanced 14B parameter model from Microsoft, fine-tuned from Phi-4 with additional reinforcement learning to boost accuracy on math, science, and code reasoning tasks. It uses the same dense decoder-only transformer architecture as Phi-4, but generates longer, more comprehensive outputs structured into a step-by-step reasoning trace and final answer.","match":{"equals":"phi-4-reasoning-plus"},"prices":{"input_mtok":0.07,"output_mtok":0.35}},{"id":"phi-4-reasoning-plus:free","name":"Phi 4 Reasoning Plus (free)","description":"Phi-4-reasoning-plus is an enhanced 14B parameter model from Microsoft, fine-tuned from Phi-4 with additional reinforcement learning to boost accuracy on math, science, and code reasoning tasks. It uses the same dense decoder-only transformer architecture as Phi-4, but generates longer, more comprehensive outputs structured into a step-by-step reasoning trace and final answer.","match":{"equals":"phi-4-reasoning-plus:free"},"prices":{}},{"id":"phi-4-reasoning:free","name":"Phi 4 Reasoning (free)","description":"Phi-4-reasoning is a 14B parameter dense decoder-only transformer developed by Microsoft, fine-tuned from Phi-4 to enhance complex reasoning capabilities. It uses a combination of supervised fine-tuning on chain-of-thought traces and reinforcement learning, targeting math, science, and code reasoning tasks. With a 32k context window and high inference efficiency, it is optimized for structured responses in a two-part format: reasoning trace followed by a final solution.","match":{"equals":"phi-4-reasoning:free"},"prices":{}},{"id":"text-embedding-3-large","match":{"equals":"text-embedding-3-large"},"prices":{"input_mtok":0.13}},{"id":"text-embedding-3-small","match":{"equals":"text-embedding-3-small"},"prices":{"input_mtok":0.02}},{"id":"wizardlm-2-8x22b","name":"WizardLM-2 8x22B","description":"WizardLM-2 8x22B is Microsoft AI's most advanced Wizard model. It demonstrates highly competitive performance compared to leading proprietary models, and it consistently outperforms all existing state-of-the-art opensource models.","match":{"equals":"wizardlm-2-8x22b"},"prices":{"input_mtok":0.48,"output_mtok":0.48}}]},{"id":"cerebras","name":"Cerebras","pricing_urls":["https://www.cerebras.ai/pricing#pricing","https://inference-docs.cerebras.ai/models/openai-oss"],"api_pattern":"https://api\\.cerebras\\.ai","model_match":{"contains":"cerebras"},"provider_match":{"contains":"cerebras"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"gpt-oss-120b","name":"GPT-OSS 120B","description":"OpenAI's flagship open source model, built on a Mixture-of-Experts (MoE) architecture with 120 billion parameters and 128 experts. Delivers frontier reasoning capabilities with record-breaking inference speeds on Cerebras hardware (~3,000 tokens/second).","match":{"or":[{"equals":"gpt-oss-120b"},{"starts_with":"cerebras/gpt-oss-120b"},{"starts_with":"cerebras:gpt-oss-120b"}]},"context_window":131072,"price_comments":"Developer tier pricing. Free tier: 65k context, Paid tier: 131k context.","prices":{"input_mtok":0.35,"output_mtok":0.75}},{"id":"llama-3.3-70b","name":"Llama 3.3 70B","description":"Meta's enhanced 70B model delivering 405B-level accuracy. Optimized for chat, coding, instruction following, mathematics, and reasoning with high-speed inference on Cerebras hardware (~2,100 tokens/second).","match":{"or":[{"equals":"llama-3.3-70b"},{"starts_with":"cerebras/llama-3.3-70b"},{"starts_with":"cerebras:llama-3.3-70b"}]},"context_window":128000,"price_comments":"Developer tier pricing. Free tier: 65k context, Paid tier: 128k context.","prices":{"input_mtok":0.85,"output_mtok":1.2}},{"id":"llama3.1-8b","name":"Llama 3.1 8B","description":"Meta's Llama 3.1 8B model for general-purpose tasks including chat, coding, and instruction following. Optimized for fast inference on Cerebras hardware (~2,200 tokens/second).","match":{"or":[{"equals":"llama3.1-8b"},{"starts_with":"cerebras/llama3.1-8b"},{"starts_with":"cerebras:llama3.1-8b"}]},"context_window":32768,"price_comments":"Developer tier pricing. Free tier: 8k context, Paid tier: 32k context.","prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"qwen-3-32b","name":"Qwen 3 32B","description":"Qwen's 32B parameter model with enhanced reasoning and coding capabilities. Supports both standard and reasoning modes for complex tasks, with fast inference speeds on Cerebras hardware (~2,600 tokens/second).","match":{"or":[{"equals":"qwen-3-32b"},{"starts_with":"cerebras/qwen-3-32b"},{"starts_with":"cerebras:qwen-3-32b"}]},"context_window":131072,"price_comments":"Developer tier pricing. Free tier: 65k context, Paid tier: 131k context.","prices":{"input_mtok":0.4,"output_mtok":0.8}},{"id":"qwen-3-coder-480b","name":"qwen-3-coder-480b","match":{"equals":"qwen-3-coder-480b"},"price_comments":"Seems to be no longer available on cerebras, here to help with tests","prices":{}}]},{"id":"cohere","name":"Cohere","pricing_urls":["https://cohere.com/pricing"],"api_pattern":"https://api\\.cohere\\.ai","model_match":{"starts_with":"command-"},"provider_match":{"contains":"cohere"},"extractors":[{"api_flavor":"default","root":["usage","billed_units"],"model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"embeddings","root":["meta","billed_units"],"model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true}]}],"models":[{"id":"command","name":"Command","description":"Command is an instruction-following conversational model that performs language tasks with high quality, more reliably and with a longer context than our base generative models.","match":{"equals":"command"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"command-a","name":"Command A","description":"Command A is an open-weights 111B parameter model with a 256k context window focused on delivering great performance across agentic, multilingual, and coding use cases.\nCompared to other leading proprietary and open-weights models Command A delivers maximum performance with minimum hardware costs, excelling on business-critical agentic and multilingual tasks.","match":{"starts_with":"command-a"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r","name":"Command R","description":"Command-R is a 35B parameter model that performs conversational language tasks at a higher quality, more reliably, and with a longer context than previous models. It can be used for complex workflows like code generation, retrieval augmented generation (RAG), tool use, and agents.","match":{"or":[{"equals":"command-r"},{"equals":"command-r-08-2024"}]},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"command-r-plus","name":"Command R+","description":"Command R+ is a new, 104B-parameter LLM from Cohere. It's useful for roleplay, general consumer usecases, and Retrieval Augmented Generation (RAG).","match":{"or":[{"equals":"command-r-plus"},{"equals":"command-r-plus-08-2024"}]},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r7b","name":"Command R7B","description":"Command R7B (12-2024) is a small, fast update of the Command R+ model, delivered in December 2024. It excels at RAG, tool use, agents, and similar tasks requiring complex reasoning and multiple steps.","match":{"or":[{"equals":"command-r7b"},{"equals":"command-r7b-12-2024"}]},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"embed-v4.0","name":"Embed v4.0","description":"Embed v4.0 is a state-of-the-art embedding model designed for precise retrieval across noisy, multilingual, and multimodal data.","match":{"equals":"embed-v4.0"},"context_window":128000,"prices":{"input_mtok":0.12}}]},{"id":"deepseek","name":"Deepseek","pricing_urls":["https://api-docs.deepseek.com/quick_start/pricing"],"api_pattern":"https://api\\.deepseek\\.com","price_comments":"Deepseek off-peak pricing applies \"UTC 16:30-00:30\" so we switch it around and use the off-peak pricing as the default (first) price then the second price with a constraint is the \"standard\" pricing that applies \"UTC 00:30-16:30\".","model_match":{"contains":"deepseek"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"deepseek-chat","name":"DeepSeek Chat","description":"DeepSeek-V3 is the latest model from the DeepSeek team, building upon the instruction following and coding abilities of the previous versions. Pre-trained on nearly 15 trillion tokens, the reported evaluations reveal that the model outperforms other open-source models and rivals leading closed-source models.","match":{"or":[{"starts_with":"deepseek-chat"},{"equals":"deepseek-chat-v3-0324"}]},"context_window":64000,"prices":[{"prices":{"input_mtok":0.135,"cache_read_mtok":0.035,"output_mtok":0.55}},{"constraint":{"start_time":"00:30:00Z","end_time":"16:30:00Z"},"prices":{"input_mtok":0.27,"cache_read_mtok":0.07,"output_mtok":1.1}}]},{"id":"deepseek-reasoner","name":"Deepseek R1","description":"DeepSeek R1 is here: Performance on par with OpenAI o1, but open-sourced and with fully open reasoning tokens. It's 671B parameters in size, with 37B active in an inference pass.","match":{"or":[{"equals":"deepseek-reasoner"},{"starts_with":"deepseek-r1"},{"equals":"deepseek-r1-0528"}]},"context_window":64000,"prices":[{"prices":{"input_mtok":0.135,"cache_read_mtok":0.035,"output_mtok":0.55}},{"constraint":{"start_time":"00:30:00Z","end_time":"16:30:00Z"},"prices":{"input_mtok":0.55,"cache_read_mtok":0.14,"output_mtok":2.19}}]}]},{"id":"fireworks","name":"Fireworks","pricing_urls":["https://fireworks.ai/pricing"],"api_pattern":"https://api\\.fireworks\\.ai","model_match":{"starts_with":"accounts/fireworks/models/"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"deepseek-r1-0528","name":"DeepSeek R1 0528","description":"The updated DeepSeek-R1-0528 model delivers major improvements in reasoning, inference, and accuracy through enhanced post-training optimization and greater computational resources. It now performs at a level approaching top-tier models like O3 and Gemini 2.5 Pro, with notable gains in complex tasks such as math and programming.","match":{"equals":"accounts/fireworks/models/deepseek-r1-0528"},"context_window":160000,"prices":{"input_mtok":3,"output_mtok":8}},{"id":"deepseek-v3-0324","name":"Deepseek V3 03-24","description":"A strong Mixture-of-Experts (MoE) language model with 671B total parameters with 37B activated for each token from Deepseek. Updated checkpoint.","match":{"equals":"accounts/fireworks/models/deepseek-v3-0324"},"context_window":160000,"price_comments":"docs give just one price - \"Pricing Per 1M Tokens\", we assume that's input and output","prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"deepseek-v3p2","name":"Deepseek V3.2","description":"Model from Deepseek that harmonizes high computational efficiency with superior reasoning and agent performance. 675B parameter MoE model.","match":{"equals":"accounts/fireworks/models/deepseek-v3p2"},"context_window":163840,"prices":{"input_mtok":0.56,"cache_read_mtok":0.28,"output_mtok":1.68}},{"id":"gemma-3-27b-it","name":"Gemma 3 27B Instruct","match":{"equals":"accounts/fireworks/models/gemma-3-27b-it"},"context_window":131000,"price_comments":"docs give just one price - \"Pricing Per 1M Tokens\", we assume that's input and output","prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"glm-4p7","name":"GLM-4.7","description":"Next-generation general-purpose model from Z.ai optimized for coding, reasoning, and agentic workflows. 352B parameter MoE model with advanced thinking controls.","match":{"equals":"accounts/fireworks/models/glm-4p7"},"context_window":202752,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"gpt-oss-120b","name":"OpenAI gpt-oss-120b","description":"OpenAI's open-weight 117B parameter MoE model designed for production, general purpose, high reasoning use-cases. Features powerful reasoning, agentic tasks, and versatile developer use cases.","match":{"equals":"accounts/fireworks/models/gpt-oss-120b"},"context_window":131072,"prices":{"input_mtok":0.15,"cache_read_mtok":0.07,"output_mtok":0.6}},{"id":"gpt-oss-20b","name":"OpenAI gpt-oss-20b","description":"OpenAI's open-weight 21.5B parameter model designed for powerful reasoning, agentic tasks, and versatile developer use cases. Optimized for lower latency and local or specialized tasks.","match":{"equals":"accounts/fireworks/models/gpt-oss-20b"},"context_window":131072,"prices":{"input_mtok":0.07,"cache_read_mtok":0.04,"output_mtok":0.3}},{"id":"kimi-k2p5","name":"Kimi K2.5","description":"Moonshot AI's flagship agentic model. Unifies vision and text, thinking and non-thinking modes, and single-agent and multi-agent execution into one model. 1T parameter MoE model.","match":{"equals":"accounts/fireworks/models/kimi-k2p5"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.1,"output_mtok":3}},{"id":"llama-v3p1-8b-instruct","name":"Llama 3.1 8B Instruct","description":"The Meta Llama 3.1 collection of multilingual large language models (LLMs) is a collection of pretrained and instruction tuned generative models in 8B, 70B and 405B sizes. The Llama 3.1 instruction tuned text only models (8B, 70B, 405B) are optimized for multilingual dialogue use cases and outperform many of the available open source and closed chat models on common industry benchmarks.","match":{"equals":"accounts/fireworks/models/llama-v3p1-8b-instruct"},"context_window":131000,"price_comments":"docs give just one price - \"Pricing Per 1M Tokens\", we assume that's input and output","prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama4-maverick-instruct-basic","name":"Llama 4 Maverick Instruct (Basic)","description":"The Meta Llama 3.1 collection of multilingual large language models (LLMs) is a collection of pretrained and instruction tuned generative models in 8B, 70B and 405B sizes. The Llama 3.1 instruction tuned text only models (8B, 70B, 405B) are optimized for multilingual dialogue use cases and outperform many of the available open source and closed chat models on common industry benchmarks.","match":{"equals":"accounts/fireworks/models/llama4-maverick-instruct-basic"},"context_window":1000000,"prices":{"input_mtok":0.22,"output_mtok":0.88}},{"id":"minimax-m2p1","name":"MiniMax-M2.1","description":"Built for strong real-world performance across complex, multi-language, and agent-driven workflows. 228B parameter model with robust support for systems, backend, web, mobile, and office-style tasks.","match":{"equals":"accounts/fireworks/models/minimax-m2p1"},"context_window":204800,"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"qwen2p5-vl-72b-instruct","name":"Qwen2.5-VL 72B Instruct","description":"Latest Qwen's VLM model","match":{"equals":"accounts/fireworks/models/qwen2p5-vl-72b-instruct"},"context_window":128000,"price_comments":"docs give just one price - \"Pricing Per 1M Tokens\", we assume that's input and output","prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen3-235b-a22b","name":"Qwen3 235B-A22B","description":"Qwen3 is the latest evolution in the Qwen LLM series, featuring both dense and MoE models with major advancements in reasoning, agent capabilities, multilingual support, and instruction following. It uniquely allows seamless switching between \"thinking\" (for complex logic, math, coding) and \"non-thinking\" modes (for fast, general dialogue), delivering strong performance across tasks.","match":{"equals":"accounts/fireworks/models/qwen3-235b-a22b"},"context_window":128000,"prices":{"input_mtok":0.22,"output_mtok":0.88}}]},{"id":"google","name":"Google","pricing_urls":["https://ai.google.dev/gemini-api/docs/pricing","https://cloud.google.com/vertex-ai/generative-ai/pricing"],"api_pattern":"https://(.*\\.)?googleapis\\.com","model_match":{"contains":"gemini"},"provider_match":{"or":[{"contains":"google"},{"contains":"vertex"},{"contains":"gemini"}]},"extractors":[{"api_flavor":"default","root":"usageMetadata","model_path":"modelVersion","mappings":[{"path":"promptTokenCount","dest":"input_tokens","required":false},{"path":"cachedContentTokenCount","dest":"cache_read_tokens","required":false},{"path":["cacheTokensDetails",{"type":"array-match","field":"modality","match":{"equals":"AUDIO"}},"tokenCount"],"dest":"cache_audio_read_tokens","required":false},{"path":["promptTokensDetails",{"type":"array-match","field":"modality","match":{"equals":"AUDIO"}},"tokenCount"],"dest":"input_audio_tokens","required":false},{"path":["candidatesTokensDetails",{"type":"array-match","field":"modality","match":{"equals":"AUDIO"}},"tokenCount"],"dest":"output_audio_tokens","required":false},{"path":"candidatesTokenCount","dest":"output_tokens","required":false},{"path":"thoughtsTokenCount","dest":"output_tokens","required":false},{"path":"toolUsePromptTokenCount","dest":"output_tokens","required":false}]},{"api_flavor":"anthropic","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"fallback_model_providers":["anthropic"],"models":[{"id":"claude-3-5-haiku","match":{"contains":"claude-3-5-haiku"},"context_window":200000,"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"claude-3-5-sonnet","match":{"contains":"claude-3-5-sonnet"},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-7-sonnet","match":{"contains":"claude-3-7-sonnet"},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-haiku","match":{"contains":"claude-3-haiku"},"context_window":200000,"prices":{"input_mtok":0.25,"cache_write_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":1.25}},{"id":"claude-3-opus","match":{"contains":"claude-3-opus"},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-4-opus","match":{"or":[{"contains":"claude-4-opus"},{"contains":"claude-opus-4@"},{"contains":"claude-opus-4-0"},{"contains":"claude-opus-4-1"},{"equals":"claude-opus-4"}]},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-4-sonnet","match":{"or":[{"contains":"claude-4-sonnet"},{"contains":"claude-sonnet-4"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-opus-4-6","match":{"or":[{"contains":"claude-4-6-opus"},{"contains":"claude-opus-4-6"},{"contains":"claude-4.6-opus"},{"contains":"claude-opus-4.6"}]},"context_window":200000,"prices":{"input_mtok":{"base":5,"tiers":[{"start":200000,"price":10}]},"cache_write_mtok":{"base":6.25,"tiers":[{"start":200000,"price":12.5}]},"cache_read_mtok":{"base":0.5,"tiers":[{"start":200000,"price":1}]},"output_mtok":{"base":25,"tiers":[{"start":200000,"price":37.5}]}}},{"id":"gemini-1.0-pro-vision-001","name":"gemini 1.0 pro vision","description":"Google's first-generation advanced multimodal model that can understand text, code, and images. It provides strong reasoning capabilities and follows instructions effectively.","match":{"equals":"gemini-1.0-pro-vision-001"},"context_window":32768,"price_comments":"I can't find anything about this model or it's pricing, so trusting the original source","prices":{"input_mtok":0.125,"output_mtok":0.375}},{"id":"gemini-1.5-flash","name":"gemini 1.5 flash","description":"A faster, more cost-effective variant of Gemini 1.5 that maintains strong capabilities while optimizing for performance and cost efficiency. Suitable for production deployments requiring high throughput.","match":{"contains":"gemini-1.5-flash"},"context_window":1000000,"prices":{"input_mtok":{"base":0.075,"tiers":[{"start":128000,"price":0.15}]},"cache_read_mtok":{"base":0.01875,"tiers":[{"start":128000,"price":0.0375}]},"output_mtok":{"base":0.3,"tiers":[{"start":128000,"price":0.6}]}}},{"id":"gemini-1.5-pro","name":"gemini 1.5 Pro","description":"Google's most capable multimodal model with an extremely long context window of up to 1 million tokens. It excels at complex reasoning, long-form content processing, and multimodal understanding.","match":{"contains":"gemini-1.5-pro"},"context_window":1000000,"prices":{"input_mtok":{"base":1.25,"tiers":[{"start":128000,"price":2.5}]},"output_mtok":{"base":5,"tiers":[{"start":128000,"price":10}]}}},{"id":"gemini-2.0-flash","name":"gemini 2.0 flash","description":"The newest generation of Google's Gemini models, featuring improved reasoning, instruction following, and factual accuracy, with the Flash variant optimized for cost-efficiency and performance.","match":{"or":[{"ends_with":"gemini-2.0-flash"},{"contains":"gemini-2.0-flash-0"},{"contains":"gemini-2.0-flash-exp"},{"contains":"gemini-2.0-flash-thinking"},{"contains":"gemini-2.0-flash-latest"}]},"context_window":1000000,"prices":{"input_mtok":0.1,"cache_read_mtok":{"base":0.025,"tiers":[{"start":1000000,"price":0.175}]},"output_mtok":0.4,"input_audio_mtok":0.7}},{"id":"gemini-2.0-flash-lite","name":"gemini 2.0 flash lite","description":"A lighter, more cost-effective version of Gemini 2.0 Flash, designed for applications requiring high efficiency while maintaining good performance. Ideal for high-volume, cost-sensitive deployments.","match":{"contains":"gemini-2.0-flash-lite"},"context_window":1000000,"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","description":"Gemini 2.5 Flash is Google's state-of-the-art workhorse model, specifically designed for advanced reasoning, coding, mathematics, and scientific tasks. It includes built-in \"thinking\" capabilities, enabling it to provide responses with greater accuracy and nuanced context handling.","match":{"or":[{"equals":"gemini-2.5-flash"},{"equals":"gemini-2.5-flash-latest"},{"equals":"gemini-2.5-flash-preview-09-2025"}]},"prices":{"input_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":2.5,"input_audio_mtok":1,"cache_audio_read_mtok":0.1}},{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","description":"Google's specialized image generation model optimized for fast, high-quality image generation. Outputs images at 1024x1024 resolution, with each image consuming 1290 output tokens.","match":{"or":[{"equals":"gemini-2.5-flash-image"},{"equals":"gemini-2.5-flash-image-preview"}]},"context_window":1000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-flash-image. Image output is priced at $30 per 1M tokens, with each 1024x1024 image = 1290 tokens = $0.039/image. Cache pricing is not available for this model.","prices":{"input_mtok":0.3,"output_mtok":30}},{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","description":"Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance across common benchmarks compared to earlier Flash models. By default, \"thinking\" (i.e. multi-pass reasoning) is disabled to prioritize speed, but developers can enable it via the Reasoning API parameter to selectively trade off cost for intelligence.","match":{"or":[{"equals":"gemini-2.5-flash-lite"},{"starts_with":"gemini-2.5-flash-lite-preview"}]},"context_window":1000000,"prices":{"input_mtok":0.1,"cache_read_mtok":0.01,"output_mtok":0.4,"input_audio_mtok":0.3,"cache_audio_read_mtok":0.03}},{"id":"gemini-2.5-flash-preview","name":"Gemini 2.5 Flash Preview 05-20","description":"Gemini 2.5 Flash May 20th Checkpoint is Google's state-of-the-art workhorse model, specifically designed for advanced reasoning, coding, mathematics, and scientific tasks. It includes built-in \"thinking\" capabilities, enabling it to provide responses with greater accuracy and nuanced context handling.","match":{"or":[{"contains":"gemini-2.5-flash-preview-05-20"},{"contains":"gemini-2.5-flash-preview-04-17"},{"equals":"gemini-2.5-flash-preview-05-20:thinking"},{"equals":"gemini-2.5-flash-preview"},{"equals":"gemini-2.5-flash-preview:thinking"}]},"price_comments":"from https://cloud.google.com/vertex-ai/generative-ai/pricing should be retired 2025-07-15","prices":{"input_mtok":0.15,"output_mtok":0.6},"deprecated":true},{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","description":"Gemini 2.5 Pro is Google's state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs \"thinking\" capabilities, enabling it to reason through responses with enhanced accuracy and nuanced context handling. Gemini 2.5 Pro achieves top-tier performance on multiple benchmarks, including first-place positioning on the LMArena leaderboard, reflecting superior human-preference alignment and complex problem-solving abilities.","match":{"starts_with":"gemini-2.5-pro"},"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro","prices":{"input_mtok":{"base":1.25,"tiers":[{"start":200000,"price":2.5}]},"cache_read_mtok":{"base":0.125,"tiers":[{"start":200000,"price":0.25}]},"output_mtok":{"base":10,"tiers":[{"start":200000,"price":15}]}}},{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","description":"Google's ultra-fast frontier model optimized for speed and efficiency. Delivers state-of-the-art performance while maintaining low latency and cost, with improved reasoning and coding capabilities.","match":{"or":[{"equals":"gemini-3-flash-preview"},{"starts_with":"gemini-3-flash-preview-"}]},"context_window":1000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing. Standard pricing shown; Batch API offers 50% discount on input/output.","prices":{"input_mtok":0.5,"cache_read_mtok":0.05,"output_mtok":3,"input_audio_mtok":1,"cache_audio_read_mtok":0.1}},{"id":"gemini-3-pro-image-preview","name":"Gemini 3 Pro Image Preview","description":"Google's image generation model optimized for high-quality image generation. Supports 1K/2K and 4K resolution outputs with flexible pricing based on image dimensions.","match":{"or":[{"starts_with":"gemini-3-pro-image-preview"},{"equals":"gemini-3-pro-image-preview"}]},"context_window":1000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing#gemini-3-pro-image. Image output is priced at $120 per 1M tokens, with each 1K/2K image = 1120 tokens = $0.134/image and each 4K image = 2000 tokens = $0.24/image.","prices":{"input_mtok":2,"output_mtok":120}},{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","description":"The best model in the world for multimodal understanding, and our most powerful agentic and vibe-coding model yet.","match":{"or":[{"starts_with":"gemini-3-pro-preview"},{"equals":"gemini-3-pro-text-preview"}]},"prices":{"input_mtok":{"base":2,"tiers":[{"start":200000,"price":4}]},"cache_read_mtok":{"base":0.2,"tiers":[{"start":200000,"price":0.4}]},"output_mtok":{"base":12,"tiers":[{"start":200000,"price":18}]}}},{"id":"gemini-3.1-flash-image-preview","name":"Gemini 3.1 Flash Image Preview","description":"Google's latest image generation model (Nano Banana 2) optimized for fast, high-quality image generation. Supports multiple output resolutions from 512px to 4K, with text and thinking output priced separately from image output tokens.","match":{"starts_with":"gemini-3.1-flash-image-preview"},"context_window":1000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing. Image output is priced at $60 per 1M tokens. Preview model - pricing may change.","prices":{"input_mtok":0.5,"output_mtok":60}},{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","description":"Google's fastest and most cost-efficient Gemini 3 series model, built for intelligence at scale. Optimized for high-volume, low-latency applications while maintaining strong multimodal capabilities.","match":{"starts_with":"gemini-3.1-flash-lite-preview"},"context_window":1000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing. Preview model - pricing may change before becoming stable.","prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":1.5,"input_audio_mtok":0.5,"cache_audio_read_mtok":0.05}},{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","description":"The latest performance, intelligence, and usability improvements to the best model family in the world for multimodal understanding, agentic capabilities, and vibe-coding.","match":{"starts_with":"gemini-3.1-pro-preview"},"prices":{"input_mtok":{"base":2,"tiers":[{"start":200000,"price":4}]},"cache_read_mtok":{"base":0.2,"tiers":[{"start":200000,"price":0.4}]},"output_mtok":{"base":12,"tiers":[{"start":200000,"price":18}]}}},{"id":"gemini-embedding-001","match":{"equals":"gemini-embedding-001"},"prices":{"input_mtok":0.15}},{"id":"gemini-flash-1.5","name":"Gemini 1.5 Flash","description":"Gemini 1.5 Flash is a foundation model that performs well at a variety of multimodal tasks such as visual understanding, classification, summarization, and creating content from image, audio and video. It's adept at processing visual and text inputs such as photographs, documents, infographics, and screenshots.","match":{"equals":"gemini-flash-1.5"},"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing#gemini-1.5-flash","prices":{"input_mtok":{"base":0.075,"tiers":[{"start":128000,"price":0.15}]},"cache_read_mtok":{"base":0.01875,"tiers":[{"start":128000,"price":0.0375}]},"output_mtok":{"base":0.3,"tiers":[{"start":128000,"price":0.6}]}}},{"id":"gemini-flash-1.5-8b","name":"gemini 1.5 flash","description":"A faster, more cost-effective variant of Gemini 1.5 that maintains strong capabilities while optimizing for performance and cost efficiency. Suitable for production deployments requiring high throughput.","match":{"equals":"gemini-flash-1.5-8b"},"context_window":1000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing#gemini-1.5-flash-8b","prices":{"input_mtok":{"base":0.0375,"tiers":[{"start":128000,"price":0.075}]},"cache_read_mtok":{"base":0.01,"tiers":[{"start":128000,"price":0.02}]},"output_mtok":{"base":0.15,"tiers":[{"start":128000,"price":0.3}]}}},{"id":"gemini-live-2.5-flash-preview","match":{"or":[{"starts_with":"gemini-live-2.5-flash-preview"},{"starts_with":"gemini-2.5-flash-native-audio-preview"}]},"prices":{"input_mtok":0.5,"output_mtok":2,"input_audio_mtok":3,"output_audio_mtok":12}},{"id":"gemini-pro","name":"gemini 1.0 pro","description":"Google's first-generation advanced multimodal model that can understand text, code, and images. It provides strong reasoning capabilities and follows instructions effectively.","match":{"or":[{"equals":"gemini-pro"},{"equals":"gemini-1.0-pro"}]},"context_window":32768,"price_comments":"I can't find anything so trusting these prices, not sure the model still exists","prices":{"input_mtok":0.125,"output_mtok":0.375}},{"id":"gemini-pro-1.5","name":"Gemini 1.5 Pro","description":"Google's latest multimodal model, supports image and video[0] in text or chat prompts.","match":{"equals":"gemini-pro-1.5"},"context_window":2000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing#gemini-1.5-pro","prices":{"input_mtok":{"base":1.25,"tiers":[{"start":128000,"price":2.5}]},"cache_read_mtok":{"base":0.3125,"tiers":[{"start":128000,"price":0.625}]},"output_mtok":{"base":5,"tiers":[{"start":128000,"price":10}]}}},{"id":"gemma-3","name":"Gemma 3 (free)","description":"Lightweight, state-of the art, open model built from the same technology that powers our Gemini models.","match":{"or":[{"starts_with":"gemma-3-"},{"equals":"gemma-3"}]},"prices":{}},{"id":"gemma-3n","name":"Gemma 3n (free)","description":"Our open model built for efficient performance on everyday devices like mobile phones, laptops, and tablets.","match":{"or":[{"starts_with":"gemma-3n"}]},"prices":{}}]},{"id":"groq","name":"Groq","pricing_urls":["https://groq.com/pricing/"],"api_pattern":"https://api\\.groq\\.com","extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","match":{"equals":"deepseek-r1-distill-llama-70b"},"context_window":131072,"prices":{"input_mtok":0.75,"output_mtok":0.99}},{"id":"gemma-7b-it","match":{"equals":"gemma-7b-it"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"gemma2-9b-it","name":"Gemma 2 9B 8k","match":{"or":[{"equals":"gemma2-9b-it"},{"equals":"gemma2-9b"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama-3.1-405b-reasoning","match":{"equals":"llama-3.1-405b-reasoning"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama-3.1-70b-versatile","match":{"equals":"llama-3.1-70b-versatile"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama-3.1-8b-instant","name":"Llama 3.1 8B Instant 128k","match":{"equals":"llama-3.1-8b-instant"},"prices":{"input_mtok":0.05,"output_mtok":0.08}},{"id":"llama-3.2-11b-text-preview","match":{"equals":"llama-3.2-11b-text-preview"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"llama-3.2-11b-vision-preview","match":{"equals":"llama-3.2-11b-vision-preview"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"llama-3.2-1b-preview","match":{"equals":"llama-3.2-1b-preview"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"llama-3.2-3b-preview","match":{"equals":"llama-3.2-3b-preview"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"llama-3.2-90b-text-preview","match":{"equals":"llama-3.2-90b-text-preview"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"llama-3.2-90b-vision-preview","match":{"equals":"llama-3.2-90b-vision-preview"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"llama-3.3-70b-specdec","match":{"equals":"llama-3.3-70b-specdec"},"prices":{"input_mtok":0.59,"output_mtok":0.99}},{"id":"llama-3.3-70b-versatile","name":"Llama 3.3 70B Versatile 128k","match":{"equals":"llama-3.3-70b-versatile"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama-guard-3-8b","match":{"equals":"llama-guard-3-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama2-70b-4096","match":{"equals":"llama2-70b-4096"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"llama3-70b-8192","match":{"equals":"llama3-70b-8192"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama3-8b-8192","match":{"equals":"llama3-8b-8192"},"prices":{"input_mtok":0.05,"output_mtok":0.08}},{"id":"llama3-groq-70b-8192-tool-use-preview","match":{"equals":"llama3-groq-70b-8192-tool-use-preview"},"prices":{"input_mtok":0.89,"output_mtok":0.89}},{"id":"llama3-groq-8b-8192-tool-use-preview","match":{"equals":"llama3-groq-8b-8192-tool-use-preview"},"prices":{"input_mtok":0.19,"output_mtok":0.19}},{"id":"meta-llama/llama-4-maverick-17b-128e-instruct","name":"Llama 4 Maverick 17B 128E","match":{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct"},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"meta-llama/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout (17Bx16E) 128k","match":{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},"prices":{"input_mtok":0.11,"output_mtok":0.34}},{"id":"meta-llama/llama-guard-4-12b","name":"Llama Guard 4 12B","match":{"equals":"meta-llama/llama-guard-4-12b"},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistral-saba-24b","match":{"equals":"mistral-saba-24b"},"prices":{"input_mtok":0.79,"output_mtok":0.79}},{"id":"mixtral-8x7b-32768","match":{"equals":"mixtral-8x7b-32768"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 1T 128k","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct"},{"equals":"moonshotai/kimi-k2-instruct-0905"}]},"context_window":131072,"prices":{"input_mtok":1,"cache_read_mtok":0.5,"output_mtok":3}},{"id":"openai/gpt-oss-120b","description":"GPT-OSS 120B is OpenAI's flagship open source model, built on a Mixture-of-Experts (MoE) architecture with\n120 billion parameters and 128 experts.\n","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-safeguard-20b"}]},"context_window":131072,"prices":{"input_mtok":0.15,"cache_read_mtok":0.075,"output_mtok":0.6}},{"id":"openai/gpt-oss-20b","description":"GPT-OSS 20B is OpenAI's flagship open source model, built on a Mixture-of-Experts (MoE) architecture with\n20 billion parameters and 32 experts.\n","match":{"equals":"openai/gpt-oss-20b"},"context_window":131072,"prices":{"input_mtok":0.075,"cache_read_mtok":0.0375,"output_mtok":0.3}},{"id":"qwen/qwen3-32b","name":"Qwen3 32B 131k","match":{"equals":"qwen/qwen3-32b"},"prices":{"input_mtok":0.29,"output_mtok":0.59}}]},{"id":"huggingface_cerebras","name":"HuggingFace (cerebras)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/cerebras","provider_match":{"and":[{"contains":"huggingface"},{"contains":"cerebras"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}}]},{"id":"huggingface_fireworks-ai","name":"HuggingFace (fireworks-ai)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/fireworks-ai","provider_match":{"and":[{"contains":"huggingface"},{"contains":"fireworks-ai"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.2}}]},{"id":"huggingface_groq","name":"HuggingFace (groq)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/groq","provider_match":{"and":[{"contains":"huggingface"},{"contains":"groq"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.29,"output_mtok":0.59}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama-4-Scout-17B-16E-Instruct","match":{"or":[{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},{"equals":"meta-llama/llama-4-scout-17b-16e-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.11,"output_mtok":0.34}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.75}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.5}}]},{"id":"huggingface_hyperbolic","name":"HuggingFace (hyperbolic)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/hyperbolic","provider_match":{"and":[{"contains":"huggingface"},{"contains":"hyperbolic"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-72b-instruct"},{"equals":"qwen/qwen2.5-vl-72b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"Qwen/Qwen2.5-VL-7B-Instruct","name":"Qwen2.5-VL-7B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-7b-instruct"},{"equals":"qwen/qwen2.5-vl-7b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3-Next-80B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-instruct"},{"equals":"qwen/qwen3-next-80b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen3-Next-80B-A3B-Thinking","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-thinking"},{"equals":"qwen/qwen3-next-80b-a3b-thinking-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek-R1","match":{"or":[{"equals":"deepseek-ai/deepseek-r1"},{"equals":"deepseek-ai/deepseek-r1-fast"}]},"context_window":163840,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":163840,"prices":{"input_mtok":3,"output_mtok":3}},{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":163840,"prices":{"input_mtok":1.25,"output_mtok":1.25}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.4,"output_mtok":0.4}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.1}}]},{"id":"huggingface_nebius","name":"HuggingFace (nebius)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/nebius","provider_match":{"and":[{"contains":"huggingface"},{"contains":"nebius"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"NousResearch/Hermes-4-405B","name":"Hermes-4-405B","match":{"or":[{"equals":"nousresearch/hermes-4-405b"},{"equals":"nousresearch/hermes-4-405b-fast"}]},"context_window":131072,"prices":{"input_mtok":1,"output_mtok":3}},{"id":"NousResearch/Hermes-4-70B","name":"Hermes-4-70B","match":{"or":[{"equals":"nousresearch/hermes-4-70b"},{"equals":"nousresearch/hermes-4-70b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.13,"output_mtok":0.4}},{"id":"PrimeIntellect/INTELLECT-3-FP8","name":"INTELLECT-3-FP8","match":{"or":[{"equals":"primeintellect/intellect-3-fp8"},{"equals":"primeintellect/intellect-3-fp8-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"Qwen/Qwen2.5-Coder-7B","name":"Qwen2.5-Coder-7B","match":{"or":[{"equals":"qwen/qwen2.5-coder-7b"},{"equals":"qwen/qwen2.5-coder-7b-fast"}]},"context_window":32768,"prices":{"input_mtok":0.03,"output_mtok":0.09}},{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-72b-instruct"},{"equals":"qwen/qwen2.5-vl-72b-instruct-fast"}]},"context_window":32000,"prices":{"input_mtok":0.25,"output_mtok":0.75}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-thinking-2507"},{"equals":"qwen/qwen3-235b-a22b-thinking-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":0.8}},{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3-30B-A3B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-30b-a3b-instruct-2507"},{"equals":"qwen/qwen3-30b-a3b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3-30B-A3B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-30b-a3b-thinking-2507"},{"equals":"qwen/qwen3-30b-a3b-thinking-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3-Coder-30B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-30b-a3b-instruct"},{"equals":"qwen/qwen3-coder-30b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.4,"output_mtok":1.8}},{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":163840,"prices":{"input_mtok":0.8,"output_mtok":2.4}},{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":32768,"prices":{"input_mtok":0.75,"output_mtok":2.25}},{"id":"google/gemma-2-2b-it","name":"gemma-2-2b-it","match":{"or":[{"equals":"google/gemma-2-2b-it"},{"equals":"google/gemma-2-2b-it-fast"}]},"context_window":8192,"prices":{"input_mtok":0.02,"output_mtok":0.06}},{"id":"google/gemma-2-9b-it","name":"gemma-2-9b-it","match":{"or":[{"equals":"google/gemma-2-9b-it"},{"equals":"google/gemma-2-9b-it-fast"}]},"context_window":8192,"prices":{"input_mtok":0.03,"output_mtok":0.09}},{"id":"google/gemma-3-27b-it","name":"gemma-3-27b-it","match":{"or":[{"equals":"google/gemma-3-27b-it"},{"equals":"google/gemma-3-27b-it-fast"}]},"context_window":110000,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.03,"output_mtok":0.09}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.25,"output_mtok":0.75}},{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi-K2-Instruct","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct"},{"equals":"moonshotai/kimi-k2-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.5,"output_mtok":2.4}},{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi-K2-Thinking","match":{"or":[{"equals":"moonshotai/kimi-k2-thinking"},{"equals":"moonshotai/kimi-k2-thinking-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":2.5}},{"id":"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1","name":"Llama-3_1-Nemotron-Ultra-253B-v1","match":{"or":[{"equals":"nvidia/llama-3_1-nemotron-ultra-253b-v1"},{"equals":"nvidia/llama-3_1-nemotron-ultra-253b-v1-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.8}},{"id":"nvidia/NVIDIA-Nemotron-Nano-12B-v2","name":"NVIDIA-Nemotron-Nano-12B-v2","match":{"or":[{"equals":"nvidia/nvidia-nemotron-nano-12b-v2"},{"equals":"nvidia/nvidia-nemotron-nano-12b-v2-fast"}]},"context_window":131072,"prices":{"input_mtok":0.07,"output_mtok":0.2}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"zai-org/GLM-4.5","name":"GLM-4.5","match":{"or":[{"equals":"zai-org/glm-4.5"},{"equals":"zai-org/glm-4.5-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.5-Air","name":"GLM-4.5-Air","match":{"or":[{"equals":"zai-org/glm-4.5-air"},{"equals":"zai-org/glm-4.5-air-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1.2}}]},{"id":"huggingface_novita","name":"HuggingFace (novita)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/novita","provider_match":{"and":[{"contains":"huggingface"},{"contains":"novita"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"MiniMaxAI/MiniMax-M1-80k","name":"MiniMax-M1-80k","match":{"or":[{"equals":"minimaxai/minimax-m1-80k"},{"equals":"minimaxai/minimax-m1-80k-fast"}]},"context_window":1000000,"prices":{"input_mtok":0.55,"output_mtok":2.2}},{"id":"MiniMaxAI/MiniMax-M2","name":"MiniMax-M2","match":{"or":[{"equals":"minimaxai/minimax-m2"},{"equals":"minimaxai/minimax-m2-fast"},{"equals":"minimaxai/minimax-m2.1"},{"equals":"minimaxai/minimax-m2.1-fast"},{"equals":"minimaxai/minimax-m2.5"},{"equals":"minimaxai/minimax-m2.5-fast"}]},"context_window":204800,"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"NousResearch/Hermes-2-Pro-Llama-3-8B","name":"Hermes-2-Pro-Llama-3-8B","match":{"or":[{"equals":"nousresearch/hermes-2-pro-llama-3-8b"},{"equals":"nousresearch/hermes-2-pro-llama-3-8b-fast"}]},"context_window":8192,"prices":{"input_mtok":0.14,"output_mtok":0.14}},{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen2.5-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-72b-instruct"},{"equals":"qwen/qwen2.5-72b-instruct-fast"}]},"context_window":32000,"prices":{"input_mtok":0.38,"output_mtok":0.4}},{"id":"Qwen/Qwen3-235B-A22B","name":"Qwen3-235B-A22B","match":{"or":[{"equals":"qwen/qwen3-235b-a22b"},{"equals":"qwen/qwen3-235b-a22b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.2,"output_mtok":0.8}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":131072,"prices":{"input_mtok":0.09,"output_mtok":0.58}},{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-thinking-2507"},{"equals":"qwen/qwen3-235b-a22b-thinking-2507-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":3}},{"id":"Qwen/Qwen3-30B-A3B","name":"Qwen3-30B-A3B","match":{"or":[{"equals":"qwen/qwen3-30b-a3b"},{"equals":"qwen/qwen3-30b-a3b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.09,"output_mtok":0.45}},{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.1,"output_mtok":0.45}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":1.3}},{"id":"Qwen/Qwen3-Coder-Next","name":"Qwen3-Coder-Next","match":{"or":[{"equals":"qwen/qwen3-coder-next"},{"equals":"qwen/qwen3-coder-next-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":1.5}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3-Next-80B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-instruct"},{"equals":"qwen/qwen3-next-80b-a3b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":1.5}},{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen3-Next-80B-A3B-Thinking","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-thinking"},{"equals":"qwen/qwen3-next-80b-a3b-thinking-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":1.5}},{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen3-VL-235B-A22B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-235b-a22b-instruct"},{"equals":"qwen/qwen3-vl-235b-a22b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":1.5}},{"id":"Qwen/Qwen3-VL-235B-A22B-Thinking","name":"Qwen3-VL-235B-A22B-Thinking","match":{"or":[{"equals":"qwen/qwen3-vl-235b-a22b-thinking"},{"equals":"qwen/qwen3-vl-235b-a22b-thinking-fast"}]},"context_window":131072,"prices":{"input_mtok":0.98,"output_mtok":3.95}},{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen3-VL-30B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-30b-a3b-instruct"},{"equals":"qwen/qwen3-vl-30b-a3b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":0.7}},{"id":"Qwen/Qwen3-VL-30B-A3B-Thinking","name":"Qwen3-VL-30B-A3B-Thinking","match":{"or":[{"equals":"qwen/qwen3-vl-30b-a3b-thinking"},{"equals":"qwen/qwen3-vl-30b-a3b-thinking-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1}},{"id":"Qwen/Qwen3-VL-8B-Instruct","name":"Qwen3-VL-8B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-8b-instruct"},{"equals":"qwen/qwen3-vl-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.08,"output_mtok":0.5}},{"id":"Qwen/Qwen3.5-122B-A10B","name":"Qwen3.5-122B-A10B","match":{"or":[{"equals":"qwen/qwen3.5-122b-a10b"},{"equals":"qwen/qwen3.5-122b-a10b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.4,"output_mtok":3.2}},{"id":"Qwen/Qwen3.5-27B","name":"Qwen3.5-27B","match":{"or":[{"equals":"qwen/qwen3.5-27b"},{"equals":"qwen/qwen3.5-27b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":2.4}},{"id":"Qwen/Qwen3.5-35B-A3B","name":"Qwen3.5-35B-A3B","match":{"or":[{"equals":"qwen/qwen3.5-35b-a3b"},{"equals":"qwen/qwen3.5-35b-a3b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.25,"output_mtok":2}},{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5-397B-A17B","match":{"or":[{"equals":"qwen/qwen3.5-397b-a17b"},{"equals":"qwen/qwen3.5-397b-a17b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":3.6}},{"id":"Sao10K/L3-70B-Euryale-v2.1","name":"L3-70B-Euryale-v2.1","match":{"or":[{"equals":"sao10k/l3-70b-euryale-v2.1"},{"equals":"sao10k/l3-70b-euryale-v2.1-fast"}]},"context_window":8192,"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"Sao10K/L3-8B-Lunaris-v1","name":"L3-8B-Lunaris-v1","match":{"or":[{"equals":"sao10k/l3-8b-lunaris-v1"},{"equals":"sao10k/l3-8b-lunaris-v1-fast"}]},"context_window":8192,"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"Sao10K/L3-8B-Stheno-v3.2","name":"L3-8B-Stheno-v3.2","match":{"or":[{"equals":"sao10k/l3-8b-stheno-v3.2"},{"equals":"sao10k/l3-8b-stheno-v3.2-fast"}]},"context_window":8192,"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo-V2-Flash","match":{"or":[{"equals":"xiaomimimo/mimo-v2-flash"},{"equals":"xiaomimimo/mimo-v2-flash-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"alpindale/WizardLM-2-8x22B","name":"WizardLM-2-8x22B","match":{"or":[{"equals":"alpindale/wizardlm-2-8x22b"},{"equals":"alpindale/wizardlm-2-8x22b-fast"}]},"context_window":65535,"prices":{"input_mtok":0.62,"output_mtok":0.62}},{"id":"baidu/ERNIE-4.5-21B-A3B-PT","name":"ERNIE-4.5-21B-A3B-PT","match":{"or":[{"equals":"baidu/ernie-4.5-21b-a3b-pt"},{"equals":"baidu/ernie-4.5-21b-a3b-pt-fast"}]},"context_window":120000,"prices":{"input_mtok":0.07,"output_mtok":0.28}},{"id":"baidu/ERNIE-4.5-300B-A47B-Base-PT","name":"ERNIE-4.5-300B-A47B-Base-PT","match":{"or":[{"equals":"baidu/ernie-4.5-300b-a47b-base-pt"},{"equals":"baidu/ernie-4.5-300b-a47b-base-pt-fast"}]},"context_window":123000,"prices":{"input_mtok":0.28,"output_mtok":1.1}},{"id":"baidu/ERNIE-4.5-VL-28B-A3B-PT","name":"ERNIE-4.5-VL-28B-A3B-PT","match":{"or":[{"equals":"baidu/ernie-4.5-vl-28b-a3b-pt"},{"equals":"baidu/ernie-4.5-vl-28b-a3b-pt-fast"}]},"context_window":30000,"prices":{"input_mtok":0.14,"output_mtok":0.56}},{"id":"baidu/ERNIE-4.5-VL-424B-A47B-Base-PT","name":"ERNIE-4.5-VL-424B-A47B-Base-PT","match":{"or":[{"equals":"baidu/ernie-4.5-vl-424b-a47b-base-pt"},{"equals":"baidu/ernie-4.5-vl-424b-a47b-base-pt-fast"}]},"context_window":123000,"prices":{"input_mtok":0.42,"output_mtok":1.25}},{"id":"deepseek-ai/DeepSeek-Prover-V2-671B","name":"DeepSeek-Prover-V2-671B","match":{"or":[{"equals":"deepseek-ai/deepseek-prover-v2-671b"},{"equals":"deepseek-ai/deepseek-prover-v2-671b-fast"}]},"context_window":160000,"prices":{"input_mtok":0.7,"output_mtok":2.5}},{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek-R1","match":{"or":[{"equals":"deepseek-ai/deepseek-r1"},{"equals":"deepseek-ai/deepseek-r1-fast"},{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":64000,"prices":{"input_mtok":0.7,"output_mtok":2.5}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b-fast"}]},"context_window":8192,"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"deepseek-ai/DeepSeek-V3","name":"DeepSeek-V3","match":{"or":[{"equals":"deepseek-ai/deepseek-v3"},{"equals":"deepseek-ai/deepseek-v3-fast"}]},"context_window":64000,"prices":{"input_mtok":0.4,"output_mtok":1.3}},{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":163840,"prices":{"input_mtok":0.27,"output_mtok":1.12}},{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek-V3.1","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.1"},{"equals":"deepseek-ai/deepseek-v3.1-fast"},{"equals":"deepseek-ai/deepseek-v3.1-terminus"},{"equals":"deepseek-ai/deepseek-v3.1-terminus-fast"}]},"context_window":131072,"prices":{"input_mtok":0.27,"output_mtok":1}},{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.2"},{"equals":"deepseek-ai/deepseek-v3.2-fast"}]},"context_window":163840,"prices":{"input_mtok":0.269,"output_mtok":0.4}},{"id":"deepseek-ai/DeepSeek-V3.2-Exp","name":"DeepSeek-V3.2-Exp","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.2-exp"},{"equals":"deepseek-ai/deepseek-v3.2-exp-fast"}]},"context_window":163840,"prices":{"input_mtok":0.27,"output_mtok":0.41}},{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":16384,"prices":{"input_mtok":0.02,"output_mtok":0.05}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.135,"output_mtok":0.4}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","match":{"or":[{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8"},{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8-fast"}]},"context_window":1048576,"prices":{"input_mtok":0.27,"output_mtok":0.85}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama-4-Scout-17B-16E-Instruct","match":{"or":[{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},{"equals":"meta-llama/llama-4-scout-17b-16e-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.18,"output_mtok":0.59}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct","name":"Meta-Llama-3-70B-Instruct","match":{"or":[{"equals":"meta-llama/meta-llama-3-70b-instruct"},{"equals":"meta-llama/meta-llama-3-70b-instruct-fast"}]},"context_window":8192,"prices":{"input_mtok":0.51,"output_mtok":0.74}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct","name":"Meta-Llama-3-8B-Instruct","match":{"or":[{"equals":"meta-llama/meta-llama-3-8b-instruct"},{"equals":"meta-llama/meta-llama-3-8b-instruct-fast"}]},"context_window":8192,"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi-K2-Instruct","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct"},{"equals":"moonshotai/kimi-k2-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.57,"output_mtok":2.3}},{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi-K2-Instruct-0905","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct-0905"},{"equals":"moonshotai/kimi-k2-instruct-0905-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":2.5}},{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi-K2-Thinking","match":{"or":[{"equals":"moonshotai/kimi-k2-thinking"},{"equals":"moonshotai/kimi-k2-thinking-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":2.5}},{"id":"moonshotai/Kimi-K2.5","name":"Kimi-K2.5","match":{"or":[{"equals":"moonshotai/kimi-k2.5"},{"equals":"moonshotai/kimi-k2.5-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":3}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.25}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.04,"output_mtok":0.15}},{"id":"zai-org/AutoGLM-Phone-9B-Multilingual","name":"AutoGLM-Phone-9B-Multilingual","match":{"or":[{"equals":"zai-org/autoglm-phone-9b-multilingual"},{"equals":"zai-org/autoglm-phone-9b-multilingual-fast"}]},"context_window":65536,"prices":{"input_mtok":0.035,"output_mtok":0.138}},{"id":"zai-org/GLM-4-32B-0414","name":"GLM-4-32B-0414","match":{"or":[{"equals":"zai-org/glm-4-32b-0414"},{"equals":"zai-org/glm-4-32b-0414-fast"}]},"context_window":32000,"prices":{"input_mtok":0.55,"output_mtok":1.66}},{"id":"zai-org/GLM-4.5","name":"GLM-4.5","match":{"or":[{"equals":"zai-org/glm-4.5"},{"equals":"zai-org/glm-4.5-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.5-Air","name":"GLM-4.5-Air","match":{"or":[{"equals":"zai-org/glm-4.5-air"},{"equals":"zai-org/glm-4.5-air-fast"}]},"context_window":131072,"prices":{"input_mtok":0.13,"output_mtok":0.85}},{"id":"zai-org/GLM-4.5V","name":"GLM-4.5V","match":{"or":[{"equals":"zai-org/glm-4.5v"},{"equals":"zai-org/glm-4.5v-fast"}]},"context_window":65536,"prices":{"input_mtok":0.6,"output_mtok":1.8}},{"id":"zai-org/GLM-4.6","name":"GLM-4.6","match":{"or":[{"equals":"zai-org/glm-4.6"},{"equals":"zai-org/glm-4.6-fast"}]},"context_window":204800,"prices":{"input_mtok":0.55,"output_mtok":2.2}},{"id":"zai-org/GLM-4.6V-Flash","name":"GLM-4.6V-Flash","match":{"or":[{"equals":"zai-org/glm-4.6v-flash"},{"equals":"zai-org/glm-4.6v-flash-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"zai-org/GLM-4.7","name":"GLM-4.7","match":{"or":[{"equals":"zai-org/glm-4.7"},{"equals":"zai-org/glm-4.7-fast"}]},"context_window":204800,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","match":{"or":[{"equals":"zai-org/glm-4.7-flash"},{"equals":"zai-org/glm-4.7-flash-fast"}]},"context_window":200000,"prices":{"input_mtok":0.07,"output_mtok":0.4}},{"id":"zai-org/GLM-5","name":"GLM-5","match":{"or":[{"equals":"zai-org/glm-5"},{"equals":"zai-org/glm-5-fast"}]},"context_window":202800,"prices":{"input_mtok":1,"output_mtok":3.2}}]},{"id":"huggingface_nscale","name":"HuggingFace (nscale)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/nscale","provider_match":{"and":[{"contains":"huggingface"},{"contains":"nscale"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/QwQ-32B","name":"QwQ-32B","match":{"or":[{"equals":"qwen/qwq-32b"},{"equals":"qwen/qwq-32b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.18,"output_mtok":0.2}},{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen2.5-Coder-32B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-coder-32b-instruct"},{"equals":"qwen/qwen2.5-coder-32b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.06,"output_mtok":0.2}},{"id":"Qwen/Qwen2.5-Coder-3B-Instruct","name":"Qwen2.5-Coder-3B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-coder-3b-instruct"},{"equals":"qwen/qwen2.5-coder-3b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen2.5-Coder-7B-Instruct","name":"Qwen2.5-Coder-7B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-coder-7b-instruct"},{"equals":"qwen/qwen2.5-coder-7b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen3-14B","name":"Qwen3-14B","match":{"or":[{"equals":"qwen/qwen3-14b"},{"equals":"qwen/qwen3-14b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.07,"output_mtok":0.2}},{"id":"Qwen/Qwen3-235B-A22B","name":"Qwen3-235B-A22B","match":{"or":[{"equals":"qwen/qwen3-235b-a22b"},{"equals":"qwen/qwen3-235b-a22b-fast"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":32000,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.08,"output_mtok":0.25}},{"id":"Qwen/Qwen3-4B-Instruct-2507","name":"Qwen3-4B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-4b-instruct-2507"},{"equals":"qwen/qwen3-4b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen3-4B-Thinking-2507","name":"Qwen3-4B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-4b-thinking-2507"},{"equals":"qwen/qwen3-4b-thinking-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen3-8B","name":"Qwen3-8B","match":{"or":[{"equals":"qwen/qwen3-8b"},{"equals":"qwen/qwen3-8b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.07,"output_mtok":0.18}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.75,"output_mtok":0.75}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-8B","name":"DeepSeek-R1-Distill-Llama-8B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-8b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-8b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B","name":"DeepSeek-R1-Distill-Qwen-1.5B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-qwen-1.5b"},{"equals":"deepseek-ai/deepseek-r1-distill-qwen-1.5b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","name":"DeepSeek-R1-Distill-Qwen-32B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-qwen-32b"},{"equals":"deepseek-ai/deepseek-r1-distill-qwen-32b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B","name":"DeepSeek-R1-Distill-Qwen-7B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-qwen-7b"},{"equals":"deepseek-ai/deepseek-r1-distill-qwen-7b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.4,"output_mtok":0.4}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama-4-Scout-17B-16E-Instruct","match":{"or":[{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},{"equals":"meta-llama/llama-4-scout-17b-16e-instruct-fast"}]},"context_window":890000,"prices":{"input_mtok":0.09,"output_mtok":0.29}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.2}}]},{"id":"huggingface_ovhcloud","name":"HuggingFace (ovhcloud)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/ovhcloud","provider_match":{"and":[{"contains":"huggingface"},{"contains":"ovhcloud"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-72b-instruct"},{"equals":"qwen/qwen2.5-vl-72b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":1.01,"output_mtok":1.01}},{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":32768,"prices":{"input_mtok":0.09,"output_mtok":0.25}},{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3-Coder-30B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-30b-a3b-instruct"},{"equals":"qwen/qwen3-coder-30b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.07,"output_mtok":0.26}},{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.11,"output_mtok":0.11}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.74,"output_mtok":0.74}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.09,"output_mtok":0.47}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.18}}]},{"id":"huggingface_publicai","name":"HuggingFace (publicai)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/publicai","provider_match":{"and":[{"contains":"huggingface"},{"contains":"publicai"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"aisingapore/Gemma-SEA-LION-v4-27B-IT","name":"Gemma-SEA-LION-v4-27B-IT","match":{"or":[{"equals":"aisingapore/gemma-sea-lion-v4-27b-it"},{"equals":"aisingapore/gemma-sea-lion-v4-27b-it-fast"}]},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"aisingapore/Qwen-SEA-LION-v4-32B-IT","name":"Qwen-SEA-LION-v4-32B-IT","match":{"or":[{"equals":"aisingapore/qwen-sea-lion-v4-32b-it"},{"equals":"aisingapore/qwen-sea-lion-v4-32b-it-fast"}]},"prices":{"input_mtok":0.25,"output_mtok":0.5}},{"id":"allenai/Olmo-3-7B-Instruct","name":"Olmo-3-7B-Instruct","match":{"or":[{"equals":"allenai/olmo-3-7b-instruct"},{"equals":"allenai/olmo-3-7b-instruct-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"allenai/Olmo-3.1-32B-Instruct","name":"Olmo-3.1-32B-Instruct","match":{"or":[{"equals":"allenai/olmo-3.1-32b-instruct"},{"equals":"allenai/olmo-3.1-32b-instruct-fast"}]},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"dicta-il/DictaLM-3.0-24B-Thinking","name":"DictaLM-3.0-24B-Thinking","match":{"or":[{"equals":"dicta-il/dictalm-3.0-24b-thinking"},{"equals":"dicta-il/dictalm-3.0-24b-thinking-fast"}]},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"swiss-ai/Apertus-70B-Instruct-2509","name":"Apertus-70B-Instruct-2509","match":{"or":[{"equals":"swiss-ai/apertus-70b-instruct-2509"},{"equals":"swiss-ai/apertus-70b-instruct-2509-fast"}]},"prices":{"input_mtok":0.82,"output_mtok":2.92}},{"id":"swiss-ai/Apertus-8B-Instruct-2509","name":"Apertus-8B-Instruct-2509","match":{"or":[{"equals":"swiss-ai/apertus-8b-instruct-2509"},{"equals":"swiss-ai/apertus-8b-instruct-2509-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"utter-project/EuroLLM-22B-Instruct-2512","name":"EuroLLM-22B-Instruct-2512","match":{"or":[{"equals":"utter-project/eurollm-22b-instruct-2512"},{"equals":"utter-project/eurollm-22b-instruct-2512-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.2}}]},{"id":"huggingface_sambanova","name":"HuggingFace (sambanova)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/sambanova","provider_match":{"and":[{"contains":"huggingface"},{"contains":"sambanova"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":32768,"prices":{"input_mtok":0.4,"output_mtok":0.8}},{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":131072,"prices":{"input_mtok":5,"output_mtok":7}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.7,"output_mtok":1.4}},{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":131072,"prices":{"input_mtok":3,"output_mtok":4.5}},{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":16384,"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.2}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.22,"output_mtok":0.59}},{"id":"tokyotech-llm/Llama-3.3-Swallow-70B-Instruct-v0.4","name":"Llama-3.3-Swallow-70B-Instruct-v0.4","match":{"or":[{"equals":"tokyotech-llm/llama-3.3-swallow-70b-instruct-v0.4"},{"equals":"tokyotech-llm/llama-3.3-swallow-70b-instruct-v0.4-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.2}}]},{"id":"huggingface_together","name":"HuggingFace (together)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/together","provider_match":{"and":[{"contains":"huggingface"},{"contains":"together"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"EssentialAI/rnj-1-instruct","name":"rnj-1-instruct","match":{"or":[{"equals":"essentialai/rnj-1-instruct"},{"equals":"essentialai/rnj-1-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"Qwen/Qwen2.5-7B-Instruct","name":"Qwen2.5-7B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-7b-instruct"},{"equals":"qwen/qwen2.5-7b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fp8"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fp8-fast"}]},"context_window":262144,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"Qwen/Qwen3-Coder-Next-FP8","name":"Qwen3-Coder-Next-FP8","match":{"or":[{"equals":"qwen/qwen3-coder-next-fp8"},{"equals":"qwen/qwen3-coder-next-fp8-fast"}]},"context_window":262144,"prices":{"input_mtok":0.5,"output_mtok":1.2}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3-Next-80B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-instruct"},{"equals":"qwen/qwen3-next-80b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.15,"output_mtok":1.5}},{"id":"Qwen/Qwen3-VL-8B-Instruct","name":"Qwen3-VL-8B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-8b-instruct"},{"equals":"qwen/qwen3-vl-8b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.18000000000000002,"output_mtok":0.68}},{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5-397B-A17B","match":{"or":[{"equals":"qwen/qwen3.5-397b-a17b"},{"equals":"qwen/qwen3.5-397b-a17b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":3.6}},{"id":"Qwen/Qwen3.5-9B","name":"Qwen3.5-9B","match":{"or":[{"equals":"qwen/qwen3.5-9b"},{"equals":"qwen/qwen3.5-9b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.15}},{"id":"ServiceNow-AI/Apriel-1.6-15b-Thinker","name":"Apriel-1.6-15b-Thinker","match":{"or":[{"equals":"servicenow-ai/apriel-1.6-15b-thinker"},{"equals":"servicenow-ai/apriel-1.6-15b-thinker-fast"}]},"context_window":131072,"prices":{}},{"id":"deepcogito/cogito-671b-v2.1","name":"cogito-671b-v2.1","match":{"or":[{"equals":"deepcogito/cogito-671b-v2.1"},{"equals":"deepcogito/cogito-671b-v2.1-fast"},{"equals":"deepcogito/cogito-671b-v2.1-fp8"},{"equals":"deepcogito/cogito-671b-v2.1-fp8-fast"}]},"context_window":163840,"prices":{"input_mtok":1.25,"output_mtok":1.25}},{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek-R1","match":{"or":[{"equals":"deepseek-ai/deepseek-r1"},{"equals":"deepseek-ai/deepseek-r1-fast"},{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":163840,"prices":{"input_mtok":3,"output_mtok":7}},{"id":"deepseek-ai/DeepSeek-V3","name":"DeepSeek-V3","match":{"or":[{"equals":"deepseek-ai/deepseek-v3"},{"equals":"deepseek-ai/deepseek-v3-fast"},{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":131072,"prices":{"input_mtok":1.25,"output_mtok":1.25}},{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek-V3.1","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.1"},{"equals":"deepseek-ai/deepseek-v3.1-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.7}},{"id":"google/gemma-3n-E4B-it","name":"gemma-3n-E4B-it","match":{"or":[{"equals":"google/gemma-3n-e4b-it"},{"equals":"google/gemma-3n-e4b-it-fast"}]},"context_window":32768,"prices":{"input_mtok":0.02,"output_mtok":0.04}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","match":{"or":[{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8"},{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8-fast"}]},"context_window":1048576,"prices":{"input_mtok":0.27,"output_mtok":0.85}},{"id":"moonshotai/Kimi-K2.5","name":"Kimi-K2.5","match":{"or":[{"equals":"moonshotai/kimi-k2.5"},{"equals":"moonshotai/kimi-k2.5-fast"}]},"context_window":262144,"prices":{"input_mtok":0.5,"output_mtok":2.8}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.2}},{"id":"zai-org/GLM-4.5-Air-FP8","name":"GLM-4.5-Air-FP8","match":{"or":[{"equals":"zai-org/glm-4.5-air-fp8"},{"equals":"zai-org/glm-4.5-air-fp8-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"zai-org/GLM-4.6","name":"GLM-4.6","match":{"or":[{"equals":"zai-org/glm-4.6"},{"equals":"zai-org/glm-4.6-fast"}]},"context_window":202752,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.7-FP8","name":"GLM-4.7-FP8","match":{"or":[{"equals":"zai-org/glm-4.7-fp8"},{"equals":"zai-org/glm-4.7-fp8-fast"}]},"context_window":202752,"prices":{"input_mtok":0.45,"output_mtok":2}},{"id":"zai-org/GLM-5","name":"GLM-5","match":{"or":[{"equals":"zai-org/glm-5"},{"equals":"zai-org/glm-5-fast"}]},"context_window":202752,"prices":{"input_mtok":1,"output_mtok":3.2}}]},{"id":"mistral","name":"Mistral","pricing_urls":["https://mistral.ai/pricing#api-pricing"],"api_pattern":"https://api\\.mistral\\.ai","model_match":{"regex":"(?:mi|code|dev|magi|mini)stral"},"provider_match":{"starts_with":"mistral"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"codestral","name":"Codestral","description":"Mistral's cutting-edge language model for coding. Codestral specializes in low-latency, high-frequency tasks such as fill-in-the-middle (FIM), code correction and test generation.","match":{"or":[{"equals":"codestral-latest"},{"equals":"codestral-2501"}]},"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"devstral-small","name":"Devstral Small","description":"Devstral-Small-2505 is a 24B parameter agentic LLM fine-tuned from Mistral-Small-3.1, jointly developed by Mistral AI and All Hands AI for advanced software engineering tasks. It is optimized for codebase exploration, multi-file editing, and integration into coding agents, achieving state-of-the-art results on SWE-Bench Verified (46.8%).","match":{"equals":"devstral-small"},"prices":{"input_mtok":0.06,"output_mtok":0.12}},{"id":"devstral-small:free","name":"Devstral Small (free)","description":"Devstral-Small-2505 is a 24B parameter agentic LLM fine-tuned from Mistral-Small-3.1, jointly developed by Mistral AI and All Hands AI for advanced software engineering tasks. It is optimized for codebase exploration, multi-file editing, and integration into coding agents, achieving state-of-the-art results on SWE-Bench Verified (46.8%).","match":{"equals":"devstral-small:free"},"prices":{}},{"id":"magistral-medium","name":"Magistral Medium","description":"Magistral is Mistral's first reasoning model. It is ideal for general purpose use requiring longer thought processing and better accuracy than with non-reasoning LLMs. From legal research and financial forecasting to software development and creative storytelling — this model solves multi-step challenges where transparency and precision are critical.","match":{"or":[{"starts_with":"magistral-medium"}]},"prices":{"input_mtok":2,"output_mtok":5}},{"id":"magistral-small","name":"Magistral Small","description":"Magistral Small is a 24B parameter instruction-tuned model based on Mistral-Small-3.1 (2503), enhanced through supervised fine-tuning on traces from Magistral Medium and further refined via reinforcement learning. It is optimized for reasoning and supports a wide multilingual range, including over 20 languages.","match":{"starts_with":"magistral-small-"},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"ministral-3b","name":"Ministral 3B","description":"Ministral 3B is a 3B parameter model optimized for on-device and edge computing. It excels in knowledge, commonsense reasoning, and function-calling, outperforming larger models like Mistral 7B on most benchmarks. Supporting up to 128k context length, it's ideal for orchestrating agentic workflows and specialist tasks with efficient inference.","match":{"equals":"ministral-3b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"ministral-8b","name":"Ministral 8B 24.10","description":"Ministral 8B is an 8B parameter model featuring a unique interleaved sliding-window attention pattern for faster, memory-efficient inference. Designed for edge use cases, it supports up to 128k context length and excels in knowledge and reasoning tasks. It outperforms peers in the sub-10B category, making it perfect for low-latency, privacy-first applications.","match":{"starts_with":"ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":1}},{"id":"mistral-7b","name":"Mistral 7B","match":{"or":[{"equals":"mistral-7b"},{"equals":"open-mistral-7b"}]},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistral-embed","match":{"equals":"mistral-embed"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistral-large","name":"Mistral Large","description":"This is Mistral AI's flagship model, Mistral Large 2 (version `mistral-large-2407`). It's a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement here.","match":{"or":[{"equals":"mistral-large"},{"equals":"mistral-large-latest"},{"equals":"mistral-large-2407"},{"equals":"mistral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mistral-medium-3","name":"Mistral Medium 3","description":"Mistral Medium 3 is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances state-of-the-art reasoning and multimodal performance with 8× lower cost compared to traditional large models, making it suitable for scalable deployments across professional and industrial use cases.","match":{"starts_with":"mistral-medium"},"prices":{"input_mtok":0.4,"output_mtok":2}},{"id":"mistral-nemo","name":"Mistral NeMo","description":"A 12B parameter model with a 128k token context length built by Mistral in collaboration with NVIDIA.","match":{"or":[{"equals":"mistral-nemo"},{"equals":"open-mistral-nemo"}]},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"mistral-nemo:free","name":"Mistral Nemo (free)","description":"A 12B parameter model with a 128k token context length built by Mistral in collaboration with NVIDIA.","match":{"equals":"mistral-nemo:free"},"prices":{}},{"id":"mistral-saba","name":"Mistral Saba","description":"Mistral Saba is a 24B-parameter language model specifically designed for the Middle East and South Asia, delivering accurate and contextually relevant responses while maintaining efficient performance. Trained on curated regional datasets, it supports multiple Indian-origin languages—including Tamil and Malayalam—alongside Arabic. This makes it a versatile option for a range of regional and multilingual applications. Read more at the blog post here","match":{"or":[{"equals":"mistral-saba"},{"equals":"mistral-saba-latest"}]},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistral-small-24b-instruct-2501","name":"Mistral Small 3","description":"Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed for efficient local deployment.","match":{"equals":"mistral-small-24b-instruct-2501"},"price_comments":"Can't find pricing on this model, so just trusting open router","prices":{"input_mtok":0.05,"output_mtok":0.08}},{"id":"mistral-small-24b-instruct-2501:free","name":"Mistral Small 3 (free)","description":"Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed for efficient local deployment.","match":{"equals":"mistral-small-24b-instruct-2501:free"},"prices":{}},{"id":"mistral-small-latest","name":"Mistral Small 3.2","description":"SOTA. Multimodal. Multilingual. Apache 2.0.","match":{"equals":"mistral-small-latest"},"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"mistral-tiny","name":"Mistral Tiny","description":"Note: This model is being deprecated. Recommended replacement is the newer Ministral 8B","match":{"equals":"mistral-tiny"},"prices":{"input_mtok":0.25,"output_mtok":0.25},"deprecated":true},{"id":"mixtral-8x22b-instruct","name":"Mixtral 8x22B Instruct","description":"Mistral's official instruct fine-tuned version of Mixtral 8x22B. It uses 39B active parameters out of 141B, offering unparalleled cost efficiency for its size. Its strengths include:\n- strong math, coding, and reasoning\n- large context length (64k)\n- fluency in English, French, Italian, German, and Spanish","match":{"equals":"mixtral-8x22b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mixtral-8x7b","name":"Mixtral 8x7B","match":{"or":[{"starts_with":"mixtral-8x7b"},{"equals":"open-mixtral-8x7b"}]},"prices":{"input_mtok":0.7,"output_mtok":0.7}},{"id":"pixtral-12b","name":"Pixtral 12B","description":"The first multi-modal, text+image-to-text model from Mistral AI. Its weights were launched via torrent: https://x.com/mistralai/status/1833758285167722836.","match":{"or":[{"equals":"pixtral-12b"},{"equals":"pixtral-12b-latest"}]},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"pixtral-large","name":"Pixtral Large 2411","description":"Pixtral Large is a 124B parameter, open-weight, multimodal model built on top of Mistral Large 2. The model is able to understand documents, charts and natural images.","match":{"or":[{"equals":"pixtral-large-latest"},{"equals":"pixtral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}}]},{"id":"moonshotai","name":"MoonshotAi","pricing_urls":["https://platform.moonshot.ai/docs/pricing/chat#product-pricing"],"api_pattern":"https://api\\.moonshot\\.","model_match":{"or":[{"starts_with":"kimi"},{"starts_with":"moonshot"}]},"provider_match":{"contains":"moonshot"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"kimi-k2-0711-preview","name":"Kimi K2 0711 Preview","description":"MoE foundation model with exceptional coding and agent capabilities, featuring 1 trillion total parameters and 32 billion activated parameters.","match":{"equals":"kimi-k2-0711-preview"},"context_window":131072,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":2.5}},{"id":"kimi-k2-0905-preview","name":"Kimi K2 0905 Preview","description":"Based on kimi-k2-0711-preview, with enhanced agentic coding abilities, improved frontend code quality and practicality, and better context understanding. MoE foundation model with 1 trillion total parameters and 32 billion activated parameters.","match":{"equals":"kimi-k2-0905-preview"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":2.5}},{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","description":"A thinking model with general agentic and reasoning capabilities, specializing in deep reasoning tasks.","match":{"equals":"kimi-k2-thinking"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":2.5}},{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","description":"High-speed version of kimi-k2-thinking, suitable for scenarios requiring both deep reasoning and extremely fast responses.","match":{"equals":"kimi-k2-thinking-turbo"},"context_window":262144,"prices":{"input_mtok":1.15,"cache_read_mtok":0.15,"output_mtok":8}},{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo Preview","description":"High-speed version of kimi-k2, always aligned with the latest kimi-k2. Same model parameters as kimi-k2, output speed up to 60 tokens/sec (max 100 tokens/sec).","match":{"starts_with":"kimi-k2-turbo"},"context_window":262144,"prices":{"input_mtok":1.15,"cache_read_mtok":0.15,"output_mtok":8}},{"id":"kimi-k2.5","name":"Kimi K2.5","description":"Kimi's most versatile model featuring a native multimodal architecture that supports both visual and text input, thinking and non-thinking modes, and dialogue and agent tasks. Supports automatic context caching, ToolCalls, JSON Mode, Partial Mode, and internet search.","match":{"starts_with":"kimi-k2.5"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.1,"output_mtok":3}},{"id":"moonshot-v1-128k","name":"Moonshot V1 128K","match":{"or":[{"equals":"moonshot-v1-128k"},{"equals":"moonshot-v1-128k-vision-preview"}]},"context_window":131072,"prices":{"input_mtok":2,"output_mtok":5}},{"id":"moonshot-v1-32k","name":"Moonshot V1 32K","match":{"or":[{"equals":"moonshot-v1-32k"},{"equals":"moonshot-v1-32k-vision-preview"}]},"context_window":32768,"prices":{"input_mtok":1,"output_mtok":3}},{"id":"moonshot-v1-8k","name":"Moonshot V1 8K","match":{"or":[{"equals":"moonshot-v1-8k"},{"equals":"moonshot-v1-8k-vision-preview"}]},"context_window":8192,"prices":{"input_mtok":0.2,"output_mtok":2}}]},{"id":"novita","name":"Novita","pricing_urls":["https://novita.ai/pricing"],"api_pattern":"https://api\\.novita\\.ai","models":[{"id":"Sao10K/L3-8B-Stheno-v3.2","match":{"equals":"Sao10K/L3-8B-Stheno-v3.2"},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"cognitivecomputations/dolphin-mixtral-8x22b","match":{"equals":"cognitivecomputations/dolphin-mixtral-8x22b"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"deepseek/deepseek-r1","match":{"equals":"deepseek/deepseek-r1"},"prices":{"input_mtok":4,"output_mtok":4}},{"id":"deepseek/deepseek-r1-distill-llama-70b","match":{"equals":"deepseek/deepseek-r1-distill-llama-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"deepseek/deepseek-r1-distill-llama-8b","match":{"equals":"deepseek/deepseek-r1-distill-llama-8b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"deepseek/deepseek-r1-distill-qwen-14b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-14b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"deepseek/deepseek-r1-distill-qwen-32b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-32b"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"deepseek/deepseek_v3","match":{"equals":"deepseek/deepseek_v3"},"prices":{"input_mtok":0.89,"output_mtok":0.89}},{"id":"google/gemma-2-9b-it","match":{"equals":"google/gemma-2-9b-it"},"prices":{"input_mtok":0.08,"output_mtok":0.08}},{"id":"gryphe/mythomax-l2-13b","match":{"equals":"gryphe/mythomax-l2-13b"},"prices":{"input_mtok":0.09,"output_mtok":0.09}},{"id":"jondurbin/airoboros-l2-70b","match":{"equals":"jondurbin/airoboros-l2-70b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"meta-llama/llama-3-70b-instruct","match":{"equals":"meta-llama/llama-3-70b-instruct"},"prices":{"input_mtok":0.51,"output_mtok":0.74}},{"id":"meta-llama/llama-3-8b-instruct","match":{"equals":"meta-llama/llama-3-8b-instruct"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"meta-llama/llama-3.1-70b-instruct","match":{"equals":"meta-llama/llama-3.1-70b-instruct"},"prices":{"input_mtok":0.34,"output_mtok":0.39}},{"id":"meta-llama/llama-3.1-8b-instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-max"}]},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"meta-llama/llama-3.1-8b-instruct-bf16","match":{"equals":"meta-llama/llama-3.1-8b-instruct-bf16"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"meta-llama/llama-3.2-11b-vision-instruct","match":{"equals":"meta-llama/llama-3.2-11b-vision-instruct"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"meta-llama/llama-3.2-1b-instruct","match":{"equals":"meta-llama/llama-3.2-1b-instruct"},"prices":{"input_mtok":0.02,"output_mtok":0.02}},{"id":"meta-llama/llama-3.2-3b-instruct","match":{"equals":"meta-llama/llama-3.2-3b-instruct"},"prices":{"input_mtok":0.03,"output_mtok":0.05}},{"id":"meta-llama/llama-3.3-70b-instruct","match":{"equals":"meta-llama/llama-3.3-70b-instruct"},"prices":{"input_mtok":0.39,"output_mtok":0.39}},{"id":"microsoft/wizardlm-2-8x22b","match":{"equals":"microsoft/wizardlm-2-8x22b"},"prices":{"input_mtok":0.62,"output_mtok":0.62}},{"id":"mistralai/mistral-7b-instruct","match":{"equals":"mistralai/mistral-7b-instruct"},"prices":{"input_mtok":0.059,"output_mtok":0.059}},{"id":"mistralai/mistral-nemo","match":{"equals":"mistralai/mistral-nemo"},"prices":{"input_mtok":0.17,"output_mtok":0.17}},{"id":"nousresearch/hermes-2-pro-llama-3-8b","match":{"equals":"nousresearch/hermes-2-pro-llama-3-8b"},"prices":{"input_mtok":0.14,"output_mtok":0.14}},{"id":"nousresearch/nous-hermes-llama2-13b","match":{"equals":"nousresearch/nous-hermes-llama2-13b"},"prices":{"input_mtok":0.17,"output_mtok":0.17}},{"id":"openchat/openchat-7b","match":{"equals":"openchat/openchat-7b"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"qwen/qwen-2-7b-instruct","match":{"equals":"qwen/qwen-2-7b-instruct"},"prices":{"input_mtok":0.054,"output_mtok":0.054}},{"id":"qwen/qwen-2-vl-72b-instruct","match":{"equals":"qwen/qwen-2-vl-72b-instruct"},"prices":{"input_mtok":0.45,"output_mtok":0.45}},{"id":"qwen/qwen-2.5-72b-instruct","match":{"equals":"qwen/qwen-2.5-72b-instruct"},"prices":{"input_mtok":0.38,"output_mtok":0.4}},{"id":"sao10k/l3-70b-euryale-v2.1","match":{"equals":"sao10k/l3-70b-euryale-v2.1"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"sao10k/l3-8b-lunaris","match":{"equals":"sao10k/l3-8b-lunaris"},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"sao10k/l31-70b-euryale-v2.2","match":{"equals":"sao10k/l31-70b-euryale-v2.2"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"sophosympatheia/midnight-rose-70b","match":{"equals":"sophosympatheia/midnight-rose-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"teknium/openhermes-2.5-mistral-7b","match":{"equals":"teknium/openhermes-2.5-mistral-7b"},"prices":{"input_mtok":0.17,"output_mtok":0.17}}]},{"id":"openai","name":"OpenAI","pricing_urls":["https://platform.openai.com/docs/pricing","https://openai.com/api/pricing/","https://platform.openai.com/docs/models","https://help.openai.com/en/articles/7127956-how-much-does-gpt-4-cost"],"api_pattern":"https://api\\.openai\\.com","model_match":{"or":[{"starts_with":"gpt-"},{"regex":"^o[134]"}]},"provider_match":{"contains":"openai"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"responses","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":["input_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"embeddings","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true}]}],"models":[{"id":"ada","match":{"or":[{"equals":"ada"},{"equals":"text-ada-001"}]},"prices":{"input_mtok":0.4,"output_mtok":0.4}},{"id":"babbage","match":{"equals":"babbage"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"chatgpt-4o-latest","name":"ChatGPT-4o","description":"OpenAI ChatGPT 4o is continually updated by OpenAI to point to the current version of GPT-4o used by ChatGPT. It therefore differs slightly from the API version of GPT-4o in that it has additional RLHF. It is intended for research and evaluation.","match":{"equals":"chatgpt-4o-latest"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"codex-mini","name":"Codex Mini","description":"codex-mini-latest is a fine-tuned version of o4-mini specifically for use in Codex CLI. For direct use in the API, we recommend starting with gpt-4.1.","match":{"or":[{"equals":"codex-mini"},{"equals":"codex-mini-latest"}]},"prices":{"input_mtok":1.5,"cache_read_mtok":0.375,"output_mtok":6}},{"id":"computer-use","name":"Computer use","match":{"starts_with":"computer-use"},"prices":{"input_mtok":3,"output_mtok":12}},{"id":"curie","match":{"or":[{"equals":"curie"},{"equals":"text-curie-001"}]},"prices":{"input_mtok":2,"output_mtok":2}},{"id":"davinci","match":{"or":[{"equals":"davinci"},{"equals":"text-davinci-001"}]},"prices":{"input_mtok":20,"output_mtok":20}},{"id":"ft:gpt-3.5-turbo-","description":"GPT-3.5 Turbo fine tuned.","match":{"starts_with":"ft:gpt-3.5-turbo"},"prices":{"input_mtok":3,"output_mtok":6}},{"id":"ft:gpt-4o","description":"GPT-4o fine tuned.","match":{"starts_with":"ft:gpt-4o-2024-"},"prices":{"input_mtok":3.75,"output_mtok":15}},{"id":"ft:gpt-4o-mini","description":"GPT-4o Mini fine tuned.","match":{"starts_with":"ft:gpt-4o-mini-2024-"},"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"gpt-3.5-0301","match":{"or":[{"equals":"gpt-3.5-turbo-0301"},{"equals":"gpt-3.5-0301"}]},"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-3.5-turbo","name":"gpt 3.5 turbo","description":"GPT-3.5 Turbo offers a balance between cost and performance.","match":{"or":[{"equals":"gpt-3.5-turbo"},{"equals":"gpt-35-turbo"},{"equals":"gpt-3.5-turbo-0125"}]},"context_window":16385,"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"gpt-3.5-turbo-0613","match":{"equals":"gpt-3.5-turbo-0613"},"context_window":16385,"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-3.5-turbo-1106","match":{"equals":"gpt-3.5-turbo-1106"},"context_window":16385,"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo-16k","name":"GPT-3.5 Turbo 16k","description":"This model offers four times the context length of gpt-3.5-turbo, allowing it to support approximately 20 pages of text in a single request at a higher cost. Training data: up to Sep 2021.","match":{"or":[{"equals":"gpt-3.5-turbo-16k"},{"equals":"gpt-3.5-turbo-16k-0613"},{"equals":"gpt-35-turbo-16k-0613"},{"equals":"gpt-35-turbo-16k"}]},"context_window":16385,"prices":{"input_mtok":3,"output_mtok":4}},{"id":"gpt-3.5-turbo-instruct","name":"gpt 3.5 turbo instruct","description":"GPT-3.5 Turbo offers a balance between cost and performance.","match":{"or":[{"starts_with":"gpt-3.5-turbo-instruct"},{"equals":"gpt-3.5-turbo-instruct-0914"}]},"context_window":16385,"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-4","name":"gpt 4","description":"GPT-4 is the latest and most advanced model in the GPT series, demonstrating sophisticated capabilities in complex reasoning, theory of mind, and narrative understanding.","match":{"or":[{"equals":"gpt-4"},{"equals":"gpt-4-0314"},{"equals":"gpt-4-0613"},{"starts_with":"ft:gpt-4-0"}]},"context_window":8192,"prices":{"input_mtok":30,"output_mtok":60}},{"id":"gpt-4-32k","name":"gpt 4","description":"GPT-4 is the latest and most advanced model in the GPT series, demonstrating sophisticated capabilities in complex reasoning, theory of mind, and narrative understanding.","match":{"or":[{"equals":"gpt-4-32k"},{"equals":"gpt-4-32k-0314"},{"equals":"gpt-4-32k-0613"}]},"context_window":32000,"price_comments":"see https://help.openai.com/en/articles/7127956-how-much-does-gpt-4-cost","prices":{"input_mtok":60,"output_mtok":120}},{"id":"gpt-4-turbo","name":"gpt 4 turbo","description":"GPT-4 Turbo offers a balance between cost and performance.","match":{"or":[{"equals":"gpt-4-turbo"},{"equals":"gpt-4-turbo-2024-04-09"},{"equals":"gpt-4-turbo-0125-preview"},{"equals":"gpt-4-0125-preview"},{"equals":"gpt-4-1106-preview"},{"equals":"gpt-4-turbo-preview"}]},"context_window":128000,"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4-vision-preview","name":"gpt 4 vision","description":"GPT-4 Vision is a model that offers a balance between cost and performance.","match":{"or":[{"equals":"gpt-4-vision-preview"},{"equals":"gpt-4-1106-vision-preview"}]},"context_window":128000,"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4.1","name":"gpt 4.1","description":"GPT-4.1 is OpenAI's latest flagship model, offering major improvements in coding, instruction following, and long context understanding with up to 1 million tokens of context.","match":{"or":[{"equals":"gpt-4.1"},{"equals":"gpt-4.1-2025-04-14"}]},"context_window":1000000,"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"gpt-4.1-mini","name":"gpt 4.1 mini","description":"GPT-4.1 Mini is a significant leap in small model performance, matching or exceeding GPT-4o in many benchmarks while reducing latency by nearly half and cost by 83%.","match":{"or":[{"equals":"gpt-4.1-mini"},{"equals":"gpt-4.1-mini-2025-04-14"}]},"context_window":1000000,"prices":{"input_mtok":0.4,"cache_read_mtok":0.1,"output_mtok":1.6}},{"id":"gpt-4.1-nano","name":"gpt 4.1 nano","description":"GPT-4.1 Nano is OpenAI's fastest and cheapest model, delivering exceptional performance for its size with a 1 million token context window, ideal for classification and autocompletion tasks.","match":{"or":[{"equals":"gpt-4.1-nano"},{"equals":"gpt-4.1-nano-2025-04-14"}]},"context_window":1000000,"prices":{"input_mtok":0.1,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"gpt-4.5-preview","name":"GPT-4.5 (Preview)","description":"GPT-4.5 (Preview) is a research preview of OpenAI's latest language model, designed to advance capabilities in reasoning, creativity, and multi-turn conversation. It builds on previous iterations with improvements in world knowledge, contextual coherence, and the ability to follow user intent more effectively.","match":{"starts_with":"gpt-4.5-preview"},"prices":{"input_mtok":75,"cache_read_mtok":37.5,"output_mtok":150}},{"id":"gpt-4o","name":"gpt 4o","description":"GPT-4 Optimized (GPT-4o) is designed for high performance in reasoning, creativity, and technical tasks while maintaining consistent output quality.","match":{"or":[{"equals":"gpt-4o"},{"equals":"gpt-4o-2024-05-13"},{"equals":"gpt-4o-2024-08-06"},{"equals":"gpt-4o-2024-11-20"}]},"context_window":128000,"prices":{"input_mtok":2.5,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"gpt-4o-audio-preview","name":"gpt 4o audio preview","description":"Audio model for gpt-4o","match":{"starts_with":"gpt-4o-audio-preview"},"context_window":128000,"prices":{"output_mtok":10,"input_audio_mtok":2.5}},{"id":"gpt-4o-mini","name":"gpt 4o mini","description":"GPT-4o Mini is a cost-optimized variant of GPT-4o, designed for high-efficiency processing while maintaining strong performance. It excels in rapid inference and resource-efficient operations, making it ideal for production deployments requiring a balance of cost and capability.","match":{"or":[{"equals":"gpt-4o-mini"},{"equals":"gpt-4o-mini-2024-07-18"},{"equals":"gpt-4o-mini-search-preview"},{"equals":"gpt-4o-mini-search-preview-2025-03-11"}]},"context_window":128000,"prices":{"input_mtok":0.15,"cache_read_mtok":0.075,"output_mtok":0.6}},{"id":"gpt-4o-mini-2024-07-18.ft-","description":"GPT-4o Mini fine tuned.","match":{"starts_with":"gpt-4o-mini-2024-07-18.ft-"},"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"gpt-4o-mini-audio-preview","name":"gpt 4o mini audio preview","description":"Audio model for gpt-4o mini","match":{"starts_with":"gpt-4o-mini-audio"},"prices":{"output_mtok":0.6,"input_audio_mtok":0.15}},{"id":"gpt-4o-mini-realtime-preview","match":{"starts_with":"gpt-4o-mini-realtime"},"prices":{"input_mtok":0.6,"cache_read_mtok":0.3,"output_mtok":2.4,"input_audio_mtok":10,"cache_audio_read_mtok":0.3,"output_audio_mtok":20}},{"id":"gpt-4o-mini-transcribe","match":{"equals":"gpt-4o-mini-transcribe"},"prices":{"input_mtok":1.25,"output_mtok":5,"input_audio_mtok":3}},{"id":"gpt-4o-mini-tts","match":{"equals":"gpt-4o-mini-tts"},"prices":{"input_mtok":0.6,"output_audio_mtok":12}},{"id":"gpt-4o-realtime-preview","match":{"starts_with":"gpt-4o-realtime"},"prices":{"input_mtok":5,"cache_read_mtok":2.5,"output_mtok":20,"input_audio_mtok":40,"cache_audio_read_mtok":2.5,"output_audio_mtok":80}},{"id":"gpt-4o-search-preview","name":"GPT-4o Search Preview","description":"GPT-4o Search Previewis a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.","match":{"or":[{"equals":"gpt-4o-search-preview"},{"equals":"gpt-4o-search-preview-2025-03-11"}]},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"gpt-4o-transcribe","match":{"or":[{"equals":"gpt-4o-transcribe"},{"equals":"gpt-4o-transcribe-diarize"}]},"prices":{"input_mtok":2.5,"output_mtok":10,"input_audio_mtok":6}},{"id":"gpt-4o:extended","name":"GPT-4o (extended)","description":"GPT-4o (\"o\" for \"omni\") is OpenAI's latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of GPT-4 Turbo while being twice as fast and 50% more cost-effective. GPT-4o also offers improved performance in processing non-English languages and enhanced visual capabilities.","match":{"equals":"gpt-4o:extended"},"prices":{"input_mtok":6,"output_mtok":18}},{"id":"gpt-5","name":"GPT-5","description":"GPT-5 is OpenAI's flagship model for coding, reasoning, and agentic tasks across domains.","match":{"or":[{"equals":"gpt-5"},{"equals":"gpt-5-2025-08-07"},{"equals":"gpt-5-chat"},{"equals":"gpt-5-chat-latest"},{"equals":"gpt-5-codex"}]},"context_window":400000,"prices":{"input_mtok":1.25,"cache_read_mtok":0.125,"output_mtok":10}},{"id":"gpt-5-image","match":{"equals":"gpt-5-image"},"price_comments":"Seen on OpenRouter before OpenAI","prices":{"input_mtok":10,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"gpt-5-image-mini","match":{"equals":"gpt-5-image-mini"},"price_comments":"Seen on OpenRouter before OpenAI","prices":{"input_mtok":2.5,"cache_read_mtok":0.25,"output_mtok":2}},{"id":"gpt-5-mini","name":"GPT-5 mini","description":"GPT-5 mini is a faster, more cost-efficient version of GPT-5. It's great for well-defined tasks and precise prompts.","match":{"or":[{"equals":"gpt-5-mini"},{"equals":"gpt-5-mini-2025-08-07"}]},"context_window":400000,"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"gpt-5-nano","name":"GPT-5 nano","description":"GPT-5 Nano is OpenAI's fastest, cheapest version of GPT-5. It's great for summarization and classification tasks.","match":{"or":[{"equals":"gpt-5-nano"},{"starts_with":"gpt-5-nano-"}]},"context_window":400000,"prices":{"input_mtok":0.05,"cache_read_mtok":0.005,"output_mtok":0.4}},{"id":"gpt-5-pro","match":{"or":[{"equals":"gpt-5-pro"},{"equals":"gpt-5-pro-2025-10-06"}]},"context_window":400000,"prices":{"input_mtok":15,"output_mtok":120}},{"id":"gpt-5.1","name":"GPT-5.1","description":"The best model for coding and agentic tasks across industries","match":{"or":[{"equals":"gpt-5.1"},{"equals":"gpt-5.1-2025-11-13"},{"equals":"gpt-5.1-codex"},{"equals":"gpt-5.1-codex-max"},{"equals":"gpt-5.1-chat"},{"equals":"gpt-5.1-chat-latest"},{"equals":"gpt-5-1"},{"equals":"gpt-5-1-2025-11-13"},{"equals":"gpt-5-1-codex"},{"equals":"gpt-5-1-codex-max"},{"equals":"gpt-5-1-chat"},{"equals":"gpt-5-1-chat-latest"}]},"context_window":400000,"prices":{"input_mtok":1.25,"cache_read_mtok":0.125,"output_mtok":10}},{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","match":{"or":[{"equals":"gpt-5.1-codex-mini"},{"equals":"gpt-5.1-mini"},{"equals":"gpt-5-1-codex-mini"},{"equals":"gpt-5-1-mini"}]},"context_window":400000,"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"gpt-5.2","name":"GPT-5.2","description":"The best model for coding and agentic tasks across industries","match":{"or":[{"equals":"gpt-5.2"},{"equals":"gpt-5.2-2025-12-11"},{"equals":"gpt-5-2"},{"equals":"gpt-5-2-2025-12-11"},{"equals":"gpt-5.2-chat"},{"equals":"gpt-5.2-chat-latest"},{"equals":"gpt-5-2-chat"},{"equals":"gpt-5-2-chat-latest"},{"equals":"gpt-5.2-codex"},{"equals":"gpt-5-2-codex"}]},"context_window":400000,"prices":{"input_mtok":1.75,"cache_read_mtok":0.175,"output_mtok":14}},{"id":"gpt-5.2-pro","description":"Version of GPT-5.2 that produces smarter and more precise responses.","match":{"or":[{"equals":"gpt-5.2-pro"},{"equals":"gpt-5.2-pro-2025-12-11"},{"equals":"gpt-5-2-pro-2025-12-11"}]},"context_window":400000,"prices":{"input_mtok":21,"output_mtok":168}},{"id":"gpt-5.3-codex","name":"GPT-5.3-Codex","description":"The most capable agentic coding model","match":{"or":[{"equals":"gpt-5.3-codex"},{"equals":"gpt-5-3-codex"}]},"context_window":400000,"prices":{"input_mtok":1.75,"cache_read_mtok":0.175,"output_mtok":14}},{"id":"gpt-5.4","name":"GPT-5.4","description":"OpenAI's most capable model with a 1.05M token context window.","match":{"or":[{"equals":"gpt-5.4"},{"equals":"gpt-5.4-2026-03-05"},{"equals":"gpt-5-4"},{"equals":"gpt-5-4-2026-03-05"}]},"context_window":1050000,"prices":{"input_mtok":{"base":2.5,"tiers":[{"start":272000,"price":5}]},"cache_read_mtok":{"base":0.25,"tiers":[{"start":272000,"price":0.5}]},"output_mtok":{"base":15,"tiers":[{"start":272000,"price":22.5}]}}},{"id":"gpt-5.4-mini","name":"GPT-5.4 mini","description":"Our strongest mini model yet for coding, computer use, and subagents.","match":{"or":[{"equals":"gpt-5.4-mini"},{"equals":"gpt-5.4-mini-2026-03-17"},{"equals":"gpt-5-4-mini"},{"equals":"gpt-5-4-mini-2026-03-17"}]},"context_window":400000,"prices":{"input_mtok":0.75,"cache_read_mtok":0.075,"output_mtok":4.5}},{"id":"gpt-5.4-nano","name":"GPT-5.4 nano","description":"Our cheapest GPT-5.4-class model for simple high-volume tasks.","match":{"or":[{"equals":"gpt-5.4-nano"},{"equals":"gpt-5.4-nano-2026-03-17"},{"equals":"gpt-5-4-nano"},{"equals":"gpt-5-4-nano-2026-03-17"}]},"context_window":400000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.02,"output_mtok":1.25}},{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","description":"Version of GPT-5.4 that produces smarter and more precise responses.","match":{"or":[{"equals":"gpt-5.4-pro"},{"equals":"gpt-5.4-pro-2026-03-05"},{"equals":"gpt-5-4-pro"},{"equals":"gpt-5-4-pro-2026-03-05"}]},"context_window":1050000,"prices":{"input_mtok":{"base":30,"tiers":[{"start":272000,"price":60}]},"output_mtok":{"base":180,"tiers":[{"start":272000,"price":270}]}}},{"id":"gpt-realtime","match":{"or":[{"equals":"gpt-realtime"},{"equals":"gpt-realtime-2025-08-28"}]},"price_comments":"Missing image token prices which we don't support yet","prices":{"input_mtok":4,"cache_read_mtok":0.4,"output_mtok":16,"input_audio_mtok":32,"cache_audio_read_mtok":0.4,"output_audio_mtok":64}},{"id":"gpt-realtime-mini","match":{"equals":"gpt-realtime-mini"},"price_comments":"Missing image token prices which we don't support yet","prices":{"input_mtok":0.6,"cache_read_mtok":0.06,"output_mtok":2.4,"input_audio_mtok":10,"cache_audio_read_mtok":0.3,"output_audio_mtok":20}},{"id":"moderation","description":"All OpenAI moderation models and endpoints are free of charge","match":{"contains":"moderation"},"prices":{}},{"id":"o1","name":"o1","description":"O1 is a model that offers a balance between cost and performance.","match":{"or":[{"equals":"o1"},{"equals":"o1-2024-12-17"},{"equals":"o1-preview"},{"equals":"o1-preview-2024-09-12"}]},"context_window":128000,"prices":{"input_mtok":15,"cache_read_mtok":7.5,"output_mtok":60}},{"id":"o1-mini","name":"o1 mini","description":"O1 Mini is a model that offers a balance between cost and performance.","match":{"or":[{"equals":"o1-mini"},{"equals":"o1-mini-2024-09-12"}]},"context_window":128000,"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o1-pro","name":"o1-pro","description":"The o1 series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o1-pro model uses more compute to think harder and provide consistently better answers.","match":{"or":[{"equals":"o1-pro"},{"equals":"o1-pro-2025-03-19"}]},"prices":{"input_mtok":150,"output_mtok":600}},{"id":"o3","name":"o3","description":"o3 is a well-rounded and powerful model across domains. It sets a new standard for math, science, coding, and visual reasoning tasks. It also excels at technical writing and instruction-following. Use it to think through multi-step problems that involve analysis across text, code, and images. Note that BYOK is required for this model. Set up here: https://openrouter.ai/settings/integrations","match":{"or":[{"equals":"o3"},{"equals":"o3-2025-04-16"}]},"prices":[{"prices":{"input_mtok":10,"cache_read_mtok":0.5,"output_mtok":40}},{"constraint":{"start_date":"2025-06-10"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}}]},{"id":"o3-deep-research","match":{"or":[{"equals":"o3-deep-research"},{"equals":"o3-deep-research-2025-06-26"}]},"prices":{"input_mtok":10,"cache_read_mtok":2.5,"output_mtok":40}},{"id":"o3-mini","name":"o3 Mini","description":"OpenAI o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and coding.","match":{"or":[{"equals":"o3-mini"},{"equals":"o3-mini-2025-01-31"},{"equals":"o3-mini-high"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o3-pro","name":"o3 Pro","description":"The o-series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o3-pro model uses more compute to think harder and provide consistently better answers.","match":{"or":[{"equals":"o3-pro"},{"equals":"o3-pro-2025-06-10"}]},"prices":{"input_mtok":20,"output_mtok":80}},{"id":"o4-mini","name":"o4 Mini High","description":"OpenAI o4-mini-high is the same model as o4-mini with reasoning_effort set to high.","match":{"or":[{"equals":"o4-mini-2025-04-16"},{"equals":"o4-mini-high"},{"equals":"o4-mini"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.275,"output_mtok":4.4}},{"id":"o4-mini-deep-research","match":{"or":[{"equals":"o4-mini-deep-research"},{"equals":"o4-mini-deep-research-2025-06-26"}]},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"text-davinci-002","match":{"equals":"text-davinci-002"},"prices":{"input_mtok":20,"output_mtok":20}},{"id":"text-davinci-003","match":{"equals":"text-davinci-003"},"prices":{"input_mtok":20,"output_mtok":20}},{"id":"text-embedding-3-large","name":"text embedding 3","description":"Text Embedding 3 is a model that offers a balance between cost and performance.","match":{"equals":"text-embedding-3-large"},"context_window":8192,"prices":{"input_mtok":0.13}},{"id":"text-embedding-3-small","name":"text embedding 3","description":"Text Embedding 3 is a model that offers a balance between cost and performance.","match":{"equals":"text-embedding-3-small"},"context_window":8192,"prices":{"input_mtok":0.02}},{"id":"text-embedding-ada-002","name":"text embedding ada","description":"Text Embedding Ada is a model that offers a balance between cost and performance.","match":{"or":[{"equals":"text-embedding-ada"},{"equals":"text-embedding-ada-002"},{"equals":"text-embedding-ada-002-v2"}]},"context_window":8192,"prices":{"input_mtok":0.1}}]},{"id":"openrouter","name":"OpenRouter","pricing_urls":["https://openrouter.ai/models"],"api_pattern":"https://(api\\.)?openrouter\\.ai","models":[{"id":"01-ai/yi-large","match":{"equals":"01-ai/yi-large"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"aetherwiing/mn-starcannon-12b","match":{"equals":"aetherwiing/mn-starcannon-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"agentica-org/deepcoder-14b-preview:free","match":{"equals":"agentica-org/deepcoder-14b-preview:free"},"prices":{}},{"id":"ai21/jamba-1-5-large","match":{"equals":"ai21/jamba-1-5-large"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"ai21/jamba-1-5-mini","match":{"equals":"ai21/jamba-1-5-mini"},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"ai21/jamba-1.6-large","match":{"equals":"ai21/jamba-1.6-large"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"ai21/jamba-1.6-mini","match":{"equals":"ai21/jamba-1.6-mini"},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"ai21/jamba-instruct","match":{"equals":"ai21/jamba-instruct"},"prices":{"input_mtok":0.5,"output_mtok":0.7}},{"id":"aion-1.0","name":"Aion-1.0","match":{"equals":"aion-1.0"},"prices":{"input_mtok":4,"output_mtok":8}},{"id":"aion-1.0-mini","name":"Aion-1.0-Mini","match":{"equals":"aion-1.0-mini"},"prices":{"input_mtok":0.7,"output_mtok":1.4}},{"id":"aion-labs/aion-1.0","match":{"equals":"aion-labs/aion-1.0"},"prices":{"input_mtok":4,"output_mtok":8}},{"id":"aion-labs/aion-1.0-mini","match":{"equals":"aion-labs/aion-1.0-mini"},"prices":{"input_mtok":0.7,"output_mtok":1.4}},{"id":"aion-labs/aion-rp-llama-3.1-8b","match":{"equals":"aion-labs/aion-rp-llama-3.1-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"aion-rp-llama-3.1-8b","name":"Aion-RP 1.0 (8B)","match":{"equals":"aion-rp-llama-3.1-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"alfredpros/codellama-7b-instruct-solidity","match":{"equals":"alfredpros/codellama-7b-instruct-solidity"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"all-hands/openhands-lm-32b-v0.1","match":{"equals":"all-hands/openhands-lm-32b-v0.1"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"allenai/molmo-7b-d:free","match":{"equals":"allenai/molmo-7b-d:free"},"prices":{}},{"id":"alpindale/goliath-120b","match":{"equals":"alpindale/goliath-120b"},"prices":{"input_mtok":6.5625,"output_mtok":9.375}},{"id":"alpindale/magnum-72b","match":{"equals":"alpindale/magnum-72b"},"prices":{"input_mtok":1.5,"output_mtok":2.25}},{"id":"amazon/nova-lite-v1","match":{"equals":"amazon/nova-lite-v1"},"prices":{"input_mtok":0.06,"output_mtok":0.24}},{"id":"amazon/nova-micro-v1","match":{"equals":"amazon/nova-micro-v1"},"prices":{"input_mtok":0.035,"output_mtok":0.14}},{"id":"amazon/nova-pro-v1","match":{"equals":"amazon/nova-pro-v1"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"anthracite-org/magnum-v2-72b","match":{"equals":"anthracite-org/magnum-v2-72b"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"anthracite-org/magnum-v4-72b","match":{"equals":"anthracite-org/magnum-v4-72b"},"prices":{"input_mtok":1.5,"output_mtok":2.25}},{"id":"anthropic/claude-2","match":{"or":[{"equals":"anthropic/claude-2"},{"equals":"anthropic/claude-2.0"},{"equals":"anthropic/claude-2.0:beta"},{"equals":"anthropic/claude-2.1"},{"equals":"anthropic/claude-2.1:beta"},{"equals":"anthropic/claude-2:beta"}]},"prices":{"input_mtok":8,"output_mtok":24}},{"id":"anthropic/claude-3-haiku","match":{"or":[{"equals":"anthropic/claude-3-haiku"},{"equals":"anthropic/claude-3-haiku:beta"}]},"prices":{"input_mtok":0.25,"output_mtok":1.25}},{"id":"anthropic/claude-3-opus","match":{"or":[{"equals":"anthropic/claude-3-opus"},{"equals":"anthropic/claude-3-opus:beta"}]},"prices":{"input_mtok":15,"output_mtok":75}},{"id":"anthropic/claude-3-sonnet","match":{"or":[{"equals":"anthropic/claude-3-sonnet"},{"equals":"anthropic/claude-3-sonnet:beta"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"anthropic/claude-3.5-haiku","match":{"or":[{"equals":"anthropic/claude-3.5-haiku"},{"equals":"anthropic/claude-3.5-haiku-20241022"},{"equals":"anthropic/claude-3.5-haiku-20241022:beta"},{"equals":"anthropic/claude-3.5-haiku:beta"}]},"prices":{"input_mtok":0.8,"output_mtok":4}},{"id":"anthropic/claude-3.5-sonnet","match":{"or":[{"equals":"anthropic/claude-3.5-sonnet"},{"equals":"anthropic/claude-3.5-sonnet-20240620"},{"equals":"anthropic/claude-3.5-sonnet-20240620:beta"},{"equals":"anthropic/claude-3.5-sonnet:beta"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"anthropic/claude-3.7-sonnet","match":{"or":[{"equals":"anthropic/claude-3.7-sonnet"},{"equals":"anthropic/claude-3.7-sonnet:beta"},{"equals":"anthropic/claude-3.7-sonnet:thinking"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"anthropic/claude-haiku-4.5","match":{"or":[{"equals":"anthropic/claude-haiku-4.5"},{"equals":"anthropic/claude-4.5-haiku-20251001"},{"equals":"anthropic/claude-4.5-haiku-20251001:beta"},{"equals":"anthropic/claude-haiku-4.5-20251001"},{"equals":"anthropic/claude-haiku-4.5-20251001:beta"},{"equals":"anthropic/claude-haiku-4.5:beta"}]},"prices":{"input_mtok":1,"cache_write_mtok":1.25,"cache_read_mtok":0.1,"output_mtok":5}},{"id":"anthropic/claude-opus-4.5","match":{"or":[{"equals":"anthropic/claude-opus-4.5"},{"equals":"anthropic/claude-4.5-opus-20251124"},{"equals":"anthropic/claude-4.5-opus-20251124:beta"},{"equals":"anthropic/claude-opus-4.5-20251124"},{"equals":"anthropic/claude-opus-4.5-20251124:beta"},{"equals":"anthropic/claude-opus-4.5:beta"}]},"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"anthropic/claude-opus-4.6","match":{"or":[{"equals":"anthropic/claude-opus-4.6"},{"equals":"anthropic/claude-4.6-opus-20260205"},{"equals":"anthropic/claude-4.6-opus-20260205:beta"},{"equals":"anthropic/claude-opus-4.6-20260205"},{"equals":"anthropic/claude-opus-4.6-20260205:beta"},{"equals":"anthropic/claude-opus-4.6:beta"}]},"context_window":1000000,"price_comments":"Flat pricing across full 1M context window (no tiered pricing). Ref: https://platform.claude.com/docs/en/about-claude/pricing#long-context-pricing","prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"anthropic/claude-sonnet-4.5","match":{"or":[{"equals":"anthropic/claude-sonnet-4.5"},{"equals":"anthropic/claude-4.5-sonnet-20250929"},{"equals":"anthropic/claude-4.5-sonnet-20250929:beta"},{"equals":"anthropic/claude-sonnet-4.5-20250929"},{"equals":"anthropic/claude-sonnet-4.5-20250929:beta"},{"equals":"anthropic/claude-sonnet-4.5:beta"}]},"context_window":1000000,"price_comments":"Tiered pricing: Unlike 4.6 models, Sonnet 4.5 has long-context surcharge. Ref: https://platform.claude.com/docs/en/about-claude/pricing#long-context-pricing","prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"id":"anthropic/claude-sonnet-4.6","match":{"or":[{"equals":"anthropic/claude-sonnet-4.6"},{"equals":"anthropic/claude-4.6-sonnet-20260217"},{"equals":"anthropic/claude-4.6-sonnet-20260217:beta"},{"equals":"anthropic/claude-sonnet-4.6-20260217"},{"equals":"anthropic/claude-sonnet-4.6-20260217:beta"},{"equals":"anthropic/claude-sonnet-4.6:beta"}]},"context_window":1000000,"price_comments":"Flat pricing across full 1M context window (no tiered pricing). Ref: https://platform.claude.com/docs/en/about-claude/pricing#long-context-pricing","prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"anubis-pro-105b-v1","name":"Anubis Pro 105B V1","match":{"equals":"anubis-pro-105b-v1"},"prices":{"input_mtok":0.8,"output_mtok":1}},{"id":"arcee-blitz","name":"Arcee Blitz","match":{"equals":"arcee-blitz"},"prices":{"input_mtok":0.45,"output_mtok":0.75}},{"id":"arliai/qwq-32b-arliai-rpr-v1:free","match":{"equals":"arliai/qwq-32b-arliai-rpr-v1:free"},"prices":{}},{"id":"bytedance-research/ui-tars-72b:free","match":{"equals":"bytedance-research/ui-tars-72b:free"},"prices":{}},{"id":"caller-large","name":"Caller Large","match":{"equals":"caller-large"},"prices":{"input_mtok":0.55,"output_mtok":0.85}},{"id":"chatgpt-4o-latest","name":"ChatGPT-4o","match":{"equals":"chatgpt-4o-latest"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"claude-2","name":"Claude v2","match":{"or":[{"equals":"claude-2"},{"equals":"claude-2.0"},{"equals":"claude-2.0:beta"},{"equals":"claude-2.1"},{"equals":"claude-2.1:beta"},{"equals":"claude-2:beta"}]},"prices":{"input_mtok":8,"output_mtok":24}},{"id":"claude-3-haiku","name":"Claude 3 Haiku","match":{"or":[{"equals":"claude-3-haiku"},{"equals":"claude-3-haiku:beta"}]},"prices":{"input_mtok":0.25,"cache_write_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":1.25}},{"id":"claude-3-opus","name":"Claude 3 Opus","match":{"or":[{"equals":"claude-3-opus"},{"equals":"claude-3-opus:beta"}]},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-3-sonnet","name":"Claude 3 Sonnet","match":{"or":[{"equals":"claude-3-sonnet"},{"equals":"claude-3-sonnet:beta"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3.5-haiku","name":"Claude 3.5 Haiku","match":{"or":[{"equals":"claude-3.5-haiku"},{"equals":"claude-3.5-haiku-20241022"},{"equals":"claude-3.5-haiku-20241022:beta"},{"equals":"claude-3.5-haiku:beta"}]},"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"claude-3.5-sonnet","name":"Claude 3.5 Sonnet","match":{"or":[{"equals":"claude-3.5-sonnet"},{"equals":"claude-3.5-sonnet-20240620"},{"equals":"claude-3.5-sonnet-20240620:beta"},{"equals":"claude-3.5-sonnet:beta"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3.7-sonnet","name":"Claude 3.7 Sonnet","match":{"or":[{"equals":"claude-3.7-sonnet"},{"equals":"claude-3.7-sonnet:beta"},{"equals":"claude-3.7-sonnet:thinking"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-opus-4","name":"Claude Opus 4","match":{"equals":"claude-opus-4"},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-sonnet-4","name":"Claude Sonnet 4","match":{"equals":"claude-sonnet-4"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"codellama-7b-instruct-solidity","name":"CodeLLaMa 7B Instruct Solidity","match":{"equals":"codellama-7b-instruct-solidity"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"coder-large","name":"Coder Large","match":{"equals":"coder-large"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"codestral-2501","name":"Codestral 2501","match":{"equals":"codestral-2501"},"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"codex-mini","name":"Codex Mini","match":{"equals":"codex-mini"},"prices":{"input_mtok":1.5,"cache_read_mtok":0.375,"output_mtok":6}},{"id":"cognitivecomputations/dolphin-mixtral-8x22b","match":{"equals":"cognitivecomputations/dolphin-mixtral-8x22b"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"cognitivecomputations/dolphin-mixtral-8x7b","match":{"equals":"cognitivecomputations/dolphin-mixtral-8x7b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"cognitivecomputations/dolphin3.0-mistral-24b:free","match":{"equals":"cognitivecomputations/dolphin3.0-mistral-24b:free"},"prices":{}},{"id":"cognitivecomputations/dolphin3.0-r1-mistral-24b:free","match":{"equals":"cognitivecomputations/dolphin3.0-r1-mistral-24b:free"},"prices":{}},{"id":"cohere/command","match":{"equals":"cohere/command"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"cohere/command-a","match":{"equals":"cohere/command-a"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"cohere/command-r","match":{"or":[{"equals":"cohere/command-r"},{"equals":"cohere/command-r-03-2024"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"cohere/command-r-08-2024","match":{"equals":"cohere/command-r-08-2024"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"cohere/command-r-plus","match":{"or":[{"equals":"cohere/command-r-plus"},{"equals":"cohere/command-r-plus-04-2024"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"cohere/command-r-plus-08-2024","match":{"equals":"cohere/command-r-plus-08-2024"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"cohere/command-r7b-12-2024","match":{"equals":"cohere/command-r7b-12-2024"},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"command","name":"Command","match":{"equals":"command"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"command-a","name":"Command A","match":{"equals":"command-a"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r","name":"Command R","match":{"or":[{"equals":"command-r"},{"equals":"command-r-03-2024"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"command-r-08-2024","name":"Command R (08-2024)","match":{"equals":"command-r-08-2024"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"command-r-plus","name":"Command R+","match":{"or":[{"equals":"command-r-plus"},{"equals":"command-r-plus-04-2024"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"command-r-plus-08-2024","name":"Command R+ (08-2024)","match":{"equals":"command-r-plus-08-2024"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r7b-12-2024","name":"Command R7B (12-2024)","match":{"equals":"command-r7b-12-2024"},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"deepcoder-14b-preview:free","name":"Deepcoder 14B Preview (free)","match":{"equals":"deepcoder-14b-preview:free"},"prices":{}},{"id":"deephermes-3-llama-3-8b-preview:free","name":"DeepHermes 3 Llama 3 8B Preview (free)","match":{"equals":"deephermes-3-llama-3-8b-preview:free"},"prices":{}},{"id":"deepseek-chat","name":"DeepSeek V3","match":{"equals":"deepseek-chat"},"prices":{"input_mtok":0.38,"output_mtok":0.89}},{"id":"deepseek-chat-v3-0324","name":"DeepSeek V3 0324","match":{"equals":"deepseek-chat-v3-0324"},"prices":{"input_mtok":0.3,"output_mtok":0.88}},{"id":"deepseek-chat-v3-0324:free","name":"DeepSeek V3 0324 (free)","match":{"equals":"deepseek-chat-v3-0324:free"},"prices":{}},{"id":"deepseek-chat:free","name":"DeepSeek V3 (free)","match":{"equals":"deepseek-chat:free"},"prices":{}},{"id":"deepseek-prover-v2","name":"DeepSeek Prover V2","match":{"equals":"deepseek-prover-v2"},"prices":{"input_mtok":0.5,"output_mtok":2.18}},{"id":"deepseek-r1","name":"R1","match":{"equals":"deepseek-r1"},"prices":{"input_mtok":0.45,"output_mtok":2.15}},{"id":"deepseek-r1-0528","name":"R1 0528","match":{"equals":"deepseek-r1-0528"},"prices":{"input_mtok":0.5,"output_mtok":2.15}},{"id":"deepseek-r1-0528-qwen3-8b","name":"Deepseek R1 0528 Qwen3 8B","match":{"equals":"deepseek-r1-0528-qwen3-8b"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"deepseek-r1-0528-qwen3-8b:free","name":"Deepseek R1 0528 Qwen3 8B (free)","match":{"equals":"deepseek-r1-0528-qwen3-8b:free"},"prices":{}},{"id":"deepseek-r1-0528:free","name":"R1 0528 (free)","match":{"equals":"deepseek-r1-0528:free"},"prices":{}},{"id":"deepseek-r1-distill-llama-70b","name":"R1 Distill Llama 70B","match":{"equals":"deepseek-r1-distill-llama-70b"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"deepseek-r1-distill-llama-70b:free","name":"R1 Distill Llama 70B (free)","match":{"equals":"deepseek-r1-distill-llama-70b:free"},"prices":{}},{"id":"deepseek-r1-distill-llama-8b","name":"R1 Distill Llama 8B","match":{"equals":"deepseek-r1-distill-llama-8b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"deepseek-r1-distill-qwen-1.5b","name":"R1 Distill Qwen 1.5B","match":{"equals":"deepseek-r1-distill-qwen-1.5b"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"deepseek-r1-distill-qwen-14b","name":"R1 Distill Qwen 14B","match":{"equals":"deepseek-r1-distill-qwen-14b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"deepseek-r1-distill-qwen-14b:free","name":"R1 Distill Qwen 14B (free)","match":{"equals":"deepseek-r1-distill-qwen-14b:free"},"prices":{}},{"id":"deepseek-r1-distill-qwen-32b","name":"R1 Distill Qwen 32B","match":{"equals":"deepseek-r1-distill-qwen-32b"},"prices":{"input_mtok":0.12,"output_mtok":0.18}},{"id":"deepseek-r1-distill-qwen-32b:free","name":"R1 Distill Qwen 32B (free)","match":{"equals":"deepseek-r1-distill-qwen-32b:free"},"prices":{}},{"id":"deepseek-r1-distill-qwen-7b","name":"R1 Distill Qwen 7B","match":{"equals":"deepseek-r1-distill-qwen-7b"},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"deepseek-r1:free","name":"R1 (free)","match":{"equals":"deepseek-r1:free"},"prices":{}},{"id":"deepseek-r1t-chimera:free","name":"DeepSeek R1T Chimera (free)","match":{"equals":"deepseek-r1t-chimera:free"},"prices":{}},{"id":"deepseek-v3-base:free","name":"DeepSeek V3 Base (free)","match":{"equals":"deepseek-v3-base:free"},"prices":{}},{"id":"deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","match":{"equals":"deepseek-v3.1-terminus"},"context_window":163840,"prices":{"input_mtok":0.23,"output_mtok":0.9}},{"id":"deepseek/deepseek-chat","match":{"equals":"deepseek/deepseek-chat"},"prices":{"input_mtok":0.38,"output_mtok":0.89}},{"id":"deepseek/deepseek-chat-v3-0324","match":{"equals":"deepseek/deepseek-chat-v3-0324"},"prices":{"input_mtok":0.27,"output_mtok":1.1}},{"id":"deepseek/deepseek-chat-v3-0324:free","match":{"equals":"deepseek/deepseek-chat-v3-0324:free"},"prices":{}},{"id":"deepseek/deepseek-chat-v3.1","name":"DeepSeek Chat V3.1","match":{"equals":"deepseek/deepseek-chat-v3.1"},"context_window":163840,"prices":{"input_mtok":0.2,"output_mtok":0.8}},{"id":"deepseek/deepseek-chat:free","match":{"equals":"deepseek/deepseek-chat:free"},"prices":{}},{"id":"deepseek/deepseek-r1","match":{"equals":"deepseek/deepseek-r1"},"prices":{"input_mtok":0.5,"output_mtok":3}},{"id":"deepseek/deepseek-r1-distill-llama-70b","match":{"equals":"deepseek/deepseek-r1-distill-llama-70b"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"deepseek/deepseek-r1-distill-llama-70b:free","match":{"equals":"deepseek/deepseek-r1-distill-llama-70b:free"},"prices":{}},{"id":"deepseek/deepseek-r1-distill-llama-8b","match":{"equals":"deepseek/deepseek-r1-distill-llama-8b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"deepseek/deepseek-r1-distill-qwen-1.5b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-1.5b"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"deepseek/deepseek-r1-distill-qwen-14b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-14b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"deepseek/deepseek-r1-distill-qwen-14b:free","match":{"equals":"deepseek/deepseek-r1-distill-qwen-14b:free"},"prices":{}},{"id":"deepseek/deepseek-r1-distill-qwen-32b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-32b"},"prices":{"input_mtok":0.12,"output_mtok":0.18}},{"id":"deepseek/deepseek-r1-distill-qwen-32b:free","match":{"equals":"deepseek/deepseek-r1-distill-qwen-32b:free"},"prices":{}},{"id":"deepseek/deepseek-r1-zero:free","match":{"equals":"deepseek/deepseek-r1-zero:free"},"prices":{}},{"id":"deepseek/deepseek-r1:free","match":{"equals":"deepseek/deepseek-r1:free"},"prices":{}},{"id":"deepseek/deepseek-v3-base:free","match":{"equals":"deepseek/deepseek-v3-base:free"},"prices":{}},{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek V3.2 Experimental","match":{"equals":"deepseek/deepseek-v3.2-exp"},"prices":{"input_mtok":0.27,"output_mtok":0.4}},{"id":"devstral-small","name":"Devstral Small","match":{"equals":"devstral-small"},"prices":{"input_mtok":0.06,"output_mtok":0.12}},{"id":"devstral-small:free","name":"Devstral Small (free)","match":{"equals":"devstral-small:free"},"prices":{}},{"id":"dobby-mini-unhinged-plus-llama-3.1-8b","name":"Dobby Mini Plus Llama 3.1 8B","match":{"equals":"dobby-mini-unhinged-plus-llama-3.1-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"dolphin-mixtral-8x22b","name":"Dolphin 2.9.2 Mixtral 8x22B 🐬","match":{"equals":"dolphin-mixtral-8x22b"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"dolphin3.0-mistral-24b:free","name":"Dolphin3.0 Mistral 24B (free)","match":{"equals":"dolphin3.0-mistral-24b:free"},"prices":{}},{"id":"dolphin3.0-r1-mistral-24b:free","name":"Dolphin3.0 R1 Mistral 24B (free)","match":{"equals":"dolphin3.0-r1-mistral-24b:free"},"prices":{}},{"id":"eleutherai/llemma_7b","match":{"equals":"eleutherai/llemma_7b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"eva-llama-3.33-70b","name":"EVA Llama 3.33 70B","match":{"equals":"eva-llama-3.33-70b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"eva-qwen-2.5-32b","name":"EVA Qwen2.5 32B","match":{"equals":"eva-qwen-2.5-32b"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"eva-qwen-2.5-72b","name":"EVA Qwen2.5 72B","match":{"equals":"eva-qwen-2.5-72b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"eva-unit-01/eva-llama-3.33-70b","match":{"equals":"eva-unit-01/eva-llama-3.33-70b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"eva-unit-01/eva-qwen-2.5-32b","match":{"equals":"eva-unit-01/eva-qwen-2.5-32b"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"eva-unit-01/eva-qwen-2.5-72b","match":{"equals":"eva-unit-01/eva-qwen-2.5-72b"},"prices":{"input_mtok":0.9,"output_mtok":1.2}},{"id":"featherless/qwerky-72b:free","match":{"equals":"featherless/qwerky-72b:free"},"prices":{}},{"id":"fimbulvetr-11b-v2","name":"Fimbulvetr 11B v2","match":{"equals":"fimbulvetr-11b-v2"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"gemini-2.0-flash-001","name":"Gemini 2.0 Flash","match":{"equals":"gemini-2.0-flash-001"},"prices":{"input_mtok":0.1,"cache_write_mtok":0.1833,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"gemini-2.0-flash-exp:free","name":"Gemini 2.0 Flash Experimental (free)","match":{"equals":"gemini-2.0-flash-exp:free"},"prices":{}},{"id":"gemini-2.0-flash-lite-001","name":"Gemini 2.0 Flash Lite","match":{"equals":"gemini-2.0-flash-lite-001"},"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","match":{"or":[{"equals":"gemini-2.5-flash"},{"equals":"google/gemini-2.5-flash"}]},"prices":{"input_mtok":0.3,"cache_write_mtok":0.3833,"cache_read_mtok":0.075,"output_mtok":2.5}},{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview 06-17","match":{"equals":"gemini-2.5-flash-lite-preview-06-17"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"gemini-2.5-flash-preview","name":"Gemini 2.5 Flash Preview 04-17","match":{"or":[{"equals":"gemini-2.5-flash-preview"},{"equals":"gemini-2.5-flash-preview-05-20"}]},"prices":{"input_mtok":0.15,"cache_write_mtok":0.2333,"cache_read_mtok":0.0375,"output_mtok":0.6}},{"id":"gemini-2.5-flash-preview-05-20:thinking","name":"Gemini 2.5 Flash Preview 05-20 (thinking)","match":{"equals":"gemini-2.5-flash-preview-05-20:thinking"},"prices":{"input_mtok":0.15,"cache_write_mtok":0.2333,"cache_read_mtok":0.0375,"output_mtok":3.5}},{"id":"gemini-2.5-flash-preview:thinking","name":"Gemini 2.5 Flash Preview 04-17 (thinking)","match":{"equals":"gemini-2.5-flash-preview:thinking"},"prices":{"input_mtok":0.15,"cache_write_mtok":0.2333,"cache_read_mtok":0.0375,"output_mtok":3.5}},{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","match":{"or":[{"equals":"gemini-2.5-pro"},{"equals":"gemini-2.5-pro-preview"},{"equals":"gemini-2.5-pro-preview-05-06"},{"equals":"google/gemini-2.5-pro"},{"equals":"google/gemini-2.5-pro-preview"},{"equals":"google/gemini-2.5-pro-preview-05-06"}]},"prices":{"input_mtok":1.25,"cache_write_mtok":1.625,"cache_read_mtok":0.31,"output_mtok":10}},{"id":"gemini-2.5-pro-exp-03-25","name":"Gemini 2.5 Pro Experimental","match":{"equals":"gemini-2.5-pro-exp-03-25"},"prices":{}},{"id":"gemini-flash-1.5","name":"Gemini 1.5 Flash","match":{"equals":"gemini-flash-1.5"},"prices":{"input_mtok":0.075,"cache_write_mtok":0.1583,"cache_read_mtok":0.01875,"output_mtok":0.3}},{"id":"gemini-flash-1.5-8b","name":"Gemini 1.5 Flash 8B","match":{"equals":"gemini-flash-1.5-8b"},"prices":{"input_mtok":0.0375,"cache_write_mtok":0.0583,"cache_read_mtok":0.01,"output_mtok":0.15}},{"id":"gemini-pro-1.5","name":"Gemini 1.5 Pro","match":{"equals":"gemini-pro-1.5"},"prices":{"input_mtok":1.25,"output_mtok":5}},{"id":"gemma-2-27b-it","name":"Gemma 2 27B","match":{"equals":"gemma-2-27b-it"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"gemma-2-9b-it","name":"Gemma 2 9B","match":{"equals":"gemma-2-9b-it"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"gemma-2-9b-it:free","name":"Gemma 2 9B (free)","match":{"equals":"gemma-2-9b-it:free"},"prices":{}},{"id":"gemma-3-12b-it","name":"Gemma 3 12B","match":{"equals":"gemma-3-12b-it"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"gemma-3-12b-it:free","name":"Gemma 3 12B (free)","match":{"equals":"gemma-3-12b-it:free"},"prices":{}},{"id":"gemma-3-27b-it","name":"Gemma 3 27B","match":{"equals":"gemma-3-27b-it"},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"gemma-3-27b-it:free","name":"Gemma 3 27B (free)","match":{"equals":"gemma-3-27b-it:free"},"prices":{}},{"id":"gemma-3-4b-it","name":"Gemma 3 4B","match":{"equals":"gemma-3-4b-it"},"prices":{"input_mtok":0.02,"output_mtok":0.04}},{"id":"gemma-3-4b-it:free","name":"Gemma 3 4B (free)","match":{"equals":"gemma-3-4b-it:free"},"prices":{}},{"id":"gemma-3n-e4b-it:free","name":"Gemma 3n 4B (free)","match":{"equals":"gemma-3n-e4b-it:free"},"prices":{}},{"id":"glm-4-32b","name":"GLM 4 32B","match":{"equals":"glm-4-32b"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"glm-4-32b:free","name":"GLM 4 32B (free)","match":{"equals":"glm-4-32b:free"},"prices":{}},{"id":"glm-z1-32b","name":"GLM Z1 32B","match":{"equals":"glm-z1-32b"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"glm-z1-32b:free","name":"GLM Z1 32B (free)","match":{"equals":"glm-z1-32b:free"},"prices":{}},{"id":"glm-z1-rumination-32b","name":"GLM Z1 Rumination 32B","match":{"equals":"glm-z1-rumination-32b"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"goliath-120b","name":"Goliath 120B","match":{"equals":"goliath-120b"},"prices":{"input_mtok":10,"output_mtok":12.5}},{"id":"google/gemini-2.0-flash-001","match":{"equals":"google/gemini-2.0-flash-001"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"google/gemini-2.0-flash-exp:free","match":{"equals":"google/gemini-2.0-flash-exp:free"},"prices":{}},{"id":"google/gemini-2.0-flash-lite-001","match":{"equals":"google/gemini-2.0-flash-lite-001"},"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"google/gemini-2.0-flash-thinking-exp-1219:free","match":{"equals":"google/gemini-2.0-flash-thinking-exp-1219:free"},"prices":{}},{"id":"google/gemini-2.0-flash-thinking-exp:free","match":{"equals":"google/gemini-2.0-flash-thinking-exp:free"},"prices":{}},{"id":"google/gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image (Nano Banana)","match":{"or":[{"equals":"google/gemini-2.5-flash-image"},{"equals":"google/gemini-2.5-flash-image-preview"}]},"prices":{"input_mtok":0.3,"output_mtok":2.5}},{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","match":{"equals":"google/gemini-2.5-flash-lite"},"prices":{"input_mtok":0.1,"cache_write_mtok":0.183,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-2025","match":{"equals":"google/gemini-2.5-flash-lite-preview-09-2025"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"google/gemini-2.5-flash-preview","match":{"equals":"google/gemini-2.5-flash-preview"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"google/gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-2025","match":{"equals":"google/gemini-2.5-flash-preview-09-2025"},"prices":{"input_mtok":0.3,"cache_write_mtok":0.383,"cache_read_mtok":0.075,"output_mtok":2.5}},{"id":"google/gemini-2.5-flash-preview:thinking","match":{"equals":"google/gemini-2.5-flash-preview:thinking"},"prices":{"input_mtok":0.15,"output_mtok":3.5}},{"id":"google/gemini-2.5-pro-exp-03-25:free","match":{"equals":"google/gemini-2.5-pro-exp-03-25:free"},"prices":{}},{"id":"google/gemini-2.5-pro-preview-03-25","match":{"equals":"google/gemini-2.5-pro-preview-03-25"},"prices":{"input_mtok":1.25,"output_mtok":10}},{"id":"google/gemini-flash-1.5","match":{"equals":"google/gemini-flash-1.5"},"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"google/gemini-flash-1.5-8b","match":{"equals":"google/gemini-flash-1.5-8b"},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"google/gemini-flash-1.5-8b-exp","match":{"equals":"google/gemini-flash-1.5-8b-exp"},"prices":{}},{"id":"google/gemini-pro","match":{"or":[{"equals":"google/gemini-pro"},{"equals":"google/gemini-pro-vision"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"google/gemini-pro-1.5","match":{"equals":"google/gemini-pro-1.5"},"prices":{"input_mtok":1.25,"output_mtok":5}},{"id":"google/gemma-2-27b-it","match":{"equals":"google/gemma-2-27b-it"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"google/gemma-2-9b-it","match":{"equals":"google/gemma-2-9b-it"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"google/gemma-2-9b-it:free","match":{"equals":"google/gemma-2-9b-it:free"},"prices":{}},{"id":"google/gemma-3-12b-it","match":{"equals":"google/gemma-3-12b-it"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"google/gemma-3-12b-it:free","match":{"equals":"google/gemma-3-12b-it:free"},"prices":{}},{"id":"google/gemma-3-1b-it:free","match":{"equals":"google/gemma-3-1b-it:free"},"prices":{}},{"id":"google/gemma-3-27b-it","match":{"equals":"google/gemma-3-27b-it"},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"google/gemma-3-27b-it:free","match":{"equals":"google/gemma-3-27b-it:free"},"prices":{}},{"id":"google/gemma-3-4b-it","match":{"equals":"google/gemma-3-4b-it"},"prices":{"input_mtok":0.02,"output_mtok":0.04}},{"id":"google/gemma-3-4b-it:free","match":{"equals":"google/gemma-3-4b-it:free"},"prices":{}},{"id":"google/learnlm-1.5-pro-experimental:free","match":{"equals":"google/learnlm-1.5-pro-experimental:free"},"prices":{}},{"id":"google/palm-2-chat-bison","match":{"or":[{"equals":"google/palm-2-chat-bison"},{"equals":"google/palm-2-chat-bison-32k"}]},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"google/palm-2-codechat-bison","match":{"or":[{"equals":"google/palm-2-codechat-bison"},{"equals":"google/palm-2-codechat-bison-32k"}]},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo","name":"GPT-3.5 Turbo","match":{"or":[{"equals":"gpt-3.5-turbo"},{"equals":"gpt-3.5-turbo-0125"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"gpt-3.5-turbo-0613","name":"GPT-3.5 Turbo (older v0613)","match":{"equals":"gpt-3.5-turbo-0613"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo-1106","name":"GPT-3.5 Turbo 16k (older v1106)","match":{"equals":"gpt-3.5-turbo-1106"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo-16k","name":"GPT-3.5 Turbo 16k","match":{"equals":"gpt-3.5-turbo-16k"},"prices":{"input_mtok":3,"output_mtok":4}},{"id":"gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","match":{"equals":"gpt-3.5-turbo-instruct"},"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-4","name":"GPT-4","match":{"or":[{"equals":"gpt-4"},{"equals":"gpt-4-0314"}]},"prices":{"input_mtok":30,"output_mtok":60}},{"id":"gpt-4-1106-preview","name":"GPT-4 Turbo (older v1106)","match":{"equals":"gpt-4-1106-preview"},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4-turbo","name":"GPT-4 Turbo","match":{"or":[{"equals":"gpt-4-turbo"},{"equals":"gpt-4-turbo-preview"}]},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4.1","name":"GPT-4.1","match":{"equals":"gpt-4.1"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"gpt-4.1-mini","name":"GPT-4.1 Mini","match":{"equals":"gpt-4.1-mini"},"prices":{"input_mtok":0.4,"cache_read_mtok":0.1,"output_mtok":1.6}},{"id":"gpt-4.1-nano","name":"GPT-4.1 Nano","match":{"equals":"gpt-4.1-nano"},"prices":{"input_mtok":0.1,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"gpt-4.5-preview","name":"GPT-4.5 (Preview)","match":{"equals":"gpt-4.5-preview"},"prices":{"input_mtok":75,"cache_read_mtok":37.5,"output_mtok":150}},{"id":"gpt-4o","name":"GPT-4o","match":{"or":[{"equals":"gpt-4o"},{"equals":"gpt-4o-2024-08-06"},{"equals":"gpt-4o-2024-11-20"}]},"prices":{"input_mtok":2.5,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"gpt-4o-2024-05-13","name":"GPT-4o (2024-05-13)","match":{"equals":"gpt-4o-2024-05-13"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"gpt-4o-mini","name":"GPT-4o-mini","match":{"or":[{"equals":"gpt-4o-mini"},{"equals":"gpt-4o-mini-2024-07-18"}]},"prices":{"input_mtok":0.15,"cache_read_mtok":0.075,"output_mtok":0.6}},{"id":"gpt-4o-mini-search-preview","name":"GPT-4o-mini Search Preview","match":{"equals":"gpt-4o-mini-search-preview"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"gpt-4o-search-preview","name":"GPT-4o Search Preview","match":{"equals":"gpt-4o-search-preview"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"gpt-4o:extended","name":"GPT-4o (extended)","match":{"equals":"gpt-4o:extended"},"prices":{"input_mtok":6,"output_mtok":18}},{"id":"grok-2-1212","name":"Grok 2 1212","match":{"equals":"grok-2-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"grok-2-vision-1212","name":"Grok 2 Vision 1212","match":{"equals":"grok-2-vision-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"grok-3","name":"Grok 3","match":{"or":[{"equals":"grok-3"},{"equals":"grok-3-beta"}]},"prices":{"input_mtok":3,"cache_read_mtok":0.75,"output_mtok":15}},{"id":"grok-3-mini","name":"Grok 3 Mini","match":{"or":[{"equals":"grok-3-mini"},{"equals":"grok-3-mini-beta"}]},"prices":{"input_mtok":0.3,"cache_read_mtok":0.075,"output_mtok":0.5}},{"id":"grok-beta","name":"Grok Beta","match":{"equals":"grok-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"grok-vision-beta","name":"Grok Vision Beta","match":{"equals":"grok-vision-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"gryphe/mythomax-l2-13b","match":{"equals":"gryphe/mythomax-l2-13b"},"prices":{"input_mtok":0.065,"output_mtok":0.065}},{"id":"hermes-2-pro-llama-3-8b","name":"Hermes 2 Pro - Llama-3 8B","match":{"equals":"hermes-2-pro-llama-3-8b"},"prices":{"input_mtok":0.025,"output_mtok":0.04}},{"id":"hermes-3-llama-3.1-405b","name":"Hermes 3 405B Instruct","match":{"equals":"hermes-3-llama-3.1-405b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"hermes-3-llama-3.1-70b","name":"Hermes 3 70B Instruct","match":{"equals":"hermes-3-llama-3.1-70b"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"huggingfaceh4/zephyr-7b-beta:free","match":{"equals":"huggingfaceh4/zephyr-7b-beta:free"},"prices":{}},{"id":"infermatic/mn-inferor-12b","match":{"equals":"infermatic/mn-inferor-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"inflection-3-pi","name":"Inflection 3 Pi","match":{"equals":"inflection-3-pi"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"inflection-3-productivity","name":"Inflection 3 Productivity","match":{"equals":"inflection-3-productivity"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"inflection/inflection-3-pi","match":{"equals":"inflection/inflection-3-pi"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"inflection/inflection-3-productivity","match":{"equals":"inflection/inflection-3-productivity"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"internvl3-14b:free","name":"InternVL3 14B (free)","match":{"equals":"internvl3-14b:free"},"prices":{}},{"id":"internvl3-2b:free","name":"InternVL3 2B (free)","match":{"equals":"internvl3-2b:free"},"prices":{}},{"id":"jamba-1.6-large","name":"Jamba 1.6 Large","match":{"equals":"jamba-1.6-large"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"jamba-1.6-mini","name":"Jamba Mini 1.6","match":{"equals":"jamba-1.6-mini"},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"jondurbin/airoboros-l2-70b","match":{"equals":"jondurbin/airoboros-l2-70b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"kimi-dev-72b:free","name":"Kimi Dev 72b (free)","match":{"equals":"kimi-dev-72b:free"},"prices":{}},{"id":"kimi-vl-a3b-thinking:free","name":"Kimi VL A3B Thinking (free)","match":{"equals":"kimi-vl-a3b-thinking:free"},"prices":{}},{"id":"l3-euryale-70b","name":"Llama 3 Euryale 70B v2.1","match":{"equals":"l3-euryale-70b"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"l3-lunaris-8b","name":"Llama 3 8B Lunaris","match":{"equals":"l3-lunaris-8b"},"prices":{"input_mtok":0.02,"output_mtok":0.05}},{"id":"l3.1-euryale-70b","name":"Llama 3.1 Euryale 70B v2.2","match":{"equals":"l3.1-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"l3.3-euryale-70b","name":"Llama 3.3 Euryale 70B","match":{"equals":"l3.3-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"latitudegames/wayfarer-large-70b-llama-3.3","match":{"equals":"latitudegames/wayfarer-large-70b-llama-3.3"},"prices":{"input_mtok":0.8,"output_mtok":0.9}},{"id":"lfm-3b","name":"LFM 3B","match":{"equals":"lfm-3b"},"prices":{"input_mtok":0.02,"output_mtok":0.02}},{"id":"lfm-40b","name":"LFM 40B MoE","match":{"equals":"lfm-40b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"lfm-7b","name":"LFM 7B","match":{"equals":"lfm-7b"},"prices":{"input_mtok":0.01,"output_mtok":0.01}},{"id":"liquid/lfm-3b","match":{"equals":"liquid/lfm-3b"},"prices":{"input_mtok":0.02,"output_mtok":0.02}},{"id":"liquid/lfm-40b","match":{"equals":"liquid/lfm-40b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"liquid/lfm-7b","match":{"equals":"liquid/lfm-7b"},"prices":{"input_mtok":0.01,"output_mtok":0.01}},{"id":"llama-3-70b-instruct","name":"Llama 3 70B Instruct","match":{"equals":"llama-3-70b-instruct"},"prices":{"input_mtok":0.3,"output_mtok":0.4}},{"id":"llama-3-8b-instruct","name":"Llama 3 8B Instruct","match":{"equals":"llama-3-8b-instruct"},"prices":{"input_mtok":0.03,"output_mtok":0.06}},{"id":"llama-3-lumimaid-70b","name":"Llama 3 Lumimaid 70B","match":{"equals":"llama-3-lumimaid-70b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"llama-3-lumimaid-8b","name":"Llama 3 Lumimaid 8B","match":{"equals":"llama-3-lumimaid-8b"},"prices":{"input_mtok":0.2,"output_mtok":1.25}},{"id":"llama-3.1-405b","name":"Llama 3.1 405B (base)","match":{"equals":"llama-3.1-405b"},"prices":{"input_mtok":2,"output_mtok":2}},{"id":"llama-3.1-405b-instruct","name":"Llama 3.1 405B Instruct","match":{"equals":"llama-3.1-405b-instruct"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"llama-3.1-70b-instruct","name":"Llama 3.1 70B Instruct","match":{"equals":"llama-3.1-70b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.28}},{"id":"llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","match":{"equals":"llama-3.1-8b-instruct"},"prices":{"input_mtok":0.016,"output_mtok":0.029}},{"id":"llama-3.1-8b-instruct:free","name":"Llama 3.1 8B Instruct (free)","match":{"equals":"llama-3.1-8b-instruct:free"},"prices":{}},{"id":"llama-3.1-lumimaid-70b","name":"Lumimaid v0.2 70B","match":{"equals":"llama-3.1-lumimaid-70b"},"prices":{"input_mtok":2.5,"output_mtok":3}},{"id":"llama-3.1-lumimaid-8b","name":"Lumimaid v0.2 8B","match":{"equals":"llama-3.1-lumimaid-8b"},"prices":{"input_mtok":0.2,"output_mtok":1.25}},{"id":"llama-3.1-nemotron-70b-instruct","name":"Llama 3.1 Nemotron 70B Instruct","match":{"equals":"llama-3.1-nemotron-70b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"llama-3.1-nemotron-ultra-253b-v1","name":"Llama 3.1 Nemotron Ultra 253B v1","match":{"equals":"llama-3.1-nemotron-ultra-253b-v1"},"prices":{"input_mtok":0.6,"output_mtok":1.8}},{"id":"llama-3.1-nemotron-ultra-253b-v1:free","name":"Llama 3.1 Nemotron Ultra 253B v1 (free)","match":{"equals":"llama-3.1-nemotron-ultra-253b-v1:free"},"prices":{}},{"id":"llama-3.1-sonar-large-128k-online","name":"Llama 3.1 Sonar 70B Online","match":{"equals":"llama-3.1-sonar-large-128k-online"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"llama-3.1-sonar-small-128k-online","name":"Llama 3.1 Sonar 8B Online","match":{"equals":"llama-3.1-sonar-small-128k-online"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","match":{"equals":"llama-3.2-11b-vision-instruct"},"prices":{"input_mtok":0.049,"output_mtok":0.049}},{"id":"llama-3.2-11b-vision-instruct:free","name":"Llama 3.2 11B Vision Instruct (free)","match":{"equals":"llama-3.2-11b-vision-instruct:free"},"prices":{}},{"id":"llama-3.2-1b-instruct","name":"Llama 3.2 1B Instruct","match":{"equals":"llama-3.2-1b-instruct"},"prices":{"input_mtok":0.005,"output_mtok":0.01}},{"id":"llama-3.2-1b-instruct:free","name":"Llama 3.2 1B Instruct (free)","match":{"equals":"llama-3.2-1b-instruct:free"},"prices":{}},{"id":"llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","match":{"equals":"llama-3.2-3b-instruct"},"prices":{"input_mtok":0.01,"output_mtok":0.02}},{"id":"llama-3.2-3b-instruct:free","name":"Llama 3.2 3B Instruct (free)","match":{"equals":"llama-3.2-3b-instruct:free"},"prices":{}},{"id":"llama-3.2-90b-vision-instruct","name":"Llama 3.2 90B Vision Instruct","match":{"equals":"llama-3.2-90b-vision-instruct"},"prices":{"input_mtok":1.2,"output_mtok":1.2}},{"id":"llama-3.3-70b-instruct","name":"Llama 3.3 70B Instruct","match":{"equals":"llama-3.3-70b-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.24}},{"id":"llama-3.3-70b-instruct:free","name":"Llama 3.3 70B Instruct (free)","match":{"equals":"llama-3.3-70b-instruct:free"},"prices":{}},{"id":"llama-3.3-8b-instruct:free","name":"Llama 3.3 8B Instruct (free)","match":{"equals":"llama-3.3-8b-instruct:free"},"prices":{}},{"id":"llama-3.3-nemotron-super-49b-v1","name":"Llama 3.3 Nemotron Super 49B v1","match":{"equals":"llama-3.3-nemotron-super-49b-v1"},"prices":{"input_mtok":0.13,"output_mtok":0.4}},{"id":"llama-3.3-nemotron-super-49b-v1:free","name":"Llama 3.3 Nemotron Super 49B v1 (free)","match":{"equals":"llama-3.3-nemotron-super-49b-v1:free"},"prices":{}},{"id":"llama-4-maverick","name":"Llama 4 Maverick","match":{"equals":"llama-4-maverick"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"llama-4-maverick:free","name":"Llama 4 Maverick (free)","match":{"equals":"llama-4-maverick:free"},"prices":{}},{"id":"llama-4-scout","name":"Llama 4 Scout","match":{"equals":"llama-4-scout"},"prices":{"input_mtok":0.08,"output_mtok":0.3}},{"id":"llama-4-scout:free","name":"Llama 4 Scout (free)","match":{"equals":"llama-4-scout:free"},"prices":{}},{"id":"llama-guard-2-8b","name":"LlamaGuard 2 8B","match":{"equals":"llama-guard-2-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama-guard-3-8b","name":"Llama Guard 3 8B","match":{"equals":"llama-guard-3-8b"},"prices":{"input_mtok":0.02,"output_mtok":0.06}},{"id":"llama-guard-4-12b","name":"Llama Guard 4 12B","match":{"equals":"llama-guard-4-12b"},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"llama3.1-typhoon2-70b-instruct","name":"Typhoon2 70B Instruct","match":{"equals":"llama3.1-typhoon2-70b-instruct"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"llemma_7b","name":"Llemma 7b","match":{"equals":"llemma_7b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"maestro-reasoning","name":"Maestro Reasoning","match":{"equals":"maestro-reasoning"},"prices":{"input_mtok":0.9,"output_mtok":3.3}},{"id":"magistral-medium-2506","name":"Magistral Medium 2506","match":{"or":[{"equals":"magistral-medium-2506"},{"equals":"magistral-medium-2506:thinking"}]},"prices":{"input_mtok":2,"output_mtok":5}},{"id":"magistral-small-2506","name":"Magistral Small 2506","match":{"equals":"magistral-small-2506"},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"magnum-72b","name":"Magnum 72B","match":{"equals":"magnum-72b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"magnum-v2-72b","name":"Magnum v2 72B","match":{"equals":"magnum-v2-72b"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"magnum-v4-72b","name":"Magnum v4 72B","match":{"equals":"magnum-v4-72b"},"prices":{"input_mtok":2.5,"output_mtok":3}},{"id":"mai-ds-r1:free","name":"MAI DS R1 (free)","match":{"equals":"mai-ds-r1:free"},"prices":{}},{"id":"mancer/weaver","match":{"equals":"mancer/weaver"},"prices":{"input_mtok":1.125,"output_mtok":1.125}},{"id":"mercury-coder-small-beta","name":"Mercury Coder Small Beta","match":{"equals":"mercury-coder-small-beta"},"prices":{"input_mtok":0.25,"output_mtok":1}},{"id":"meta-llama/llama-2-13b-chat","match":{"equals":"meta-llama/llama-2-13b-chat"},"prices":{"input_mtok":0.22,"output_mtok":0.22}},{"id":"meta-llama/llama-2-70b-chat","match":{"equals":"meta-llama/llama-2-70b-chat"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/llama-3-70b-instruct","match":{"equals":"meta-llama/llama-3-70b-instruct"},"prices":{"input_mtok":0.3,"output_mtok":0.4}},{"id":"meta-llama/llama-3-8b-instruct","match":{"equals":"meta-llama/llama-3-8b-instruct"},"prices":{"input_mtok":0.03,"output_mtok":0.06}},{"id":"meta-llama/llama-3.1-405b","match":{"equals":"meta-llama/llama-3.1-405b"},"prices":{"input_mtok":2,"output_mtok":2}},{"id":"meta-llama/llama-3.1-405b-instruct","match":{"equals":"meta-llama/llama-3.1-405b-instruct"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"meta-llama/llama-3.1-405b:free","match":{"equals":"meta-llama/llama-3.1-405b:free"},"prices":{}},{"id":"meta-llama/llama-3.1-70b-instruct","match":{"equals":"meta-llama/llama-3.1-70b-instruct"},"prices":{"input_mtok":0.119,"output_mtok":0.39}},{"id":"meta-llama/llama-3.1-8b-instruct","match":{"equals":"meta-llama/llama-3.1-8b-instruct"},"prices":{"input_mtok":0.02,"output_mtok":0.03}},{"id":"meta-llama/llama-3.1-8b-instruct:free","match":{"equals":"meta-llama/llama-3.1-8b-instruct:free"},"prices":{}},{"id":"meta-llama/llama-3.2-11b-vision-instruct","match":{"equals":"meta-llama/llama-3.2-11b-vision-instruct"},"prices":{"input_mtok":0.049,"output_mtok":0.049}},{"id":"meta-llama/llama-3.2-11b-vision-instruct:free","match":{"equals":"meta-llama/llama-3.2-11b-vision-instruct:free"},"prices":{}},{"id":"meta-llama/llama-3.2-1b-instruct","match":{"equals":"meta-llama/llama-3.2-1b-instruct"},"prices":{"input_mtok":0.01,"output_mtok":0.01}},{"id":"meta-llama/llama-3.2-1b-instruct:free","match":{"equals":"meta-llama/llama-3.2-1b-instruct:free"},"prices":{}},{"id":"meta-llama/llama-3.2-3b-instruct","match":{"equals":"meta-llama/llama-3.2-3b-instruct"},"prices":{"input_mtok":0.015,"output_mtok":0.025}},{"id":"meta-llama/llama-3.2-3b-instruct:free","match":{"equals":"meta-llama/llama-3.2-3b-instruct:free"},"prices":{}},{"id":"meta-llama/llama-3.2-90b-vision-instruct","match":{"equals":"meta-llama/llama-3.2-90b-vision-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/llama-3.3-70b-instruct","match":{"equals":"meta-llama/llama-3.3-70b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.25}},{"id":"meta-llama/llama-3.3-70b-instruct:free","match":{"equals":"meta-llama/llama-3.3-70b-instruct:free"},"prices":{}},{"id":"meta-llama/llama-4-maverick","match":{"equals":"meta-llama/llama-4-maverick"},"prices":{"input_mtok":0.17,"output_mtok":0.85}},{"id":"meta-llama/llama-4-maverick:free","match":{"equals":"meta-llama/llama-4-maverick:free"},"prices":{}},{"id":"meta-llama/llama-4-scout","match":{"equals":"meta-llama/llama-4-scout"},"prices":{"input_mtok":0.08,"output_mtok":0.3}},{"id":"meta-llama/llama-4-scout:free","match":{"equals":"meta-llama/llama-4-scout:free"},"prices":{}},{"id":"meta-llama/llama-guard-2-8b","match":{"equals":"meta-llama/llama-guard-2-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/llama-guard-3-8b","match":{"equals":"meta-llama/llama-guard-3-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"microsoft/phi-3-medium-128k-instruct","match":{"equals":"microsoft/phi-3-medium-128k-instruct"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"microsoft/phi-3-mini-128k-instruct","match":{"equals":"microsoft/phi-3-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"microsoft/phi-3.5-mini-128k-instruct","match":{"equals":"microsoft/phi-3.5-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"microsoft/phi-4","match":{"equals":"microsoft/phi-4"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"microsoft/phi-4-multimodal-instruct","match":{"equals":"microsoft/phi-4-multimodal-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"microsoft/wizardlm-2-7b","match":{"equals":"microsoft/wizardlm-2-7b"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"microsoft/wizardlm-2-8x22b","match":{"equals":"microsoft/wizardlm-2-8x22b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"midnight-rose-70b","name":"Midnight Rose 70B","match":{"equals":"midnight-rose-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"minimax-01","name":"MiniMax-01","match":{"equals":"minimax-01"},"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"minimax-m1","name":"MiniMax M1","match":{"equals":"minimax-m1"},"prices":{"input_mtok":0.3,"output_mtok":1.65}},{"id":"minimax-m1:extended","name":"MiniMax M1 (extended)","match":{"equals":"minimax-m1:extended"},"prices":{"input_mtok":0.55,"output_mtok":2.2}},{"id":"minimax/minimax-01","match":{"equals":"minimax/minimax-01"},"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"ministral-3b","name":"Ministral 3B","match":{"equals":"ministral-3b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"ministral-8b","name":"Ministral 8B","match":{"equals":"ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistral-7b-instruct","name":"Mistral 7B Instruct","match":{"or":[{"equals":"mistral-7b-instruct"},{"equals":"mistral-7b-instruct-v0.3"}]},"prices":{"input_mtok":0.028,"output_mtok":0.054}},{"id":"mistral-7b-instruct-v0.1","name":"Mistral 7B Instruct v0.1","match":{"equals":"mistral-7b-instruct-v0.1"},"prices":{"input_mtok":0.11,"output_mtok":0.19}},{"id":"mistral-7b-instruct-v0.2","name":"Mistral 7B Instruct v0.2","match":{"equals":"mistral-7b-instruct-v0.2"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistral-7b-instruct:free","name":"Mistral 7B Instruct (free)","match":{"equals":"mistral-7b-instruct:free"},"prices":{}},{"id":"mistral-large","name":"Mistral Large","match":{"or":[{"equals":"mistral-large"},{"equals":"mistral-large-2407"},{"equals":"mistral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mistral-medium","name":"Mistral Medium","match":{"equals":"mistral-medium"},"prices":{"input_mtok":2.75,"output_mtok":8.1}},{"id":"mistral-medium-3","name":"Mistral Medium 3","match":{"equals":"mistral-medium-3"},"prices":{"input_mtok":0.4,"output_mtok":2}},{"id":"mistral-nemo","name":"Mistral Nemo","match":{"equals":"mistral-nemo"},"prices":{"input_mtok":0.01,"output_mtok":0.019}},{"id":"mistral-nemo:free","name":"Mistral Nemo (free)","match":{"equals":"mistral-nemo:free"},"prices":{}},{"id":"mistral-saba","name":"Saba","match":{"equals":"mistral-saba"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistral-small","name":"Mistral Small","match":{"equals":"mistral-small"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistral-small-24b-instruct-2501","name":"Mistral Small 3","match":{"equals":"mistral-small-24b-instruct-2501"},"prices":{"input_mtok":0.05,"output_mtok":0.09}},{"id":"mistral-small-24b-instruct-2501:free","name":"Mistral Small 3 (free)","match":{"equals":"mistral-small-24b-instruct-2501:free"},"prices":{}},{"id":"mistral-small-3.1-24b-instruct","name":"Mistral Small 3.1 24B","match":{"equals":"mistral-small-3.1-24b-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.15}},{"id":"mistral-small-3.1-24b-instruct:free","name":"Mistral Small 3.1 24B (free)","match":{"equals":"mistral-small-3.1-24b-instruct:free"},"prices":{}},{"id":"mistral-small-3.2-24b-instruct:free","name":"Mistral Small 3.2 24B (free)","match":{"equals":"mistral-small-3.2-24b-instruct:free"},"prices":{}},{"id":"mistral-tiny","name":"Mistral Tiny","match":{"equals":"mistral-tiny"},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistral/ministral-8b","match":{"equals":"mistral/ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/codestral-2501","match":{"equals":"mistralai/codestral-2501"},"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"mistralai/codestral-mamba","match":{"equals":"mistralai/codestral-mamba"},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistralai/ministral-3b","match":{"equals":"mistralai/ministral-3b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"mistralai/ministral-8b","match":{"equals":"mistralai/ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/mistral-7b-instruct","match":{"or":[{"equals":"mistralai/mistral-7b-instruct"},{"equals":"mistralai/mistral-7b-instruct-v0.3"}]},"prices":{"input_mtok":0.029,"output_mtok":0.059}},{"id":"mistralai/mistral-7b-instruct-v0.1","match":{"equals":"mistralai/mistral-7b-instruct-v0.1"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/mistral-7b-instruct-v0.2","match":{"equals":"mistralai/mistral-7b-instruct-v0.2"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/mistral-7b-instruct:free","match":{"equals":"mistralai/mistral-7b-instruct:free"},"prices":{}},{"id":"mistralai/mistral-large","match":{"or":[{"equals":"mistralai/mistral-large"},{"equals":"mistralai/mistral-large-2407"},{"equals":"mistralai/mistral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mistralai/mistral-medium","match":{"equals":"mistralai/mistral-medium"},"prices":{"input_mtok":2.75,"output_mtok":8.1}},{"id":"mistralai/mistral-nemo","match":{"equals":"mistralai/mistral-nemo"},"prices":{"input_mtok":0.035,"output_mtok":0.08}},{"id":"mistralai/mistral-nemo:free","match":{"equals":"mistralai/mistral-nemo:free"},"prices":{}},{"id":"mistralai/mistral-saba","match":{"equals":"mistralai/mistral-saba"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistralai/mistral-small","match":{"equals":"mistralai/mistral-small"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistralai/mistral-small-24b-instruct-2501","match":{"equals":"mistralai/mistral-small-24b-instruct-2501"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"mistralai/mistral-small-24b-instruct-2501:free","match":{"equals":"mistralai/mistral-small-24b-instruct-2501:free"},"prices":{}},{"id":"mistralai/mistral-small-3.1-24b-instruct","match":{"equals":"mistralai/mistral-small-3.1-24b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"mistralai/mistral-small-3.1-24b-instruct:free","match":{"equals":"mistralai/mistral-small-3.1-24b-instruct:free"},"prices":{}},{"id":"mistralai/mistral-tiny","match":{"equals":"mistralai/mistral-tiny"},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistralai/mixtral-8x22b-instruct","match":{"equals":"mistralai/mixtral-8x22b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mistralai/mixtral-8x7b-instruct","match":{"equals":"mistralai/mixtral-8x7b-instruct"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"mistralai/pixtral-12b","match":{"equals":"mistralai/pixtral-12b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/pixtral-large-2411","match":{"equals":"mistralai/pixtral-large-2411"},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mixtral-8x22b-instruct","name":"Mixtral 8x22B Instruct","match":{"equals":"mixtral-8x22b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mixtral-8x7b-instruct","name":"Mixtral 8x7B Instruct","match":{"equals":"mixtral-8x7b-instruct"},"prices":{"input_mtok":0.08,"output_mtok":0.24}},{"id":"mn-celeste-12b","name":"Mistral Nemo 12B Celeste","match":{"equals":"mn-celeste-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"mn-inferor-12b","name":"Mistral Nemo Inferor 12B","match":{"equals":"mn-inferor-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"mn-starcannon-12b","name":"Starcannon 12B","match":{"equals":"mn-starcannon-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","match":{"equals":"moonshotai/kimi-k2.5"},"prices":{"input_mtok":0.6,"output_mtok":3}},{"id":"moonshotai/kimi-vl-a3b-thinking:free","match":{"equals":"moonshotai/kimi-vl-a3b-thinking:free"},"prices":{}},{"id":"moonshotai/moonlight-16b-a3b-instruct:free","match":{"equals":"moonshotai/moonlight-16b-a3b-instruct:free"},"prices":{}},{"id":"mythalion-13b","name":"Mythalion 13B","match":{"equals":"mythalion-13b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"mythomax-l2-13b","name":"MythoMax 13B","match":{"equals":"mythomax-l2-13b"},"prices":{"input_mtok":0.065,"output_mtok":0.065}},{"id":"neversleep/llama-3-lumimaid-70b","match":{"equals":"neversleep/llama-3-lumimaid-70b"},"prices":{"input_mtok":3.375,"output_mtok":4.5}},{"id":"neversleep/llama-3-lumimaid-8b","match":{"or":[{"equals":"neversleep/llama-3-lumimaid-8b"},{"equals":"neversleep/llama-3-lumimaid-8b:extended"}]},"prices":{"input_mtok":0.09375,"output_mtok":0.75}},{"id":"neversleep/llama-3.1-lumimaid-70b","match":{"equals":"neversleep/llama-3.1-lumimaid-70b"},"prices":{"input_mtok":1.5,"output_mtok":2.25}},{"id":"neversleep/llama-3.1-lumimaid-8b","match":{"equals":"neversleep/llama-3.1-lumimaid-8b"},"prices":{"input_mtok":0.09375,"output_mtok":0.75}},{"id":"neversleep/noromaid-20b","match":{"equals":"neversleep/noromaid-20b"},"prices":{"input_mtok":0.75,"output_mtok":1.5}},{"id":"noromaid-20b","name":"Noromaid 20B","match":{"equals":"noromaid-20b"},"prices":{"input_mtok":1.25,"output_mtok":2}},{"id":"nothingiisreal/mn-celeste-12b","match":{"equals":"nothingiisreal/mn-celeste-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"nous-hermes-2-mixtral-8x7b-dpo","name":"Hermes 2 Mixtral 8x7B DPO","match":{"equals":"nous-hermes-2-mixtral-8x7b-dpo"},"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"nousresearch/deephermes-3-llama-3-8b-preview:free","match":{"equals":"nousresearch/deephermes-3-llama-3-8b-preview:free"},"prices":{}},{"id":"nousresearch/hermes-2-pro-llama-3-8b","match":{"equals":"nousresearch/hermes-2-pro-llama-3-8b"},"prices":{"input_mtok":0.025,"output_mtok":0.04}},{"id":"nousresearch/hermes-3-llama-3.1-405b","match":{"equals":"nousresearch/hermes-3-llama-3.1-405b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"nousresearch/hermes-3-llama-3.1-70b","match":{"equals":"nousresearch/hermes-3-llama-3.1-70b"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"nousresearch/nous-hermes-2-mixtral-8x7b-dpo","match":{"equals":"nousresearch/nous-hermes-2-mixtral-8x7b-dpo"},"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"nousresearch/nous-hermes-llama2-13b","match":{"equals":"nousresearch/nous-hermes-llama2-13b"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"nova-lite-v1","name":"Nova Lite 1.0","match":{"equals":"nova-lite-v1"},"prices":{"input_mtok":0.06,"output_mtok":0.24}},{"id":"nova-micro-v1","name":"Nova Micro 1.0","match":{"equals":"nova-micro-v1"},"prices":{"input_mtok":0.035,"output_mtok":0.14}},{"id":"nova-pro-v1","name":"Nova Pro 1.0","match":{"equals":"nova-pro-v1"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"nvidia/llama-3.1-nemotron-70b-instruct","match":{"equals":"nvidia/llama-3.1-nemotron-70b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"nvidia/llama-3.1-nemotron-70b-instruct:free","match":{"equals":"nvidia/llama-3.1-nemotron-70b-instruct:free"},"prices":{}},{"id":"nvidia/llama-3.1-nemotron-nano-8b-v1:free","match":{"equals":"nvidia/llama-3.1-nemotron-nano-8b-v1:free"},"prices":{}},{"id":"nvidia/llama-3.1-nemotron-ultra-253b-v1:free","match":{"equals":"nvidia/llama-3.1-nemotron-ultra-253b-v1:free"},"prices":{}},{"id":"nvidia/llama-3.3-nemotron-super-49b-v1:free","match":{"equals":"nvidia/llama-3.3-nemotron-super-49b-v1:free"},"prices":{}},{"id":"o1","name":"o1","match":{"or":[{"equals":"o1"},{"equals":"o1-preview"},{"equals":"o1-preview-2024-09-12"}]},"prices":{"input_mtok":15,"cache_read_mtok":7.5,"output_mtok":60}},{"id":"o1-mini","name":"o1-mini","match":{"or":[{"equals":"o1-mini"},{"equals":"o1-mini-2024-09-12"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o1-pro","name":"o1-pro","match":{"equals":"o1-pro"},"prices":{"input_mtok":150,"output_mtok":600}},{"id":"o3","name":"o3","match":{"equals":"o3"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"o3-mini","name":"o3 Mini","match":{"or":[{"equals":"o3-mini"},{"equals":"o3-mini-high"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o3-pro","name":"o3 Pro","match":{"equals":"o3-pro"},"prices":{"input_mtok":20,"output_mtok":80}},{"id":"o4-mini","name":"o4 Mini","match":{"or":[{"equals":"o4-mini"},{"equals":"o4-mini-high"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.275,"output_mtok":4.4}},{"id":"open-r1/olympiccoder-32b:free","match":{"equals":"open-r1/olympiccoder-32b:free"},"prices":{}},{"id":"open-r1/olympiccoder-7b:free","match":{"equals":"open-r1/olympiccoder-7b:free"},"prices":{}},{"id":"openai/chatgpt-4o-latest","match":{"equals":"openai/chatgpt-4o-latest"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"openai/codex-mini","match":{"equals":"openai/codex-mini"},"prices":{"input_mtok":1.5,"cache_read_mtok":0.375,"output_mtok":6}},{"id":"openai/gpt-3.5-turbo","match":{"or":[{"equals":"openai/gpt-3.5-turbo"},{"equals":"openai/gpt-3.5-turbo-0125"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"openai/gpt-3.5-turbo-0613","match":{"equals":"openai/gpt-3.5-turbo-0613"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"openai/gpt-3.5-turbo-1106","match":{"equals":"openai/gpt-3.5-turbo-1106"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"openai/gpt-3.5-turbo-16k","match":{"equals":"openai/gpt-3.5-turbo-16k"},"prices":{"input_mtok":3,"output_mtok":4}},{"id":"openai/gpt-3.5-turbo-instruct","match":{"equals":"openai/gpt-3.5-turbo-instruct"},"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"openai/gpt-4","match":{"or":[{"equals":"openai/gpt-4"},{"equals":"openai/gpt-4-0314"}]},"prices":{"input_mtok":30,"output_mtok":60}},{"id":"openai/gpt-4-1106-preview","match":{"equals":"openai/gpt-4-1106-preview"},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"openai/gpt-4-32k","match":{"or":[{"equals":"openai/gpt-4-32k"},{"equals":"openai/gpt-4-32k-0314"}]},"prices":{"input_mtok":60,"output_mtok":120}},{"id":"openai/gpt-4-turbo","match":{"or":[{"equals":"openai/gpt-4-turbo"},{"equals":"openai/gpt-4-turbo-preview"}]},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"openai/gpt-4.1","match":{"equals":"openai/gpt-4.1"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"openai/gpt-4.1-mini","match":{"equals":"openai/gpt-4.1-mini"},"prices":{"input_mtok":0.4,"output_mtok":1.6}},{"id":"openai/gpt-4.1-nano","match":{"equals":"openai/gpt-4.1-nano"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"openai/gpt-4.5-preview","match":{"equals":"openai/gpt-4.5-preview"},"prices":{"input_mtok":75,"output_mtok":150}},{"id":"openai/gpt-4o","match":{"or":[{"equals":"openai/gpt-4o"},{"equals":"openai/gpt-4o-2024-08-06"},{"equals":"openai/gpt-4o-2024-11-20"},{"equals":"openai/gpt-4o-search-preview"},{"equals":"openai/gpt-4o-audio-preview"}]},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"openai/gpt-4o-2024-05-13","match":{"equals":"openai/gpt-4o-2024-05-13"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"openai/gpt-4o-mini","match":{"or":[{"equals":"openai/gpt-4o-mini"},{"equals":"openai/gpt-4o-mini-2024-07-18"},{"equals":"openai/gpt-4o-mini-search-preview"}]},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai/gpt-4o:extended","match":{"equals":"openai/gpt-4o:extended"},"prices":{"input_mtok":6,"output_mtok":18}},{"id":"openai/gpt-5","match":{"or":[{"equals":"openai/gpt-5"},{"equals":"openai/gpt-5-chat"},{"equals":"openai/gpt-5-codex"},{"equals":"openai/gpt-5.1"},{"equals":"openai/gpt-5.1-chat"},{"equals":"openai/gpt-5.1-codex"}]},"prices":{"input_mtok":1.25,"cache_read_mtok":0.125,"output_mtok":10}},{"id":"openai/gpt-5-image","match":{"equals":"openai/gpt-5-image"},"price_comments":"Image pricing at $0.01/1k images not represented in standard schema","prices":{"input_mtok":10,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"openai/gpt-5-image-mini","match":{"equals":"openai/gpt-5-image-mini"},"price_comments":"Image pricing at $0.0025/1k images not represented in standard schema","prices":{"input_mtok":2.5,"cache_read_mtok":0.25,"output_mtok":2}},{"id":"openai/gpt-5-mini","match":{"equals":"openai/gpt-5-mini"},"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"openai/gpt-5-nano","match":{"equals":"openai/gpt-5-nano"},"prices":{"input_mtok":0.05,"cache_read_mtok":0.005,"output_mtok":0.4}},{"id":"openai/gpt-5-pro","match":{"equals":"openai/gpt-5-pro"},"prices":{"input_mtok":15,"output_mtok":120}},{"id":"openai/gpt-5.1-codex-mini","match":{"equals":"openai/gpt-5.1-codex-mini"},"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b:exacto"}]},"prices":{"input_mtok":0.04,"output_mtok":0.2}},{"id":"openai/gpt-oss-20b","match":{"equals":"openai/gpt-oss-20b"},"prices":{"input_mtok":0.03,"output_mtok":0.14}},{"id":"openai/gpt-oss-20b:free","match":{"equals":"openai/gpt-oss-20b:free"},"prices":{}},{"id":"openai/gpt-oss-safeguard-20b","match":{"equals":"openai/gpt-oss-safeguard-20b"},"prices":{"input_mtok":0.075,"cache_read_mtok":0.037,"output_mtok":0.3}},{"id":"openai/o1","match":{"or":[{"equals":"openai/o1"},{"equals":"openai/o1-preview"},{"equals":"openai/o1-preview-2024-09-12"}]},"prices":{"input_mtok":15,"output_mtok":60}},{"id":"openai/o1-mini","match":{"or":[{"equals":"openai/o1-mini"},{"equals":"openai/o1-mini-2024-09-12"}]},"prices":{"input_mtok":1.1,"output_mtok":4.4}},{"id":"openai/o1-pro","match":{"equals":"openai/o1-pro"},"prices":{"input_mtok":150,"output_mtok":600}},{"id":"openai/o3","match":{"equals":"openai/o3"},"prices":{"input_mtok":10,"output_mtok":40}},{"id":"openai/o3-deep-research","match":{"equals":"openai/o3-deep-research"},"price_comments":"Image pricing at $7.65/1k images not represented in standard schema","prices":{"input_mtok":10,"cache_read_mtok":2.5,"output_mtok":40}},{"id":"openai/o3-mini","match":{"or":[{"equals":"openai/o3-mini"},{"equals":"openai/o3-mini-high"}]},"prices":{"input_mtok":1.1,"output_mtok":4.4}},{"id":"openai/o3-pro","match":{"equals":"openai/o3-pro"},"price_comments":"Image pricing at $15.30/1k images not represented in standard schema","prices":{"input_mtok":20,"output_mtok":80}},{"id":"openai/o4-mini","match":{"or":[{"equals":"openai/o4-mini"},{"equals":"openai/o4-mini-high"}]},"prices":{"input_mtok":1.1,"output_mtok":4.4}},{"id":"openai/o4-mini-deep-research","match":{"equals":"openai/o4-mini-deep-research"},"price_comments":"Image pricing at $1.53/1k images not represented in standard schema","prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"openchat/openchat-7b","match":{"equals":"openchat/openchat-7b"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"openhands-lm-32b-v0.1","name":"OpenHands LM 32B V0.1","match":{"equals":"openhands-lm-32b-v0.1"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"perplexity/llama-3.1-sonar-large-128k-online","match":{"equals":"perplexity/llama-3.1-sonar-large-128k-online"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"perplexity/llama-3.1-sonar-small-128k-online","match":{"equals":"perplexity/llama-3.1-sonar-small-128k-online"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"perplexity/r1-1776","match":{"equals":"perplexity/r1-1776"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"perplexity/sonar","match":{"equals":"perplexity/sonar"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"perplexity/sonar-deep-research","match":{"equals":"perplexity/sonar-deep-research"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"perplexity/sonar-pro","match":{"equals":"perplexity/sonar-pro"},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"perplexity/sonar-reasoning","match":{"equals":"perplexity/sonar-reasoning"},"prices":{"input_mtok":1,"output_mtok":5}},{"id":"perplexity/sonar-reasoning-pro","match":{"equals":"perplexity/sonar-reasoning-pro"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"phi-3-medium-128k-instruct","name":"Phi-3 Medium 128K Instruct","match":{"equals":"phi-3-medium-128k-instruct"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"phi-3-mini-128k-instruct","name":"Phi-3 Mini 128K Instruct","match":{"equals":"phi-3-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-3.5-mini-128k-instruct","name":"Phi-3.5 Mini 128K Instruct","match":{"equals":"phi-3.5-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-4","name":"Phi 4","match":{"equals":"phi-4"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"phi-4-multimodal-instruct","name":"Phi 4 Multimodal Instruct","match":{"equals":"phi-4-multimodal-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"phi-4-reasoning-plus","name":"Phi 4 Reasoning Plus","match":{"equals":"phi-4-reasoning-plus"},"prices":{"input_mtok":0.07,"output_mtok":0.35}},{"id":"phi-4-reasoning-plus:free","name":"Phi 4 Reasoning Plus (free)","match":{"equals":"phi-4-reasoning-plus:free"},"prices":{}},{"id":"phi-4-reasoning:free","name":"Phi 4 Reasoning (free)","match":{"equals":"phi-4-reasoning:free"},"prices":{}},{"id":"pixtral-12b","name":"Pixtral 12B","match":{"equals":"pixtral-12b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"pixtral-large-2411","name":"Pixtral Large 2411","match":{"equals":"pixtral-large-2411"},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"pygmalionai/mythalion-13b","match":{"equals":"pygmalionai/mythalion-13b"},"prices":{"input_mtok":0.5625,"output_mtok":1.125}},{"id":"qwen-2-72b-instruct","name":"Qwen 2 72B Instruct","match":{"equals":"qwen-2-72b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen-2.5-72b-instruct","name":"Qwen2.5 72B Instruct","match":{"equals":"qwen-2.5-72b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.39}},{"id":"qwen-2.5-72b-instruct:free","name":"Qwen2.5 72B Instruct (free)","match":{"equals":"qwen-2.5-72b-instruct:free"},"prices":{}},{"id":"qwen-2.5-7b-instruct","name":"Qwen2.5 7B Instruct","match":{"equals":"qwen-2.5-7b-instruct"},"prices":{"input_mtok":0.04,"output_mtok":0.1}},{"id":"qwen-2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32B Instruct","match":{"equals":"qwen-2.5-coder-32b-instruct"},"prices":{"input_mtok":0.06,"output_mtok":0.15}},{"id":"qwen-2.5-coder-32b-instruct:free","name":"Qwen2.5 Coder 32B Instruct (free)","match":{"equals":"qwen-2.5-coder-32b-instruct:free"},"prices":{}},{"id":"qwen-2.5-vl-7b-instruct","name":"Qwen2.5-VL 7B Instruct","match":{"equals":"qwen-2.5-vl-7b-instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen-max","name":"Qwen-Max","match":{"equals":"qwen-max"},"prices":{"input_mtok":1.6,"cache_read_mtok":0.64,"output_mtok":6.4}},{"id":"qwen-plus","name":"Qwen-Plus","match":{"equals":"qwen-plus"},"prices":{"input_mtok":0.4,"cache_read_mtok":0.16,"output_mtok":1.2}},{"id":"qwen-turbo","name":"Qwen-Turbo","match":{"equals":"qwen-turbo"},"prices":{"input_mtok":0.05,"cache_read_mtok":0.02,"output_mtok":0.2}},{"id":"qwen-vl-max","name":"Qwen VL Max","match":{"equals":"qwen-vl-max"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"qwen-vl-plus","name":"Qwen VL Plus","match":{"equals":"qwen-vl-plus"},"prices":{"input_mtok":0.21,"output_mtok":0.63}},{"id":"qwen/qwen-2-72b-instruct","match":{"equals":"qwen/qwen-2-72b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen/qwen-2.5-72b-instruct","match":{"equals":"qwen/qwen-2.5-72b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.39}},{"id":"qwen/qwen-2.5-72b-instruct:free","match":{"equals":"qwen/qwen-2.5-72b-instruct:free"},"prices":{}},{"id":"qwen/qwen-2.5-7b-instruct","match":{"equals":"qwen/qwen-2.5-7b-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"qwen/qwen-2.5-7b-instruct:free","match":{"equals":"qwen/qwen-2.5-7b-instruct:free"},"prices":{}},{"id":"qwen/qwen-2.5-coder-32b-instruct","match":{"equals":"qwen/qwen-2.5-coder-32b-instruct"},"prices":{"input_mtok":0.07,"output_mtok":0.15}},{"id":"qwen/qwen-2.5-coder-32b-instruct:free","match":{"equals":"qwen/qwen-2.5-coder-32b-instruct:free"},"prices":{}},{"id":"qwen/qwen-2.5-vl-72b-instruct","match":{"equals":"qwen/qwen-2.5-vl-72b-instruct"},"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"qwen/qwen-2.5-vl-7b-instruct","match":{"equals":"qwen/qwen-2.5-vl-7b-instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen/qwen-2.5-vl-7b-instruct:free","match":{"equals":"qwen/qwen-2.5-vl-7b-instruct:free"},"prices":{}},{"id":"qwen/qwen-max","match":{"equals":"qwen/qwen-max"},"prices":{"input_mtok":1.6,"output_mtok":6.4}},{"id":"qwen/qwen-plus","match":{"equals":"qwen/qwen-plus"},"prices":{"input_mtok":0.4,"output_mtok":1.2}},{"id":"qwen/qwen-turbo","match":{"equals":"qwen/qwen-turbo"},"prices":{"input_mtok":0.05,"output_mtok":0.2}},{"id":"qwen/qwen-vl-max","match":{"equals":"qwen/qwen-vl-max"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"qwen/qwen-vl-plus","match":{"equals":"qwen/qwen-vl-plus"},"prices":{"input_mtok":0.21,"output_mtok":0.63}},{"id":"qwen/qwen2.5-coder-7b-instruct","match":{"equals":"qwen/qwen2.5-coder-7b-instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen/qwen2.5-vl-32b-instruct","match":{"equals":"qwen/qwen2.5-vl-32b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen/qwen2.5-vl-32b-instruct:free","match":{"equals":"qwen/qwen2.5-vl-32b-instruct:free"},"prices":{}},{"id":"qwen/qwen2.5-vl-3b-instruct:free","match":{"equals":"qwen/qwen2.5-vl-3b-instruct:free"},"prices":{}},{"id":"qwen/qwen2.5-vl-72b-instruct","match":{"equals":"qwen/qwen2.5-vl-72b-instruct"},"prices":{"input_mtok":0.7,"output_mtok":0.7}},{"id":"qwen/qwen2.5-vl-72b-instruct:free","match":{"equals":"qwen/qwen2.5-vl-72b-instruct:free"},"prices":{}},{"id":"qwen/qwen3-max","name":"Qwen 3 Max","match":{"or":[{"equals":"qwen/qwen3-max"},{"equals":"qwen/qwen3-max-thinking"}]},"prices":{"input_mtok":1.2,"output_mtok":6}},{"id":"qwen/qwq-32b","match":{"equals":"qwen/qwq-32b"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"qwen/qwq-32b-preview","match":{"equals":"qwen/qwq-32b-preview"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen/qwq-32b-preview:free","match":{"equals":"qwen/qwq-32b-preview:free"},"prices":{}},{"id":"qwen/qwq-32b:free","match":{"equals":"qwen/qwq-32b:free"},"prices":{}},{"id":"qwen2.5-vl-32b-instruct","name":"Qwen2.5 VL 32B Instruct","match":{"equals":"qwen2.5-vl-32b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen2.5-vl-32b-instruct:free","name":"Qwen2.5 VL 32B Instruct (free)","match":{"equals":"qwen2.5-vl-32b-instruct:free"},"prices":{}},{"id":"qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B Instruct","match":{"equals":"qwen2.5-vl-72b-instruct"},"prices":{"input_mtok":0.25,"output_mtok":0.75}},{"id":"qwen2.5-vl-72b-instruct:free","name":"Qwen2.5 VL 72B Instruct (free)","match":{"equals":"qwen2.5-vl-72b-instruct:free"},"prices":{}},{"id":"qwen3-14b","name":"Qwen3 14B","match":{"equals":"qwen3-14b"},"prices":{"input_mtok":0.06,"output_mtok":0.24}},{"id":"qwen3-14b:free","name":"Qwen3 14B (free)","match":{"equals":"qwen3-14b:free"},"prices":{}},{"id":"qwen3-235b-a22b","name":"Qwen3 235B A22B","match":{"equals":"qwen3-235b-a22b"},"prices":{"input_mtok":0.13,"output_mtok":0.6}},{"id":"qwen3-235b-a22b:free","name":"Qwen3 235B A22B (free)","match":{"equals":"qwen3-235b-a22b:free"},"prices":{}},{"id":"qwen3-30b-a3b","name":"Qwen3 30B A3B","match":{"equals":"qwen3-30b-a3b"},"prices":{"input_mtok":0.08,"output_mtok":0.29}},{"id":"qwen3-30b-a3b:free","name":"Qwen3 30B A3B (free)","match":{"equals":"qwen3-30b-a3b:free"},"prices":{}},{"id":"qwen3-32b","name":"Qwen3 32B","match":{"equals":"qwen3-32b"},"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"qwen3-32b:free","name":"Qwen3 32B (free)","match":{"equals":"qwen3-32b:free"},"prices":{}},{"id":"qwen3-8b","name":"Qwen3 8B","match":{"equals":"qwen3-8b"},"prices":{"input_mtok":0.035,"output_mtok":0.138}},{"id":"qwen3-8b:free","name":"Qwen3 8B (free)","match":{"equals":"qwen3-8b:free"},"prices":{}},{"id":"qwen3.5-plus-02-15","name":"Qwen3.5 plus-02-15","match":{"equals":"qwen3.5-plus-02-15"},"prices":{"input_mtok":0.4,"output_mtok":2.4}},{"id":"qwerky-72b:free","name":"Qwerky 72B (free)","match":{"equals":"qwerky-72b:free"},"prices":{}},{"id":"qwq-32b","name":"QwQ 32B","match":{"equals":"qwq-32b"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"qwq-32b-arliai-rpr-v1:free","name":"QwQ 32B RpR v1 (free)","match":{"equals":"qwq-32b-arliai-rpr-v1:free"},"prices":{}},{"id":"qwq-32b-preview","name":"QwQ 32B Preview","match":{"equals":"qwq-32b-preview"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwq-32b:free","name":"QwQ 32B (free)","match":{"equals":"qwq-32b:free"},"prices":{}},{"id":"r1-1776","name":"R1 1776","match":{"equals":"r1-1776"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"raifle/sorcererlm-8x22b","match":{"equals":"raifle/sorcererlm-8x22b"},"prices":{"input_mtok":4.5,"output_mtok":4.5}},{"id":"reka-flash-3:free","name":"Flash 3 (free)","match":{"equals":"reka-flash-3:free"},"prices":{}},{"id":"rekaai/reka-flash-3:free","match":{"equals":"rekaai/reka-flash-3:free"},"prices":{}},{"id":"remm-slerp-l2-13b","name":"ReMM SLERP 13B","match":{"equals":"remm-slerp-l2-13b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"rocinante-12b","name":"Rocinante 12B","match":{"equals":"rocinante-12b"},"prices":{"input_mtok":0.25,"output_mtok":0.5}},{"id":"sao10k/fimbulvetr-11b-v2","match":{"equals":"sao10k/fimbulvetr-11b-v2"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"sao10k/l3-euryale-70b","match":{"equals":"sao10k/l3-euryale-70b"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"sao10k/l3-lunaris-8b","match":{"equals":"sao10k/l3-lunaris-8b"},"prices":{"input_mtok":0.02,"output_mtok":0.05}},{"id":"sao10k/l3.1-euryale-70b","match":{"equals":"sao10k/l3.1-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"sao10k/l3.3-euryale-70b","match":{"equals":"sao10k/l3.3-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"sarvam-m:free","name":"Sarvam-M (free)","match":{"equals":"sarvam-m:free"},"prices":{}},{"id":"scb10x/llama3.1-typhoon2-70b-instruct","match":{"equals":"scb10x/llama3.1-typhoon2-70b-instruct"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"scb10x/llama3.1-typhoon2-8b-instruct","match":{"equals":"scb10x/llama3.1-typhoon2-8b-instruct"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"shisa-ai/shisa-v2-llama3.3-70b:free","match":{"equals":"shisa-ai/shisa-v2-llama3.3-70b:free"},"prices":{}},{"id":"shisa-v2-llama3.3-70b:free","name":"Shisa V2 Llama 3.3 70B (free)","match":{"equals":"shisa-v2-llama3.3-70b:free"},"prices":{}},{"id":"skyfall-36b-v2","name":"Skyfall 36B V2","match":{"equals":"skyfall-36b-v2"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"sonar","name":"Sonar","match":{"equals":"sonar"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"sonar-deep-research","name":"Sonar Deep Research","match":{"equals":"sonar-deep-research"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sonar-pro","name":"Sonar Pro","match":{"equals":"sonar-pro"},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"sonar-reasoning","name":"Sonar Reasoning","match":{"equals":"sonar-reasoning"},"prices":{"input_mtok":1,"output_mtok":5}},{"id":"sonar-reasoning-pro","name":"Sonar Reasoning Pro","match":{"equals":"sonar-reasoning-pro"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sophosympatheia/midnight-rose-70b","match":{"equals":"sophosympatheia/midnight-rose-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"sophosympatheia/rogue-rose-103b-v0.2:free","match":{"equals":"sophosympatheia/rogue-rose-103b-v0.2:free"},"prices":{}},{"id":"sorcererlm-8x22b","name":"SorcererLM 8x22B","match":{"equals":"sorcererlm-8x22b"},"prices":{"input_mtok":4.5,"output_mtok":4.5}},{"id":"spotlight","name":"Spotlight","match":{"equals":"spotlight"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"steelskull/l3.3-electra-r1-70b","match":{"equals":"steelskull/l3.3-electra-r1-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.95}},{"id":"thedrummer/anubis-pro-105b-v1","match":{"equals":"thedrummer/anubis-pro-105b-v1"},"prices":{"input_mtok":0.8,"output_mtok":1}},{"id":"thedrummer/rocinante-12b","match":{"equals":"thedrummer/rocinante-12b"},"prices":{"input_mtok":0.25,"output_mtok":0.5}},{"id":"thedrummer/skyfall-36b-v2","match":{"equals":"thedrummer/skyfall-36b-v2"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"thedrummer/unslopnemo-12b","match":{"equals":"thedrummer/unslopnemo-12b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"thudm/glm-4-32b:free","match":{"equals":"thudm/glm-4-32b:free"},"prices":{}},{"id":"thudm/glm-z1-32b:free","match":{"equals":"thudm/glm-z1-32b:free"},"prices":{}},{"id":"toppy-m-7b","name":"Toppy M 7B","match":{"equals":"toppy-m-7b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"undi95/remm-slerp-l2-13b","match":{"equals":"undi95/remm-slerp-l2-13b"},"prices":{"input_mtok":0.5625,"output_mtok":1.125}},{"id":"undi95/toppy-m-7b","match":{"equals":"undi95/toppy-m-7b"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"unslopnemo-12b","name":"UnslopNemo 12B","match":{"equals":"unslopnemo-12b"},"prices":{"input_mtok":0.45,"output_mtok":0.45}},{"id":"valkyrie-49b-v1","name":"Valkyrie 49B V1","match":{"equals":"valkyrie-49b-v1"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"virtuoso-large","name":"Virtuoso Large","match":{"equals":"virtuoso-large"},"prices":{"input_mtok":0.75,"output_mtok":1.2}},{"id":"virtuoso-medium-v2","name":"Virtuoso Medium V2","match":{"equals":"virtuoso-medium-v2"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"weaver","name":"Weaver (alpha)","match":{"equals":"weaver"},"prices":{"input_mtok":1.5,"output_mtok":1.5}},{"id":"wizardlm-2-8x22b","name":"WizardLM-2 8x22B","match":{"equals":"wizardlm-2-8x22b"},"prices":{"input_mtok":0.48,"output_mtok":0.48}},{"id":"x-ai/grok-2-1212","match":{"equals":"x-ai/grok-2-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"x-ai/grok-2-vision-1212","match":{"equals":"x-ai/grok-2-vision-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"x-ai/grok-3-beta","match":{"equals":"x-ai/grok-3-beta"},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"x-ai/grok-3-mini-beta","match":{"equals":"x-ai/grok-3-mini-beta"},"prices":{"input_mtok":0.3,"output_mtok":0.5}},{"id":"x-ai/grok-4-fast","match":{"equals":"x-ai/grok-4-fast"},"context_window":2000000,"prices":{"input_mtok":{"base":0.2,"tiers":[{"start":128000,"price":0.4}]},"cache_read_mtok":0.05,"output_mtok":{"base":0.5,"tiers":[{"start":128000,"price":1}]}}},{"id":"x-ai/grok-4.1-fast:free","match":{"equals":"x-ai/grok-4.1-fast:free"},"context_window":2000000,"prices":{}},{"id":"x-ai/grok-beta","match":{"equals":"x-ai/grok-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"x-ai/grok-code-fast-1","match":{"equals":"x-ai/grok-code-fast-1"},"context_window":256000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.02,"output_mtok":1.5}},{"id":"x-ai/grok-vision-beta","match":{"equals":"x-ai/grok-vision-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"xwin-lm/xwin-lm-70b","match":{"equals":"xwin-lm/xwin-lm-70b"},"prices":{"input_mtok":3.75,"output_mtok":3.75}},{"id":"yi-large","name":"Yi Large","match":{"equals":"yi-large"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"z-ai/glm-4.5","match":{"equals":"z-ai/glm-4.5"},"context_window":131072,"prices":{"input_mtok":0.35,"output_mtok":1.55}},{"id":"z-ai/glm-4.6","match":{"equals":"z-ai/glm-4.6"},"context_window":202752,"prices":{"input_mtok":0.4,"output_mtok":1.75}}]},{"id":"ovhcloud","name":"OVHcloud AI Endpoints","pricing_urls":["https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/models"],"api_pattern":"https://oai\\.endpoints\\.kepler\\.ai\\.cloud\\.ovh\\.net","extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"DeepSeek-R1-Distill-Llama-70B"},{"equals":"deepseek-r1-distill-llama-70b"}]},"context_window":131072,"prices":{"input_mtok":0.74,"output_mtok":0.74}},{"id":"Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"Llama-3.1-8B-Instruct"},{"equals":"llama-3.1-8b-instruct"}]},"context_window":131072,"prices":{"input_mtok":0.11,"output_mtok":0.11}},{"id":"Meta-Llama-3_3-70B-Instruct","name":"Meta-Llama-3_3-70B-Instruct","match":{"or":[{"equals":"Meta-Llama-3_3-70B-Instruct"},{"equals":"meta-llama-3_3-70b-instruct"}]},"context_window":131072,"prices":{"input_mtok":0.74,"output_mtok":0.74}},{"id":"Mistral-7B-Instruct-v0.3","name":"Mistral-7B-Instruct-v0.3","match":{"or":[{"equals":"Mistral-7B-Instruct-v0.3"},{"equals":"mistral-7b-instruct-v0.3"}]},"context_window":65536,"prices":{"input_mtok":0.11,"output_mtok":0.11}},{"id":"Mistral-Nemo-Instruct-2407","name":"Mistral-Nemo-Instruct-2407","match":{"or":[{"equals":"Mistral-Nemo-Instruct-2407"},{"equals":"mistral-nemo-instruct-2407"}]},"context_window":65536,"prices":{"input_mtok":0.14,"output_mtok":0.14}},{"id":"Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral-Small-3.2-24B-Instruct-2506","match":{"or":[{"equals":"Mistral-Small-3.2-24B-Instruct-2506"},{"equals":"mistral-small-3.2-24b-instruct-2506"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.31}},{"id":"Mixtral-8x7B-Instruct-v0.1","name":"Mixtral-8x7B-Instruct-v0.1","match":{"or":[{"equals":"Mixtral-8x7B-Instruct-v0.1"},{"equals":"mixtral-8x7b-instruct-v0.1"}]},"context_window":32768,"prices":{"input_mtok":0.7,"output_mtok":0.7}},{"id":"Qwen2.5-VL-72B-Instruct","name":"Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"Qwen2.5-VL-72B-Instruct"},{"equals":"qwen2.5-vl-72b-instruct"}]},"context_window":32768,"prices":{"input_mtok":1.01,"output_mtok":1.01}},{"id":"Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"Qwen3-32B"},{"equals":"qwen3-32b"}]},"context_window":32768,"prices":{"input_mtok":0.09,"output_mtok":0.25}},{"id":"Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3-Coder-30B-A3B-Instruct","match":{"or":[{"equals":"Qwen3-Coder-30B-A3B-Instruct"},{"equals":"qwen3-coder-30b-a3b-instruct"}]},"context_window":262144,"prices":{"input_mtok":0.07,"output_mtok":0.26}},{"id":"bge-base-en-v1.5","name":"bge-base-en-v1.5","match":{"equals":"bge-base-en-v1.5"},"context_window":512,"prices":{"input_mtok":0.01}},{"id":"bge-m3","name":"bge-m3","match":{"equals":"bge-m3"},"context_window":8192,"prices":{"input_mtok":0.01}},{"id":"bge-multilingual-gemma2","name":"bge-multilingual-gemma2","match":{"equals":"bge-multilingual-gemma2"},"context_window":8192,"prices":{"input_mtok":0.01}},{"id":"gpt-oss-120b","name":"gpt-oss-120b","match":{"equals":"gpt-oss-120b"},"context_window":131072,"prices":{"input_mtok":0.09,"output_mtok":0.47}},{"id":"gpt-oss-20b","name":"gpt-oss-20b","match":{"equals":"gpt-oss-20b"},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.18}}]},{"id":"perplexity","name":"Perplexity","pricing_urls":["https://docs.perplexity.ai/guides/pricing"],"api_pattern":"https://api\\.perplexity\\.ai","price_comments":"Prices per request vary based on usage, this is not represented here, instead we just take the highest price shown for `requests_kcount`.","models":[{"id":"llama-3.1-sonar-large-128k-online","name":"Llama 3.1 Sonar 70B Online","description":"Llama 3.1 Sonar is Perplexity's latest model family. It surpasses their earlier Sonar models in cost-efficiency, speed, and performance.","match":{"equals":"llama-3.1-sonar-large-128k-online"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"llama-3.1-sonar-small-128k-online","name":"Llama 3.1 Sonar 8B Online","description":"Llama 3.1 Sonar is Perplexity's latest model family. It surpasses their earlier Sonar models in cost-efficiency, speed, and performance.","match":{"equals":"llama-3.1-sonar-small-128k-online"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"r1-1776","name":"R1 1776","description":"R1 1776 is a version of DeepSeek-R1 that has been post-trained to remove censorship constraints related to topics restricted by the Chinese government. The model retains its original reasoning capabilities while providing direct responses to a wider range of queries. R1 1776 is an offline chat model that does not use the perplexity search subsystem.","match":{"equals":"r1-1776"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sonar","name":"Sonar","description":"Sonar is lightweight, affordable, fast, and simple to use — now featuring citations and the ability to customize sources. It is designed for companies seeking to integrate lightweight question-and-answer features optimized for speed.","match":{"equals":"sonar"},"prices":{"input_mtok":1,"output_mtok":1,"requests_kcount":12}},{"id":"sonar-deep-research","name":"Sonar Deep Research","description":"Sonar Deep Research is a research-focused model designed for multi-step retrieval, synthesis, and reasoning across complex topics. It autonomously searches, reads, and evaluates sources, refining its approach as it gathers information. This enables comprehensive report generation across domains like finance, technology, health, and current events.","match":{"equals":"sonar-deep-research"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sonar-pro","name":"Sonar Pro","description":"Note: Sonar Pro pricing includes Perplexity search pricing. See details here","match":{"equals":"sonar-pro"},"prices":{"input_mtok":3,"output_mtok":15,"requests_kcount":14}},{"id":"sonar-reasoning","name":"Sonar Reasoning","description":"Sonar Reasoning is a reasoning model provided by Perplexity based on DeepSeek R1.","match":{"equals":"sonar-reasoning"},"prices":{"input_mtok":1,"output_mtok":5,"requests_kcount":12}},{"id":"sonar-reasoning-pro","name":"Sonar Reasoning Pro","description":"Sonar Pro pricing includes Perplexity search pricing.","match":{"equals":"sonar-reasoning-pro"},"prices":{"input_mtok":2,"output_mtok":8,"requests_kcount":14}}]},{"id":"together","name":"Together AI","pricing_urls":["https://www.together.ai/pricing"],"api_pattern":"https://api\\.together\\.xyz","provider_match":{"or":[{"equals":"together-ai"},{"equals":"together_ai"}]},"models":[{"id":"Austism/chronos-hermes-13b","match":{"equals":"Austism/chronos-hermes-13b"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Gryphe/MythoMax-L2-13b","match":{"equals":"Gryphe/MythoMax-L2-13b"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Nexusflow/NexusRaven-V2-13B","match":{"equals":"Nexusflow/NexusRaven-V2-13B"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"NousResearch/Nous-Capybara-7B-V1p9","match":{"equals":"NousResearch/Nous-Capybara-7B-V1p9"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO","match":{"equals":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-SFT","match":{"equals":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-SFT"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"NousResearch/Nous-Hermes-2-Yi-34B","match":{"equals":"NousResearch/Nous-Hermes-2-Yi-34B"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"NousResearch/Nous-Hermes-Llama2-13b","match":{"equals":"NousResearch/Nous-Hermes-Llama2-13b"},"prices":{"input_mtok":0.225,"output_mtok":0.225}},{"id":"NousResearch/Nous-Hermes-llama-2-7b","match":{"equals":"NousResearch/Nous-Hermes-llama-2-7b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Open-Orca/Mistral-7B-OpenOrca","match":{"equals":"Open-Orca/Mistral-7B-OpenOrca"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Qwen/Qwen1.5-0.5B","match":{"or":[{"equals":"Qwen/Qwen1.5-0.5B"},{"equals":"Qwen/Qwen1.5-0.5B-Chat"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Qwen/Qwen1.5-1.8B","match":{"or":[{"equals":"Qwen/Qwen1.5-1.8B"},{"equals":"Qwen/Qwen1.5-1.8B-Chat"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Qwen/Qwen1.5-14B","match":{"or":[{"equals":"Qwen/Qwen1.5-14B"},{"equals":"Qwen/Qwen1.5-14B-Chat"}]},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Qwen/Qwen1.5-4B","match":{"or":[{"equals":"Qwen/Qwen1.5-4B"},{"equals":"Qwen/Qwen1.5-4B-Chat"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Qwen/Qwen1.5-72B","match":{"equals":"Qwen/Qwen1.5-72B"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"Qwen/Qwen1.5-7B","match":{"or":[{"equals":"Qwen/Qwen1.5-7B"},{"equals":"Qwen/Qwen1.5-7B-Chat"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Undi95/ReMM-SLERP-L2-13B","match":{"equals":"Undi95/ReMM-SLERP-L2-13B"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Undi95/Toppy-M-7B","match":{"equals":"Undi95/Toppy-M-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"WizardLM/WizardLM-13B-V1.2","match":{"equals":"WizardLM/WizardLM-13B-V1.2"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"allenai/OLMo-7B","match":{"or":[{"equals":"allenai/OLMo-7B"},{"equals":"allenai/OLMo-7B-Instruct"},{"equals":"allenai/OLMo-7B-Twin-2T"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"codellama/CodeLlama-13b-Instruct-hf","match":{"equals":"codellama/CodeLlama-13b-Instruct-hf"},"prices":{"input_mtok":0.225,"output_mtok":0.225}},{"id":"codellama/CodeLlama-34b-Instruct-hf","match":{"equals":"codellama/CodeLlama-34b-Instruct-hf"},"prices":{"input_mtok":0.776,"output_mtok":0.776}},{"id":"codellama/CodeLlama-70b-Instruct-hf","match":{"equals":"codellama/CodeLlama-70b-Instruct-hf"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"codellama/CodeLlama-7b-Instruct-hf","match":{"equals":"codellama/CodeLlama-7b-Instruct-hf"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"deepseek-ai/deepseek-coder-33b-instruct","match":{"equals":"deepseek-ai/deepseek-coder-33b-instruct"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"garage-bAInd/Platypus2-70B-instruct","match":{"equals":"garage-bAInd/Platypus2-70B-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"google/gemma-2b","match":{"or":[{"equals":"google/gemma-2b"},{"equals":"google/gemma-2b-it"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"google/gemma-7b","match":{"or":[{"equals":"google/gemma-7b"},{"equals":"google/gemma-7b-it"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"lmsys/vicuna-13b-v1.5","match":{"equals":"lmsys/vicuna-13b-v1.5"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"lmsys/vicuna-7b-v1.5","match":{"equals":"lmsys/vicuna-7b-v1.5"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/Llama-2-13b-chat-hf","match":{"equals":"meta-llama/Llama-2-13b-chat-hf"},"prices":{"input_mtok":0.225,"output_mtok":0.225}},{"id":"meta-llama/Llama-2-70b-chat-hf","match":{"equals":"meta-llama/Llama-2-70b-chat-hf"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/Llama-2-7b-chat-hf","match":{"equals":"meta-llama/Llama-2-7b-chat-hf"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/Llama-3-70b-chat-hf","match":{"equals":"meta-llama/Llama-3-70b-chat-hf"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/Llama-3-8b-chat-hf","match":{"equals":"meta-llama/Llama-3-8b-chat-hf"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","match":{"equals":"meta-llama/Llama-3.3-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","match":{"equals":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8"},"prices":{"input_mtok":0.27,"output_mtok":0.85}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","match":{"equals":"meta-llama/Llama-4-Scout-17B-16E-Instruct"},"prices":{"input_mtok":0.18,"output_mtok":0.59}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct-Lite","match":{"equals":"meta-llama/Meta-Llama-3-70B-Instruct-Lite"},"prices":{"input_mtok":0.54,"output_mtok":0.54}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct-Lite","match":{"equals":"meta-llama/Meta-Llama-3-8B-Instruct-Lite"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3-8B-Instruct-Turbo"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo"},"prices":{"input_mtok":3.5,"output_mtok":3.5}},{"id":"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"meta-llama/Meta-Llama-3.3-70B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.3-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"microsoft/WizardLM-2-8x22B","match":{"equals":"microsoft/WizardLM-2-8x22B"},"prices":{"input_mtok":1.2,"output_mtok":1.2}},{"id":"microsoft/phi-2","match":{"equals":"microsoft/phi-2"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/Mistral-7B-Instruct-v0.1","match":{"equals":"mistralai/Mistral-7B-Instruct-v0.1"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/Mistral-7B-Instruct-v0.2","match":{"equals":"mistralai/Mistral-7B-Instruct-v0.2"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/Mistral-7B-v0.1","match":{"equals":"mistralai/Mistral-7B-v0.1"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/Mixtral-8x22B-Instruct-v0.1","match":{"equals":"mistralai/Mixtral-8x22B-Instruct-v0.1"},"prices":{"input_mtok":2.4,"output_mtok":2.4}},{"id":"mistralai/Mixtral-8x7B-Instruct-v0.1","match":{"equals":"mistralai/Mixtral-8x7B-Instruct-v0.1"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mistralai/Mixtral-8x7B-v0.1","match":{"equals":"mistralai/Mixtral-8x7B-v0.1"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"openchat/openchat-3.5-1210","match":{"equals":"openchat/openchat-3.5-1210"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"snorkelai/Snorkel-Mistral-PairRM-DPO","match":{"equals":"snorkelai/Snorkel-Mistral-PairRM-DPO"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"teknium/OpenHermes-2-Mistral-7B","match":{"equals":"teknium/OpenHermes-2-Mistral-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"teknium/OpenHermes-2p5-Mistral-7B","match":{"equals":"teknium/OpenHermes-2p5-Mistral-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/GPT-JT-Moderation-6B","match":{"equals":"togethercomputer/GPT-JT-Moderation-6B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/Llama-2-7B-32K-Instruct","match":{"equals":"togethercomputer/Llama-2-7B-32K-Instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-7B-Base","match":{"equals":"togethercomputer/RedPajama-INCITE-7B-Base"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-7B-Chat","match":{"equals":"togethercomputer/RedPajama-INCITE-7B-Chat"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-7B-Instruct","match":{"equals":"togethercomputer/RedPajama-INCITE-7B-Instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-Base-3B-v1","match":{"equals":"togethercomputer/RedPajama-INCITE-Base-3B-v1"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"togethercomputer/RedPajama-INCITE-Chat-3B-v1","match":{"equals":"togethercomputer/RedPajama-INCITE-Chat-3B-v1"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"togethercomputer/RedPajama-INCITE-Instruct-3B-v1","match":{"equals":"togethercomputer/RedPajama-INCITE-Instruct-3B-v1"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"togethercomputer/StripedHyena-Hessian-7B","match":{"equals":"togethercomputer/StripedHyena-Hessian-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/StripedHyena-Nous-7B","match":{"equals":"togethercomputer/StripedHyena-Nous-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/alpaca-7b","match":{"equals":"togethercomputer/alpaca-7b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"upstage/SOLAR-10.7B-Instruct-v1.0","match":{"equals":"upstage/SOLAR-10.7B-Instruct-v1.0"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"zero-one-ai/Yi-34B","match":{"equals":"zero-one-ai/Yi-34B"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"zero-one-ai/Yi-6B","match":{"equals":"zero-one-ai/Yi-6B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}}]},{"id":"x-ai","name":"X AI","pricing_urls":["https://docs.x.ai/docs/models"],"api_pattern":"https://api\\.x\\.ai","model_match":{"contains":"grok"},"provider_match":{"equals":"xai"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"cached_prompt_text_tokens","dest":"cache_read_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"grok-2-1212","name":"Grok 2 1212","description":"(deprecated) Grok 2 1212 introduces significant enhancements to accuracy, instruction adherence, and multilingual support, making it a powerful and flexible choice for developers seeking a highly steerable, intelligent model.","match":{"or":[{"equals":"grok-2-1212"},{"equals":"grok-2"},{"equals":"grok-2-latest"}]},"context_window":32768,"prices":{"input_mtok":2,"output_mtok":10},"deprecated":true},{"id":"grok-2-vision-1212","name":"Grok 2 Vision 1212","description":"Our multimodal model that processes documents, diagrams, charts, screenshots, and photographs.","match":{"or":[{"equals":"grok-2-vision-1212"},{"equals":"grok-2-vision"},{"equals":"grok-2-vision-latest"}]},"context_window":32768,"prices":{"input_mtok":2,"output_mtok":10}},{"id":"grok-3","name":"Grok 3","description":"Flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in finance, healthcare, law, and science.","match":{"or":[{"equals":"grok-3"},{"equals":"grok-3-latest"},{"equals":"grok-3-beta"}]},"context_window":131072,"prices":{"input_mtok":3,"cache_read_mtok":0.75,"output_mtok":15}},{"id":"grok-3-fast","name":"Grok 3 Fast","description":"Excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in finance, healthcare, law, and science.","match":{"or":[{"equals":"grok-3-fast"},{"equals":"grok-3-fast-latest"},{"equals":"grok-3-fast-beta"}]},"context_window":131072,"prices":{"input_mtok":5,"cache_read_mtok":1.25,"output_mtok":25}},{"id":"grok-3-mini","name":"Grok 3 Mini","description":"A lightweight model that thinks before responding. Fast, smart, and great for logic-based tasks that do not require deep domain knowledge. The raw thinking traces are accessible.","match":{"or":[{"equals":"grok-3-mini"},{"equals":"grok-3-mini-beta"},{"equals":"grok-3-mini-latest"}]},"context_window":131072,"prices":{"input_mtok":0.3,"cache_read_mtok":0.075,"output_mtok":0.5}},{"id":"grok-3-mini-fast","name":"Grok 3 Mini Fast","description":"A lightweight model that thinks before responding. Fast, smart, and great for logic-based tasks that do not require deep domain knowledge. The raw thinking traces are accessible.","match":{"or":[{"equals":"grok-3-mini-fast"},{"equals":"grok-3-mini-fast-beta"},{"equals":"grok-3-mini-fast-latest"}]},"context_window":131072,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":4}},{"id":"grok-4-0709","name":"Grok 4","description":"A flagship model, offering unparalleled performance in natural language, math and reasoning - the perfect jack of all trades.","match":{"or":[{"equals":"grok-4-0709"},{"equals":"grok-4"},{"equals":"grok-4-latest"}]},"context_window":256000,"prices":{"input_mtok":3,"cache_read_mtok":0.75,"output_mtok":15}},{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast Non-Reasoning","description":"A frontier multimodal model optimized specifically for high-performance agentic tool calling.","match":{"or":[{"equals":"grok-4-1-fast-non-reasoning"},{"equals":"grok-4-1-fast-non-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-4-1-fast-reasoning","name":"Grok 4.1 Fast Reasoning","description":"A frontier multimodal model optimized specifically for high-performance agentic tool calling.","match":{"or":[{"equals":"grok-4-1-fast"},{"equals":"grok-4-1-fast-reasoning"},{"equals":"grok-4-1-fast-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast Non-Reasoning","description":"A frontier multimodal model optimized specifically for high-performance agentic tool calling.","match":{"or":[{"equals":"grok-4-fast-non-reasoning"},{"equals":"grok-4-fast-non-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-4-fast-reasoning","name":"Grok 4 Fast Reasoning","description":"A frontier multimodal model optimized specifically for high-performance agentic tool calling.","match":{"or":[{"equals":"grok-4-fast"},{"equals":"grok-4-fast-reasoning"},{"equals":"grok-4-fast-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-code-fast-1","name":"Grok Code Fast 1","description":"A speedy and economical reasoning model that excels at agentic coding.","match":{"or":[{"equals":"grok-code-fast"},{"equals":"grok-code-fast-1"},{"equals":"grok-code-fast-1-0825"}]},"context_window":256000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.02,"output_mtok":1.5}}]}] +[{"id":"anthropic","name":"Anthropic","pricing_urls":["https://www.anthropic.com/pricing#api"],"api_pattern":"https://api\\.anthropic\\.com","model_match":{"contains":"claude"},"provider_match":{"contains":"anthropic"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"cached_tokens","dest":"cache_read_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"claude-2","name":"Claude 2.0 / 2.1","description":"Claude 2 is Anthropic's previous generation model, offering reliable performance for various tasks. This includes Claude 2.0 and Claude 2.1.\n","match":{"or":[{"starts_with":"claude-2"},{"contains":"claude-v2"}]},"context_window":200000,"prices":{"input_mtok":8,"output_mtok":24}},{"id":"claude-3-5-haiku-latest","name":"Claude Haiku 3.5","description":"Fastest, most cost-effective model","match":{"or":[{"starts_with":"claude-3-5-haiku"},{"starts_with":"claude-3.5-haiku"}]},"context_window":200000,"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"claude-3-5-sonnet","name":"Claude Sonnet 3.5","description":"Claude 3.5 Sonnet is an ideal balance of intelligence and speed for enterprise workloads. Maximum utility at a lower price, dependable, balanced for scaled deployments.","match":{"or":[{"starts_with":"claude-3-5-sonnet"},{"starts_with":"claude-3.5-sonnet"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-7-sonnet-latest","name":"Claude Sonnet 3.7","description":"Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities.","match":{"or":[{"starts_with":"claude-3-7-sonnet"},{"starts_with":"claude-3.7-sonnet"},{"starts_with":"claude-sonnet-3.7"},{"starts_with":"claude-sonnet-3-7"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-haiku","name":"Claude Haiku 3","description":"Fastest, most cost-effective model","match":{"starts_with":"claude-3-haiku"},"context_window":200000,"prices":{"input_mtok":0.25,"cache_write_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":1.25}},{"id":"claude-3-opus-latest","name":"Claude Opus 3","description":"Claude 3 Opus was Anthropic's most powerful model for highly complex tasks. It boasts top-level performance, intelligence, fluency, and understanding.","match":{"starts_with":"claude-3-opus"},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-3-sonnet","name":"Claude 3 Sonnet","description":"Claude 3 Sonnet is an ideal balance of intelligence and speed for enterprise workloads. Maximum utility at a lower price, dependable, balanced for scaled deployments.","match":{"starts_with":"claude-3-sonnet"},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","description":"Fastest and most intelligent Haiku model","match":{"or":[{"starts_with":"claude-haiku-4-5"},{"starts_with":"claude-haiku-4.5"},{"starts_with":"claude-4-5-haiku"},{"starts_with":"claude-4.5-haiku"}]},"context_window":200000,"prices":{"input_mtok":1,"cache_write_mtok":1.25,"cache_read_mtok":0.1,"output_mtok":5}},{"id":"claude-opus-4-0","name":"Claude Opus 4","description":"Most intelligent model for complex tasks","match":{"or":[{"starts_with":"claude-opus-4-0"},{"starts_with":"claude-4-opus"},{"equals":"claude-opus-4"},{"equals":"claude-opus-4-20250514"}]},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-opus-4-1","name":"Claude Opus 4.1","description":"Most intelligent model for complex tasks","match":{"or":[{"starts_with":"claude-opus-4-1"},{"starts_with":"claude-opus-4.1"}]},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-opus-4-5","name":"Claude Opus 4.5","description":"Premium model combining maximum intelligence with practical performance","match":{"or":[{"starts_with":"claude-opus-4-5"},{"starts_with":"claude-opus-4.5"},{"starts_with":"claude-4-5-opus"},{"starts_with":"claude-4.5-opus"}]},"context_window":200000,"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"claude-opus-4-6","name":"Claude Opus 4.6","description":"Our most intelligent model for building agents and coding","match":{"or":[{"starts_with":"claude-opus-4-6"},{"starts_with":"claude-opus-4.6"},{"starts_with":"claude-4-6-opus"},{"starts_with":"claude-4.6-opus"}]},"context_window":200000,"prices":[{"prices":{"input_mtok":{"base":5,"tiers":[{"start":200000,"price":10}]},"cache_write_mtok":{"base":6.25,"tiers":[{"start":200000,"price":12.5}]},"cache_read_mtok":{"base":0.5,"tiers":[{"start":200000,"price":1}]},"output_mtok":{"base":25,"tiers":[{"start":200000,"price":37.5}]}}},{"constraint":{"start_date":"2026-03-13"},"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}}]},{"id":"claude-sonnet-4-0","name":"Claude Sonnet 4","description":"Optimal balance of intelligence, cost, and speed","match":{"or":[{"starts_with":"claude-sonnet-4-2025"},{"starts_with":"claude-sonnet-4-0"},{"starts_with":"claude-sonnet-4@"},{"equals":"claude-sonnet-4"},{"starts_with":"claude-4-sonnet"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","description":"Our best combination of speed and intelligence","match":{"or":[{"starts_with":"claude-sonnet-4-5"},{"starts_with":"claude-sonnet-4.5"}]},"context_window":1000000,"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","description":"Our best combination of speed and intelligence","match":{"or":[{"starts_with":"claude-sonnet-4-6"},{"starts_with":"claude-sonnet-4.6"}]},"context_window":1000000,"prices":[{"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"constraint":{"start_date":"2026-03-13"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}}]},{"id":"claude-v1","description":"Retired, here to match price sources","match":{"equals":"claude-v1"},"prices":{"input_mtok":8,"output_mtok":24}}]},{"id":"avian","name":"Avian","pricing_urls":["https://avian.io/pricing/"],"api_pattern":"https://api\\.avian\\.io","models":[{"id":"Meta-Llama-3.1-405B-Instruct","match":{"equals":"Meta-Llama-3.1-405B-Instruct"},"prices":{"input_mtok":1.5,"output_mtok":1.5}},{"id":"Meta-Llama-3.1-70B-Instruct","match":{"equals":"Meta-Llama-3.1-70B-Instruct"},"prices":{"input_mtok":0.45,"output_mtok":0.45}},{"id":"Meta-Llama-3.1-8B-Instruct","match":{"equals":"Meta-Llama-3.1-8B-Instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Meta-Llama-3.3-70B-Instruct","match":{"equals":"Meta-Llama-3.3-70B-Instruct"},"prices":{"input_mtok":0.45,"output_mtok":0.45}}]},{"id":"aws","name":"AWS Bedrock","pricing_urls":["https://aws.amazon.com/bedrock/pricing/"],"api_pattern":"https://bedrock-runtime\\.[a-z0-9-]+\\.amazonaws\\.com/","provider_match":{"contains":"bedrock"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"inputTokens","dest":"input_tokens","required":true},{"path":"outputTokens","dest":"output_tokens","required":true}]},{"api_flavor":"anthropic","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"amazon.nova-lite-v1:0","name":"Nova Lite","description":"Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite can handle real-time customer interactions, document analysis, and visual question-answering tasks with high accuracy.","match":{"contains":"amazon.nova-lite"},"prices":{"input_mtok":0.06,"cache_read_mtok":0.015,"output_mtok":0.24}},{"id":"amazon.nova-micro-v1:0","name":"Nova Micro","description":"Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length of 128K tokens and optimized for speed and cost, Amazon Nova Micro excels at tasks such as text summarization, translation, content classification, interactive chat, and brainstorming. It has simple mathematical reasoning and coding abilities.","match":{"contains":"amazon.nova-micro"},"prices":{"input_mtok":0.035,"cache_read_mtok":0.00875,"output_mtok":0.14}},{"id":"amazon.nova-premier-v1:0","name":"Nova Premier","match":{"contains":"amazon.nova-premier"},"prices":{"input_mtok":2.5,"cache_read_mtok":0.625,"output_mtok":12.5}},{"id":"amazon.nova-pro-v1:0","name":"Nova Pro","description":"Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December 2024, it achieves state-of-the-art performance on key benchmarks including visual question answering (TextVQA) and video understanding (VATEX).","match":{"contains":"amazon.nova-pro"},"prices":{"input_mtok":0.8,"cache_read_mtok":0.2,"output_mtok":3.2}},{"id":"amazon.nova-sonic-v1:0","name":"Nova Sonic","match":{"contains":"amazon.nova-sonic"},"prices":{"input_mtok":0.06,"output_mtok":0.24,"input_audio_mtok":3.4,"output_audio_mtok":13.6}},{"id":"amazon.titan-embed-text-v1","name":"Titan Embeddings G1 - Text","match":{"contains":"amazon.titan-embed-text"},"prices":{"input_mtok":0.1}},{"id":"amazon.titan-text-express-v1","name":"Titan Text G1 - Express","match":{"contains":"titan-text-express"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"amazon.titan-text-lite-v1","name":"Titan Text G1 - Lite","match":{"contains":"titan-text-lite"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"deepseek.r1-v1:0","name":"DeepSeek-R1","match":{"contains":"deepseek.r1"},"prices":{"input_mtok":1.35,"output_mtok":5.4}},{"id":"global.anthropic.claude-haiku-4-5-20251001-v1:0","match":{"contains":"global.anthropic.claude-haiku-4-5-20251001"},"prices":{"input_mtok":1,"cache_write_mtok":1.25,"cache_read_mtok":0.1,"output_mtok":5}},{"id":"global.anthropic.claude-opus-4-5-v1:0","match":{"contains":"global.anthropic.claude-opus-4-5"},"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"global.anthropic.claude-opus-4-6-v1:0","match":{"contains":"global.anthropic.claude-opus-4-6"},"prices":{"input_mtok":{"base":5,"tiers":[{"start":200000,"price":10}]},"cache_write_mtok":{"base":6.25,"tiers":[{"start":200000,"price":12.5}]},"cache_read_mtok":{"base":0.5,"tiers":[{"start":200000,"price":1}]},"output_mtok":{"base":25,"tiers":[{"start":200000,"price":37.5}]}}},{"id":"global.anthropic.claude-sonnet-4-20250514-v1:0","match":{"contains":"global.anthropic.claude-sonnet-4-20250514"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","match":{"contains":"global.anthropic.claude-sonnet-4-5-20250929"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"global.anthropic.claude-sonnet-4-6-v1:0","match":{"contains":"global.anthropic.claude-sonnet-4-6"},"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"id":"meta.llama3-1-70b-instruct-v1:0","name":"Llama 3.1 70B Instruct","match":{"contains":"meta.llama3-1-70b-instruct"},"prices":{"input_mtok":0.72,"output_mtok":0.72}},{"id":"meta.llama3-1-8b-instruct-v1:0","name":"Llama 3.1 8B Instruct","match":{"contains":"meta.llama3-1-8b-instruct"},"prices":{"input_mtok":0.22,"output_mtok":0.22}},{"id":"meta.llama3-2-11b-instruct-v1:0","name":"Llama 3.2 11B Instruct","match":{"contains":"meta.llama3-2-11b-instruct"},"prices":{"input_mtok":0.16,"output_mtok":0.16}},{"id":"meta.llama3-2-1b-instruct-v1:0","name":"Llama 3.2 1B Instruct","match":{"contains":"meta.llama3-2-1b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"meta.llama3-2-3b-instruct-v1:0","name":"Llama 3.2 3B Instruct","match":{"contains":"meta.llama3-2-3b-instruct"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"meta.llama3-2-90b-instruct-v1:0","name":"Llama 3.2 90B Instruct","match":{"contains":"meta.llama3-2-90b-instruct"},"prices":{"input_mtok":0.72,"output_mtok":0.72}},{"id":"meta.llama3-3-70b-instruct-v1:0","name":"Llama 3.3 70B Instruct","match":{"contains":"meta.llama3-3-70b-instruct"},"prices":{"input_mtok":0.72,"output_mtok":0.72}},{"id":"meta.llama3-70b-instruct-v1:0","name":"Llama 3 70B Instruct","match":{"contains":"meta.llama3-70b-instruct"},"prices":{"input_mtok":2.65,"output_mtok":3.5}},{"id":"meta.llama3-8b-instruct-v1:0","name":"Llama 3 8B Instruct","match":{"contains":"meta.llama3-8b-instruct"},"prices":{"input_mtok":0.3,"output_mtok":0.6}},{"id":"meta.llama4-maverick-17b-instruct-v1:0","name":"Llama 4 Maverick 17B Instruct","match":{"contains":"meta.llama4-maverick-17b-instruct"},"prices":{"input_mtok":0.24,"output_mtok":0.97}},{"id":"meta.llama4-scout-17b-instruct-v1:0","name":"Llama 4 Scout 17B Instruct","match":{"contains":"meta.llama4-scout-17b-instruct"},"prices":{"input_mtok":0.17,"output_mtok":0.66}},{"id":"mistral.mistral-7b-instruct-v0:2","name":"Mistral 7B Instruct","match":{"contains":"mistral.mistral-7b-instruct-v0"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"mistral.mistral-large-2402-v1:0","name":"Mistral Large (24.02)","match":{"contains":"mistral.mistral-large-2402"},"prices":{"input_mtok":4,"output_mtok":12}},{"id":"mistral.mistral-small-2402-v1:0","name":"Mistral Small (24.02)","match":{"contains":"mistral.mistral-small-2402"},"prices":{"input_mtok":1,"output_mtok":3}},{"id":"mistral.mixtral-8x7b-instruct-v0:1","name":"Mixtral 8x7B Instruct","match":{"contains":"mistral.mixtral-8x7b-instruct-v0"},"prices":{"input_mtok":0.45,"output_mtok":0.7}},{"id":"mistral.pixtral-large-2502-v1:0","name":"Pixtral Large (25.02)","match":{"contains":"mistral.pixtral-large-2502"},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"openai.gpt-oss-120b-1:0","name":"gpt-oss-120b","match":{"contains":"openai.gpt-oss-120b-1"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai.gpt-oss-20b-1:0","name":"gpt-oss-20b","match":{"contains":"openai.gpt-oss-20b-1"},"prices":{"input_mtok":0.07,"output_mtok":0.3}},{"id":"qwen.qwen3-32b-v1:0","name":"Qwen3 32B (dense)","match":{"contains":"qwen.qwen3-32b"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"qwen.qwen3-coder-30b-a3b-v1:0","name":"Qwen3-Coder-30B-A3B-Instruct","match":{"contains":"qwen.qwen3-coder-30b-a3b"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"qwen.qwen3-coder-480b-a35b-v1:0","name":"Qwen3-Coder-480B-A35B-Instruct","match":{"contains":"qwen.qwen3-coder-480b-a35b"},"prices":{"input_mtok":0.45,"output_mtok":1.8}},{"id":"qwen.qwen3-vl-235b-a22b-v1:0","name":"Qwen3-VL-235B-A22B-Instruct","match":{"contains":"qwen.qwen3-vl-235b-a22b"},"prices":{"input_mtok":0.53,"output_mtok":2.66}},{"id":"regional.anthropic.claude-3-5-haiku-20241022-v1:0","match":{"contains":"claude-3-5-haiku-20241022"},"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"regional.anthropic.claude-3-5-sonnet-20240620-v1:0","match":{"contains":"claude-3-5-sonnet-20240620"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-3-5-sonnet-20241022-v2:0","match":{"contains":"claude-3-5-sonnet-20241022"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-3-7-sonnet-20250219-v1:0","match":{"contains":"claude-3-7-sonnet-20250219"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-3-haiku-20240307-v1:0","match":{"contains":"claude-3-haiku-20240307"},"prices":{"input_mtok":0.25,"output_mtok":1.25}},{"id":"regional.anthropic.claude-3-opus-20240229-v1:0","match":{"contains":"claude-3-opus-20240229"},"prices":{"input_mtok":15,"output_mtok":75}},{"id":"regional.anthropic.claude-3-sonnet-20240229-v1:0","match":{"contains":"claude-3-sonnet-20240229"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-haiku-4-5-20251001-v1:0","match":{"or":[{"starts_with":"anthropic.claude-haiku-4-5-20251001"},{"starts_with":"claude-haiku-4-5-20251001"},{"contains":"us.anthropic.claude-haiku-4-5-20251001"},{"contains":"au.anthropic.claude-haiku-4-5-20251001"},{"contains":"apac.anthropic.claude-haiku-4-5-20251001"},{"contains":"eu.anthropic.claude-haiku-4-5-20251001"},{"contains":"us-gov.anthropic.claude-haiku-4-5-20251001"},{"contains":"jp.anthropic.claude-haiku-4-5-20251001"}]},"prices":{"input_mtok":1.1,"cache_write_mtok":1.375,"cache_read_mtok":0.11,"output_mtok":5.5}},{"id":"regional.anthropic.claude-opus-4-1-20250805-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-1-20250805"},{"starts_with":"claude-opus-4-1-20250805"},{"contains":"us.anthropic.claude-opus-4-1-20250805"},{"contains":"au.anthropic.claude-opus-4-1-20250805"},{"contains":"apac.anthropic.claude-opus-4-1-20250805"},{"contains":"eu.anthropic.claude-opus-4-1-20250805"},{"contains":"us-gov.anthropic.claude-opus-4-1-20250805"},{"contains":"jp.anthropic.claude-opus-4-1-20250805"}]},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"regional.anthropic.claude-opus-4-20250514-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-20250514"},{"starts_with":"claude-opus-4-20250514"},{"contains":"us.anthropic.claude-opus-4-20250514"},{"contains":"au.anthropic.claude-opus-4-20250514"},{"contains":"apac.anthropic.claude-opus-4-20250514"},{"contains":"eu.anthropic.claude-opus-4-20250514"},{"contains":"us-gov.anthropic.claude-opus-4-20250514"},{"contains":"jp.anthropic.claude-opus-4-20250514"}]},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"regional.anthropic.claude-opus-4-5-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-5"},{"starts_with":"claude-opus-4-5"},{"contains":"us.anthropic.claude-opus-4-5"},{"contains":"au.anthropic.claude-opus-4-5"},{"contains":"apac.anthropic.claude-opus-4-5"},{"contains":"eu.anthropic.claude-opus-4-5"},{"contains":"us-gov.anthropic.claude-opus-4-5"},{"contains":"jp.anthropic.claude-opus-4-5"}]},"prices":{"input_mtok":5.5,"cache_write_mtok":6.875,"cache_read_mtok":0.55,"output_mtok":27.5}},{"id":"regional.anthropic.claude-opus-4-6-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-6"},{"starts_with":"claude-opus-4-6"},{"contains":"us.anthropic.claude-opus-4-6"},{"contains":"au.anthropic.claude-opus-4-6"},{"contains":"apac.anthropic.claude-opus-4-6"},{"contains":"eu.anthropic.claude-opus-4-6"},{"contains":"us-gov.anthropic.claude-opus-4-6"},{"contains":"jp.anthropic.claude-opus-4-6"}]},"prices":{"input_mtok":{"base":5.5,"tiers":[{"start":200000,"price":11}]},"cache_write_mtok":{"base":6.875,"tiers":[{"start":200000,"price":13.75}]},"cache_read_mtok":{"base":0.55,"tiers":[{"start":200000,"price":1.1}]},"output_mtok":{"base":27.5,"tiers":[{"start":200000,"price":41.25}]}}},{"id":"regional.anthropic.claude-sonnet-4-20250514-v1:0","match":{"or":[{"starts_with":"anthropic.claude-sonnet-4-20250514"},{"starts_with":"claude-sonnet-4-20250514"},{"contains":"us.anthropic.claude-sonnet-4-20250514"},{"contains":"au.anthropic.claude-sonnet-4-20250514"},{"contains":"apac.anthropic.claude-sonnet-4-20250514"},{"contains":"eu.anthropic.claude-sonnet-4-20250514"},{"contains":"us-gov.anthropic.claude-sonnet-4-20250514"},{"contains":"jp.anthropic.claude-sonnet-4-20250514"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-sonnet-4-5-20250929-v1:0","match":{"or":[{"starts_with":"anthropic.claude-sonnet-4-5-20250929"},{"starts_with":"claude-sonnet-4-5-20250929"},{"contains":"us.anthropic.claude-sonnet-4-5-20250929"},{"contains":"au.anthropic.claude-sonnet-4-5-20250929"},{"contains":"apac.anthropic.claude-sonnet-4-5-20250929"},{"contains":"eu.anthropic.claude-sonnet-4-5-20250929"},{"contains":"us-gov.anthropic.claude-sonnet-4-5-20250929"},{"contains":"jp.anthropic.claude-sonnet-4-5-20250929"}]},"prices":{"input_mtok":3.3,"cache_write_mtok":4.125,"cache_read_mtok":0.33,"output_mtok":16.5}},{"id":"regional.anthropic.claude-sonnet-4-6-v1:0","match":{"or":[{"starts_with":"anthropic.claude-sonnet-4-6"},{"starts_with":"claude-sonnet-4-6"},{"contains":"us.anthropic.claude-sonnet-4-6"},{"contains":"au.anthropic.claude-sonnet-4-6"},{"contains":"apac.anthropic.claude-sonnet-4-6"},{"contains":"eu.anthropic.claude-sonnet-4-6"},{"contains":"us-gov.anthropic.claude-sonnet-4-6"},{"contains":"jp.anthropic.claude-sonnet-4-6"}]},"prices":{"input_mtok":{"base":3.3,"tiers":[{"start":200000,"price":6.6}]},"cache_write_mtok":{"base":4.125,"tiers":[{"start":200000,"price":8.25}]},"cache_read_mtok":{"base":0.33,"tiers":[{"start":200000,"price":0.66}]},"output_mtok":{"base":16.5,"tiers":[{"start":200000,"price":24.75}]}}}]},{"id":"azure","name":"Microsoft Azure","pricing_urls":["https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/#pricing"],"api_pattern":"(https?://)?([^.]*\\.)?(?:openai\\.azure\\.com|azure-api\\.net|cognitiveservices\\.azure\\.com)","price_comments":"These are prices for \"*-Global\" models, prices for \"Regional\" models are often slightly higher. Retired models are listed at https://learn.microsoft.com/th-th/azure/ai-foundry/openai/concepts/legacy-models","extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"responses","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":["input_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"embeddings","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true}]},{"api_flavor":"anthropic","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]}],"fallback_model_providers":["openai","anthropic"],"models":[{"id":"ada","match":{"or":[{"equals":"ada"},{"equals":"text-embedding-ada"},{"equals":"text-embedding-ada-002"},{"equals":"text-embedding-ada-002-v2"}]},"prices":{"input_mtok":0.1}},{"id":"babbage","match":{"or":[{"equals":"babbage"},{"equals":"babbage-002"}]},"prices":{"input_mtok":0.4}},{"id":"curie","match":{"or":[{"equals":"curie"},{"equals":"text-curie"},{"equals":"text-curie-001"}]},"prices":{"input_mtok":2}},{"id":"davinci","match":{"or":[{"equals":"davinci"},{"equals":"davinci-002"},{"equals":"text-davinci"},{"equals":"text-davinci-002"}]},"prices":{"input_mtok":2}},{"id":"mai-ds-r1:free","name":"MAI DS R1 (free)","description":"MAI-DS-R1 is a post-trained variant of DeepSeek-R1 developed by the Microsoft AI team to improve the model's responsiveness on previously blocked topics while enhancing its safety profile. Built on top of DeepSeek-R1's reasoning foundation, it integrates 110k examples from the Tulu-3 SFT dataset and 350k internally curated multilingual safety-alignment samples. The model retains strong reasoning, coding, and problem-solving capabilities, while unblocking a wide range of prompts previously restricted in R1.","match":{"equals":"mai-ds-r1:free"},"prices":{}},{"id":"o1","match":{"or":[{"equals":"o1"},{"equals":"o1-2024-12-17"},{"equals":"o1-preview"},{"equals":"o1-preview-2024-09-12"}]},"prices":{"input_mtok":15,"cache_read_mtok":7.5,"output_mtok":60}},{"id":"o1-mini","match":{"or":[{"equals":"o1-mini"},{"equals":"o1-mini-2024-09-12"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o3-2025-04-16","match":{"or":[{"equals":"o3"},{"equals":"o3-2025-04-16"}]},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"o3-mini","match":{"or":[{"equals":"o3-mini"},{"equals":"o3-mini-2025-01-31"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o4-mini","match":{"or":[{"contains":"o4-mini"},{"contains":"o4-mini-2025-04-16"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.28,"output_mtok":4.4}},{"id":"phi-3-medium-128k-instruct","name":"Phi-3 Medium 128K Instruct","description":"Phi-3 128K Medium is a powerful 14-billion parameter model designed for advanced language understanding, reasoning, and instruction following. Optimized through supervised fine-tuning and preference adjustments, it excels in tasks involving common sense, mathematics, logical reasoning, and code processing.","match":{"equals":"phi-3-medium-128k-instruct"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"phi-3-mini-128k-instruct","name":"Phi-3 Mini 128K Instruct","description":"Phi-3 Mini is a powerful 3.8B parameter model designed for advanced language understanding, reasoning, and instruction following. Optimized through supervised fine-tuning and preference adjustments, it excels in tasks involving common sense, mathematics, logical reasoning, and code processing.","match":{"equals":"phi-3-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-3.5-mini-128k-instruct","name":"Phi-3.5 Mini 128K Instruct","description":"Phi-3.5 models are lightweight, state-of-the-art open models. These models were trained with Phi-3 datasets that include both synthetic data and the filtered, publicly available websites data, with a focus on high quality and reasoning-dense properties. Phi-3.5 Mini uses 3.8B parameters, and is a dense decoder-only transformer model using the same tokenizer as Phi-3 Mini.","match":{"equals":"phi-3.5-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-4","name":"Phi 4","description":"Microsoft Research Phi-4 is designed to perform well in complex reasoning tasks and can operate efficiently in situations with limited memory or where quick responses are needed.","match":{"equals":"phi-4"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"phi-4-multimodal-instruct","name":"Phi 4 Multimodal Instruct","description":"Phi-4 Multimodal Instruct is a versatile 5.6B parameter foundation model that combines advanced reasoning and instruction-following capabilities across both text and visual inputs, providing accurate text outputs. The unified architecture enables efficient, low-latency inference, suitable for edge and mobile deployments. Phi-4 Multimodal Instruct supports text inputs in multiple languages including Arabic, Chinese, English, French, German, Japanese, Spanish, and more, with visual input optimized primarily for English. It delivers impressive performance on multimodal tasks involving mathematical, scientific, and document reasoning, providing developers and enterprises a powerful yet compact model for sophisticated interactive applications. For more information, see the Phi-4 Multimodal blog post.","match":{"equals":"phi-4-multimodal-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"phi-4-reasoning-plus","name":"Phi 4 Reasoning Plus","description":"Phi-4-reasoning-plus is an enhanced 14B parameter model from Microsoft, fine-tuned from Phi-4 with additional reinforcement learning to boost accuracy on math, science, and code reasoning tasks. It uses the same dense decoder-only transformer architecture as Phi-4, but generates longer, more comprehensive outputs structured into a step-by-step reasoning trace and final answer.","match":{"equals":"phi-4-reasoning-plus"},"prices":{"input_mtok":0.07,"output_mtok":0.35}},{"id":"phi-4-reasoning-plus:free","name":"Phi 4 Reasoning Plus (free)","description":"Phi-4-reasoning-plus is an enhanced 14B parameter model from Microsoft, fine-tuned from Phi-4 with additional reinforcement learning to boost accuracy on math, science, and code reasoning tasks. It uses the same dense decoder-only transformer architecture as Phi-4, but generates longer, more comprehensive outputs structured into a step-by-step reasoning trace and final answer.","match":{"equals":"phi-4-reasoning-plus:free"},"prices":{}},{"id":"phi-4-reasoning:free","name":"Phi 4 Reasoning (free)","description":"Phi-4-reasoning is a 14B parameter dense decoder-only transformer developed by Microsoft, fine-tuned from Phi-4 to enhance complex reasoning capabilities. It uses a combination of supervised fine-tuning on chain-of-thought traces and reinforcement learning, targeting math, science, and code reasoning tasks. With a 32k context window and high inference efficiency, it is optimized for structured responses in a two-part format: reasoning trace followed by a final solution.","match":{"equals":"phi-4-reasoning:free"},"prices":{}},{"id":"text-embedding-3-large","match":{"equals":"text-embedding-3-large"},"prices":{"input_mtok":0.13}},{"id":"text-embedding-3-small","match":{"equals":"text-embedding-3-small"},"prices":{"input_mtok":0.02}},{"id":"wizardlm-2-8x22b","name":"WizardLM-2 8x22B","description":"WizardLM-2 8x22B is Microsoft AI's most advanced Wizard model. It demonstrates highly competitive performance compared to leading proprietary models, and it consistently outperforms all existing state-of-the-art opensource models.","match":{"equals":"wizardlm-2-8x22b"},"prices":{"input_mtok":0.48,"output_mtok":0.48}}]},{"id":"cerebras","name":"Cerebras","pricing_urls":["https://www.cerebras.ai/pricing#pricing","https://inference-docs.cerebras.ai/models/openai-oss"],"api_pattern":"https://api\\.cerebras\\.ai","model_match":{"contains":"cerebras"},"provider_match":{"contains":"cerebras"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"gpt-oss-120b","name":"GPT-OSS 120B","description":"OpenAI's flagship open source model, built on a Mixture-of-Experts (MoE) architecture with 120 billion parameters and 128 experts. Delivers frontier reasoning capabilities with record-breaking inference speeds on Cerebras hardware (~3,000 tokens/second).","match":{"or":[{"equals":"gpt-oss-120b"},{"starts_with":"cerebras/gpt-oss-120b"},{"starts_with":"cerebras:gpt-oss-120b"}]},"context_window":131072,"price_comments":"Developer tier pricing. Free tier: 65k context, Paid tier: 131k context.","prices":{"input_mtok":0.35,"output_mtok":0.75}},{"id":"llama-3.3-70b","name":"Llama 3.3 70B","description":"Meta's enhanced 70B model delivering 405B-level accuracy. Optimized for chat, coding, instruction following, mathematics, and reasoning with high-speed inference on Cerebras hardware (~2,100 tokens/second).","match":{"or":[{"equals":"llama-3.3-70b"},{"starts_with":"cerebras/llama-3.3-70b"},{"starts_with":"cerebras:llama-3.3-70b"}]},"context_window":128000,"price_comments":"Developer tier pricing. Free tier: 65k context, Paid tier: 128k context.","prices":{"input_mtok":0.85,"output_mtok":1.2}},{"id":"llama3.1-8b","name":"Llama 3.1 8B","description":"Meta's Llama 3.1 8B model for general-purpose tasks including chat, coding, and instruction following. Optimized for fast inference on Cerebras hardware (~2,200 tokens/second).","match":{"or":[{"equals":"llama3.1-8b"},{"starts_with":"cerebras/llama3.1-8b"},{"starts_with":"cerebras:llama3.1-8b"}]},"context_window":32768,"price_comments":"Developer tier pricing. Free tier: 8k context, Paid tier: 32k context.","prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"qwen-3-32b","name":"Qwen 3 32B","description":"Qwen's 32B parameter model with enhanced reasoning and coding capabilities. Supports both standard and reasoning modes for complex tasks, with fast inference speeds on Cerebras hardware (~2,600 tokens/second).","match":{"or":[{"equals":"qwen-3-32b"},{"starts_with":"cerebras/qwen-3-32b"},{"starts_with":"cerebras:qwen-3-32b"}]},"context_window":131072,"price_comments":"Developer tier pricing. Free tier: 65k context, Paid tier: 131k context.","prices":{"input_mtok":0.4,"output_mtok":0.8}},{"id":"qwen-3-coder-480b","name":"qwen-3-coder-480b","match":{"equals":"qwen-3-coder-480b"},"price_comments":"Seems to be no longer available on cerebras, here to help with tests","prices":{}}]},{"id":"cohere","name":"Cohere","pricing_urls":["https://cohere.com/pricing"],"api_pattern":"https://api\\.cohere\\.ai","model_match":{"starts_with":"command-"},"provider_match":{"contains":"cohere"},"extractors":[{"api_flavor":"default","root":["usage","billed_units"],"model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"embeddings","root":["meta","billed_units"],"model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true}]}],"models":[{"id":"command","name":"Command","description":"Command is an instruction-following conversational model that performs language tasks with high quality, more reliably and with a longer context than our base generative models.","match":{"equals":"command"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"command-a","name":"Command A","description":"Command A is an open-weights 111B parameter model with a 256k context window focused on delivering great performance across agentic, multilingual, and coding use cases.\nCompared to other leading proprietary and open-weights models Command A delivers maximum performance with minimum hardware costs, excelling on business-critical agentic and multilingual tasks.","match":{"starts_with":"command-a"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r","name":"Command R","description":"Command-R is a 35B parameter model that performs conversational language tasks at a higher quality, more reliably, and with a longer context than previous models. It can be used for complex workflows like code generation, retrieval augmented generation (RAG), tool use, and agents.","match":{"or":[{"equals":"command-r"},{"equals":"command-r-08-2024"}]},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"command-r-plus","name":"Command R+","description":"Command R+ is a new, 104B-parameter LLM from Cohere. It's useful for roleplay, general consumer usecases, and Retrieval Augmented Generation (RAG).","match":{"or":[{"equals":"command-r-plus"},{"equals":"command-r-plus-08-2024"}]},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r7b","name":"Command R7B","description":"Command R7B (12-2024) is a small, fast update of the Command R+ model, delivered in December 2024. It excels at RAG, tool use, agents, and similar tasks requiring complex reasoning and multiple steps.","match":{"or":[{"equals":"command-r7b"},{"equals":"command-r7b-12-2024"}]},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"embed-v4.0","name":"Embed v4.0","description":"Embed v4.0 is a state-of-the-art embedding model designed for precise retrieval across noisy, multilingual, and multimodal data.","match":{"equals":"embed-v4.0"},"context_window":128000,"prices":{"input_mtok":0.12}}]},{"id":"deepseek","name":"Deepseek","pricing_urls":["https://api-docs.deepseek.com/quick_start/pricing"],"api_pattern":"https://api\\.deepseek\\.com","price_comments":"Deepseek off-peak pricing applies \"UTC 16:30-00:30\" so we switch it around and use the off-peak pricing as the default (first) price then the second price with a constraint is the \"standard\" pricing that applies \"UTC 00:30-16:30\".","model_match":{"contains":"deepseek"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"deepseek-chat","name":"DeepSeek Chat","description":"DeepSeek-V3 is the latest model from the DeepSeek team, building upon the instruction following and coding abilities of the previous versions. Pre-trained on nearly 15 trillion tokens, the reported evaluations reveal that the model outperforms other open-source models and rivals leading closed-source models.","match":{"or":[{"starts_with":"deepseek-chat"},{"equals":"deepseek-chat-v3-0324"}]},"context_window":64000,"prices":[{"prices":{"input_mtok":0.135,"cache_read_mtok":0.035,"output_mtok":0.55}},{"constraint":{"start_time":"00:30:00Z","end_time":"16:30:00Z"},"prices":{"input_mtok":0.27,"cache_read_mtok":0.07,"output_mtok":1.1}}]},{"id":"deepseek-reasoner","name":"Deepseek R1","description":"DeepSeek R1 is here: Performance on par with OpenAI o1, but open-sourced and with fully open reasoning tokens. It's 671B parameters in size, with 37B active in an inference pass.","match":{"or":[{"equals":"deepseek-reasoner"},{"starts_with":"deepseek-r1"},{"equals":"deepseek-r1-0528"}]},"context_window":64000,"prices":[{"prices":{"input_mtok":0.135,"cache_read_mtok":0.035,"output_mtok":0.55}},{"constraint":{"start_time":"00:30:00Z","end_time":"16:30:00Z"},"prices":{"input_mtok":0.55,"cache_read_mtok":0.14,"output_mtok":2.19}}]}]},{"id":"fireworks","name":"Fireworks","pricing_urls":["https://fireworks.ai/pricing"],"api_pattern":"https://api\\.fireworks\\.ai","model_match":{"starts_with":"accounts/fireworks/models/"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"deepseek-r1-0528","name":"DeepSeek R1 0528","description":"The updated DeepSeek-R1-0528 model delivers major improvements in reasoning, inference, and accuracy through enhanced post-training optimization and greater computational resources. It now performs at a level approaching top-tier models like O3 and Gemini 2.5 Pro, with notable gains in complex tasks such as math and programming.","match":{"equals":"accounts/fireworks/models/deepseek-r1-0528"},"context_window":160000,"prices":{"input_mtok":3,"output_mtok":8}},{"id":"deepseek-v3-0324","name":"Deepseek V3 03-24","description":"A strong Mixture-of-Experts (MoE) language model with 671B total parameters with 37B activated for each token from Deepseek. Updated checkpoint.","match":{"equals":"accounts/fireworks/models/deepseek-v3-0324"},"context_window":160000,"price_comments":"docs give just one price - \"Pricing Per 1M Tokens\", we assume that's input and output","prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"deepseek-v3p2","name":"Deepseek V3.2","description":"Model from Deepseek that harmonizes high computational efficiency with superior reasoning and agent performance. 675B parameter MoE model.","match":{"equals":"accounts/fireworks/models/deepseek-v3p2"},"context_window":163840,"prices":{"input_mtok":0.56,"cache_read_mtok":0.28,"output_mtok":1.68}},{"id":"gemma-3-27b-it","name":"Gemma 3 27B Instruct","match":{"equals":"accounts/fireworks/models/gemma-3-27b-it"},"context_window":131000,"price_comments":"docs give just one price - \"Pricing Per 1M Tokens\", we assume that's input and output","prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"glm-4p7","name":"GLM-4.7","description":"Next-generation general-purpose model from Z.ai optimized for coding, reasoning, and agentic workflows. 352B parameter MoE model with advanced thinking controls.","match":{"equals":"accounts/fireworks/models/glm-4p7"},"context_window":202752,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"gpt-oss-120b","name":"OpenAI gpt-oss-120b","description":"OpenAI's open-weight 117B parameter MoE model designed for production, general purpose, high reasoning use-cases. Features powerful reasoning, agentic tasks, and versatile developer use cases.","match":{"equals":"accounts/fireworks/models/gpt-oss-120b"},"context_window":131072,"prices":{"input_mtok":0.15,"cache_read_mtok":0.07,"output_mtok":0.6}},{"id":"gpt-oss-20b","name":"OpenAI gpt-oss-20b","description":"OpenAI's open-weight 21.5B parameter model designed for powerful reasoning, agentic tasks, and versatile developer use cases. Optimized for lower latency and local or specialized tasks.","match":{"equals":"accounts/fireworks/models/gpt-oss-20b"},"context_window":131072,"prices":{"input_mtok":0.07,"cache_read_mtok":0.04,"output_mtok":0.3}},{"id":"kimi-k2p5","name":"Kimi K2.5","description":"Moonshot AI's flagship agentic model. Unifies vision and text, thinking and non-thinking modes, and single-agent and multi-agent execution into one model. 1T parameter MoE model.","match":{"equals":"accounts/fireworks/models/kimi-k2p5"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.1,"output_mtok":3}},{"id":"llama-v3p1-8b-instruct","name":"Llama 3.1 8B Instruct","description":"The Meta Llama 3.1 collection of multilingual large language models (LLMs) is a collection of pretrained and instruction tuned generative models in 8B, 70B and 405B sizes. The Llama 3.1 instruction tuned text only models (8B, 70B, 405B) are optimized for multilingual dialogue use cases and outperform many of the available open source and closed chat models on common industry benchmarks.","match":{"equals":"accounts/fireworks/models/llama-v3p1-8b-instruct"},"context_window":131000,"price_comments":"docs give just one price - \"Pricing Per 1M Tokens\", we assume that's input and output","prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama4-maverick-instruct-basic","name":"Llama 4 Maverick Instruct (Basic)","description":"The Meta Llama 3.1 collection of multilingual large language models (LLMs) is a collection of pretrained and instruction tuned generative models in 8B, 70B and 405B sizes. The Llama 3.1 instruction tuned text only models (8B, 70B, 405B) are optimized for multilingual dialogue use cases and outperform many of the available open source and closed chat models on common industry benchmarks.","match":{"equals":"accounts/fireworks/models/llama4-maverick-instruct-basic"},"context_window":1000000,"prices":{"input_mtok":0.22,"output_mtok":0.88}},{"id":"minimax-m2p1","name":"MiniMax-M2.1","description":"Built for strong real-world performance across complex, multi-language, and agent-driven workflows. 228B parameter model with robust support for systems, backend, web, mobile, and office-style tasks.","match":{"equals":"accounts/fireworks/models/minimax-m2p1"},"context_window":204800,"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"qwen2p5-vl-72b-instruct","name":"Qwen2.5-VL 72B Instruct","description":"Latest Qwen's VLM model","match":{"equals":"accounts/fireworks/models/qwen2p5-vl-72b-instruct"},"context_window":128000,"price_comments":"docs give just one price - \"Pricing Per 1M Tokens\", we assume that's input and output","prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen3-235b-a22b","name":"Qwen3 235B-A22B","description":"Qwen3 is the latest evolution in the Qwen LLM series, featuring both dense and MoE models with major advancements in reasoning, agent capabilities, multilingual support, and instruction following. It uniquely allows seamless switching between \"thinking\" (for complex logic, math, coding) and \"non-thinking\" modes (for fast, general dialogue), delivering strong performance across tasks.","match":{"equals":"accounts/fireworks/models/qwen3-235b-a22b"},"context_window":128000,"prices":{"input_mtok":0.22,"output_mtok":0.88}}]},{"id":"google","name":"Google","pricing_urls":["https://ai.google.dev/gemini-api/docs/pricing","https://cloud.google.com/vertex-ai/generative-ai/pricing"],"api_pattern":"https://(.*\\.)?googleapis\\.com","model_match":{"contains":"gemini"},"provider_match":{"or":[{"contains":"google"},{"contains":"vertex"},{"contains":"gemini"}]},"extractors":[{"api_flavor":"default","root":"usageMetadata","model_path":"modelVersion","mappings":[{"path":"promptTokenCount","dest":"input_tokens","required":false},{"path":"cachedContentTokenCount","dest":"cache_read_tokens","required":false},{"path":["cacheTokensDetails",{"type":"array-match","field":"modality","match":{"equals":"AUDIO"}},"tokenCount"],"dest":"cache_audio_read_tokens","required":false},{"path":["promptTokensDetails",{"type":"array-match","field":"modality","match":{"equals":"AUDIO"}},"tokenCount"],"dest":"input_audio_tokens","required":false},{"path":["candidatesTokensDetails",{"type":"array-match","field":"modality","match":{"equals":"AUDIO"}},"tokenCount"],"dest":"output_audio_tokens","required":false},{"path":"candidatesTokenCount","dest":"output_tokens","required":false},{"path":"thoughtsTokenCount","dest":"output_tokens","required":false},{"path":"toolUsePromptTokenCount","dest":"output_tokens","required":false}]},{"api_flavor":"anthropic","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"fallback_model_providers":["anthropic"],"models":[{"id":"claude-3-5-haiku","match":{"contains":"claude-3-5-haiku"},"context_window":200000,"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"claude-3-5-sonnet","match":{"contains":"claude-3-5-sonnet"},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-7-sonnet","match":{"contains":"claude-3-7-sonnet"},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-haiku","match":{"contains":"claude-3-haiku"},"context_window":200000,"prices":{"input_mtok":0.25,"cache_write_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":1.25}},{"id":"claude-3-opus","match":{"contains":"claude-3-opus"},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-4-opus","match":{"or":[{"contains":"claude-4-opus"},{"contains":"claude-opus-4@"},{"contains":"claude-opus-4-0"},{"contains":"claude-opus-4-1"},{"equals":"claude-opus-4"}]},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-4-sonnet","match":{"or":[{"contains":"claude-4-sonnet"},{"contains":"claude-sonnet-4"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-opus-4-6","match":{"or":[{"contains":"claude-4-6-opus"},{"contains":"claude-opus-4-6"},{"contains":"claude-4.6-opus"},{"contains":"claude-opus-4.6"}]},"context_window":200000,"prices":{"input_mtok":{"base":5,"tiers":[{"start":200000,"price":10}]},"cache_write_mtok":{"base":6.25,"tiers":[{"start":200000,"price":12.5}]},"cache_read_mtok":{"base":0.5,"tiers":[{"start":200000,"price":1}]},"output_mtok":{"base":25,"tiers":[{"start":200000,"price":37.5}]}}},{"id":"gemini-1.0-pro-vision-001","name":"gemini 1.0 pro vision","description":"Google's first-generation advanced multimodal model that can understand text, code, and images. It provides strong reasoning capabilities and follows instructions effectively.","match":{"equals":"gemini-1.0-pro-vision-001"},"context_window":32768,"price_comments":"I can't find anything about this model or it's pricing, so trusting the original source","prices":{"input_mtok":0.125,"output_mtok":0.375}},{"id":"gemini-1.5-flash","name":"gemini 1.5 flash","description":"A faster, more cost-effective variant of Gemini 1.5 that maintains strong capabilities while optimizing for performance and cost efficiency. Suitable for production deployments requiring high throughput.","match":{"contains":"gemini-1.5-flash"},"context_window":1000000,"prices":{"input_mtok":{"base":0.075,"tiers":[{"start":128000,"price":0.15}]},"cache_read_mtok":{"base":0.01875,"tiers":[{"start":128000,"price":0.0375}]},"output_mtok":{"base":0.3,"tiers":[{"start":128000,"price":0.6}]}}},{"id":"gemini-1.5-pro","name":"gemini 1.5 Pro","description":"Google's most capable multimodal model with an extremely long context window of up to 1 million tokens. It excels at complex reasoning, long-form content processing, and multimodal understanding.","match":{"contains":"gemini-1.5-pro"},"context_window":1000000,"prices":{"input_mtok":{"base":1.25,"tiers":[{"start":128000,"price":2.5}]},"output_mtok":{"base":5,"tiers":[{"start":128000,"price":10}]}}},{"id":"gemini-2.0-flash","name":"gemini 2.0 flash","description":"The newest generation of Google's Gemini models, featuring improved reasoning, instruction following, and factual accuracy, with the Flash variant optimized for cost-efficiency and performance.","match":{"or":[{"ends_with":"gemini-2.0-flash"},{"contains":"gemini-2.0-flash-0"},{"contains":"gemini-2.0-flash-exp"},{"contains":"gemini-2.0-flash-thinking"},{"contains":"gemini-2.0-flash-latest"}]},"context_window":1000000,"prices":{"input_mtok":0.1,"cache_read_mtok":{"base":0.025,"tiers":[{"start":1000000,"price":0.175}]},"output_mtok":0.4,"input_audio_mtok":0.7}},{"id":"gemini-2.0-flash-lite","name":"gemini 2.0 flash lite","description":"A lighter, more cost-effective version of Gemini 2.0 Flash, designed for applications requiring high efficiency while maintaining good performance. Ideal for high-volume, cost-sensitive deployments.","match":{"contains":"gemini-2.0-flash-lite"},"context_window":1000000,"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","description":"Gemini 2.5 Flash is Google's state-of-the-art workhorse model, specifically designed for advanced reasoning, coding, mathematics, and scientific tasks. It includes built-in \"thinking\" capabilities, enabling it to provide responses with greater accuracy and nuanced context handling.","match":{"or":[{"equals":"gemini-2.5-flash"},{"equals":"gemini-2.5-flash-latest"},{"equals":"gemini-2.5-flash-preview-09-2025"}]},"prices":{"input_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":2.5,"input_audio_mtok":1,"cache_audio_read_mtok":0.1}},{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","description":"Google's specialized image generation model optimized for fast, high-quality image generation. Outputs images at 1024x1024 resolution, with each image consuming 1290 output tokens.","match":{"or":[{"equals":"gemini-2.5-flash-image"},{"equals":"gemini-2.5-flash-image-preview"}]},"context_window":1000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-flash-image. Image output is priced at $30 per 1M tokens, with each 1024x1024 image = 1290 tokens = $0.039/image. Cache pricing is not available for this model.","prices":{"input_mtok":0.3,"output_mtok":30}},{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","description":"Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance across common benchmarks compared to earlier Flash models. By default, \"thinking\" (i.e. multi-pass reasoning) is disabled to prioritize speed, but developers can enable it via the Reasoning API parameter to selectively trade off cost for intelligence.","match":{"or":[{"equals":"gemini-2.5-flash-lite"},{"starts_with":"gemini-2.5-flash-lite-preview"}]},"context_window":1000000,"prices":{"input_mtok":0.1,"cache_read_mtok":0.01,"output_mtok":0.4,"input_audio_mtok":0.3,"cache_audio_read_mtok":0.03}},{"id":"gemini-2.5-flash-preview","name":"Gemini 2.5 Flash Preview 05-20","description":"Gemini 2.5 Flash May 20th Checkpoint is Google's state-of-the-art workhorse model, specifically designed for advanced reasoning, coding, mathematics, and scientific tasks. It includes built-in \"thinking\" capabilities, enabling it to provide responses with greater accuracy and nuanced context handling.","match":{"or":[{"contains":"gemini-2.5-flash-preview-05-20"},{"contains":"gemini-2.5-flash-preview-04-17"},{"equals":"gemini-2.5-flash-preview-05-20:thinking"},{"equals":"gemini-2.5-flash-preview"},{"equals":"gemini-2.5-flash-preview:thinking"}]},"price_comments":"from https://cloud.google.com/vertex-ai/generative-ai/pricing should be retired 2025-07-15","prices":{"input_mtok":0.15,"output_mtok":0.6},"deprecated":true},{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","description":"Gemini 2.5 Pro is Google's state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs \"thinking\" capabilities, enabling it to reason through responses with enhanced accuracy and nuanced context handling. Gemini 2.5 Pro achieves top-tier performance on multiple benchmarks, including first-place positioning on the LMArena leaderboard, reflecting superior human-preference alignment and complex problem-solving abilities.","match":{"starts_with":"gemini-2.5-pro"},"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro","prices":{"input_mtok":{"base":1.25,"tiers":[{"start":200000,"price":2.5}]},"cache_read_mtok":{"base":0.125,"tiers":[{"start":200000,"price":0.25}]},"output_mtok":{"base":10,"tiers":[{"start":200000,"price":15}]}}},{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","description":"Google's ultra-fast frontier model optimized for speed and efficiency. Delivers state-of-the-art performance while maintaining low latency and cost, with improved reasoning and coding capabilities.","match":{"or":[{"equals":"gemini-3-flash-preview"},{"starts_with":"gemini-3-flash-preview-"}]},"context_window":1000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing. Standard pricing shown; Batch API offers 50% discount on input/output.","prices":{"input_mtok":0.5,"cache_read_mtok":0.05,"output_mtok":3,"input_audio_mtok":1,"cache_audio_read_mtok":0.1}},{"id":"gemini-3-pro-image-preview","name":"Gemini 3 Pro Image Preview","description":"Google's image generation model optimized for high-quality image generation. Supports 1K/2K and 4K resolution outputs with flexible pricing based on image dimensions.","match":{"or":[{"starts_with":"gemini-3-pro-image-preview"},{"equals":"gemini-3-pro-image-preview"}]},"context_window":1000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing#gemini-3-pro-image. Image output is priced at $120 per 1M tokens, with each 1K/2K image = 1120 tokens = $0.134/image and each 4K image = 2000 tokens = $0.24/image.","prices":{"input_mtok":2,"output_mtok":120}},{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","description":"The best model in the world for multimodal understanding, and our most powerful agentic and vibe-coding model yet.","match":{"or":[{"starts_with":"gemini-3-pro-preview"},{"equals":"gemini-3-pro-text-preview"}]},"prices":{"input_mtok":{"base":2,"tiers":[{"start":200000,"price":4}]},"cache_read_mtok":{"base":0.2,"tiers":[{"start":200000,"price":0.4}]},"output_mtok":{"base":12,"tiers":[{"start":200000,"price":18}]}}},{"id":"gemini-3.1-flash-image-preview","name":"Gemini 3.1 Flash Image Preview","description":"Google's latest image generation model (Nano Banana 2) optimized for fast, high-quality image generation. Supports multiple output resolutions from 512px to 4K, with text and thinking output priced separately from image output tokens.","match":{"starts_with":"gemini-3.1-flash-image-preview"},"context_window":1000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing. Image output is priced at $60 per 1M tokens. Preview model - pricing may change.","prices":{"input_mtok":0.5,"output_mtok":60}},{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","description":"Google's fastest and most cost-efficient Gemini 3 series model, built for intelligence at scale. Optimized for high-volume, low-latency applications while maintaining strong multimodal capabilities.","match":{"starts_with":"gemini-3.1-flash-lite-preview"},"context_window":1000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing. Preview model - pricing may change before becoming stable.","prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":1.5,"input_audio_mtok":0.5,"cache_audio_read_mtok":0.05}},{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","description":"The latest performance, intelligence, and usability improvements to the best model family in the world for multimodal understanding, agentic capabilities, and vibe-coding.","match":{"starts_with":"gemini-3.1-pro-preview"},"prices":{"input_mtok":{"base":2,"tiers":[{"start":200000,"price":4}]},"cache_read_mtok":{"base":0.2,"tiers":[{"start":200000,"price":0.4}]},"output_mtok":{"base":12,"tiers":[{"start":200000,"price":18}]}}},{"id":"gemini-embedding-001","match":{"equals":"gemini-embedding-001"},"prices":{"input_mtok":0.15}},{"id":"gemini-flash-1.5","name":"Gemini 1.5 Flash","description":"Gemini 1.5 Flash is a foundation model that performs well at a variety of multimodal tasks such as visual understanding, classification, summarization, and creating content from image, audio and video. It's adept at processing visual and text inputs such as photographs, documents, infographics, and screenshots.","match":{"equals":"gemini-flash-1.5"},"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing#gemini-1.5-flash","prices":{"input_mtok":{"base":0.075,"tiers":[{"start":128000,"price":0.15}]},"cache_read_mtok":{"base":0.01875,"tiers":[{"start":128000,"price":0.0375}]},"output_mtok":{"base":0.3,"tiers":[{"start":128000,"price":0.6}]}}},{"id":"gemini-flash-1.5-8b","name":"gemini 1.5 flash","description":"A faster, more cost-effective variant of Gemini 1.5 that maintains strong capabilities while optimizing for performance and cost efficiency. Suitable for production deployments requiring high throughput.","match":{"equals":"gemini-flash-1.5-8b"},"context_window":1000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing#gemini-1.5-flash-8b","prices":{"input_mtok":{"base":0.0375,"tiers":[{"start":128000,"price":0.075}]},"cache_read_mtok":{"base":0.01,"tiers":[{"start":128000,"price":0.02}]},"output_mtok":{"base":0.15,"tiers":[{"start":128000,"price":0.3}]}}},{"id":"gemini-live-2.5-flash-preview","match":{"or":[{"starts_with":"gemini-live-2.5-flash-preview"},{"starts_with":"gemini-2.5-flash-native-audio-preview"}]},"prices":{"input_mtok":0.5,"output_mtok":2,"input_audio_mtok":3,"output_audio_mtok":12}},{"id":"gemini-pro","name":"gemini 1.0 pro","description":"Google's first-generation advanced multimodal model that can understand text, code, and images. It provides strong reasoning capabilities and follows instructions effectively.","match":{"or":[{"equals":"gemini-pro"},{"equals":"gemini-1.0-pro"}]},"context_window":32768,"price_comments":"I can't find anything so trusting these prices, not sure the model still exists","prices":{"input_mtok":0.125,"output_mtok":0.375}},{"id":"gemini-pro-1.5","name":"Gemini 1.5 Pro","description":"Google's latest multimodal model, supports image and video[0] in text or chat prompts.","match":{"equals":"gemini-pro-1.5"},"context_window":2000000,"price_comments":"See https://ai.google.dev/gemini-api/docs/pricing#gemini-1.5-pro","prices":{"input_mtok":{"base":1.25,"tiers":[{"start":128000,"price":2.5}]},"cache_read_mtok":{"base":0.3125,"tiers":[{"start":128000,"price":0.625}]},"output_mtok":{"base":5,"tiers":[{"start":128000,"price":10}]}}},{"id":"gemma-3","name":"Gemma 3 (free)","description":"Lightweight, state-of the art, open model built from the same technology that powers our Gemini models.","match":{"or":[{"starts_with":"gemma-3-"},{"equals":"gemma-3"}]},"prices":{}},{"id":"gemma-3n","name":"Gemma 3n (free)","description":"Our open model built for efficient performance on everyday devices like mobile phones, laptops, and tablets.","match":{"or":[{"starts_with":"gemma-3n"}]},"prices":{}}]},{"id":"groq","name":"Groq","pricing_urls":["https://groq.com/pricing/"],"api_pattern":"https://api\\.groq\\.com","extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","match":{"equals":"deepseek-r1-distill-llama-70b"},"context_window":131072,"prices":{"input_mtok":0.75,"output_mtok":0.99}},{"id":"gemma-7b-it","match":{"equals":"gemma-7b-it"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"gemma2-9b-it","name":"Gemma 2 9B 8k","match":{"or":[{"equals":"gemma2-9b-it"},{"equals":"gemma2-9b"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama-3.1-405b-reasoning","match":{"equals":"llama-3.1-405b-reasoning"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama-3.1-70b-versatile","match":{"equals":"llama-3.1-70b-versatile"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama-3.1-8b-instant","name":"Llama 3.1 8B Instant 128k","match":{"equals":"llama-3.1-8b-instant"},"prices":{"input_mtok":0.05,"output_mtok":0.08}},{"id":"llama-3.2-11b-text-preview","match":{"equals":"llama-3.2-11b-text-preview"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"llama-3.2-11b-vision-preview","match":{"equals":"llama-3.2-11b-vision-preview"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"llama-3.2-1b-preview","match":{"equals":"llama-3.2-1b-preview"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"llama-3.2-3b-preview","match":{"equals":"llama-3.2-3b-preview"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"llama-3.2-90b-text-preview","match":{"equals":"llama-3.2-90b-text-preview"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"llama-3.2-90b-vision-preview","match":{"equals":"llama-3.2-90b-vision-preview"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"llama-3.3-70b-specdec","match":{"equals":"llama-3.3-70b-specdec"},"prices":{"input_mtok":0.59,"output_mtok":0.99}},{"id":"llama-3.3-70b-versatile","name":"Llama 3.3 70B Versatile 128k","match":{"equals":"llama-3.3-70b-versatile"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama-guard-3-8b","match":{"equals":"llama-guard-3-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama2-70b-4096","match":{"equals":"llama2-70b-4096"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"llama3-70b-8192","match":{"equals":"llama3-70b-8192"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama3-8b-8192","match":{"equals":"llama3-8b-8192"},"prices":{"input_mtok":0.05,"output_mtok":0.08}},{"id":"llama3-groq-70b-8192-tool-use-preview","match":{"equals":"llama3-groq-70b-8192-tool-use-preview"},"prices":{"input_mtok":0.89,"output_mtok":0.89}},{"id":"llama3-groq-8b-8192-tool-use-preview","match":{"equals":"llama3-groq-8b-8192-tool-use-preview"},"prices":{"input_mtok":0.19,"output_mtok":0.19}},{"id":"meta-llama/llama-4-maverick-17b-128e-instruct","name":"Llama 4 Maverick 17B 128E","match":{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct"},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"meta-llama/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout (17Bx16E) 128k","match":{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},"prices":{"input_mtok":0.11,"output_mtok":0.34}},{"id":"meta-llama/llama-guard-4-12b","name":"Llama Guard 4 12B","match":{"equals":"meta-llama/llama-guard-4-12b"},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistral-saba-24b","match":{"equals":"mistral-saba-24b"},"prices":{"input_mtok":0.79,"output_mtok":0.79}},{"id":"mixtral-8x7b-32768","match":{"equals":"mixtral-8x7b-32768"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 1T 128k","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct"},{"equals":"moonshotai/kimi-k2-instruct-0905"}]},"context_window":131072,"prices":{"input_mtok":1,"cache_read_mtok":0.5,"output_mtok":3}},{"id":"openai/gpt-oss-120b","description":"GPT-OSS 120B is OpenAI's flagship open source model, built on a Mixture-of-Experts (MoE) architecture with\n120 billion parameters and 128 experts.\n","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-safeguard-20b"}]},"context_window":131072,"prices":{"input_mtok":0.15,"cache_read_mtok":0.075,"output_mtok":0.6}},{"id":"openai/gpt-oss-20b","description":"GPT-OSS 20B is OpenAI's flagship open source model, built on a Mixture-of-Experts (MoE) architecture with\n20 billion parameters and 32 experts.\n","match":{"equals":"openai/gpt-oss-20b"},"context_window":131072,"prices":{"input_mtok":0.075,"cache_read_mtok":0.0375,"output_mtok":0.3}},{"id":"qwen/qwen3-32b","name":"Qwen3 32B 131k","match":{"equals":"qwen/qwen3-32b"},"prices":{"input_mtok":0.29,"output_mtok":0.59}}]},{"id":"huggingface_cerebras","name":"HuggingFace (cerebras)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/cerebras","provider_match":{"and":[{"contains":"huggingface"},{"contains":"cerebras"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}}]},{"id":"huggingface_fireworks-ai","name":"HuggingFace (fireworks-ai)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/fireworks-ai","provider_match":{"and":[{"contains":"huggingface"},{"contains":"fireworks-ai"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.2}}]},{"id":"huggingface_groq","name":"HuggingFace (groq)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/groq","provider_match":{"and":[{"contains":"huggingface"},{"contains":"groq"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.29,"output_mtok":0.59}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama-4-Scout-17B-16E-Instruct","match":{"or":[{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},{"equals":"meta-llama/llama-4-scout-17b-16e-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.11,"output_mtok":0.34}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.75}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.5}}]},{"id":"huggingface_hyperbolic","name":"HuggingFace (hyperbolic)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/hyperbolic","provider_match":{"and":[{"contains":"huggingface"},{"contains":"hyperbolic"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-72b-instruct"},{"equals":"qwen/qwen2.5-vl-72b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"Qwen/Qwen2.5-VL-7B-Instruct","name":"Qwen2.5-VL-7B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-7b-instruct"},{"equals":"qwen/qwen2.5-vl-7b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3-Next-80B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-instruct"},{"equals":"qwen/qwen3-next-80b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen3-Next-80B-A3B-Thinking","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-thinking"},{"equals":"qwen/qwen3-next-80b-a3b-thinking-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek-R1","match":{"or":[{"equals":"deepseek-ai/deepseek-r1"},{"equals":"deepseek-ai/deepseek-r1-fast"}]},"context_window":163840,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":163840,"prices":{"input_mtok":3,"output_mtok":3}},{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":163840,"prices":{"input_mtok":1.25,"output_mtok":1.25}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.4,"output_mtok":0.4}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.1}}]},{"id":"huggingface_nebius","name":"HuggingFace (nebius)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/nebius","provider_match":{"and":[{"contains":"huggingface"},{"contains":"nebius"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"NousResearch/Hermes-4-405B","name":"Hermes-4-405B","match":{"or":[{"equals":"nousresearch/hermes-4-405b"},{"equals":"nousresearch/hermes-4-405b-fast"}]},"context_window":131072,"prices":{"input_mtok":1,"output_mtok":3}},{"id":"NousResearch/Hermes-4-70B","name":"Hermes-4-70B","match":{"or":[{"equals":"nousresearch/hermes-4-70b"},{"equals":"nousresearch/hermes-4-70b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.13,"output_mtok":0.4}},{"id":"PrimeIntellect/INTELLECT-3-FP8","name":"INTELLECT-3-FP8","match":{"or":[{"equals":"primeintellect/intellect-3-fp8"},{"equals":"primeintellect/intellect-3-fp8-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"Qwen/Qwen2.5-Coder-7B","name":"Qwen2.5-Coder-7B","match":{"or":[{"equals":"qwen/qwen2.5-coder-7b"},{"equals":"qwen/qwen2.5-coder-7b-fast"}]},"context_window":32768,"prices":{"input_mtok":0.03,"output_mtok":0.09}},{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-72b-instruct"},{"equals":"qwen/qwen2.5-vl-72b-instruct-fast"}]},"context_window":32000,"prices":{"input_mtok":0.25,"output_mtok":0.75}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-thinking-2507"},{"equals":"qwen/qwen3-235b-a22b-thinking-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":0.8}},{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3-30B-A3B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-30b-a3b-instruct-2507"},{"equals":"qwen/qwen3-30b-a3b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3-30B-A3B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-30b-a3b-thinking-2507"},{"equals":"qwen/qwen3-30b-a3b-thinking-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3-Coder-30B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-30b-a3b-instruct"},{"equals":"qwen/qwen3-coder-30b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.4,"output_mtok":1.8}},{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":163840,"prices":{"input_mtok":0.8,"output_mtok":2.4}},{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":32768,"prices":{"input_mtok":0.75,"output_mtok":2.25}},{"id":"google/gemma-2-2b-it","name":"gemma-2-2b-it","match":{"or":[{"equals":"google/gemma-2-2b-it"},{"equals":"google/gemma-2-2b-it-fast"}]},"context_window":8192,"prices":{"input_mtok":0.02,"output_mtok":0.06}},{"id":"google/gemma-2-9b-it","name":"gemma-2-9b-it","match":{"or":[{"equals":"google/gemma-2-9b-it"},{"equals":"google/gemma-2-9b-it-fast"}]},"context_window":8192,"prices":{"input_mtok":0.03,"output_mtok":0.09}},{"id":"google/gemma-3-27b-it","name":"gemma-3-27b-it","match":{"or":[{"equals":"google/gemma-3-27b-it"},{"equals":"google/gemma-3-27b-it-fast"}]},"context_window":110000,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.03,"output_mtok":0.09}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.25,"output_mtok":0.75}},{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi-K2-Instruct","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct"},{"equals":"moonshotai/kimi-k2-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.5,"output_mtok":2.4}},{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi-K2-Thinking","match":{"or":[{"equals":"moonshotai/kimi-k2-thinking"},{"equals":"moonshotai/kimi-k2-thinking-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":2.5}},{"id":"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1","name":"Llama-3_1-Nemotron-Ultra-253B-v1","match":{"or":[{"equals":"nvidia/llama-3_1-nemotron-ultra-253b-v1"},{"equals":"nvidia/llama-3_1-nemotron-ultra-253b-v1-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.8}},{"id":"nvidia/NVIDIA-Nemotron-Nano-12B-v2","name":"NVIDIA-Nemotron-Nano-12B-v2","match":{"or":[{"equals":"nvidia/nvidia-nemotron-nano-12b-v2"},{"equals":"nvidia/nvidia-nemotron-nano-12b-v2-fast"}]},"context_window":131072,"prices":{"input_mtok":0.07,"output_mtok":0.2}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"zai-org/GLM-4.5","name":"GLM-4.5","match":{"or":[{"equals":"zai-org/glm-4.5"},{"equals":"zai-org/glm-4.5-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.5-Air","name":"GLM-4.5-Air","match":{"or":[{"equals":"zai-org/glm-4.5-air"},{"equals":"zai-org/glm-4.5-air-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1.2}}]},{"id":"huggingface_novita","name":"HuggingFace (novita)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/novita","provider_match":{"and":[{"contains":"huggingface"},{"contains":"novita"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"MiniMaxAI/MiniMax-M1-80k","name":"MiniMax-M1-80k","match":{"or":[{"equals":"minimaxai/minimax-m1-80k"},{"equals":"minimaxai/minimax-m1-80k-fast"}]},"context_window":1000000,"prices":{"input_mtok":0.55,"output_mtok":2.2}},{"id":"MiniMaxAI/MiniMax-M2","name":"MiniMax-M2","match":{"or":[{"equals":"minimaxai/minimax-m2"},{"equals":"minimaxai/minimax-m2-fast"},{"equals":"minimaxai/minimax-m2.1"},{"equals":"minimaxai/minimax-m2.1-fast"},{"equals":"minimaxai/minimax-m2.5"},{"equals":"minimaxai/minimax-m2.5-fast"}]},"context_window":204800,"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"NousResearch/Hermes-2-Pro-Llama-3-8B","name":"Hermes-2-Pro-Llama-3-8B","match":{"or":[{"equals":"nousresearch/hermes-2-pro-llama-3-8b"},{"equals":"nousresearch/hermes-2-pro-llama-3-8b-fast"}]},"context_window":8192,"prices":{"input_mtok":0.14,"output_mtok":0.14}},{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen2.5-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-72b-instruct"},{"equals":"qwen/qwen2.5-72b-instruct-fast"}]},"context_window":32000,"prices":{"input_mtok":0.38,"output_mtok":0.4}},{"id":"Qwen/Qwen3-235B-A22B","name":"Qwen3-235B-A22B","match":{"or":[{"equals":"qwen/qwen3-235b-a22b"},{"equals":"qwen/qwen3-235b-a22b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.2,"output_mtok":0.8}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":131072,"prices":{"input_mtok":0.09,"output_mtok":0.58}},{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-thinking-2507"},{"equals":"qwen/qwen3-235b-a22b-thinking-2507-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":3}},{"id":"Qwen/Qwen3-30B-A3B","name":"Qwen3-30B-A3B","match":{"or":[{"equals":"qwen/qwen3-30b-a3b"},{"equals":"qwen/qwen3-30b-a3b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.09,"output_mtok":0.45}},{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.1,"output_mtok":0.45}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":1.3}},{"id":"Qwen/Qwen3-Coder-Next","name":"Qwen3-Coder-Next","match":{"or":[{"equals":"qwen/qwen3-coder-next"},{"equals":"qwen/qwen3-coder-next-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":1.5}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3-Next-80B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-instruct"},{"equals":"qwen/qwen3-next-80b-a3b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":1.5}},{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen3-Next-80B-A3B-Thinking","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-thinking"},{"equals":"qwen/qwen3-next-80b-a3b-thinking-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":1.5}},{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen3-VL-235B-A22B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-235b-a22b-instruct"},{"equals":"qwen/qwen3-vl-235b-a22b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":1.5}},{"id":"Qwen/Qwen3-VL-235B-A22B-Thinking","name":"Qwen3-VL-235B-A22B-Thinking","match":{"or":[{"equals":"qwen/qwen3-vl-235b-a22b-thinking"},{"equals":"qwen/qwen3-vl-235b-a22b-thinking-fast"}]},"context_window":131072,"prices":{"input_mtok":0.98,"output_mtok":3.95}},{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen3-VL-30B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-30b-a3b-instruct"},{"equals":"qwen/qwen3-vl-30b-a3b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":0.7}},{"id":"Qwen/Qwen3-VL-30B-A3B-Thinking","name":"Qwen3-VL-30B-A3B-Thinking","match":{"or":[{"equals":"qwen/qwen3-vl-30b-a3b-thinking"},{"equals":"qwen/qwen3-vl-30b-a3b-thinking-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1}},{"id":"Qwen/Qwen3-VL-8B-Instruct","name":"Qwen3-VL-8B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-8b-instruct"},{"equals":"qwen/qwen3-vl-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.08,"output_mtok":0.5}},{"id":"Qwen/Qwen3.5-122B-A10B","name":"Qwen3.5-122B-A10B","match":{"or":[{"equals":"qwen/qwen3.5-122b-a10b"},{"equals":"qwen/qwen3.5-122b-a10b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.4,"output_mtok":3.2}},{"id":"Qwen/Qwen3.5-27B","name":"Qwen3.5-27B","match":{"or":[{"equals":"qwen/qwen3.5-27b"},{"equals":"qwen/qwen3.5-27b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":2.4}},{"id":"Qwen/Qwen3.5-35B-A3B","name":"Qwen3.5-35B-A3B","match":{"or":[{"equals":"qwen/qwen3.5-35b-a3b"},{"equals":"qwen/qwen3.5-35b-a3b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.25,"output_mtok":2}},{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5-397B-A17B","match":{"or":[{"equals":"qwen/qwen3.5-397b-a17b"},{"equals":"qwen/qwen3.5-397b-a17b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":3.6}},{"id":"Sao10K/L3-70B-Euryale-v2.1","name":"L3-70B-Euryale-v2.1","match":{"or":[{"equals":"sao10k/l3-70b-euryale-v2.1"},{"equals":"sao10k/l3-70b-euryale-v2.1-fast"}]},"context_window":8192,"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"Sao10K/L3-8B-Lunaris-v1","name":"L3-8B-Lunaris-v1","match":{"or":[{"equals":"sao10k/l3-8b-lunaris-v1"},{"equals":"sao10k/l3-8b-lunaris-v1-fast"}]},"context_window":8192,"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"Sao10K/L3-8B-Stheno-v3.2","name":"L3-8B-Stheno-v3.2","match":{"or":[{"equals":"sao10k/l3-8b-stheno-v3.2"},{"equals":"sao10k/l3-8b-stheno-v3.2-fast"}]},"context_window":8192,"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo-V2-Flash","match":{"or":[{"equals":"xiaomimimo/mimo-v2-flash"},{"equals":"xiaomimimo/mimo-v2-flash-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"alpindale/WizardLM-2-8x22B","name":"WizardLM-2-8x22B","match":{"or":[{"equals":"alpindale/wizardlm-2-8x22b"},{"equals":"alpindale/wizardlm-2-8x22b-fast"}]},"context_window":65535,"prices":{"input_mtok":0.62,"output_mtok":0.62}},{"id":"baidu/ERNIE-4.5-21B-A3B-PT","name":"ERNIE-4.5-21B-A3B-PT","match":{"or":[{"equals":"baidu/ernie-4.5-21b-a3b-pt"},{"equals":"baidu/ernie-4.5-21b-a3b-pt-fast"}]},"context_window":120000,"prices":{"input_mtok":0.07,"output_mtok":0.28}},{"id":"baidu/ERNIE-4.5-300B-A47B-Base-PT","name":"ERNIE-4.5-300B-A47B-Base-PT","match":{"or":[{"equals":"baidu/ernie-4.5-300b-a47b-base-pt"},{"equals":"baidu/ernie-4.5-300b-a47b-base-pt-fast"}]},"context_window":123000,"prices":{"input_mtok":0.28,"output_mtok":1.1}},{"id":"baidu/ERNIE-4.5-VL-28B-A3B-PT","name":"ERNIE-4.5-VL-28B-A3B-PT","match":{"or":[{"equals":"baidu/ernie-4.5-vl-28b-a3b-pt"},{"equals":"baidu/ernie-4.5-vl-28b-a3b-pt-fast"}]},"context_window":30000,"prices":{"input_mtok":0.14,"output_mtok":0.56}},{"id":"baidu/ERNIE-4.5-VL-424B-A47B-Base-PT","name":"ERNIE-4.5-VL-424B-A47B-Base-PT","match":{"or":[{"equals":"baidu/ernie-4.5-vl-424b-a47b-base-pt"},{"equals":"baidu/ernie-4.5-vl-424b-a47b-base-pt-fast"}]},"context_window":123000,"prices":{"input_mtok":0.42,"output_mtok":1.25}},{"id":"deepseek-ai/DeepSeek-Prover-V2-671B","name":"DeepSeek-Prover-V2-671B","match":{"or":[{"equals":"deepseek-ai/deepseek-prover-v2-671b"},{"equals":"deepseek-ai/deepseek-prover-v2-671b-fast"}]},"context_window":160000,"prices":{"input_mtok":0.7,"output_mtok":2.5}},{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek-R1","match":{"or":[{"equals":"deepseek-ai/deepseek-r1"},{"equals":"deepseek-ai/deepseek-r1-fast"},{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":64000,"prices":{"input_mtok":0.7,"output_mtok":2.5}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b-fast"}]},"context_window":8192,"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"deepseek-ai/DeepSeek-V3","name":"DeepSeek-V3","match":{"or":[{"equals":"deepseek-ai/deepseek-v3"},{"equals":"deepseek-ai/deepseek-v3-fast"}]},"context_window":64000,"prices":{"input_mtok":0.4,"output_mtok":1.3}},{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":163840,"prices":{"input_mtok":0.27,"output_mtok":1.12}},{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek-V3.1","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.1"},{"equals":"deepseek-ai/deepseek-v3.1-fast"},{"equals":"deepseek-ai/deepseek-v3.1-terminus"},{"equals":"deepseek-ai/deepseek-v3.1-terminus-fast"}]},"context_window":131072,"prices":{"input_mtok":0.27,"output_mtok":1}},{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.2"},{"equals":"deepseek-ai/deepseek-v3.2-fast"}]},"context_window":163840,"prices":{"input_mtok":0.269,"output_mtok":0.4}},{"id":"deepseek-ai/DeepSeek-V3.2-Exp","name":"DeepSeek-V3.2-Exp","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.2-exp"},{"equals":"deepseek-ai/deepseek-v3.2-exp-fast"}]},"context_window":163840,"prices":{"input_mtok":0.27,"output_mtok":0.41}},{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":16384,"prices":{"input_mtok":0.02,"output_mtok":0.05}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.135,"output_mtok":0.4}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","match":{"or":[{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8"},{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8-fast"}]},"context_window":1048576,"prices":{"input_mtok":0.27,"output_mtok":0.85}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama-4-Scout-17B-16E-Instruct","match":{"or":[{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},{"equals":"meta-llama/llama-4-scout-17b-16e-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.18,"output_mtok":0.59}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct","name":"Meta-Llama-3-70B-Instruct","match":{"or":[{"equals":"meta-llama/meta-llama-3-70b-instruct"},{"equals":"meta-llama/meta-llama-3-70b-instruct-fast"}]},"context_window":8192,"prices":{"input_mtok":0.51,"output_mtok":0.74}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct","name":"Meta-Llama-3-8B-Instruct","match":{"or":[{"equals":"meta-llama/meta-llama-3-8b-instruct"},{"equals":"meta-llama/meta-llama-3-8b-instruct-fast"}]},"context_window":8192,"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi-K2-Instruct","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct"},{"equals":"moonshotai/kimi-k2-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.57,"output_mtok":2.3}},{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi-K2-Instruct-0905","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct-0905"},{"equals":"moonshotai/kimi-k2-instruct-0905-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":2.5}},{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi-K2-Thinking","match":{"or":[{"equals":"moonshotai/kimi-k2-thinking"},{"equals":"moonshotai/kimi-k2-thinking-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":2.5}},{"id":"moonshotai/Kimi-K2.5","name":"Kimi-K2.5","match":{"or":[{"equals":"moonshotai/kimi-k2.5"},{"equals":"moonshotai/kimi-k2.5-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":3}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.25}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.04,"output_mtok":0.15}},{"id":"zai-org/AutoGLM-Phone-9B-Multilingual","name":"AutoGLM-Phone-9B-Multilingual","match":{"or":[{"equals":"zai-org/autoglm-phone-9b-multilingual"},{"equals":"zai-org/autoglm-phone-9b-multilingual-fast"}]},"context_window":65536,"prices":{"input_mtok":0.035,"output_mtok":0.138}},{"id":"zai-org/GLM-4-32B-0414","name":"GLM-4-32B-0414","match":{"or":[{"equals":"zai-org/glm-4-32b-0414"},{"equals":"zai-org/glm-4-32b-0414-fast"}]},"context_window":32000,"prices":{"input_mtok":0.55,"output_mtok":1.66}},{"id":"zai-org/GLM-4.5","name":"GLM-4.5","match":{"or":[{"equals":"zai-org/glm-4.5"},{"equals":"zai-org/glm-4.5-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.5-Air","name":"GLM-4.5-Air","match":{"or":[{"equals":"zai-org/glm-4.5-air"},{"equals":"zai-org/glm-4.5-air-fast"}]},"context_window":131072,"prices":{"input_mtok":0.13,"output_mtok":0.85}},{"id":"zai-org/GLM-4.5V","name":"GLM-4.5V","match":{"or":[{"equals":"zai-org/glm-4.5v"},{"equals":"zai-org/glm-4.5v-fast"}]},"context_window":65536,"prices":{"input_mtok":0.6,"output_mtok":1.8}},{"id":"zai-org/GLM-4.6","name":"GLM-4.6","match":{"or":[{"equals":"zai-org/glm-4.6"},{"equals":"zai-org/glm-4.6-fast"}]},"context_window":204800,"prices":{"input_mtok":0.55,"output_mtok":2.2}},{"id":"zai-org/GLM-4.6V-Flash","name":"GLM-4.6V-Flash","match":{"or":[{"equals":"zai-org/glm-4.6v-flash"},{"equals":"zai-org/glm-4.6v-flash-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"zai-org/GLM-4.7","name":"GLM-4.7","match":{"or":[{"equals":"zai-org/glm-4.7"},{"equals":"zai-org/glm-4.7-fast"}]},"context_window":204800,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","match":{"or":[{"equals":"zai-org/glm-4.7-flash"},{"equals":"zai-org/glm-4.7-flash-fast"}]},"context_window":200000,"prices":{"input_mtok":0.07,"output_mtok":0.4}},{"id":"zai-org/GLM-5","name":"GLM-5","match":{"or":[{"equals":"zai-org/glm-5"},{"equals":"zai-org/glm-5-fast"}]},"context_window":202800,"prices":{"input_mtok":1,"output_mtok":3.2}}]},{"id":"huggingface_nscale","name":"HuggingFace (nscale)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/nscale","provider_match":{"and":[{"contains":"huggingface"},{"contains":"nscale"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/QwQ-32B","name":"QwQ-32B","match":{"or":[{"equals":"qwen/qwq-32b"},{"equals":"qwen/qwq-32b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.18,"output_mtok":0.2}},{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen2.5-Coder-32B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-coder-32b-instruct"},{"equals":"qwen/qwen2.5-coder-32b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.06,"output_mtok":0.2}},{"id":"Qwen/Qwen2.5-Coder-3B-Instruct","name":"Qwen2.5-Coder-3B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-coder-3b-instruct"},{"equals":"qwen/qwen2.5-coder-3b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen2.5-Coder-7B-Instruct","name":"Qwen2.5-Coder-7B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-coder-7b-instruct"},{"equals":"qwen/qwen2.5-coder-7b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen3-14B","name":"Qwen3-14B","match":{"or":[{"equals":"qwen/qwen3-14b"},{"equals":"qwen/qwen3-14b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.07,"output_mtok":0.2}},{"id":"Qwen/Qwen3-235B-A22B","name":"Qwen3-235B-A22B","match":{"or":[{"equals":"qwen/qwen3-235b-a22b"},{"equals":"qwen/qwen3-235b-a22b-fast"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":32000,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.08,"output_mtok":0.25}},{"id":"Qwen/Qwen3-4B-Instruct-2507","name":"Qwen3-4B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-4b-instruct-2507"},{"equals":"qwen/qwen3-4b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen3-4B-Thinking-2507","name":"Qwen3-4B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-4b-thinking-2507"},{"equals":"qwen/qwen3-4b-thinking-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen3-8B","name":"Qwen3-8B","match":{"or":[{"equals":"qwen/qwen3-8b"},{"equals":"qwen/qwen3-8b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.07,"output_mtok":0.18}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.75,"output_mtok":0.75}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-8B","name":"DeepSeek-R1-Distill-Llama-8B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-8b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-8b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B","name":"DeepSeek-R1-Distill-Qwen-1.5B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-qwen-1.5b"},{"equals":"deepseek-ai/deepseek-r1-distill-qwen-1.5b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","name":"DeepSeek-R1-Distill-Qwen-32B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-qwen-32b"},{"equals":"deepseek-ai/deepseek-r1-distill-qwen-32b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B","name":"DeepSeek-R1-Distill-Qwen-7B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-qwen-7b"},{"equals":"deepseek-ai/deepseek-r1-distill-qwen-7b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.4,"output_mtok":0.4}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama-4-Scout-17B-16E-Instruct","match":{"or":[{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},{"equals":"meta-llama/llama-4-scout-17b-16e-instruct-fast"}]},"context_window":890000,"prices":{"input_mtok":0.09,"output_mtok":0.29}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.2}}]},{"id":"huggingface_ovhcloud","name":"HuggingFace (ovhcloud)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/ovhcloud","provider_match":{"and":[{"contains":"huggingface"},{"contains":"ovhcloud"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-72b-instruct"},{"equals":"qwen/qwen2.5-vl-72b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":1.01,"output_mtok":1.01}},{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":32768,"prices":{"input_mtok":0.09,"output_mtok":0.25}},{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3-Coder-30B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-30b-a3b-instruct"},{"equals":"qwen/qwen3-coder-30b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.07,"output_mtok":0.26}},{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.11,"output_mtok":0.11}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.74,"output_mtok":0.74}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.09,"output_mtok":0.47}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.18}}]},{"id":"huggingface_publicai","name":"HuggingFace (publicai)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/publicai","provider_match":{"and":[{"contains":"huggingface"},{"contains":"publicai"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"aisingapore/Gemma-SEA-LION-v4-27B-IT","name":"Gemma-SEA-LION-v4-27B-IT","match":{"or":[{"equals":"aisingapore/gemma-sea-lion-v4-27b-it"},{"equals":"aisingapore/gemma-sea-lion-v4-27b-it-fast"}]},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"aisingapore/Qwen-SEA-LION-v4-32B-IT","name":"Qwen-SEA-LION-v4-32B-IT","match":{"or":[{"equals":"aisingapore/qwen-sea-lion-v4-32b-it"},{"equals":"aisingapore/qwen-sea-lion-v4-32b-it-fast"}]},"prices":{"input_mtok":0.25,"output_mtok":0.5}},{"id":"allenai/Olmo-3-7B-Instruct","name":"Olmo-3-7B-Instruct","match":{"or":[{"equals":"allenai/olmo-3-7b-instruct"},{"equals":"allenai/olmo-3-7b-instruct-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"allenai/Olmo-3.1-32B-Instruct","name":"Olmo-3.1-32B-Instruct","match":{"or":[{"equals":"allenai/olmo-3.1-32b-instruct"},{"equals":"allenai/olmo-3.1-32b-instruct-fast"}]},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"dicta-il/DictaLM-3.0-24B-Thinking","name":"DictaLM-3.0-24B-Thinking","match":{"or":[{"equals":"dicta-il/dictalm-3.0-24b-thinking"},{"equals":"dicta-il/dictalm-3.0-24b-thinking-fast"}]},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"swiss-ai/Apertus-70B-Instruct-2509","name":"Apertus-70B-Instruct-2509","match":{"or":[{"equals":"swiss-ai/apertus-70b-instruct-2509"},{"equals":"swiss-ai/apertus-70b-instruct-2509-fast"}]},"prices":{"input_mtok":0.82,"output_mtok":2.92}},{"id":"swiss-ai/Apertus-8B-Instruct-2509","name":"Apertus-8B-Instruct-2509","match":{"or":[{"equals":"swiss-ai/apertus-8b-instruct-2509"},{"equals":"swiss-ai/apertus-8b-instruct-2509-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"utter-project/EuroLLM-22B-Instruct-2512","name":"EuroLLM-22B-Instruct-2512","match":{"or":[{"equals":"utter-project/eurollm-22b-instruct-2512"},{"equals":"utter-project/eurollm-22b-instruct-2512-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.2}}]},{"id":"huggingface_sambanova","name":"HuggingFace (sambanova)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/sambanova","provider_match":{"and":[{"contains":"huggingface"},{"contains":"sambanova"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":32768,"prices":{"input_mtok":0.4,"output_mtok":0.8}},{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":131072,"prices":{"input_mtok":5,"output_mtok":7}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.7,"output_mtok":1.4}},{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":131072,"prices":{"input_mtok":3,"output_mtok":4.5}},{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":16384,"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.2}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.22,"output_mtok":0.59}},{"id":"tokyotech-llm/Llama-3.3-Swallow-70B-Instruct-v0.4","name":"Llama-3.3-Swallow-70B-Instruct-v0.4","match":{"or":[{"equals":"tokyotech-llm/llama-3.3-swallow-70b-instruct-v0.4"},{"equals":"tokyotech-llm/llama-3.3-swallow-70b-instruct-v0.4-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.2}}]},{"id":"huggingface_together","name":"HuggingFace (together)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/together","provider_match":{"and":[{"contains":"huggingface"},{"contains":"together"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"EssentialAI/rnj-1-instruct","name":"rnj-1-instruct","match":{"or":[{"equals":"essentialai/rnj-1-instruct"},{"equals":"essentialai/rnj-1-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"Qwen/Qwen2.5-7B-Instruct","name":"Qwen2.5-7B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-7b-instruct"},{"equals":"qwen/qwen2.5-7b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fp8"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fp8-fast"}]},"context_window":262144,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"Qwen/Qwen3-Coder-Next-FP8","name":"Qwen3-Coder-Next-FP8","match":{"or":[{"equals":"qwen/qwen3-coder-next-fp8"},{"equals":"qwen/qwen3-coder-next-fp8-fast"}]},"context_window":262144,"prices":{"input_mtok":0.5,"output_mtok":1.2}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3-Next-80B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-instruct"},{"equals":"qwen/qwen3-next-80b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.15,"output_mtok":1.5}},{"id":"Qwen/Qwen3-VL-8B-Instruct","name":"Qwen3-VL-8B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-8b-instruct"},{"equals":"qwen/qwen3-vl-8b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.18000000000000002,"output_mtok":0.68}},{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5-397B-A17B","match":{"or":[{"equals":"qwen/qwen3.5-397b-a17b"},{"equals":"qwen/qwen3.5-397b-a17b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":3.6}},{"id":"Qwen/Qwen3.5-9B","name":"Qwen3.5-9B","match":{"or":[{"equals":"qwen/qwen3.5-9b"},{"equals":"qwen/qwen3.5-9b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.15}},{"id":"ServiceNow-AI/Apriel-1.6-15b-Thinker","name":"Apriel-1.6-15b-Thinker","match":{"or":[{"equals":"servicenow-ai/apriel-1.6-15b-thinker"},{"equals":"servicenow-ai/apriel-1.6-15b-thinker-fast"}]},"context_window":131072,"prices":{}},{"id":"deepcogito/cogito-671b-v2.1","name":"cogito-671b-v2.1","match":{"or":[{"equals":"deepcogito/cogito-671b-v2.1"},{"equals":"deepcogito/cogito-671b-v2.1-fast"},{"equals":"deepcogito/cogito-671b-v2.1-fp8"},{"equals":"deepcogito/cogito-671b-v2.1-fp8-fast"}]},"context_window":163840,"prices":{"input_mtok":1.25,"output_mtok":1.25}},{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek-R1","match":{"or":[{"equals":"deepseek-ai/deepseek-r1"},{"equals":"deepseek-ai/deepseek-r1-fast"},{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":163840,"prices":{"input_mtok":3,"output_mtok":7}},{"id":"deepseek-ai/DeepSeek-V3","name":"DeepSeek-V3","match":{"or":[{"equals":"deepseek-ai/deepseek-v3"},{"equals":"deepseek-ai/deepseek-v3-fast"},{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":131072,"prices":{"input_mtok":1.25,"output_mtok":1.25}},{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek-V3.1","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.1"},{"equals":"deepseek-ai/deepseek-v3.1-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.7}},{"id":"google/gemma-3n-E4B-it","name":"gemma-3n-E4B-it","match":{"or":[{"equals":"google/gemma-3n-e4b-it"},{"equals":"google/gemma-3n-e4b-it-fast"}]},"context_window":32768,"prices":{"input_mtok":0.02,"output_mtok":0.04}},{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","match":{"or":[{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8"},{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8-fast"}]},"context_window":1048576,"prices":{"input_mtok":0.27,"output_mtok":0.85}},{"id":"moonshotai/Kimi-K2.5","name":"Kimi-K2.5","match":{"or":[{"equals":"moonshotai/kimi-k2.5"},{"equals":"moonshotai/kimi-k2.5-fast"}]},"context_window":262144,"prices":{"input_mtok":0.5,"output_mtok":2.8}},{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.2}},{"id":"zai-org/GLM-4.5-Air-FP8","name":"GLM-4.5-Air-FP8","match":{"or":[{"equals":"zai-org/glm-4.5-air-fp8"},{"equals":"zai-org/glm-4.5-air-fp8-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"zai-org/GLM-4.6","name":"GLM-4.6","match":{"or":[{"equals":"zai-org/glm-4.6"},{"equals":"zai-org/glm-4.6-fast"}]},"context_window":202752,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.7-FP8","name":"GLM-4.7-FP8","match":{"or":[{"equals":"zai-org/glm-4.7-fp8"},{"equals":"zai-org/glm-4.7-fp8-fast"}]},"context_window":202752,"prices":{"input_mtok":0.45,"output_mtok":2}},{"id":"zai-org/GLM-5","name":"GLM-5","match":{"or":[{"equals":"zai-org/glm-5"},{"equals":"zai-org/glm-5-fast"}]},"context_window":202752,"prices":{"input_mtok":1,"output_mtok":3.2}}]},{"id":"mistral","name":"Mistral","pricing_urls":["https://mistral.ai/pricing#api-pricing"],"api_pattern":"https://api\\.mistral\\.ai","model_match":{"regex":"(?:mi|code|dev|magi|mini)stral"},"provider_match":{"starts_with":"mistral"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"codestral","name":"Codestral","description":"Mistral's cutting-edge language model for coding. Codestral specializes in low-latency, high-frequency tasks such as fill-in-the-middle (FIM), code correction and test generation.","match":{"or":[{"equals":"codestral-latest"},{"equals":"codestral-2501"}]},"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"devstral-small","name":"Devstral Small","description":"Devstral-Small-2505 is a 24B parameter agentic LLM fine-tuned from Mistral-Small-3.1, jointly developed by Mistral AI and All Hands AI for advanced software engineering tasks. It is optimized for codebase exploration, multi-file editing, and integration into coding agents, achieving state-of-the-art results on SWE-Bench Verified (46.8%).","match":{"equals":"devstral-small"},"prices":{"input_mtok":0.06,"output_mtok":0.12}},{"id":"devstral-small:free","name":"Devstral Small (free)","description":"Devstral-Small-2505 is a 24B parameter agentic LLM fine-tuned from Mistral-Small-3.1, jointly developed by Mistral AI and All Hands AI for advanced software engineering tasks. It is optimized for codebase exploration, multi-file editing, and integration into coding agents, achieving state-of-the-art results on SWE-Bench Verified (46.8%).","match":{"equals":"devstral-small:free"},"prices":{}},{"id":"magistral-medium","name":"Magistral Medium","description":"Magistral is Mistral's first reasoning model. It is ideal for general purpose use requiring longer thought processing and better accuracy than with non-reasoning LLMs. From legal research and financial forecasting to software development and creative storytelling — this model solves multi-step challenges where transparency and precision are critical.","match":{"or":[{"starts_with":"magistral-medium"}]},"prices":{"input_mtok":2,"output_mtok":5}},{"id":"magistral-small","name":"Magistral Small","description":"Magistral Small is a 24B parameter instruction-tuned model based on Mistral-Small-3.1 (2503), enhanced through supervised fine-tuning on traces from Magistral Medium and further refined via reinforcement learning. It is optimized for reasoning and supports a wide multilingual range, including over 20 languages.","match":{"starts_with":"magistral-small-"},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"ministral-3b","name":"Ministral 3B","description":"Ministral 3B is a 3B parameter model optimized for on-device and edge computing. It excels in knowledge, commonsense reasoning, and function-calling, outperforming larger models like Mistral 7B on most benchmarks. Supporting up to 128k context length, it's ideal for orchestrating agentic workflows and specialist tasks with efficient inference.","match":{"equals":"ministral-3b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"ministral-8b","name":"Ministral 8B 24.10","description":"Ministral 8B is an 8B parameter model featuring a unique interleaved sliding-window attention pattern for faster, memory-efficient inference. Designed for edge use cases, it supports up to 128k context length and excels in knowledge and reasoning tasks. It outperforms peers in the sub-10B category, making it perfect for low-latency, privacy-first applications.","match":{"starts_with":"ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":1}},{"id":"mistral-7b","name":"Mistral 7B","match":{"or":[{"equals":"mistral-7b"},{"equals":"open-mistral-7b"}]},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistral-embed","match":{"equals":"mistral-embed"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistral-large","name":"Mistral Large","description":"This is Mistral AI's flagship model, Mistral Large 2 (version `mistral-large-2407`). It's a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement here.","match":{"or":[{"equals":"mistral-large"},{"equals":"mistral-large-latest"},{"equals":"mistral-large-2407"},{"equals":"mistral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mistral-medium-3","name":"Mistral Medium 3","description":"Mistral Medium 3 is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances state-of-the-art reasoning and multimodal performance with 8× lower cost compared to traditional large models, making it suitable for scalable deployments across professional and industrial use cases.","match":{"starts_with":"mistral-medium"},"prices":{"input_mtok":0.4,"output_mtok":2}},{"id":"mistral-nemo","name":"Mistral NeMo","description":"A 12B parameter model with a 128k token context length built by Mistral in collaboration with NVIDIA.","match":{"or":[{"equals":"mistral-nemo"},{"equals":"open-mistral-nemo"}]},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"mistral-nemo:free","name":"Mistral Nemo (free)","description":"A 12B parameter model with a 128k token context length built by Mistral in collaboration with NVIDIA.","match":{"equals":"mistral-nemo:free"},"prices":{}},{"id":"mistral-saba","name":"Mistral Saba","description":"Mistral Saba is a 24B-parameter language model specifically designed for the Middle East and South Asia, delivering accurate and contextually relevant responses while maintaining efficient performance. Trained on curated regional datasets, it supports multiple Indian-origin languages—including Tamil and Malayalam—alongside Arabic. This makes it a versatile option for a range of regional and multilingual applications. Read more at the blog post here","match":{"or":[{"equals":"mistral-saba"},{"equals":"mistral-saba-latest"}]},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistral-small-24b-instruct-2501","name":"Mistral Small 3","description":"Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed for efficient local deployment.","match":{"equals":"mistral-small-24b-instruct-2501"},"price_comments":"Can't find pricing on this model, so just trusting open router","prices":{"input_mtok":0.05,"output_mtok":0.08}},{"id":"mistral-small-24b-instruct-2501:free","name":"Mistral Small 3 (free)","description":"Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed for efficient local deployment.","match":{"equals":"mistral-small-24b-instruct-2501:free"},"prices":{}},{"id":"mistral-small-latest","name":"Mistral Small 3.2","description":"SOTA. Multimodal. Multilingual. Apache 2.0.","match":{"equals":"mistral-small-latest"},"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"mistral-tiny","name":"Mistral Tiny","description":"Note: This model is being deprecated. Recommended replacement is the newer Ministral 8B","match":{"equals":"mistral-tiny"},"prices":{"input_mtok":0.25,"output_mtok":0.25},"deprecated":true},{"id":"mixtral-8x22b-instruct","name":"Mixtral 8x22B Instruct","description":"Mistral's official instruct fine-tuned version of Mixtral 8x22B. It uses 39B active parameters out of 141B, offering unparalleled cost efficiency for its size. Its strengths include:\n- strong math, coding, and reasoning\n- large context length (64k)\n- fluency in English, French, Italian, German, and Spanish","match":{"equals":"mixtral-8x22b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mixtral-8x7b","name":"Mixtral 8x7B","match":{"or":[{"starts_with":"mixtral-8x7b"},{"equals":"open-mixtral-8x7b"}]},"prices":{"input_mtok":0.7,"output_mtok":0.7}},{"id":"pixtral-12b","name":"Pixtral 12B","description":"The first multi-modal, text+image-to-text model from Mistral AI. Its weights were launched via torrent: https://x.com/mistralai/status/1833758285167722836.","match":{"or":[{"equals":"pixtral-12b"},{"equals":"pixtral-12b-latest"}]},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"pixtral-large","name":"Pixtral Large 2411","description":"Pixtral Large is a 124B parameter, open-weight, multimodal model built on top of Mistral Large 2. The model is able to understand documents, charts and natural images.","match":{"or":[{"equals":"pixtral-large-latest"},{"equals":"pixtral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}}]},{"id":"moonshotai","name":"MoonshotAi","pricing_urls":["https://platform.moonshot.ai/docs/pricing/chat#product-pricing"],"api_pattern":"https://api\\.moonshot\\.","model_match":{"or":[{"starts_with":"kimi"},{"starts_with":"moonshot"}]},"provider_match":{"contains":"moonshot"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"kimi-k2-0711-preview","name":"Kimi K2 0711 Preview","description":"MoE foundation model with exceptional coding and agent capabilities, featuring 1 trillion total parameters and 32 billion activated parameters.","match":{"equals":"kimi-k2-0711-preview"},"context_window":131072,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":2.5}},{"id":"kimi-k2-0905-preview","name":"Kimi K2 0905 Preview","description":"Based on kimi-k2-0711-preview, with enhanced agentic coding abilities, improved frontend code quality and practicality, and better context understanding. MoE foundation model with 1 trillion total parameters and 32 billion activated parameters.","match":{"equals":"kimi-k2-0905-preview"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":2.5}},{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","description":"A thinking model with general agentic and reasoning capabilities, specializing in deep reasoning tasks.","match":{"equals":"kimi-k2-thinking"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":2.5}},{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","description":"High-speed version of kimi-k2-thinking, suitable for scenarios requiring both deep reasoning and extremely fast responses.","match":{"equals":"kimi-k2-thinking-turbo"},"context_window":262144,"prices":{"input_mtok":1.15,"cache_read_mtok":0.15,"output_mtok":8}},{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo Preview","description":"High-speed version of kimi-k2, always aligned with the latest kimi-k2. Same model parameters as kimi-k2, output speed up to 60 tokens/sec (max 100 tokens/sec).","match":{"starts_with":"kimi-k2-turbo"},"context_window":262144,"prices":{"input_mtok":1.15,"cache_read_mtok":0.15,"output_mtok":8}},{"id":"kimi-k2.5","name":"Kimi K2.5","description":"Kimi's most versatile model featuring a native multimodal architecture that supports both visual and text input, thinking and non-thinking modes, and dialogue and agent tasks. Supports automatic context caching, ToolCalls, JSON Mode, Partial Mode, and internet search.","match":{"starts_with":"kimi-k2.5"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.1,"output_mtok":3}},{"id":"moonshot-v1-128k","name":"Moonshot V1 128K","match":{"or":[{"equals":"moonshot-v1-128k"},{"equals":"moonshot-v1-128k-vision-preview"}]},"context_window":131072,"prices":{"input_mtok":2,"output_mtok":5}},{"id":"moonshot-v1-32k","name":"Moonshot V1 32K","match":{"or":[{"equals":"moonshot-v1-32k"},{"equals":"moonshot-v1-32k-vision-preview"}]},"context_window":32768,"prices":{"input_mtok":1,"output_mtok":3}},{"id":"moonshot-v1-8k","name":"Moonshot V1 8K","match":{"or":[{"equals":"moonshot-v1-8k"},{"equals":"moonshot-v1-8k-vision-preview"}]},"context_window":8192,"prices":{"input_mtok":0.2,"output_mtok":2}}]},{"id":"novita","name":"Novita","pricing_urls":["https://novita.ai/pricing"],"api_pattern":"https://api\\.novita\\.ai","models":[{"id":"Sao10K/L3-8B-Stheno-v3.2","match":{"equals":"Sao10K/L3-8B-Stheno-v3.2"},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"cognitivecomputations/dolphin-mixtral-8x22b","match":{"equals":"cognitivecomputations/dolphin-mixtral-8x22b"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"deepseek/deepseek-r1","match":{"equals":"deepseek/deepseek-r1"},"prices":{"input_mtok":4,"output_mtok":4}},{"id":"deepseek/deepseek-r1-distill-llama-70b","match":{"equals":"deepseek/deepseek-r1-distill-llama-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"deepseek/deepseek-r1-distill-llama-8b","match":{"equals":"deepseek/deepseek-r1-distill-llama-8b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"deepseek/deepseek-r1-distill-qwen-14b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-14b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"deepseek/deepseek-r1-distill-qwen-32b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-32b"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"deepseek/deepseek_v3","match":{"equals":"deepseek/deepseek_v3"},"prices":{"input_mtok":0.89,"output_mtok":0.89}},{"id":"google/gemma-2-9b-it","match":{"equals":"google/gemma-2-9b-it"},"prices":{"input_mtok":0.08,"output_mtok":0.08}},{"id":"gryphe/mythomax-l2-13b","match":{"equals":"gryphe/mythomax-l2-13b"},"prices":{"input_mtok":0.09,"output_mtok":0.09}},{"id":"jondurbin/airoboros-l2-70b","match":{"equals":"jondurbin/airoboros-l2-70b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"meta-llama/llama-3-70b-instruct","match":{"equals":"meta-llama/llama-3-70b-instruct"},"prices":{"input_mtok":0.51,"output_mtok":0.74}},{"id":"meta-llama/llama-3-8b-instruct","match":{"equals":"meta-llama/llama-3-8b-instruct"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"meta-llama/llama-3.1-70b-instruct","match":{"equals":"meta-llama/llama-3.1-70b-instruct"},"prices":{"input_mtok":0.34,"output_mtok":0.39}},{"id":"meta-llama/llama-3.1-8b-instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-max"}]},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"meta-llama/llama-3.1-8b-instruct-bf16","match":{"equals":"meta-llama/llama-3.1-8b-instruct-bf16"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"meta-llama/llama-3.2-11b-vision-instruct","match":{"equals":"meta-llama/llama-3.2-11b-vision-instruct"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"meta-llama/llama-3.2-1b-instruct","match":{"equals":"meta-llama/llama-3.2-1b-instruct"},"prices":{"input_mtok":0.02,"output_mtok":0.02}},{"id":"meta-llama/llama-3.2-3b-instruct","match":{"equals":"meta-llama/llama-3.2-3b-instruct"},"prices":{"input_mtok":0.03,"output_mtok":0.05}},{"id":"meta-llama/llama-3.3-70b-instruct","match":{"equals":"meta-llama/llama-3.3-70b-instruct"},"prices":{"input_mtok":0.39,"output_mtok":0.39}},{"id":"microsoft/wizardlm-2-8x22b","match":{"equals":"microsoft/wizardlm-2-8x22b"},"prices":{"input_mtok":0.62,"output_mtok":0.62}},{"id":"mistralai/mistral-7b-instruct","match":{"equals":"mistralai/mistral-7b-instruct"},"prices":{"input_mtok":0.059,"output_mtok":0.059}},{"id":"mistralai/mistral-nemo","match":{"equals":"mistralai/mistral-nemo"},"prices":{"input_mtok":0.17,"output_mtok":0.17}},{"id":"nousresearch/hermes-2-pro-llama-3-8b","match":{"equals":"nousresearch/hermes-2-pro-llama-3-8b"},"prices":{"input_mtok":0.14,"output_mtok":0.14}},{"id":"nousresearch/nous-hermes-llama2-13b","match":{"equals":"nousresearch/nous-hermes-llama2-13b"},"prices":{"input_mtok":0.17,"output_mtok":0.17}},{"id":"openchat/openchat-7b","match":{"equals":"openchat/openchat-7b"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"qwen/qwen-2-7b-instruct","match":{"equals":"qwen/qwen-2-7b-instruct"},"prices":{"input_mtok":0.054,"output_mtok":0.054}},{"id":"qwen/qwen-2-vl-72b-instruct","match":{"equals":"qwen/qwen-2-vl-72b-instruct"},"prices":{"input_mtok":0.45,"output_mtok":0.45}},{"id":"qwen/qwen-2.5-72b-instruct","match":{"equals":"qwen/qwen-2.5-72b-instruct"},"prices":{"input_mtok":0.38,"output_mtok":0.4}},{"id":"sao10k/l3-70b-euryale-v2.1","match":{"equals":"sao10k/l3-70b-euryale-v2.1"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"sao10k/l3-8b-lunaris","match":{"equals":"sao10k/l3-8b-lunaris"},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"sao10k/l31-70b-euryale-v2.2","match":{"equals":"sao10k/l31-70b-euryale-v2.2"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"sophosympatheia/midnight-rose-70b","match":{"equals":"sophosympatheia/midnight-rose-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"teknium/openhermes-2.5-mistral-7b","match":{"equals":"teknium/openhermes-2.5-mistral-7b"},"prices":{"input_mtok":0.17,"output_mtok":0.17}}]},{"id":"openai","name":"OpenAI","pricing_urls":["https://platform.openai.com/docs/pricing","https://openai.com/api/pricing/","https://platform.openai.com/docs/models","https://help.openai.com/en/articles/7127956-how-much-does-gpt-4-cost"],"api_pattern":"https://api\\.openai\\.com","model_match":{"or":[{"starts_with":"gpt-"},{"regex":"^o[134]"}]},"provider_match":{"contains":"openai"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"responses","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":["input_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"embeddings","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true}]}],"models":[{"id":"ada","match":{"or":[{"equals":"ada"},{"equals":"text-ada-001"}]},"prices":{"input_mtok":0.4,"output_mtok":0.4}},{"id":"babbage","match":{"equals":"babbage"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"chatgpt-4o-latest","name":"ChatGPT-4o","description":"OpenAI ChatGPT 4o is continually updated by OpenAI to point to the current version of GPT-4o used by ChatGPT. It therefore differs slightly from the API version of GPT-4o in that it has additional RLHF. It is intended for research and evaluation.","match":{"equals":"chatgpt-4o-latest"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"codex-mini","name":"Codex Mini","description":"codex-mini-latest is a fine-tuned version of o4-mini specifically for use in Codex CLI. For direct use in the API, we recommend starting with gpt-4.1.","match":{"or":[{"equals":"codex-mini"},{"equals":"codex-mini-latest"}]},"prices":{"input_mtok":1.5,"cache_read_mtok":0.375,"output_mtok":6}},{"id":"computer-use","name":"Computer use","match":{"starts_with":"computer-use"},"prices":{"input_mtok":3,"output_mtok":12}},{"id":"curie","match":{"or":[{"equals":"curie"},{"equals":"text-curie-001"}]},"prices":{"input_mtok":2,"output_mtok":2}},{"id":"davinci","match":{"or":[{"equals":"davinci"},{"equals":"text-davinci-001"}]},"prices":{"input_mtok":20,"output_mtok":20}},{"id":"ft:gpt-3.5-turbo-","description":"GPT-3.5 Turbo fine tuned.","match":{"starts_with":"ft:gpt-3.5-turbo"},"prices":{"input_mtok":3,"output_mtok":6}},{"id":"ft:gpt-4o","description":"GPT-4o fine tuned.","match":{"starts_with":"ft:gpt-4o-2024-"},"prices":{"input_mtok":3.75,"output_mtok":15}},{"id":"ft:gpt-4o-mini","description":"GPT-4o Mini fine tuned.","match":{"starts_with":"ft:gpt-4o-mini-2024-"},"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"gpt-3.5-0301","match":{"or":[{"equals":"gpt-3.5-turbo-0301"},{"equals":"gpt-3.5-0301"}]},"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-3.5-turbo","name":"gpt 3.5 turbo","description":"GPT-3.5 Turbo offers a balance between cost and performance.","match":{"or":[{"equals":"gpt-3.5-turbo"},{"equals":"gpt-35-turbo"},{"equals":"gpt-3.5-turbo-0125"}]},"context_window":16385,"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"gpt-3.5-turbo-0613","match":{"equals":"gpt-3.5-turbo-0613"},"context_window":16385,"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-3.5-turbo-1106","match":{"equals":"gpt-3.5-turbo-1106"},"context_window":16385,"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo-16k","name":"GPT-3.5 Turbo 16k","description":"This model offers four times the context length of gpt-3.5-turbo, allowing it to support approximately 20 pages of text in a single request at a higher cost. Training data: up to Sep 2021.","match":{"or":[{"equals":"gpt-3.5-turbo-16k"},{"equals":"gpt-3.5-turbo-16k-0613"},{"equals":"gpt-35-turbo-16k-0613"},{"equals":"gpt-35-turbo-16k"}]},"context_window":16385,"prices":{"input_mtok":3,"output_mtok":4}},{"id":"gpt-3.5-turbo-instruct","name":"gpt 3.5 turbo instruct","description":"GPT-3.5 Turbo offers a balance between cost and performance.","match":{"or":[{"starts_with":"gpt-3.5-turbo-instruct"},{"equals":"gpt-3.5-turbo-instruct-0914"}]},"context_window":16385,"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-4","name":"gpt 4","description":"GPT-4 is the latest and most advanced model in the GPT series, demonstrating sophisticated capabilities in complex reasoning, theory of mind, and narrative understanding.","match":{"or":[{"equals":"gpt-4"},{"equals":"gpt-4-0314"},{"equals":"gpt-4-0613"},{"starts_with":"ft:gpt-4-0"}]},"context_window":8192,"prices":{"input_mtok":30,"output_mtok":60}},{"id":"gpt-4-32k","name":"gpt 4","description":"GPT-4 is the latest and most advanced model in the GPT series, demonstrating sophisticated capabilities in complex reasoning, theory of mind, and narrative understanding.","match":{"or":[{"equals":"gpt-4-32k"},{"equals":"gpt-4-32k-0314"},{"equals":"gpt-4-32k-0613"}]},"context_window":32000,"price_comments":"see https://help.openai.com/en/articles/7127956-how-much-does-gpt-4-cost","prices":{"input_mtok":60,"output_mtok":120}},{"id":"gpt-4-turbo","name":"gpt 4 turbo","description":"GPT-4 Turbo offers a balance between cost and performance.","match":{"or":[{"equals":"gpt-4-turbo"},{"equals":"gpt-4-turbo-2024-04-09"},{"equals":"gpt-4-turbo-0125-preview"},{"equals":"gpt-4-0125-preview"},{"equals":"gpt-4-1106-preview"},{"equals":"gpt-4-turbo-preview"}]},"context_window":128000,"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4-vision-preview","name":"gpt 4 vision","description":"GPT-4 Vision is a model that offers a balance between cost and performance.","match":{"or":[{"equals":"gpt-4-vision-preview"},{"equals":"gpt-4-1106-vision-preview"}]},"context_window":128000,"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4.1","name":"gpt 4.1","description":"GPT-4.1 is OpenAI's latest flagship model, offering major improvements in coding, instruction following, and long context understanding with up to 1 million tokens of context.","match":{"or":[{"equals":"gpt-4.1"},{"equals":"gpt-4.1-2025-04-14"}]},"context_window":1000000,"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"gpt-4.1-mini","name":"gpt 4.1 mini","description":"GPT-4.1 Mini is a significant leap in small model performance, matching or exceeding GPT-4o in many benchmarks while reducing latency by nearly half and cost by 83%.","match":{"or":[{"equals":"gpt-4.1-mini"},{"equals":"gpt-4.1-mini-2025-04-14"}]},"context_window":1000000,"prices":{"input_mtok":0.4,"cache_read_mtok":0.1,"output_mtok":1.6}},{"id":"gpt-4.1-nano","name":"gpt 4.1 nano","description":"GPT-4.1 Nano is OpenAI's fastest and cheapest model, delivering exceptional performance for its size with a 1 million token context window, ideal for classification and autocompletion tasks.","match":{"or":[{"equals":"gpt-4.1-nano"},{"equals":"gpt-4.1-nano-2025-04-14"}]},"context_window":1000000,"prices":{"input_mtok":0.1,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"gpt-4.5-preview","name":"GPT-4.5 (Preview)","description":"GPT-4.5 (Preview) is a research preview of OpenAI's latest language model, designed to advance capabilities in reasoning, creativity, and multi-turn conversation. It builds on previous iterations with improvements in world knowledge, contextual coherence, and the ability to follow user intent more effectively.","match":{"starts_with":"gpt-4.5-preview"},"prices":{"input_mtok":75,"cache_read_mtok":37.5,"output_mtok":150}},{"id":"gpt-4o","name":"gpt 4o","description":"GPT-4 Optimized (GPT-4o) is designed for high performance in reasoning, creativity, and technical tasks while maintaining consistent output quality.","match":{"or":[{"equals":"gpt-4o"},{"equals":"gpt-4o-2024-05-13"},{"equals":"gpt-4o-2024-08-06"},{"equals":"gpt-4o-2024-11-20"}]},"context_window":128000,"prices":{"input_mtok":2.5,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"gpt-4o-audio-preview","name":"gpt 4o audio preview","description":"Audio model for gpt-4o","match":{"starts_with":"gpt-4o-audio-preview"},"context_window":128000,"price_comments":"input_mtok set equal to input_audio_mtok (audio-only input model, catch-all required by ancestor coverage rule)","prices":{"input_mtok":2.5,"output_mtok":10,"input_audio_mtok":2.5}},{"id":"gpt-4o-mini","name":"gpt 4o mini","description":"GPT-4o Mini is a cost-optimized variant of GPT-4o, designed for high-efficiency processing while maintaining strong performance. It excels in rapid inference and resource-efficient operations, making it ideal for production deployments requiring a balance of cost and capability.","match":{"or":[{"equals":"gpt-4o-mini"},{"equals":"gpt-4o-mini-2024-07-18"},{"equals":"gpt-4o-mini-search-preview"},{"equals":"gpt-4o-mini-search-preview-2025-03-11"}]},"context_window":128000,"prices":{"input_mtok":0.15,"cache_read_mtok":0.075,"output_mtok":0.6}},{"id":"gpt-4o-mini-2024-07-18.ft-","description":"GPT-4o Mini fine tuned.","match":{"starts_with":"gpt-4o-mini-2024-07-18.ft-"},"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"gpt-4o-mini-audio-preview","name":"gpt 4o mini audio preview","description":"Audio model for gpt-4o mini","match":{"starts_with":"gpt-4o-mini-audio"},"price_comments":"input_mtok set equal to input_audio_mtok (audio-only input model, catch-all required by ancestor coverage rule)","prices":{"input_mtok":0.15,"output_mtok":0.6,"input_audio_mtok":0.15}},{"id":"gpt-4o-mini-realtime-preview","match":{"starts_with":"gpt-4o-mini-realtime"},"prices":{"input_mtok":0.6,"cache_read_mtok":0.3,"output_mtok":2.4,"input_audio_mtok":10,"cache_audio_read_mtok":0.3,"output_audio_mtok":20}},{"id":"gpt-4o-mini-transcribe","match":{"equals":"gpt-4o-mini-transcribe"},"prices":{"input_mtok":1.25,"output_mtok":5,"input_audio_mtok":3}},{"id":"gpt-4o-mini-tts","match":{"equals":"gpt-4o-mini-tts"},"price_comments":"output_mtok set equal to output_audio_mtok (audio-only output model, catch-all required by ancestor coverage rule)","prices":{"input_mtok":0.6,"output_mtok":12,"output_audio_mtok":12}},{"id":"gpt-4o-realtime-preview","match":{"starts_with":"gpt-4o-realtime"},"prices":{"input_mtok":5,"cache_read_mtok":2.5,"output_mtok":20,"input_audio_mtok":40,"cache_audio_read_mtok":2.5,"output_audio_mtok":80}},{"id":"gpt-4o-search-preview","name":"GPT-4o Search Preview","description":"GPT-4o Search Previewis a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.","match":{"or":[{"equals":"gpt-4o-search-preview"},{"equals":"gpt-4o-search-preview-2025-03-11"}]},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"gpt-4o-transcribe","match":{"or":[{"equals":"gpt-4o-transcribe"},{"equals":"gpt-4o-transcribe-diarize"}]},"prices":{"input_mtok":2.5,"output_mtok":10,"input_audio_mtok":6}},{"id":"gpt-4o:extended","name":"GPT-4o (extended)","description":"GPT-4o (\"o\" for \"omni\") is OpenAI's latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of GPT-4 Turbo while being twice as fast and 50% more cost-effective. GPT-4o also offers improved performance in processing non-English languages and enhanced visual capabilities.","match":{"equals":"gpt-4o:extended"},"prices":{"input_mtok":6,"output_mtok":18}},{"id":"gpt-5","name":"GPT-5","description":"GPT-5 is OpenAI's flagship model for coding, reasoning, and agentic tasks across domains.","match":{"or":[{"equals":"gpt-5"},{"equals":"gpt-5-2025-08-07"},{"equals":"gpt-5-chat"},{"equals":"gpt-5-chat-latest"},{"equals":"gpt-5-codex"}]},"context_window":400000,"prices":{"input_mtok":1.25,"cache_read_mtok":0.125,"output_mtok":10}},{"id":"gpt-5-image","match":{"equals":"gpt-5-image"},"price_comments":"Seen on OpenRouter before OpenAI","prices":{"input_mtok":10,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"gpt-5-image-mini","match":{"equals":"gpt-5-image-mini"},"price_comments":"Seen on OpenRouter before OpenAI","prices":{"input_mtok":2.5,"cache_read_mtok":0.25,"output_mtok":2}},{"id":"gpt-5-mini","name":"GPT-5 mini","description":"GPT-5 mini is a faster, more cost-efficient version of GPT-5. It's great for well-defined tasks and precise prompts.","match":{"or":[{"equals":"gpt-5-mini"},{"equals":"gpt-5-mini-2025-08-07"}]},"context_window":400000,"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"gpt-5-nano","name":"GPT-5 nano","description":"GPT-5 Nano is OpenAI's fastest, cheapest version of GPT-5. It's great for summarization and classification tasks.","match":{"or":[{"equals":"gpt-5-nano"},{"starts_with":"gpt-5-nano-"}]},"context_window":400000,"prices":{"input_mtok":0.05,"cache_read_mtok":0.005,"output_mtok":0.4}},{"id":"gpt-5-pro","match":{"or":[{"equals":"gpt-5-pro"},{"equals":"gpt-5-pro-2025-10-06"}]},"context_window":400000,"prices":{"input_mtok":15,"output_mtok":120}},{"id":"gpt-5.1","name":"GPT-5.1","description":"The best model for coding and agentic tasks across industries","match":{"or":[{"equals":"gpt-5.1"},{"equals":"gpt-5.1-2025-11-13"},{"equals":"gpt-5.1-codex"},{"equals":"gpt-5.1-codex-max"},{"equals":"gpt-5.1-chat"},{"equals":"gpt-5.1-chat-latest"},{"equals":"gpt-5-1"},{"equals":"gpt-5-1-2025-11-13"},{"equals":"gpt-5-1-codex"},{"equals":"gpt-5-1-codex-max"},{"equals":"gpt-5-1-chat"},{"equals":"gpt-5-1-chat-latest"}]},"context_window":400000,"prices":{"input_mtok":1.25,"cache_read_mtok":0.125,"output_mtok":10}},{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","match":{"or":[{"equals":"gpt-5.1-codex-mini"},{"equals":"gpt-5.1-mini"},{"equals":"gpt-5-1-codex-mini"},{"equals":"gpt-5-1-mini"}]},"context_window":400000,"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"gpt-5.2","name":"GPT-5.2","description":"The best model for coding and agentic tasks across industries","match":{"or":[{"equals":"gpt-5.2"},{"equals":"gpt-5.2-2025-12-11"},{"equals":"gpt-5-2"},{"equals":"gpt-5-2-2025-12-11"},{"equals":"gpt-5.2-chat"},{"equals":"gpt-5.2-chat-latest"},{"equals":"gpt-5-2-chat"},{"equals":"gpt-5-2-chat-latest"},{"equals":"gpt-5.2-codex"},{"equals":"gpt-5-2-codex"}]},"context_window":400000,"prices":{"input_mtok":1.75,"cache_read_mtok":0.175,"output_mtok":14}},{"id":"gpt-5.2-pro","description":"Version of GPT-5.2 that produces smarter and more precise responses.","match":{"or":[{"equals":"gpt-5.2-pro"},{"equals":"gpt-5.2-pro-2025-12-11"},{"equals":"gpt-5-2-pro-2025-12-11"}]},"context_window":400000,"prices":{"input_mtok":21,"output_mtok":168}},{"id":"gpt-5.3-codex","name":"GPT-5.3-Codex","description":"The most capable agentic coding model","match":{"or":[{"equals":"gpt-5.3-codex"},{"equals":"gpt-5-3-codex"}]},"context_window":400000,"prices":{"input_mtok":1.75,"cache_read_mtok":0.175,"output_mtok":14}},{"id":"gpt-5.4","name":"GPT-5.4","description":"OpenAI's most capable model with a 1.05M token context window.","match":{"or":[{"equals":"gpt-5.4"},{"equals":"gpt-5.4-2026-03-05"},{"equals":"gpt-5-4"},{"equals":"gpt-5-4-2026-03-05"}]},"context_window":1050000,"prices":{"input_mtok":{"base":2.5,"tiers":[{"start":272000,"price":5}]},"cache_read_mtok":{"base":0.25,"tiers":[{"start":272000,"price":0.5}]},"output_mtok":{"base":15,"tiers":[{"start":272000,"price":22.5}]}}},{"id":"gpt-5.4-mini","name":"GPT-5.4 mini","description":"Our strongest mini model yet for coding, computer use, and subagents.","match":{"or":[{"equals":"gpt-5.4-mini"},{"equals":"gpt-5.4-mini-2026-03-17"},{"equals":"gpt-5-4-mini"},{"equals":"gpt-5-4-mini-2026-03-17"}]},"context_window":400000,"prices":{"input_mtok":0.75,"cache_read_mtok":0.075,"output_mtok":4.5}},{"id":"gpt-5.4-nano","name":"GPT-5.4 nano","description":"Our cheapest GPT-5.4-class model for simple high-volume tasks.","match":{"or":[{"equals":"gpt-5.4-nano"},{"equals":"gpt-5.4-nano-2026-03-17"},{"equals":"gpt-5-4-nano"},{"equals":"gpt-5-4-nano-2026-03-17"}]},"context_window":400000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.02,"output_mtok":1.25}},{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","description":"Version of GPT-5.4 that produces smarter and more precise responses.","match":{"or":[{"equals":"gpt-5.4-pro"},{"equals":"gpt-5.4-pro-2026-03-05"},{"equals":"gpt-5-4-pro"},{"equals":"gpt-5-4-pro-2026-03-05"}]},"context_window":1050000,"prices":{"input_mtok":{"base":30,"tiers":[{"start":272000,"price":60}]},"output_mtok":{"base":180,"tiers":[{"start":272000,"price":270}]}}},{"id":"gpt-realtime","match":{"or":[{"equals":"gpt-realtime"},{"equals":"gpt-realtime-2025-08-28"}]},"price_comments":"Missing image token prices which we don't support yet","prices":{"input_mtok":4,"cache_read_mtok":0.4,"output_mtok":16,"input_audio_mtok":32,"cache_audio_read_mtok":0.4,"output_audio_mtok":64}},{"id":"gpt-realtime-mini","match":{"equals":"gpt-realtime-mini"},"price_comments":"Missing image token prices which we don't support yet","prices":{"input_mtok":0.6,"cache_read_mtok":0.06,"output_mtok":2.4,"input_audio_mtok":10,"cache_audio_read_mtok":0.3,"output_audio_mtok":20}},{"id":"moderation","description":"All OpenAI moderation models and endpoints are free of charge","match":{"contains":"moderation"},"prices":{}},{"id":"o1","name":"o1","description":"O1 is a model that offers a balance between cost and performance.","match":{"or":[{"equals":"o1"},{"equals":"o1-2024-12-17"},{"equals":"o1-preview"},{"equals":"o1-preview-2024-09-12"}]},"context_window":128000,"prices":{"input_mtok":15,"cache_read_mtok":7.5,"output_mtok":60}},{"id":"o1-mini","name":"o1 mini","description":"O1 Mini is a model that offers a balance between cost and performance.","match":{"or":[{"equals":"o1-mini"},{"equals":"o1-mini-2024-09-12"}]},"context_window":128000,"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o1-pro","name":"o1-pro","description":"The o1 series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o1-pro model uses more compute to think harder and provide consistently better answers.","match":{"or":[{"equals":"o1-pro"},{"equals":"o1-pro-2025-03-19"}]},"prices":{"input_mtok":150,"output_mtok":600}},{"id":"o3","name":"o3","description":"o3 is a well-rounded and powerful model across domains. It sets a new standard for math, science, coding, and visual reasoning tasks. It also excels at technical writing and instruction-following. Use it to think through multi-step problems that involve analysis across text, code, and images. Note that BYOK is required for this model. Set up here: https://openrouter.ai/settings/integrations","match":{"or":[{"equals":"o3"},{"equals":"o3-2025-04-16"}]},"prices":[{"prices":{"input_mtok":10,"cache_read_mtok":0.5,"output_mtok":40}},{"constraint":{"start_date":"2025-06-10"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}}]},{"id":"o3-deep-research","match":{"or":[{"equals":"o3-deep-research"},{"equals":"o3-deep-research-2025-06-26"}]},"prices":{"input_mtok":10,"cache_read_mtok":2.5,"output_mtok":40}},{"id":"o3-mini","name":"o3 Mini","description":"OpenAI o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and coding.","match":{"or":[{"equals":"o3-mini"},{"equals":"o3-mini-2025-01-31"},{"equals":"o3-mini-high"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o3-pro","name":"o3 Pro","description":"The o-series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o3-pro model uses more compute to think harder and provide consistently better answers.","match":{"or":[{"equals":"o3-pro"},{"equals":"o3-pro-2025-06-10"}]},"prices":{"input_mtok":20,"output_mtok":80}},{"id":"o4-mini","name":"o4 Mini High","description":"OpenAI o4-mini-high is the same model as o4-mini with reasoning_effort set to high.","match":{"or":[{"equals":"o4-mini-2025-04-16"},{"equals":"o4-mini-high"},{"equals":"o4-mini"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.275,"output_mtok":4.4}},{"id":"o4-mini-deep-research","match":{"or":[{"equals":"o4-mini-deep-research"},{"equals":"o4-mini-deep-research-2025-06-26"}]},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"text-davinci-002","match":{"equals":"text-davinci-002"},"prices":{"input_mtok":20,"output_mtok":20}},{"id":"text-davinci-003","match":{"equals":"text-davinci-003"},"prices":{"input_mtok":20,"output_mtok":20}},{"id":"text-embedding-3-large","name":"text embedding 3","description":"Text Embedding 3 is a model that offers a balance between cost and performance.","match":{"equals":"text-embedding-3-large"},"context_window":8192,"prices":{"input_mtok":0.13}},{"id":"text-embedding-3-small","name":"text embedding 3","description":"Text Embedding 3 is a model that offers a balance between cost and performance.","match":{"equals":"text-embedding-3-small"},"context_window":8192,"prices":{"input_mtok":0.02}},{"id":"text-embedding-ada-002","name":"text embedding ada","description":"Text Embedding Ada is a model that offers a balance between cost and performance.","match":{"or":[{"equals":"text-embedding-ada"},{"equals":"text-embedding-ada-002"},{"equals":"text-embedding-ada-002-v2"}]},"context_window":8192,"prices":{"input_mtok":0.1}}]},{"id":"openrouter","name":"OpenRouter","pricing_urls":["https://openrouter.ai/models"],"api_pattern":"https://(api\\.)?openrouter\\.ai","models":[{"id":"01-ai/yi-large","match":{"equals":"01-ai/yi-large"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"aetherwiing/mn-starcannon-12b","match":{"equals":"aetherwiing/mn-starcannon-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"agentica-org/deepcoder-14b-preview:free","match":{"equals":"agentica-org/deepcoder-14b-preview:free"},"prices":{}},{"id":"ai21/jamba-1-5-large","match":{"equals":"ai21/jamba-1-5-large"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"ai21/jamba-1-5-mini","match":{"equals":"ai21/jamba-1-5-mini"},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"ai21/jamba-1.6-large","match":{"equals":"ai21/jamba-1.6-large"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"ai21/jamba-1.6-mini","match":{"equals":"ai21/jamba-1.6-mini"},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"ai21/jamba-instruct","match":{"equals":"ai21/jamba-instruct"},"prices":{"input_mtok":0.5,"output_mtok":0.7}},{"id":"aion-1.0","name":"Aion-1.0","match":{"equals":"aion-1.0"},"prices":{"input_mtok":4,"output_mtok":8}},{"id":"aion-1.0-mini","name":"Aion-1.0-Mini","match":{"equals":"aion-1.0-mini"},"prices":{"input_mtok":0.7,"output_mtok":1.4}},{"id":"aion-labs/aion-1.0","match":{"equals":"aion-labs/aion-1.0"},"prices":{"input_mtok":4,"output_mtok":8}},{"id":"aion-labs/aion-1.0-mini","match":{"equals":"aion-labs/aion-1.0-mini"},"prices":{"input_mtok":0.7,"output_mtok":1.4}},{"id":"aion-labs/aion-rp-llama-3.1-8b","match":{"equals":"aion-labs/aion-rp-llama-3.1-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"aion-rp-llama-3.1-8b","name":"Aion-RP 1.0 (8B)","match":{"equals":"aion-rp-llama-3.1-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"alfredpros/codellama-7b-instruct-solidity","match":{"equals":"alfredpros/codellama-7b-instruct-solidity"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"all-hands/openhands-lm-32b-v0.1","match":{"equals":"all-hands/openhands-lm-32b-v0.1"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"allenai/molmo-7b-d:free","match":{"equals":"allenai/molmo-7b-d:free"},"prices":{}},{"id":"alpindale/goliath-120b","match":{"equals":"alpindale/goliath-120b"},"prices":{"input_mtok":6.5625,"output_mtok":9.375}},{"id":"alpindale/magnum-72b","match":{"equals":"alpindale/magnum-72b"},"prices":{"input_mtok":1.5,"output_mtok":2.25}},{"id":"amazon/nova-lite-v1","match":{"equals":"amazon/nova-lite-v1"},"prices":{"input_mtok":0.06,"output_mtok":0.24}},{"id":"amazon/nova-micro-v1","match":{"equals":"amazon/nova-micro-v1"},"prices":{"input_mtok":0.035,"output_mtok":0.14}},{"id":"amazon/nova-pro-v1","match":{"equals":"amazon/nova-pro-v1"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"anthracite-org/magnum-v2-72b","match":{"equals":"anthracite-org/magnum-v2-72b"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"anthracite-org/magnum-v4-72b","match":{"equals":"anthracite-org/magnum-v4-72b"},"prices":{"input_mtok":1.5,"output_mtok":2.25}},{"id":"anthropic/claude-2","match":{"or":[{"equals":"anthropic/claude-2"},{"equals":"anthropic/claude-2.0"},{"equals":"anthropic/claude-2.0:beta"},{"equals":"anthropic/claude-2.1"},{"equals":"anthropic/claude-2.1:beta"},{"equals":"anthropic/claude-2:beta"}]},"prices":{"input_mtok":8,"output_mtok":24}},{"id":"anthropic/claude-3-haiku","match":{"or":[{"equals":"anthropic/claude-3-haiku"},{"equals":"anthropic/claude-3-haiku:beta"}]},"prices":{"input_mtok":0.25,"output_mtok":1.25}},{"id":"anthropic/claude-3-opus","match":{"or":[{"equals":"anthropic/claude-3-opus"},{"equals":"anthropic/claude-3-opus:beta"}]},"prices":{"input_mtok":15,"output_mtok":75}},{"id":"anthropic/claude-3-sonnet","match":{"or":[{"equals":"anthropic/claude-3-sonnet"},{"equals":"anthropic/claude-3-sonnet:beta"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"anthropic/claude-3.5-haiku","match":{"or":[{"equals":"anthropic/claude-3.5-haiku"},{"equals":"anthropic/claude-3.5-haiku-20241022"},{"equals":"anthropic/claude-3.5-haiku-20241022:beta"},{"equals":"anthropic/claude-3.5-haiku:beta"}]},"prices":{"input_mtok":0.8,"output_mtok":4}},{"id":"anthropic/claude-3.5-sonnet","match":{"or":[{"equals":"anthropic/claude-3.5-sonnet"},{"equals":"anthropic/claude-3.5-sonnet-20240620"},{"equals":"anthropic/claude-3.5-sonnet-20240620:beta"},{"equals":"anthropic/claude-3.5-sonnet:beta"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"anthropic/claude-3.7-sonnet","match":{"or":[{"equals":"anthropic/claude-3.7-sonnet"},{"equals":"anthropic/claude-3.7-sonnet:beta"},{"equals":"anthropic/claude-3.7-sonnet:thinking"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"anthropic/claude-haiku-4.5","match":{"or":[{"equals":"anthropic/claude-haiku-4.5"},{"equals":"anthropic/claude-4.5-haiku-20251001"},{"equals":"anthropic/claude-4.5-haiku-20251001:beta"},{"equals":"anthropic/claude-haiku-4.5-20251001"},{"equals":"anthropic/claude-haiku-4.5-20251001:beta"},{"equals":"anthropic/claude-haiku-4.5:beta"}]},"prices":{"input_mtok":1,"cache_write_mtok":1.25,"cache_read_mtok":0.1,"output_mtok":5}},{"id":"anthropic/claude-opus-4.5","match":{"or":[{"equals":"anthropic/claude-opus-4.5"},{"equals":"anthropic/claude-4.5-opus-20251124"},{"equals":"anthropic/claude-4.5-opus-20251124:beta"},{"equals":"anthropic/claude-opus-4.5-20251124"},{"equals":"anthropic/claude-opus-4.5-20251124:beta"},{"equals":"anthropic/claude-opus-4.5:beta"}]},"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"anthropic/claude-opus-4.6","match":{"or":[{"equals":"anthropic/claude-opus-4.6"},{"equals":"anthropic/claude-4.6-opus-20260205"},{"equals":"anthropic/claude-4.6-opus-20260205:beta"},{"equals":"anthropic/claude-opus-4.6-20260205"},{"equals":"anthropic/claude-opus-4.6-20260205:beta"},{"equals":"anthropic/claude-opus-4.6:beta"}]},"context_window":1000000,"price_comments":"Flat pricing across full 1M context window (no tiered pricing). Ref: https://platform.claude.com/docs/en/about-claude/pricing#long-context-pricing","prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"anthropic/claude-sonnet-4.5","match":{"or":[{"equals":"anthropic/claude-sonnet-4.5"},{"equals":"anthropic/claude-4.5-sonnet-20250929"},{"equals":"anthropic/claude-4.5-sonnet-20250929:beta"},{"equals":"anthropic/claude-sonnet-4.5-20250929"},{"equals":"anthropic/claude-sonnet-4.5-20250929:beta"},{"equals":"anthropic/claude-sonnet-4.5:beta"}]},"context_window":1000000,"price_comments":"Tiered pricing: Unlike 4.6 models, Sonnet 4.5 has long-context surcharge. Ref: https://platform.claude.com/docs/en/about-claude/pricing#long-context-pricing","prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"id":"anthropic/claude-sonnet-4.6","match":{"or":[{"equals":"anthropic/claude-sonnet-4.6"},{"equals":"anthropic/claude-4.6-sonnet-20260217"},{"equals":"anthropic/claude-4.6-sonnet-20260217:beta"},{"equals":"anthropic/claude-sonnet-4.6-20260217"},{"equals":"anthropic/claude-sonnet-4.6-20260217:beta"},{"equals":"anthropic/claude-sonnet-4.6:beta"}]},"context_window":1000000,"price_comments":"Flat pricing across full 1M context window (no tiered pricing). Ref: https://platform.claude.com/docs/en/about-claude/pricing#long-context-pricing","prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"anubis-pro-105b-v1","name":"Anubis Pro 105B V1","match":{"equals":"anubis-pro-105b-v1"},"prices":{"input_mtok":0.8,"output_mtok":1}},{"id":"arcee-blitz","name":"Arcee Blitz","match":{"equals":"arcee-blitz"},"prices":{"input_mtok":0.45,"output_mtok":0.75}},{"id":"arliai/qwq-32b-arliai-rpr-v1:free","match":{"equals":"arliai/qwq-32b-arliai-rpr-v1:free"},"prices":{}},{"id":"bytedance-research/ui-tars-72b:free","match":{"equals":"bytedance-research/ui-tars-72b:free"},"prices":{}},{"id":"caller-large","name":"Caller Large","match":{"equals":"caller-large"},"prices":{"input_mtok":0.55,"output_mtok":0.85}},{"id":"chatgpt-4o-latest","name":"ChatGPT-4o","match":{"equals":"chatgpt-4o-latest"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"claude-2","name":"Claude v2","match":{"or":[{"equals":"claude-2"},{"equals":"claude-2.0"},{"equals":"claude-2.0:beta"},{"equals":"claude-2.1"},{"equals":"claude-2.1:beta"},{"equals":"claude-2:beta"}]},"prices":{"input_mtok":8,"output_mtok":24}},{"id":"claude-3-haiku","name":"Claude 3 Haiku","match":{"or":[{"equals":"claude-3-haiku"},{"equals":"claude-3-haiku:beta"}]},"prices":{"input_mtok":0.25,"cache_write_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":1.25}},{"id":"claude-3-opus","name":"Claude 3 Opus","match":{"or":[{"equals":"claude-3-opus"},{"equals":"claude-3-opus:beta"}]},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-3-sonnet","name":"Claude 3 Sonnet","match":{"or":[{"equals":"claude-3-sonnet"},{"equals":"claude-3-sonnet:beta"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3.5-haiku","name":"Claude 3.5 Haiku","match":{"or":[{"equals":"claude-3.5-haiku"},{"equals":"claude-3.5-haiku-20241022"},{"equals":"claude-3.5-haiku-20241022:beta"},{"equals":"claude-3.5-haiku:beta"}]},"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"claude-3.5-sonnet","name":"Claude 3.5 Sonnet","match":{"or":[{"equals":"claude-3.5-sonnet"},{"equals":"claude-3.5-sonnet-20240620"},{"equals":"claude-3.5-sonnet-20240620:beta"},{"equals":"claude-3.5-sonnet:beta"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3.7-sonnet","name":"Claude 3.7 Sonnet","match":{"or":[{"equals":"claude-3.7-sonnet"},{"equals":"claude-3.7-sonnet:beta"},{"equals":"claude-3.7-sonnet:thinking"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-opus-4","name":"Claude Opus 4","match":{"equals":"claude-opus-4"},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-sonnet-4","name":"Claude Sonnet 4","match":{"equals":"claude-sonnet-4"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"codellama-7b-instruct-solidity","name":"CodeLLaMa 7B Instruct Solidity","match":{"equals":"codellama-7b-instruct-solidity"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"coder-large","name":"Coder Large","match":{"equals":"coder-large"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"codestral-2501","name":"Codestral 2501","match":{"equals":"codestral-2501"},"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"codex-mini","name":"Codex Mini","match":{"equals":"codex-mini"},"prices":{"input_mtok":1.5,"cache_read_mtok":0.375,"output_mtok":6}},{"id":"cognitivecomputations/dolphin-mixtral-8x22b","match":{"equals":"cognitivecomputations/dolphin-mixtral-8x22b"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"cognitivecomputations/dolphin-mixtral-8x7b","match":{"equals":"cognitivecomputations/dolphin-mixtral-8x7b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"cognitivecomputations/dolphin3.0-mistral-24b:free","match":{"equals":"cognitivecomputations/dolphin3.0-mistral-24b:free"},"prices":{}},{"id":"cognitivecomputations/dolphin3.0-r1-mistral-24b:free","match":{"equals":"cognitivecomputations/dolphin3.0-r1-mistral-24b:free"},"prices":{}},{"id":"cohere/command","match":{"equals":"cohere/command"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"cohere/command-a","match":{"equals":"cohere/command-a"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"cohere/command-r","match":{"or":[{"equals":"cohere/command-r"},{"equals":"cohere/command-r-03-2024"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"cohere/command-r-08-2024","match":{"equals":"cohere/command-r-08-2024"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"cohere/command-r-plus","match":{"or":[{"equals":"cohere/command-r-plus"},{"equals":"cohere/command-r-plus-04-2024"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"cohere/command-r-plus-08-2024","match":{"equals":"cohere/command-r-plus-08-2024"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"cohere/command-r7b-12-2024","match":{"equals":"cohere/command-r7b-12-2024"},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"command","name":"Command","match":{"equals":"command"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"command-a","name":"Command A","match":{"equals":"command-a"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r","name":"Command R","match":{"or":[{"equals":"command-r"},{"equals":"command-r-03-2024"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"command-r-08-2024","name":"Command R (08-2024)","match":{"equals":"command-r-08-2024"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"command-r-plus","name":"Command R+","match":{"or":[{"equals":"command-r-plus"},{"equals":"command-r-plus-04-2024"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"command-r-plus-08-2024","name":"Command R+ (08-2024)","match":{"equals":"command-r-plus-08-2024"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r7b-12-2024","name":"Command R7B (12-2024)","match":{"equals":"command-r7b-12-2024"},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"deepcoder-14b-preview:free","name":"Deepcoder 14B Preview (free)","match":{"equals":"deepcoder-14b-preview:free"},"prices":{}},{"id":"deephermes-3-llama-3-8b-preview:free","name":"DeepHermes 3 Llama 3 8B Preview (free)","match":{"equals":"deephermes-3-llama-3-8b-preview:free"},"prices":{}},{"id":"deepseek-chat","name":"DeepSeek V3","match":{"equals":"deepseek-chat"},"prices":{"input_mtok":0.38,"output_mtok":0.89}},{"id":"deepseek-chat-v3-0324","name":"DeepSeek V3 0324","match":{"equals":"deepseek-chat-v3-0324"},"prices":{"input_mtok":0.3,"output_mtok":0.88}},{"id":"deepseek-chat-v3-0324:free","name":"DeepSeek V3 0324 (free)","match":{"equals":"deepseek-chat-v3-0324:free"},"prices":{}},{"id":"deepseek-chat:free","name":"DeepSeek V3 (free)","match":{"equals":"deepseek-chat:free"},"prices":{}},{"id":"deepseek-prover-v2","name":"DeepSeek Prover V2","match":{"equals":"deepseek-prover-v2"},"prices":{"input_mtok":0.5,"output_mtok":2.18}},{"id":"deepseek-r1","name":"R1","match":{"equals":"deepseek-r1"},"prices":{"input_mtok":0.45,"output_mtok":2.15}},{"id":"deepseek-r1-0528","name":"R1 0528","match":{"equals":"deepseek-r1-0528"},"prices":{"input_mtok":0.5,"output_mtok":2.15}},{"id":"deepseek-r1-0528-qwen3-8b","name":"Deepseek R1 0528 Qwen3 8B","match":{"equals":"deepseek-r1-0528-qwen3-8b"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"deepseek-r1-0528-qwen3-8b:free","name":"Deepseek R1 0528 Qwen3 8B (free)","match":{"equals":"deepseek-r1-0528-qwen3-8b:free"},"prices":{}},{"id":"deepseek-r1-0528:free","name":"R1 0528 (free)","match":{"equals":"deepseek-r1-0528:free"},"prices":{}},{"id":"deepseek-r1-distill-llama-70b","name":"R1 Distill Llama 70B","match":{"equals":"deepseek-r1-distill-llama-70b"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"deepseek-r1-distill-llama-70b:free","name":"R1 Distill Llama 70B (free)","match":{"equals":"deepseek-r1-distill-llama-70b:free"},"prices":{}},{"id":"deepseek-r1-distill-llama-8b","name":"R1 Distill Llama 8B","match":{"equals":"deepseek-r1-distill-llama-8b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"deepseek-r1-distill-qwen-1.5b","name":"R1 Distill Qwen 1.5B","match":{"equals":"deepseek-r1-distill-qwen-1.5b"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"deepseek-r1-distill-qwen-14b","name":"R1 Distill Qwen 14B","match":{"equals":"deepseek-r1-distill-qwen-14b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"deepseek-r1-distill-qwen-14b:free","name":"R1 Distill Qwen 14B (free)","match":{"equals":"deepseek-r1-distill-qwen-14b:free"},"prices":{}},{"id":"deepseek-r1-distill-qwen-32b","name":"R1 Distill Qwen 32B","match":{"equals":"deepseek-r1-distill-qwen-32b"},"prices":{"input_mtok":0.12,"output_mtok":0.18}},{"id":"deepseek-r1-distill-qwen-32b:free","name":"R1 Distill Qwen 32B (free)","match":{"equals":"deepseek-r1-distill-qwen-32b:free"},"prices":{}},{"id":"deepseek-r1-distill-qwen-7b","name":"R1 Distill Qwen 7B","match":{"equals":"deepseek-r1-distill-qwen-7b"},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"deepseek-r1:free","name":"R1 (free)","match":{"equals":"deepseek-r1:free"},"prices":{}},{"id":"deepseek-r1t-chimera:free","name":"DeepSeek R1T Chimera (free)","match":{"equals":"deepseek-r1t-chimera:free"},"prices":{}},{"id":"deepseek-v3-base:free","name":"DeepSeek V3 Base (free)","match":{"equals":"deepseek-v3-base:free"},"prices":{}},{"id":"deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","match":{"equals":"deepseek-v3.1-terminus"},"context_window":163840,"prices":{"input_mtok":0.23,"output_mtok":0.9}},{"id":"deepseek/deepseek-chat","match":{"equals":"deepseek/deepseek-chat"},"prices":{"input_mtok":0.38,"output_mtok":0.89}},{"id":"deepseek/deepseek-chat-v3-0324","match":{"equals":"deepseek/deepseek-chat-v3-0324"},"prices":{"input_mtok":0.27,"output_mtok":1.1}},{"id":"deepseek/deepseek-chat-v3-0324:free","match":{"equals":"deepseek/deepseek-chat-v3-0324:free"},"prices":{}},{"id":"deepseek/deepseek-chat-v3.1","name":"DeepSeek Chat V3.1","match":{"equals":"deepseek/deepseek-chat-v3.1"},"context_window":163840,"prices":{"input_mtok":0.2,"output_mtok":0.8}},{"id":"deepseek/deepseek-chat:free","match":{"equals":"deepseek/deepseek-chat:free"},"prices":{}},{"id":"deepseek/deepseek-r1","match":{"equals":"deepseek/deepseek-r1"},"prices":{"input_mtok":0.5,"output_mtok":3}},{"id":"deepseek/deepseek-r1-distill-llama-70b","match":{"equals":"deepseek/deepseek-r1-distill-llama-70b"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"deepseek/deepseek-r1-distill-llama-70b:free","match":{"equals":"deepseek/deepseek-r1-distill-llama-70b:free"},"prices":{}},{"id":"deepseek/deepseek-r1-distill-llama-8b","match":{"equals":"deepseek/deepseek-r1-distill-llama-8b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"deepseek/deepseek-r1-distill-qwen-1.5b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-1.5b"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"deepseek/deepseek-r1-distill-qwen-14b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-14b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"deepseek/deepseek-r1-distill-qwen-14b:free","match":{"equals":"deepseek/deepseek-r1-distill-qwen-14b:free"},"prices":{}},{"id":"deepseek/deepseek-r1-distill-qwen-32b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-32b"},"prices":{"input_mtok":0.12,"output_mtok":0.18}},{"id":"deepseek/deepseek-r1-distill-qwen-32b:free","match":{"equals":"deepseek/deepseek-r1-distill-qwen-32b:free"},"prices":{}},{"id":"deepseek/deepseek-r1-zero:free","match":{"equals":"deepseek/deepseek-r1-zero:free"},"prices":{}},{"id":"deepseek/deepseek-r1:free","match":{"equals":"deepseek/deepseek-r1:free"},"prices":{}},{"id":"deepseek/deepseek-v3-base:free","match":{"equals":"deepseek/deepseek-v3-base:free"},"prices":{}},{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek V3.2 Experimental","match":{"equals":"deepseek/deepseek-v3.2-exp"},"prices":{"input_mtok":0.27,"output_mtok":0.4}},{"id":"devstral-small","name":"Devstral Small","match":{"equals":"devstral-small"},"prices":{"input_mtok":0.06,"output_mtok":0.12}},{"id":"devstral-small:free","name":"Devstral Small (free)","match":{"equals":"devstral-small:free"},"prices":{}},{"id":"dobby-mini-unhinged-plus-llama-3.1-8b","name":"Dobby Mini Plus Llama 3.1 8B","match":{"equals":"dobby-mini-unhinged-plus-llama-3.1-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"dolphin-mixtral-8x22b","name":"Dolphin 2.9.2 Mixtral 8x22B 🐬","match":{"equals":"dolphin-mixtral-8x22b"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"dolphin3.0-mistral-24b:free","name":"Dolphin3.0 Mistral 24B (free)","match":{"equals":"dolphin3.0-mistral-24b:free"},"prices":{}},{"id":"dolphin3.0-r1-mistral-24b:free","name":"Dolphin3.0 R1 Mistral 24B (free)","match":{"equals":"dolphin3.0-r1-mistral-24b:free"},"prices":{}},{"id":"eleutherai/llemma_7b","match":{"equals":"eleutherai/llemma_7b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"eva-llama-3.33-70b","name":"EVA Llama 3.33 70B","match":{"equals":"eva-llama-3.33-70b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"eva-qwen-2.5-32b","name":"EVA Qwen2.5 32B","match":{"equals":"eva-qwen-2.5-32b"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"eva-qwen-2.5-72b","name":"EVA Qwen2.5 72B","match":{"equals":"eva-qwen-2.5-72b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"eva-unit-01/eva-llama-3.33-70b","match":{"equals":"eva-unit-01/eva-llama-3.33-70b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"eva-unit-01/eva-qwen-2.5-32b","match":{"equals":"eva-unit-01/eva-qwen-2.5-32b"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"eva-unit-01/eva-qwen-2.5-72b","match":{"equals":"eva-unit-01/eva-qwen-2.5-72b"},"prices":{"input_mtok":0.9,"output_mtok":1.2}},{"id":"featherless/qwerky-72b:free","match":{"equals":"featherless/qwerky-72b:free"},"prices":{}},{"id":"fimbulvetr-11b-v2","name":"Fimbulvetr 11B v2","match":{"equals":"fimbulvetr-11b-v2"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"gemini-2.0-flash-001","name":"Gemini 2.0 Flash","match":{"equals":"gemini-2.0-flash-001"},"prices":{"input_mtok":0.1,"cache_write_mtok":0.1833,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"gemini-2.0-flash-exp:free","name":"Gemini 2.0 Flash Experimental (free)","match":{"equals":"gemini-2.0-flash-exp:free"},"prices":{}},{"id":"gemini-2.0-flash-lite-001","name":"Gemini 2.0 Flash Lite","match":{"equals":"gemini-2.0-flash-lite-001"},"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","match":{"or":[{"equals":"gemini-2.5-flash"},{"equals":"google/gemini-2.5-flash"}]},"prices":{"input_mtok":0.3,"cache_write_mtok":0.3833,"cache_read_mtok":0.075,"output_mtok":2.5}},{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview 06-17","match":{"equals":"gemini-2.5-flash-lite-preview-06-17"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"gemini-2.5-flash-preview","name":"Gemini 2.5 Flash Preview 04-17","match":{"or":[{"equals":"gemini-2.5-flash-preview"},{"equals":"gemini-2.5-flash-preview-05-20"}]},"prices":{"input_mtok":0.15,"cache_write_mtok":0.2333,"cache_read_mtok":0.0375,"output_mtok":0.6}},{"id":"gemini-2.5-flash-preview-05-20:thinking","name":"Gemini 2.5 Flash Preview 05-20 (thinking)","match":{"equals":"gemini-2.5-flash-preview-05-20:thinking"},"prices":{"input_mtok":0.15,"cache_write_mtok":0.2333,"cache_read_mtok":0.0375,"output_mtok":3.5}},{"id":"gemini-2.5-flash-preview:thinking","name":"Gemini 2.5 Flash Preview 04-17 (thinking)","match":{"equals":"gemini-2.5-flash-preview:thinking"},"prices":{"input_mtok":0.15,"cache_write_mtok":0.2333,"cache_read_mtok":0.0375,"output_mtok":3.5}},{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","match":{"or":[{"equals":"gemini-2.5-pro"},{"equals":"gemini-2.5-pro-preview"},{"equals":"gemini-2.5-pro-preview-05-06"},{"equals":"google/gemini-2.5-pro"},{"equals":"google/gemini-2.5-pro-preview"},{"equals":"google/gemini-2.5-pro-preview-05-06"}]},"prices":{"input_mtok":1.25,"cache_write_mtok":1.625,"cache_read_mtok":0.31,"output_mtok":10}},{"id":"gemini-2.5-pro-exp-03-25","name":"Gemini 2.5 Pro Experimental","match":{"equals":"gemini-2.5-pro-exp-03-25"},"prices":{}},{"id":"gemini-flash-1.5","name":"Gemini 1.5 Flash","match":{"equals":"gemini-flash-1.5"},"prices":{"input_mtok":0.075,"cache_write_mtok":0.1583,"cache_read_mtok":0.01875,"output_mtok":0.3}},{"id":"gemini-flash-1.5-8b","name":"Gemini 1.5 Flash 8B","match":{"equals":"gemini-flash-1.5-8b"},"prices":{"input_mtok":0.0375,"cache_write_mtok":0.0583,"cache_read_mtok":0.01,"output_mtok":0.15}},{"id":"gemini-pro-1.5","name":"Gemini 1.5 Pro","match":{"equals":"gemini-pro-1.5"},"prices":{"input_mtok":1.25,"output_mtok":5}},{"id":"gemma-2-27b-it","name":"Gemma 2 27B","match":{"equals":"gemma-2-27b-it"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"gemma-2-9b-it","name":"Gemma 2 9B","match":{"equals":"gemma-2-9b-it"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"gemma-2-9b-it:free","name":"Gemma 2 9B (free)","match":{"equals":"gemma-2-9b-it:free"},"prices":{}},{"id":"gemma-3-12b-it","name":"Gemma 3 12B","match":{"equals":"gemma-3-12b-it"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"gemma-3-12b-it:free","name":"Gemma 3 12B (free)","match":{"equals":"gemma-3-12b-it:free"},"prices":{}},{"id":"gemma-3-27b-it","name":"Gemma 3 27B","match":{"equals":"gemma-3-27b-it"},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"gemma-3-27b-it:free","name":"Gemma 3 27B (free)","match":{"equals":"gemma-3-27b-it:free"},"prices":{}},{"id":"gemma-3-4b-it","name":"Gemma 3 4B","match":{"equals":"gemma-3-4b-it"},"prices":{"input_mtok":0.02,"output_mtok":0.04}},{"id":"gemma-3-4b-it:free","name":"Gemma 3 4B (free)","match":{"equals":"gemma-3-4b-it:free"},"prices":{}},{"id":"gemma-3n-e4b-it:free","name":"Gemma 3n 4B (free)","match":{"equals":"gemma-3n-e4b-it:free"},"prices":{}},{"id":"glm-4-32b","name":"GLM 4 32B","match":{"equals":"glm-4-32b"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"glm-4-32b:free","name":"GLM 4 32B (free)","match":{"equals":"glm-4-32b:free"},"prices":{}},{"id":"glm-z1-32b","name":"GLM Z1 32B","match":{"equals":"glm-z1-32b"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"glm-z1-32b:free","name":"GLM Z1 32B (free)","match":{"equals":"glm-z1-32b:free"},"prices":{}},{"id":"glm-z1-rumination-32b","name":"GLM Z1 Rumination 32B","match":{"equals":"glm-z1-rumination-32b"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"goliath-120b","name":"Goliath 120B","match":{"equals":"goliath-120b"},"prices":{"input_mtok":10,"output_mtok":12.5}},{"id":"google/gemini-2.0-flash-001","match":{"equals":"google/gemini-2.0-flash-001"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"google/gemini-2.0-flash-exp:free","match":{"equals":"google/gemini-2.0-flash-exp:free"},"prices":{}},{"id":"google/gemini-2.0-flash-lite-001","match":{"equals":"google/gemini-2.0-flash-lite-001"},"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"google/gemini-2.0-flash-thinking-exp-1219:free","match":{"equals":"google/gemini-2.0-flash-thinking-exp-1219:free"},"prices":{}},{"id":"google/gemini-2.0-flash-thinking-exp:free","match":{"equals":"google/gemini-2.0-flash-thinking-exp:free"},"prices":{}},{"id":"google/gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image (Nano Banana)","match":{"or":[{"equals":"google/gemini-2.5-flash-image"},{"equals":"google/gemini-2.5-flash-image-preview"}]},"prices":{"input_mtok":0.3,"output_mtok":2.5}},{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","match":{"equals":"google/gemini-2.5-flash-lite"},"prices":{"input_mtok":0.1,"cache_write_mtok":0.183,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-2025","match":{"equals":"google/gemini-2.5-flash-lite-preview-09-2025"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"google/gemini-2.5-flash-preview","match":{"equals":"google/gemini-2.5-flash-preview"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"google/gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-2025","match":{"equals":"google/gemini-2.5-flash-preview-09-2025"},"prices":{"input_mtok":0.3,"cache_write_mtok":0.383,"cache_read_mtok":0.075,"output_mtok":2.5}},{"id":"google/gemini-2.5-flash-preview:thinking","match":{"equals":"google/gemini-2.5-flash-preview:thinking"},"prices":{"input_mtok":0.15,"output_mtok":3.5}},{"id":"google/gemini-2.5-pro-exp-03-25:free","match":{"equals":"google/gemini-2.5-pro-exp-03-25:free"},"prices":{}},{"id":"google/gemini-2.5-pro-preview-03-25","match":{"equals":"google/gemini-2.5-pro-preview-03-25"},"prices":{"input_mtok":1.25,"output_mtok":10}},{"id":"google/gemini-flash-1.5","match":{"equals":"google/gemini-flash-1.5"},"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"google/gemini-flash-1.5-8b","match":{"equals":"google/gemini-flash-1.5-8b"},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"google/gemini-flash-1.5-8b-exp","match":{"equals":"google/gemini-flash-1.5-8b-exp"},"prices":{}},{"id":"google/gemini-pro","match":{"or":[{"equals":"google/gemini-pro"},{"equals":"google/gemini-pro-vision"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"google/gemini-pro-1.5","match":{"equals":"google/gemini-pro-1.5"},"prices":{"input_mtok":1.25,"output_mtok":5}},{"id":"google/gemma-2-27b-it","match":{"equals":"google/gemma-2-27b-it"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"google/gemma-2-9b-it","match":{"equals":"google/gemma-2-9b-it"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"google/gemma-2-9b-it:free","match":{"equals":"google/gemma-2-9b-it:free"},"prices":{}},{"id":"google/gemma-3-12b-it","match":{"equals":"google/gemma-3-12b-it"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"google/gemma-3-12b-it:free","match":{"equals":"google/gemma-3-12b-it:free"},"prices":{}},{"id":"google/gemma-3-1b-it:free","match":{"equals":"google/gemma-3-1b-it:free"},"prices":{}},{"id":"google/gemma-3-27b-it","match":{"equals":"google/gemma-3-27b-it"},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"google/gemma-3-27b-it:free","match":{"equals":"google/gemma-3-27b-it:free"},"prices":{}},{"id":"google/gemma-3-4b-it","match":{"equals":"google/gemma-3-4b-it"},"prices":{"input_mtok":0.02,"output_mtok":0.04}},{"id":"google/gemma-3-4b-it:free","match":{"equals":"google/gemma-3-4b-it:free"},"prices":{}},{"id":"google/learnlm-1.5-pro-experimental:free","match":{"equals":"google/learnlm-1.5-pro-experimental:free"},"prices":{}},{"id":"google/palm-2-chat-bison","match":{"or":[{"equals":"google/palm-2-chat-bison"},{"equals":"google/palm-2-chat-bison-32k"}]},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"google/palm-2-codechat-bison","match":{"or":[{"equals":"google/palm-2-codechat-bison"},{"equals":"google/palm-2-codechat-bison-32k"}]},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo","name":"GPT-3.5 Turbo","match":{"or":[{"equals":"gpt-3.5-turbo"},{"equals":"gpt-3.5-turbo-0125"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"gpt-3.5-turbo-0613","name":"GPT-3.5 Turbo (older v0613)","match":{"equals":"gpt-3.5-turbo-0613"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo-1106","name":"GPT-3.5 Turbo 16k (older v1106)","match":{"equals":"gpt-3.5-turbo-1106"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo-16k","name":"GPT-3.5 Turbo 16k","match":{"equals":"gpt-3.5-turbo-16k"},"prices":{"input_mtok":3,"output_mtok":4}},{"id":"gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","match":{"equals":"gpt-3.5-turbo-instruct"},"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-4","name":"GPT-4","match":{"or":[{"equals":"gpt-4"},{"equals":"gpt-4-0314"}]},"prices":{"input_mtok":30,"output_mtok":60}},{"id":"gpt-4-1106-preview","name":"GPT-4 Turbo (older v1106)","match":{"equals":"gpt-4-1106-preview"},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4-turbo","name":"GPT-4 Turbo","match":{"or":[{"equals":"gpt-4-turbo"},{"equals":"gpt-4-turbo-preview"}]},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4.1","name":"GPT-4.1","match":{"equals":"gpt-4.1"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"gpt-4.1-mini","name":"GPT-4.1 Mini","match":{"equals":"gpt-4.1-mini"},"prices":{"input_mtok":0.4,"cache_read_mtok":0.1,"output_mtok":1.6}},{"id":"gpt-4.1-nano","name":"GPT-4.1 Nano","match":{"equals":"gpt-4.1-nano"},"prices":{"input_mtok":0.1,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"gpt-4.5-preview","name":"GPT-4.5 (Preview)","match":{"equals":"gpt-4.5-preview"},"prices":{"input_mtok":75,"cache_read_mtok":37.5,"output_mtok":150}},{"id":"gpt-4o","name":"GPT-4o","match":{"or":[{"equals":"gpt-4o"},{"equals":"gpt-4o-2024-08-06"},{"equals":"gpt-4o-2024-11-20"}]},"prices":{"input_mtok":2.5,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"gpt-4o-2024-05-13","name":"GPT-4o (2024-05-13)","match":{"equals":"gpt-4o-2024-05-13"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"gpt-4o-mini","name":"GPT-4o-mini","match":{"or":[{"equals":"gpt-4o-mini"},{"equals":"gpt-4o-mini-2024-07-18"}]},"prices":{"input_mtok":0.15,"cache_read_mtok":0.075,"output_mtok":0.6}},{"id":"gpt-4o-mini-search-preview","name":"GPT-4o-mini Search Preview","match":{"equals":"gpt-4o-mini-search-preview"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"gpt-4o-search-preview","name":"GPT-4o Search Preview","match":{"equals":"gpt-4o-search-preview"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"gpt-4o:extended","name":"GPT-4o (extended)","match":{"equals":"gpt-4o:extended"},"prices":{"input_mtok":6,"output_mtok":18}},{"id":"grok-2-1212","name":"Grok 2 1212","match":{"equals":"grok-2-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"grok-2-vision-1212","name":"Grok 2 Vision 1212","match":{"equals":"grok-2-vision-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"grok-3","name":"Grok 3","match":{"or":[{"equals":"grok-3"},{"equals":"grok-3-beta"}]},"prices":{"input_mtok":3,"cache_read_mtok":0.75,"output_mtok":15}},{"id":"grok-3-mini","name":"Grok 3 Mini","match":{"or":[{"equals":"grok-3-mini"},{"equals":"grok-3-mini-beta"}]},"prices":{"input_mtok":0.3,"cache_read_mtok":0.075,"output_mtok":0.5}},{"id":"grok-beta","name":"Grok Beta","match":{"equals":"grok-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"grok-vision-beta","name":"Grok Vision Beta","match":{"equals":"grok-vision-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"gryphe/mythomax-l2-13b","match":{"equals":"gryphe/mythomax-l2-13b"},"prices":{"input_mtok":0.065,"output_mtok":0.065}},{"id":"hermes-2-pro-llama-3-8b","name":"Hermes 2 Pro - Llama-3 8B","match":{"equals":"hermes-2-pro-llama-3-8b"},"prices":{"input_mtok":0.025,"output_mtok":0.04}},{"id":"hermes-3-llama-3.1-405b","name":"Hermes 3 405B Instruct","match":{"equals":"hermes-3-llama-3.1-405b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"hermes-3-llama-3.1-70b","name":"Hermes 3 70B Instruct","match":{"equals":"hermes-3-llama-3.1-70b"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"huggingfaceh4/zephyr-7b-beta:free","match":{"equals":"huggingfaceh4/zephyr-7b-beta:free"},"prices":{}},{"id":"infermatic/mn-inferor-12b","match":{"equals":"infermatic/mn-inferor-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"inflection-3-pi","name":"Inflection 3 Pi","match":{"equals":"inflection-3-pi"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"inflection-3-productivity","name":"Inflection 3 Productivity","match":{"equals":"inflection-3-productivity"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"inflection/inflection-3-pi","match":{"equals":"inflection/inflection-3-pi"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"inflection/inflection-3-productivity","match":{"equals":"inflection/inflection-3-productivity"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"internvl3-14b:free","name":"InternVL3 14B (free)","match":{"equals":"internvl3-14b:free"},"prices":{}},{"id":"internvl3-2b:free","name":"InternVL3 2B (free)","match":{"equals":"internvl3-2b:free"},"prices":{}},{"id":"jamba-1.6-large","name":"Jamba 1.6 Large","match":{"equals":"jamba-1.6-large"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"jamba-1.6-mini","name":"Jamba Mini 1.6","match":{"equals":"jamba-1.6-mini"},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"jondurbin/airoboros-l2-70b","match":{"equals":"jondurbin/airoboros-l2-70b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"kimi-dev-72b:free","name":"Kimi Dev 72b (free)","match":{"equals":"kimi-dev-72b:free"},"prices":{}},{"id":"kimi-vl-a3b-thinking:free","name":"Kimi VL A3B Thinking (free)","match":{"equals":"kimi-vl-a3b-thinking:free"},"prices":{}},{"id":"l3-euryale-70b","name":"Llama 3 Euryale 70B v2.1","match":{"equals":"l3-euryale-70b"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"l3-lunaris-8b","name":"Llama 3 8B Lunaris","match":{"equals":"l3-lunaris-8b"},"prices":{"input_mtok":0.02,"output_mtok":0.05}},{"id":"l3.1-euryale-70b","name":"Llama 3.1 Euryale 70B v2.2","match":{"equals":"l3.1-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"l3.3-euryale-70b","name":"Llama 3.3 Euryale 70B","match":{"equals":"l3.3-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"latitudegames/wayfarer-large-70b-llama-3.3","match":{"equals":"latitudegames/wayfarer-large-70b-llama-3.3"},"prices":{"input_mtok":0.8,"output_mtok":0.9}},{"id":"lfm-3b","name":"LFM 3B","match":{"equals":"lfm-3b"},"prices":{"input_mtok":0.02,"output_mtok":0.02}},{"id":"lfm-40b","name":"LFM 40B MoE","match":{"equals":"lfm-40b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"lfm-7b","name":"LFM 7B","match":{"equals":"lfm-7b"},"prices":{"input_mtok":0.01,"output_mtok":0.01}},{"id":"liquid/lfm-3b","match":{"equals":"liquid/lfm-3b"},"prices":{"input_mtok":0.02,"output_mtok":0.02}},{"id":"liquid/lfm-40b","match":{"equals":"liquid/lfm-40b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"liquid/lfm-7b","match":{"equals":"liquid/lfm-7b"},"prices":{"input_mtok":0.01,"output_mtok":0.01}},{"id":"llama-3-70b-instruct","name":"Llama 3 70B Instruct","match":{"equals":"llama-3-70b-instruct"},"prices":{"input_mtok":0.3,"output_mtok":0.4}},{"id":"llama-3-8b-instruct","name":"Llama 3 8B Instruct","match":{"equals":"llama-3-8b-instruct"},"prices":{"input_mtok":0.03,"output_mtok":0.06}},{"id":"llama-3-lumimaid-70b","name":"Llama 3 Lumimaid 70B","match":{"equals":"llama-3-lumimaid-70b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"llama-3-lumimaid-8b","name":"Llama 3 Lumimaid 8B","match":{"equals":"llama-3-lumimaid-8b"},"prices":{"input_mtok":0.2,"output_mtok":1.25}},{"id":"llama-3.1-405b","name":"Llama 3.1 405B (base)","match":{"equals":"llama-3.1-405b"},"prices":{"input_mtok":2,"output_mtok":2}},{"id":"llama-3.1-405b-instruct","name":"Llama 3.1 405B Instruct","match":{"equals":"llama-3.1-405b-instruct"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"llama-3.1-70b-instruct","name":"Llama 3.1 70B Instruct","match":{"equals":"llama-3.1-70b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.28}},{"id":"llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","match":{"equals":"llama-3.1-8b-instruct"},"prices":{"input_mtok":0.016,"output_mtok":0.029}},{"id":"llama-3.1-8b-instruct:free","name":"Llama 3.1 8B Instruct (free)","match":{"equals":"llama-3.1-8b-instruct:free"},"prices":{}},{"id":"llama-3.1-lumimaid-70b","name":"Lumimaid v0.2 70B","match":{"equals":"llama-3.1-lumimaid-70b"},"prices":{"input_mtok":2.5,"output_mtok":3}},{"id":"llama-3.1-lumimaid-8b","name":"Lumimaid v0.2 8B","match":{"equals":"llama-3.1-lumimaid-8b"},"prices":{"input_mtok":0.2,"output_mtok":1.25}},{"id":"llama-3.1-nemotron-70b-instruct","name":"Llama 3.1 Nemotron 70B Instruct","match":{"equals":"llama-3.1-nemotron-70b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"llama-3.1-nemotron-ultra-253b-v1","name":"Llama 3.1 Nemotron Ultra 253B v1","match":{"equals":"llama-3.1-nemotron-ultra-253b-v1"},"prices":{"input_mtok":0.6,"output_mtok":1.8}},{"id":"llama-3.1-nemotron-ultra-253b-v1:free","name":"Llama 3.1 Nemotron Ultra 253B v1 (free)","match":{"equals":"llama-3.1-nemotron-ultra-253b-v1:free"},"prices":{}},{"id":"llama-3.1-sonar-large-128k-online","name":"Llama 3.1 Sonar 70B Online","match":{"equals":"llama-3.1-sonar-large-128k-online"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"llama-3.1-sonar-small-128k-online","name":"Llama 3.1 Sonar 8B Online","match":{"equals":"llama-3.1-sonar-small-128k-online"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","match":{"equals":"llama-3.2-11b-vision-instruct"},"prices":{"input_mtok":0.049,"output_mtok":0.049}},{"id":"llama-3.2-11b-vision-instruct:free","name":"Llama 3.2 11B Vision Instruct (free)","match":{"equals":"llama-3.2-11b-vision-instruct:free"},"prices":{}},{"id":"llama-3.2-1b-instruct","name":"Llama 3.2 1B Instruct","match":{"equals":"llama-3.2-1b-instruct"},"prices":{"input_mtok":0.005,"output_mtok":0.01}},{"id":"llama-3.2-1b-instruct:free","name":"Llama 3.2 1B Instruct (free)","match":{"equals":"llama-3.2-1b-instruct:free"},"prices":{}},{"id":"llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","match":{"equals":"llama-3.2-3b-instruct"},"prices":{"input_mtok":0.01,"output_mtok":0.02}},{"id":"llama-3.2-3b-instruct:free","name":"Llama 3.2 3B Instruct (free)","match":{"equals":"llama-3.2-3b-instruct:free"},"prices":{}},{"id":"llama-3.2-90b-vision-instruct","name":"Llama 3.2 90B Vision Instruct","match":{"equals":"llama-3.2-90b-vision-instruct"},"prices":{"input_mtok":1.2,"output_mtok":1.2}},{"id":"llama-3.3-70b-instruct","name":"Llama 3.3 70B Instruct","match":{"equals":"llama-3.3-70b-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.24}},{"id":"llama-3.3-70b-instruct:free","name":"Llama 3.3 70B Instruct (free)","match":{"equals":"llama-3.3-70b-instruct:free"},"prices":{}},{"id":"llama-3.3-8b-instruct:free","name":"Llama 3.3 8B Instruct (free)","match":{"equals":"llama-3.3-8b-instruct:free"},"prices":{}},{"id":"llama-3.3-nemotron-super-49b-v1","name":"Llama 3.3 Nemotron Super 49B v1","match":{"equals":"llama-3.3-nemotron-super-49b-v1"},"prices":{"input_mtok":0.13,"output_mtok":0.4}},{"id":"llama-3.3-nemotron-super-49b-v1:free","name":"Llama 3.3 Nemotron Super 49B v1 (free)","match":{"equals":"llama-3.3-nemotron-super-49b-v1:free"},"prices":{}},{"id":"llama-4-maverick","name":"Llama 4 Maverick","match":{"equals":"llama-4-maverick"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"llama-4-maverick:free","name":"Llama 4 Maverick (free)","match":{"equals":"llama-4-maverick:free"},"prices":{}},{"id":"llama-4-scout","name":"Llama 4 Scout","match":{"equals":"llama-4-scout"},"prices":{"input_mtok":0.08,"output_mtok":0.3}},{"id":"llama-4-scout:free","name":"Llama 4 Scout (free)","match":{"equals":"llama-4-scout:free"},"prices":{}},{"id":"llama-guard-2-8b","name":"LlamaGuard 2 8B","match":{"equals":"llama-guard-2-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama-guard-3-8b","name":"Llama Guard 3 8B","match":{"equals":"llama-guard-3-8b"},"prices":{"input_mtok":0.02,"output_mtok":0.06}},{"id":"llama-guard-4-12b","name":"Llama Guard 4 12B","match":{"equals":"llama-guard-4-12b"},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"llama3.1-typhoon2-70b-instruct","name":"Typhoon2 70B Instruct","match":{"equals":"llama3.1-typhoon2-70b-instruct"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"llemma_7b","name":"Llemma 7b","match":{"equals":"llemma_7b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"maestro-reasoning","name":"Maestro Reasoning","match":{"equals":"maestro-reasoning"},"prices":{"input_mtok":0.9,"output_mtok":3.3}},{"id":"magistral-medium-2506","name":"Magistral Medium 2506","match":{"or":[{"equals":"magistral-medium-2506"},{"equals":"magistral-medium-2506:thinking"}]},"prices":{"input_mtok":2,"output_mtok":5}},{"id":"magistral-small-2506","name":"Magistral Small 2506","match":{"equals":"magistral-small-2506"},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"magnum-72b","name":"Magnum 72B","match":{"equals":"magnum-72b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"magnum-v2-72b","name":"Magnum v2 72B","match":{"equals":"magnum-v2-72b"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"magnum-v4-72b","name":"Magnum v4 72B","match":{"equals":"magnum-v4-72b"},"prices":{"input_mtok":2.5,"output_mtok":3}},{"id":"mai-ds-r1:free","name":"MAI DS R1 (free)","match":{"equals":"mai-ds-r1:free"},"prices":{}},{"id":"mancer/weaver","match":{"equals":"mancer/weaver"},"prices":{"input_mtok":1.125,"output_mtok":1.125}},{"id":"mercury-coder-small-beta","name":"Mercury Coder Small Beta","match":{"equals":"mercury-coder-small-beta"},"prices":{"input_mtok":0.25,"output_mtok":1}},{"id":"meta-llama/llama-2-13b-chat","match":{"equals":"meta-llama/llama-2-13b-chat"},"prices":{"input_mtok":0.22,"output_mtok":0.22}},{"id":"meta-llama/llama-2-70b-chat","match":{"equals":"meta-llama/llama-2-70b-chat"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/llama-3-70b-instruct","match":{"equals":"meta-llama/llama-3-70b-instruct"},"prices":{"input_mtok":0.3,"output_mtok":0.4}},{"id":"meta-llama/llama-3-8b-instruct","match":{"equals":"meta-llama/llama-3-8b-instruct"},"prices":{"input_mtok":0.03,"output_mtok":0.06}},{"id":"meta-llama/llama-3.1-405b","match":{"equals":"meta-llama/llama-3.1-405b"},"prices":{"input_mtok":2,"output_mtok":2}},{"id":"meta-llama/llama-3.1-405b-instruct","match":{"equals":"meta-llama/llama-3.1-405b-instruct"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"meta-llama/llama-3.1-405b:free","match":{"equals":"meta-llama/llama-3.1-405b:free"},"prices":{}},{"id":"meta-llama/llama-3.1-70b-instruct","match":{"equals":"meta-llama/llama-3.1-70b-instruct"},"prices":{"input_mtok":0.119,"output_mtok":0.39}},{"id":"meta-llama/llama-3.1-8b-instruct","match":{"equals":"meta-llama/llama-3.1-8b-instruct"},"prices":{"input_mtok":0.02,"output_mtok":0.03}},{"id":"meta-llama/llama-3.1-8b-instruct:free","match":{"equals":"meta-llama/llama-3.1-8b-instruct:free"},"prices":{}},{"id":"meta-llama/llama-3.2-11b-vision-instruct","match":{"equals":"meta-llama/llama-3.2-11b-vision-instruct"},"prices":{"input_mtok":0.049,"output_mtok":0.049}},{"id":"meta-llama/llama-3.2-11b-vision-instruct:free","match":{"equals":"meta-llama/llama-3.2-11b-vision-instruct:free"},"prices":{}},{"id":"meta-llama/llama-3.2-1b-instruct","match":{"equals":"meta-llama/llama-3.2-1b-instruct"},"prices":{"input_mtok":0.01,"output_mtok":0.01}},{"id":"meta-llama/llama-3.2-1b-instruct:free","match":{"equals":"meta-llama/llama-3.2-1b-instruct:free"},"prices":{}},{"id":"meta-llama/llama-3.2-3b-instruct","match":{"equals":"meta-llama/llama-3.2-3b-instruct"},"prices":{"input_mtok":0.015,"output_mtok":0.025}},{"id":"meta-llama/llama-3.2-3b-instruct:free","match":{"equals":"meta-llama/llama-3.2-3b-instruct:free"},"prices":{}},{"id":"meta-llama/llama-3.2-90b-vision-instruct","match":{"equals":"meta-llama/llama-3.2-90b-vision-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/llama-3.3-70b-instruct","match":{"equals":"meta-llama/llama-3.3-70b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.25}},{"id":"meta-llama/llama-3.3-70b-instruct:free","match":{"equals":"meta-llama/llama-3.3-70b-instruct:free"},"prices":{}},{"id":"meta-llama/llama-4-maverick","match":{"equals":"meta-llama/llama-4-maverick"},"prices":{"input_mtok":0.17,"output_mtok":0.85}},{"id":"meta-llama/llama-4-maverick:free","match":{"equals":"meta-llama/llama-4-maverick:free"},"prices":{}},{"id":"meta-llama/llama-4-scout","match":{"equals":"meta-llama/llama-4-scout"},"prices":{"input_mtok":0.08,"output_mtok":0.3}},{"id":"meta-llama/llama-4-scout:free","match":{"equals":"meta-llama/llama-4-scout:free"},"prices":{}},{"id":"meta-llama/llama-guard-2-8b","match":{"equals":"meta-llama/llama-guard-2-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/llama-guard-3-8b","match":{"equals":"meta-llama/llama-guard-3-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"microsoft/phi-3-medium-128k-instruct","match":{"equals":"microsoft/phi-3-medium-128k-instruct"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"microsoft/phi-3-mini-128k-instruct","match":{"equals":"microsoft/phi-3-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"microsoft/phi-3.5-mini-128k-instruct","match":{"equals":"microsoft/phi-3.5-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"microsoft/phi-4","match":{"equals":"microsoft/phi-4"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"microsoft/phi-4-multimodal-instruct","match":{"equals":"microsoft/phi-4-multimodal-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"microsoft/wizardlm-2-7b","match":{"equals":"microsoft/wizardlm-2-7b"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"microsoft/wizardlm-2-8x22b","match":{"equals":"microsoft/wizardlm-2-8x22b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"midnight-rose-70b","name":"Midnight Rose 70B","match":{"equals":"midnight-rose-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"minimax-01","name":"MiniMax-01","match":{"equals":"minimax-01"},"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"minimax-m1","name":"MiniMax M1","match":{"equals":"minimax-m1"},"prices":{"input_mtok":0.3,"output_mtok":1.65}},{"id":"minimax-m1:extended","name":"MiniMax M1 (extended)","match":{"equals":"minimax-m1:extended"},"prices":{"input_mtok":0.55,"output_mtok":2.2}},{"id":"minimax/minimax-01","match":{"equals":"minimax/minimax-01"},"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"ministral-3b","name":"Ministral 3B","match":{"equals":"ministral-3b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"ministral-8b","name":"Ministral 8B","match":{"equals":"ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistral-7b-instruct","name":"Mistral 7B Instruct","match":{"or":[{"equals":"mistral-7b-instruct"},{"equals":"mistral-7b-instruct-v0.3"}]},"prices":{"input_mtok":0.028,"output_mtok":0.054}},{"id":"mistral-7b-instruct-v0.1","name":"Mistral 7B Instruct v0.1","match":{"equals":"mistral-7b-instruct-v0.1"},"prices":{"input_mtok":0.11,"output_mtok":0.19}},{"id":"mistral-7b-instruct-v0.2","name":"Mistral 7B Instruct v0.2","match":{"equals":"mistral-7b-instruct-v0.2"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistral-7b-instruct:free","name":"Mistral 7B Instruct (free)","match":{"equals":"mistral-7b-instruct:free"},"prices":{}},{"id":"mistral-large","name":"Mistral Large","match":{"or":[{"equals":"mistral-large"},{"equals":"mistral-large-2407"},{"equals":"mistral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mistral-medium","name":"Mistral Medium","match":{"equals":"mistral-medium"},"prices":{"input_mtok":2.75,"output_mtok":8.1}},{"id":"mistral-medium-3","name":"Mistral Medium 3","match":{"equals":"mistral-medium-3"},"prices":{"input_mtok":0.4,"output_mtok":2}},{"id":"mistral-nemo","name":"Mistral Nemo","match":{"equals":"mistral-nemo"},"prices":{"input_mtok":0.01,"output_mtok":0.019}},{"id":"mistral-nemo:free","name":"Mistral Nemo (free)","match":{"equals":"mistral-nemo:free"},"prices":{}},{"id":"mistral-saba","name":"Saba","match":{"equals":"mistral-saba"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistral-small","name":"Mistral Small","match":{"equals":"mistral-small"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistral-small-24b-instruct-2501","name":"Mistral Small 3","match":{"equals":"mistral-small-24b-instruct-2501"},"prices":{"input_mtok":0.05,"output_mtok":0.09}},{"id":"mistral-small-24b-instruct-2501:free","name":"Mistral Small 3 (free)","match":{"equals":"mistral-small-24b-instruct-2501:free"},"prices":{}},{"id":"mistral-small-3.1-24b-instruct","name":"Mistral Small 3.1 24B","match":{"equals":"mistral-small-3.1-24b-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.15}},{"id":"mistral-small-3.1-24b-instruct:free","name":"Mistral Small 3.1 24B (free)","match":{"equals":"mistral-small-3.1-24b-instruct:free"},"prices":{}},{"id":"mistral-small-3.2-24b-instruct:free","name":"Mistral Small 3.2 24B (free)","match":{"equals":"mistral-small-3.2-24b-instruct:free"},"prices":{}},{"id":"mistral-tiny","name":"Mistral Tiny","match":{"equals":"mistral-tiny"},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistral/ministral-8b","match":{"equals":"mistral/ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/codestral-2501","match":{"equals":"mistralai/codestral-2501"},"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"mistralai/codestral-mamba","match":{"equals":"mistralai/codestral-mamba"},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistralai/ministral-3b","match":{"equals":"mistralai/ministral-3b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"mistralai/ministral-8b","match":{"equals":"mistralai/ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/mistral-7b-instruct","match":{"or":[{"equals":"mistralai/mistral-7b-instruct"},{"equals":"mistralai/mistral-7b-instruct-v0.3"}]},"prices":{"input_mtok":0.029,"output_mtok":0.059}},{"id":"mistralai/mistral-7b-instruct-v0.1","match":{"equals":"mistralai/mistral-7b-instruct-v0.1"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/mistral-7b-instruct-v0.2","match":{"equals":"mistralai/mistral-7b-instruct-v0.2"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/mistral-7b-instruct:free","match":{"equals":"mistralai/mistral-7b-instruct:free"},"prices":{}},{"id":"mistralai/mistral-large","match":{"or":[{"equals":"mistralai/mistral-large"},{"equals":"mistralai/mistral-large-2407"},{"equals":"mistralai/mistral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mistralai/mistral-medium","match":{"equals":"mistralai/mistral-medium"},"prices":{"input_mtok":2.75,"output_mtok":8.1}},{"id":"mistralai/mistral-nemo","match":{"equals":"mistralai/mistral-nemo"},"prices":{"input_mtok":0.035,"output_mtok":0.08}},{"id":"mistralai/mistral-nemo:free","match":{"equals":"mistralai/mistral-nemo:free"},"prices":{}},{"id":"mistralai/mistral-saba","match":{"equals":"mistralai/mistral-saba"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistralai/mistral-small","match":{"equals":"mistralai/mistral-small"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistralai/mistral-small-24b-instruct-2501","match":{"equals":"mistralai/mistral-small-24b-instruct-2501"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"mistralai/mistral-small-24b-instruct-2501:free","match":{"equals":"mistralai/mistral-small-24b-instruct-2501:free"},"prices":{}},{"id":"mistralai/mistral-small-3.1-24b-instruct","match":{"equals":"mistralai/mistral-small-3.1-24b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"mistralai/mistral-small-3.1-24b-instruct:free","match":{"equals":"mistralai/mistral-small-3.1-24b-instruct:free"},"prices":{}},{"id":"mistralai/mistral-tiny","match":{"equals":"mistralai/mistral-tiny"},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistralai/mixtral-8x22b-instruct","match":{"equals":"mistralai/mixtral-8x22b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mistralai/mixtral-8x7b-instruct","match":{"equals":"mistralai/mixtral-8x7b-instruct"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"mistralai/pixtral-12b","match":{"equals":"mistralai/pixtral-12b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/pixtral-large-2411","match":{"equals":"mistralai/pixtral-large-2411"},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mixtral-8x22b-instruct","name":"Mixtral 8x22B Instruct","match":{"equals":"mixtral-8x22b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mixtral-8x7b-instruct","name":"Mixtral 8x7B Instruct","match":{"equals":"mixtral-8x7b-instruct"},"prices":{"input_mtok":0.08,"output_mtok":0.24}},{"id":"mn-celeste-12b","name":"Mistral Nemo 12B Celeste","match":{"equals":"mn-celeste-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"mn-inferor-12b","name":"Mistral Nemo Inferor 12B","match":{"equals":"mn-inferor-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"mn-starcannon-12b","name":"Starcannon 12B","match":{"equals":"mn-starcannon-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","match":{"equals":"moonshotai/kimi-k2.5"},"prices":{"input_mtok":0.6,"output_mtok":3}},{"id":"moonshotai/kimi-vl-a3b-thinking:free","match":{"equals":"moonshotai/kimi-vl-a3b-thinking:free"},"prices":{}},{"id":"moonshotai/moonlight-16b-a3b-instruct:free","match":{"equals":"moonshotai/moonlight-16b-a3b-instruct:free"},"prices":{}},{"id":"mythalion-13b","name":"Mythalion 13B","match":{"equals":"mythalion-13b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"mythomax-l2-13b","name":"MythoMax 13B","match":{"equals":"mythomax-l2-13b"},"prices":{"input_mtok":0.065,"output_mtok":0.065}},{"id":"neversleep/llama-3-lumimaid-70b","match":{"equals":"neversleep/llama-3-lumimaid-70b"},"prices":{"input_mtok":3.375,"output_mtok":4.5}},{"id":"neversleep/llama-3-lumimaid-8b","match":{"or":[{"equals":"neversleep/llama-3-lumimaid-8b"},{"equals":"neversleep/llama-3-lumimaid-8b:extended"}]},"prices":{"input_mtok":0.09375,"output_mtok":0.75}},{"id":"neversleep/llama-3.1-lumimaid-70b","match":{"equals":"neversleep/llama-3.1-lumimaid-70b"},"prices":{"input_mtok":1.5,"output_mtok":2.25}},{"id":"neversleep/llama-3.1-lumimaid-8b","match":{"equals":"neversleep/llama-3.1-lumimaid-8b"},"prices":{"input_mtok":0.09375,"output_mtok":0.75}},{"id":"neversleep/noromaid-20b","match":{"equals":"neversleep/noromaid-20b"},"prices":{"input_mtok":0.75,"output_mtok":1.5}},{"id":"noromaid-20b","name":"Noromaid 20B","match":{"equals":"noromaid-20b"},"prices":{"input_mtok":1.25,"output_mtok":2}},{"id":"nothingiisreal/mn-celeste-12b","match":{"equals":"nothingiisreal/mn-celeste-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"nous-hermes-2-mixtral-8x7b-dpo","name":"Hermes 2 Mixtral 8x7B DPO","match":{"equals":"nous-hermes-2-mixtral-8x7b-dpo"},"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"nousresearch/deephermes-3-llama-3-8b-preview:free","match":{"equals":"nousresearch/deephermes-3-llama-3-8b-preview:free"},"prices":{}},{"id":"nousresearch/hermes-2-pro-llama-3-8b","match":{"equals":"nousresearch/hermes-2-pro-llama-3-8b"},"prices":{"input_mtok":0.025,"output_mtok":0.04}},{"id":"nousresearch/hermes-3-llama-3.1-405b","match":{"equals":"nousresearch/hermes-3-llama-3.1-405b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"nousresearch/hermes-3-llama-3.1-70b","match":{"equals":"nousresearch/hermes-3-llama-3.1-70b"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"nousresearch/nous-hermes-2-mixtral-8x7b-dpo","match":{"equals":"nousresearch/nous-hermes-2-mixtral-8x7b-dpo"},"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"nousresearch/nous-hermes-llama2-13b","match":{"equals":"nousresearch/nous-hermes-llama2-13b"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"nova-lite-v1","name":"Nova Lite 1.0","match":{"equals":"nova-lite-v1"},"prices":{"input_mtok":0.06,"output_mtok":0.24}},{"id":"nova-micro-v1","name":"Nova Micro 1.0","match":{"equals":"nova-micro-v1"},"prices":{"input_mtok":0.035,"output_mtok":0.14}},{"id":"nova-pro-v1","name":"Nova Pro 1.0","match":{"equals":"nova-pro-v1"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"nvidia/llama-3.1-nemotron-70b-instruct","match":{"equals":"nvidia/llama-3.1-nemotron-70b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"nvidia/llama-3.1-nemotron-70b-instruct:free","match":{"equals":"nvidia/llama-3.1-nemotron-70b-instruct:free"},"prices":{}},{"id":"nvidia/llama-3.1-nemotron-nano-8b-v1:free","match":{"equals":"nvidia/llama-3.1-nemotron-nano-8b-v1:free"},"prices":{}},{"id":"nvidia/llama-3.1-nemotron-ultra-253b-v1:free","match":{"equals":"nvidia/llama-3.1-nemotron-ultra-253b-v1:free"},"prices":{}},{"id":"nvidia/llama-3.3-nemotron-super-49b-v1:free","match":{"equals":"nvidia/llama-3.3-nemotron-super-49b-v1:free"},"prices":{}},{"id":"o1","name":"o1","match":{"or":[{"equals":"o1"},{"equals":"o1-preview"},{"equals":"o1-preview-2024-09-12"}]},"prices":{"input_mtok":15,"cache_read_mtok":7.5,"output_mtok":60}},{"id":"o1-mini","name":"o1-mini","match":{"or":[{"equals":"o1-mini"},{"equals":"o1-mini-2024-09-12"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o1-pro","name":"o1-pro","match":{"equals":"o1-pro"},"prices":{"input_mtok":150,"output_mtok":600}},{"id":"o3","name":"o3","match":{"equals":"o3"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"o3-mini","name":"o3 Mini","match":{"or":[{"equals":"o3-mini"},{"equals":"o3-mini-high"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o3-pro","name":"o3 Pro","match":{"equals":"o3-pro"},"prices":{"input_mtok":20,"output_mtok":80}},{"id":"o4-mini","name":"o4 Mini","match":{"or":[{"equals":"o4-mini"},{"equals":"o4-mini-high"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.275,"output_mtok":4.4}},{"id":"open-r1/olympiccoder-32b:free","match":{"equals":"open-r1/olympiccoder-32b:free"},"prices":{}},{"id":"open-r1/olympiccoder-7b:free","match":{"equals":"open-r1/olympiccoder-7b:free"},"prices":{}},{"id":"openai/chatgpt-4o-latest","match":{"equals":"openai/chatgpt-4o-latest"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"openai/codex-mini","match":{"equals":"openai/codex-mini"},"prices":{"input_mtok":1.5,"cache_read_mtok":0.375,"output_mtok":6}},{"id":"openai/gpt-3.5-turbo","match":{"or":[{"equals":"openai/gpt-3.5-turbo"},{"equals":"openai/gpt-3.5-turbo-0125"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"openai/gpt-3.5-turbo-0613","match":{"equals":"openai/gpt-3.5-turbo-0613"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"openai/gpt-3.5-turbo-1106","match":{"equals":"openai/gpt-3.5-turbo-1106"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"openai/gpt-3.5-turbo-16k","match":{"equals":"openai/gpt-3.5-turbo-16k"},"prices":{"input_mtok":3,"output_mtok":4}},{"id":"openai/gpt-3.5-turbo-instruct","match":{"equals":"openai/gpt-3.5-turbo-instruct"},"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"openai/gpt-4","match":{"or":[{"equals":"openai/gpt-4"},{"equals":"openai/gpt-4-0314"}]},"prices":{"input_mtok":30,"output_mtok":60}},{"id":"openai/gpt-4-1106-preview","match":{"equals":"openai/gpt-4-1106-preview"},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"openai/gpt-4-32k","match":{"or":[{"equals":"openai/gpt-4-32k"},{"equals":"openai/gpt-4-32k-0314"}]},"prices":{"input_mtok":60,"output_mtok":120}},{"id":"openai/gpt-4-turbo","match":{"or":[{"equals":"openai/gpt-4-turbo"},{"equals":"openai/gpt-4-turbo-preview"}]},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"openai/gpt-4.1","match":{"equals":"openai/gpt-4.1"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"openai/gpt-4.1-mini","match":{"equals":"openai/gpt-4.1-mini"},"prices":{"input_mtok":0.4,"output_mtok":1.6}},{"id":"openai/gpt-4.1-nano","match":{"equals":"openai/gpt-4.1-nano"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"openai/gpt-4.5-preview","match":{"equals":"openai/gpt-4.5-preview"},"prices":{"input_mtok":75,"output_mtok":150}},{"id":"openai/gpt-4o","match":{"or":[{"equals":"openai/gpt-4o"},{"equals":"openai/gpt-4o-2024-08-06"},{"equals":"openai/gpt-4o-2024-11-20"},{"equals":"openai/gpt-4o-search-preview"},{"equals":"openai/gpt-4o-audio-preview"}]},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"openai/gpt-4o-2024-05-13","match":{"equals":"openai/gpt-4o-2024-05-13"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"openai/gpt-4o-mini","match":{"or":[{"equals":"openai/gpt-4o-mini"},{"equals":"openai/gpt-4o-mini-2024-07-18"},{"equals":"openai/gpt-4o-mini-search-preview"}]},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai/gpt-4o:extended","match":{"equals":"openai/gpt-4o:extended"},"prices":{"input_mtok":6,"output_mtok":18}},{"id":"openai/gpt-5","match":{"or":[{"equals":"openai/gpt-5"},{"equals":"openai/gpt-5-chat"},{"equals":"openai/gpt-5-codex"},{"equals":"openai/gpt-5.1"},{"equals":"openai/gpt-5.1-chat"},{"equals":"openai/gpt-5.1-codex"}]},"prices":{"input_mtok":1.25,"cache_read_mtok":0.125,"output_mtok":10}},{"id":"openai/gpt-5-image","match":{"equals":"openai/gpt-5-image"},"price_comments":"Image pricing at $0.01/1k images not represented in standard schema","prices":{"input_mtok":10,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"openai/gpt-5-image-mini","match":{"equals":"openai/gpt-5-image-mini"},"price_comments":"Image pricing at $0.0025/1k images not represented in standard schema","prices":{"input_mtok":2.5,"cache_read_mtok":0.25,"output_mtok":2}},{"id":"openai/gpt-5-mini","match":{"equals":"openai/gpt-5-mini"},"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"openai/gpt-5-nano","match":{"equals":"openai/gpt-5-nano"},"prices":{"input_mtok":0.05,"cache_read_mtok":0.005,"output_mtok":0.4}},{"id":"openai/gpt-5-pro","match":{"equals":"openai/gpt-5-pro"},"prices":{"input_mtok":15,"output_mtok":120}},{"id":"openai/gpt-5.1-codex-mini","match":{"equals":"openai/gpt-5.1-codex-mini"},"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b:exacto"}]},"prices":{"input_mtok":0.04,"output_mtok":0.2}},{"id":"openai/gpt-oss-20b","match":{"equals":"openai/gpt-oss-20b"},"prices":{"input_mtok":0.03,"output_mtok":0.14}},{"id":"openai/gpt-oss-20b:free","match":{"equals":"openai/gpt-oss-20b:free"},"prices":{}},{"id":"openai/gpt-oss-safeguard-20b","match":{"equals":"openai/gpt-oss-safeguard-20b"},"prices":{"input_mtok":0.075,"cache_read_mtok":0.037,"output_mtok":0.3}},{"id":"openai/o1","match":{"or":[{"equals":"openai/o1"},{"equals":"openai/o1-preview"},{"equals":"openai/o1-preview-2024-09-12"}]},"prices":{"input_mtok":15,"output_mtok":60}},{"id":"openai/o1-mini","match":{"or":[{"equals":"openai/o1-mini"},{"equals":"openai/o1-mini-2024-09-12"}]},"prices":{"input_mtok":1.1,"output_mtok":4.4}},{"id":"openai/o1-pro","match":{"equals":"openai/o1-pro"},"prices":{"input_mtok":150,"output_mtok":600}},{"id":"openai/o3","match":{"equals":"openai/o3"},"prices":{"input_mtok":10,"output_mtok":40}},{"id":"openai/o3-deep-research","match":{"equals":"openai/o3-deep-research"},"price_comments":"Image pricing at $7.65/1k images not represented in standard schema","prices":{"input_mtok":10,"cache_read_mtok":2.5,"output_mtok":40}},{"id":"openai/o3-mini","match":{"or":[{"equals":"openai/o3-mini"},{"equals":"openai/o3-mini-high"}]},"prices":{"input_mtok":1.1,"output_mtok":4.4}},{"id":"openai/o3-pro","match":{"equals":"openai/o3-pro"},"price_comments":"Image pricing at $15.30/1k images not represented in standard schema","prices":{"input_mtok":20,"output_mtok":80}},{"id":"openai/o4-mini","match":{"or":[{"equals":"openai/o4-mini"},{"equals":"openai/o4-mini-high"}]},"prices":{"input_mtok":1.1,"output_mtok":4.4}},{"id":"openai/o4-mini-deep-research","match":{"equals":"openai/o4-mini-deep-research"},"price_comments":"Image pricing at $1.53/1k images not represented in standard schema","prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"openchat/openchat-7b","match":{"equals":"openchat/openchat-7b"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"openhands-lm-32b-v0.1","name":"OpenHands LM 32B V0.1","match":{"equals":"openhands-lm-32b-v0.1"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"perplexity/llama-3.1-sonar-large-128k-online","match":{"equals":"perplexity/llama-3.1-sonar-large-128k-online"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"perplexity/llama-3.1-sonar-small-128k-online","match":{"equals":"perplexity/llama-3.1-sonar-small-128k-online"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"perplexity/r1-1776","match":{"equals":"perplexity/r1-1776"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"perplexity/sonar","match":{"equals":"perplexity/sonar"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"perplexity/sonar-deep-research","match":{"equals":"perplexity/sonar-deep-research"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"perplexity/sonar-pro","match":{"equals":"perplexity/sonar-pro"},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"perplexity/sonar-reasoning","match":{"equals":"perplexity/sonar-reasoning"},"prices":{"input_mtok":1,"output_mtok":5}},{"id":"perplexity/sonar-reasoning-pro","match":{"equals":"perplexity/sonar-reasoning-pro"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"phi-3-medium-128k-instruct","name":"Phi-3 Medium 128K Instruct","match":{"equals":"phi-3-medium-128k-instruct"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"phi-3-mini-128k-instruct","name":"Phi-3 Mini 128K Instruct","match":{"equals":"phi-3-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-3.5-mini-128k-instruct","name":"Phi-3.5 Mini 128K Instruct","match":{"equals":"phi-3.5-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-4","name":"Phi 4","match":{"equals":"phi-4"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"phi-4-multimodal-instruct","name":"Phi 4 Multimodal Instruct","match":{"equals":"phi-4-multimodal-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"phi-4-reasoning-plus","name":"Phi 4 Reasoning Plus","match":{"equals":"phi-4-reasoning-plus"},"prices":{"input_mtok":0.07,"output_mtok":0.35}},{"id":"phi-4-reasoning-plus:free","name":"Phi 4 Reasoning Plus (free)","match":{"equals":"phi-4-reasoning-plus:free"},"prices":{}},{"id":"phi-4-reasoning:free","name":"Phi 4 Reasoning (free)","match":{"equals":"phi-4-reasoning:free"},"prices":{}},{"id":"pixtral-12b","name":"Pixtral 12B","match":{"equals":"pixtral-12b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"pixtral-large-2411","name":"Pixtral Large 2411","match":{"equals":"pixtral-large-2411"},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"pygmalionai/mythalion-13b","match":{"equals":"pygmalionai/mythalion-13b"},"prices":{"input_mtok":0.5625,"output_mtok":1.125}},{"id":"qwen-2-72b-instruct","name":"Qwen 2 72B Instruct","match":{"equals":"qwen-2-72b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen-2.5-72b-instruct","name":"Qwen2.5 72B Instruct","match":{"equals":"qwen-2.5-72b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.39}},{"id":"qwen-2.5-72b-instruct:free","name":"Qwen2.5 72B Instruct (free)","match":{"equals":"qwen-2.5-72b-instruct:free"},"prices":{}},{"id":"qwen-2.5-7b-instruct","name":"Qwen2.5 7B Instruct","match":{"equals":"qwen-2.5-7b-instruct"},"prices":{"input_mtok":0.04,"output_mtok":0.1}},{"id":"qwen-2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32B Instruct","match":{"equals":"qwen-2.5-coder-32b-instruct"},"prices":{"input_mtok":0.06,"output_mtok":0.15}},{"id":"qwen-2.5-coder-32b-instruct:free","name":"Qwen2.5 Coder 32B Instruct (free)","match":{"equals":"qwen-2.5-coder-32b-instruct:free"},"prices":{}},{"id":"qwen-2.5-vl-7b-instruct","name":"Qwen2.5-VL 7B Instruct","match":{"equals":"qwen-2.5-vl-7b-instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen-max","name":"Qwen-Max","match":{"equals":"qwen-max"},"prices":{"input_mtok":1.6,"cache_read_mtok":0.64,"output_mtok":6.4}},{"id":"qwen-plus","name":"Qwen-Plus","match":{"equals":"qwen-plus"},"prices":{"input_mtok":0.4,"cache_read_mtok":0.16,"output_mtok":1.2}},{"id":"qwen-turbo","name":"Qwen-Turbo","match":{"equals":"qwen-turbo"},"prices":{"input_mtok":0.05,"cache_read_mtok":0.02,"output_mtok":0.2}},{"id":"qwen-vl-max","name":"Qwen VL Max","match":{"equals":"qwen-vl-max"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"qwen-vl-plus","name":"Qwen VL Plus","match":{"equals":"qwen-vl-plus"},"prices":{"input_mtok":0.21,"output_mtok":0.63}},{"id":"qwen/qwen-2-72b-instruct","match":{"equals":"qwen/qwen-2-72b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen/qwen-2.5-72b-instruct","match":{"equals":"qwen/qwen-2.5-72b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.39}},{"id":"qwen/qwen-2.5-72b-instruct:free","match":{"equals":"qwen/qwen-2.5-72b-instruct:free"},"prices":{}},{"id":"qwen/qwen-2.5-7b-instruct","match":{"equals":"qwen/qwen-2.5-7b-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"qwen/qwen-2.5-7b-instruct:free","match":{"equals":"qwen/qwen-2.5-7b-instruct:free"},"prices":{}},{"id":"qwen/qwen-2.5-coder-32b-instruct","match":{"equals":"qwen/qwen-2.5-coder-32b-instruct"},"prices":{"input_mtok":0.07,"output_mtok":0.15}},{"id":"qwen/qwen-2.5-coder-32b-instruct:free","match":{"equals":"qwen/qwen-2.5-coder-32b-instruct:free"},"prices":{}},{"id":"qwen/qwen-2.5-vl-72b-instruct","match":{"equals":"qwen/qwen-2.5-vl-72b-instruct"},"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"qwen/qwen-2.5-vl-7b-instruct","match":{"equals":"qwen/qwen-2.5-vl-7b-instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen/qwen-2.5-vl-7b-instruct:free","match":{"equals":"qwen/qwen-2.5-vl-7b-instruct:free"},"prices":{}},{"id":"qwen/qwen-max","match":{"equals":"qwen/qwen-max"},"prices":{"input_mtok":1.6,"output_mtok":6.4}},{"id":"qwen/qwen-plus","match":{"equals":"qwen/qwen-plus"},"prices":{"input_mtok":0.4,"output_mtok":1.2}},{"id":"qwen/qwen-turbo","match":{"equals":"qwen/qwen-turbo"},"prices":{"input_mtok":0.05,"output_mtok":0.2}},{"id":"qwen/qwen-vl-max","match":{"equals":"qwen/qwen-vl-max"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"qwen/qwen-vl-plus","match":{"equals":"qwen/qwen-vl-plus"},"prices":{"input_mtok":0.21,"output_mtok":0.63}},{"id":"qwen/qwen2.5-coder-7b-instruct","match":{"equals":"qwen/qwen2.5-coder-7b-instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen/qwen2.5-vl-32b-instruct","match":{"equals":"qwen/qwen2.5-vl-32b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen/qwen2.5-vl-32b-instruct:free","match":{"equals":"qwen/qwen2.5-vl-32b-instruct:free"},"prices":{}},{"id":"qwen/qwen2.5-vl-3b-instruct:free","match":{"equals":"qwen/qwen2.5-vl-3b-instruct:free"},"prices":{}},{"id":"qwen/qwen2.5-vl-72b-instruct","match":{"equals":"qwen/qwen2.5-vl-72b-instruct"},"prices":{"input_mtok":0.7,"output_mtok":0.7}},{"id":"qwen/qwen2.5-vl-72b-instruct:free","match":{"equals":"qwen/qwen2.5-vl-72b-instruct:free"},"prices":{}},{"id":"qwen/qwen3-max","name":"Qwen 3 Max","match":{"or":[{"equals":"qwen/qwen3-max"},{"equals":"qwen/qwen3-max-thinking"}]},"prices":{"input_mtok":1.2,"output_mtok":6}},{"id":"qwen/qwq-32b","match":{"equals":"qwen/qwq-32b"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"qwen/qwq-32b-preview","match":{"equals":"qwen/qwq-32b-preview"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen/qwq-32b-preview:free","match":{"equals":"qwen/qwq-32b-preview:free"},"prices":{}},{"id":"qwen/qwq-32b:free","match":{"equals":"qwen/qwq-32b:free"},"prices":{}},{"id":"qwen2.5-vl-32b-instruct","name":"Qwen2.5 VL 32B Instruct","match":{"equals":"qwen2.5-vl-32b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen2.5-vl-32b-instruct:free","name":"Qwen2.5 VL 32B Instruct (free)","match":{"equals":"qwen2.5-vl-32b-instruct:free"},"prices":{}},{"id":"qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B Instruct","match":{"equals":"qwen2.5-vl-72b-instruct"},"prices":{"input_mtok":0.25,"output_mtok":0.75}},{"id":"qwen2.5-vl-72b-instruct:free","name":"Qwen2.5 VL 72B Instruct (free)","match":{"equals":"qwen2.5-vl-72b-instruct:free"},"prices":{}},{"id":"qwen3-14b","name":"Qwen3 14B","match":{"equals":"qwen3-14b"},"prices":{"input_mtok":0.06,"output_mtok":0.24}},{"id":"qwen3-14b:free","name":"Qwen3 14B (free)","match":{"equals":"qwen3-14b:free"},"prices":{}},{"id":"qwen3-235b-a22b","name":"Qwen3 235B A22B","match":{"equals":"qwen3-235b-a22b"},"prices":{"input_mtok":0.13,"output_mtok":0.6}},{"id":"qwen3-235b-a22b:free","name":"Qwen3 235B A22B (free)","match":{"equals":"qwen3-235b-a22b:free"},"prices":{}},{"id":"qwen3-30b-a3b","name":"Qwen3 30B A3B","match":{"equals":"qwen3-30b-a3b"},"prices":{"input_mtok":0.08,"output_mtok":0.29}},{"id":"qwen3-30b-a3b:free","name":"Qwen3 30B A3B (free)","match":{"equals":"qwen3-30b-a3b:free"},"prices":{}},{"id":"qwen3-32b","name":"Qwen3 32B","match":{"equals":"qwen3-32b"},"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"qwen3-32b:free","name":"Qwen3 32B (free)","match":{"equals":"qwen3-32b:free"},"prices":{}},{"id":"qwen3-8b","name":"Qwen3 8B","match":{"equals":"qwen3-8b"},"prices":{"input_mtok":0.035,"output_mtok":0.138}},{"id":"qwen3-8b:free","name":"Qwen3 8B (free)","match":{"equals":"qwen3-8b:free"},"prices":{}},{"id":"qwen3.5-plus-02-15","name":"Qwen3.5 plus-02-15","match":{"equals":"qwen3.5-plus-02-15"},"prices":{"input_mtok":0.4,"output_mtok":2.4}},{"id":"qwerky-72b:free","name":"Qwerky 72B (free)","match":{"equals":"qwerky-72b:free"},"prices":{}},{"id":"qwq-32b","name":"QwQ 32B","match":{"equals":"qwq-32b"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"qwq-32b-arliai-rpr-v1:free","name":"QwQ 32B RpR v1 (free)","match":{"equals":"qwq-32b-arliai-rpr-v1:free"},"prices":{}},{"id":"qwq-32b-preview","name":"QwQ 32B Preview","match":{"equals":"qwq-32b-preview"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwq-32b:free","name":"QwQ 32B (free)","match":{"equals":"qwq-32b:free"},"prices":{}},{"id":"r1-1776","name":"R1 1776","match":{"equals":"r1-1776"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"raifle/sorcererlm-8x22b","match":{"equals":"raifle/sorcererlm-8x22b"},"prices":{"input_mtok":4.5,"output_mtok":4.5}},{"id":"reka-flash-3:free","name":"Flash 3 (free)","match":{"equals":"reka-flash-3:free"},"prices":{}},{"id":"rekaai/reka-flash-3:free","match":{"equals":"rekaai/reka-flash-3:free"},"prices":{}},{"id":"remm-slerp-l2-13b","name":"ReMM SLERP 13B","match":{"equals":"remm-slerp-l2-13b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"rocinante-12b","name":"Rocinante 12B","match":{"equals":"rocinante-12b"},"prices":{"input_mtok":0.25,"output_mtok":0.5}},{"id":"sao10k/fimbulvetr-11b-v2","match":{"equals":"sao10k/fimbulvetr-11b-v2"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"sao10k/l3-euryale-70b","match":{"equals":"sao10k/l3-euryale-70b"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"sao10k/l3-lunaris-8b","match":{"equals":"sao10k/l3-lunaris-8b"},"prices":{"input_mtok":0.02,"output_mtok":0.05}},{"id":"sao10k/l3.1-euryale-70b","match":{"equals":"sao10k/l3.1-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"sao10k/l3.3-euryale-70b","match":{"equals":"sao10k/l3.3-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"sarvam-m:free","name":"Sarvam-M (free)","match":{"equals":"sarvam-m:free"},"prices":{}},{"id":"scb10x/llama3.1-typhoon2-70b-instruct","match":{"equals":"scb10x/llama3.1-typhoon2-70b-instruct"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"scb10x/llama3.1-typhoon2-8b-instruct","match":{"equals":"scb10x/llama3.1-typhoon2-8b-instruct"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"shisa-ai/shisa-v2-llama3.3-70b:free","match":{"equals":"shisa-ai/shisa-v2-llama3.3-70b:free"},"prices":{}},{"id":"shisa-v2-llama3.3-70b:free","name":"Shisa V2 Llama 3.3 70B (free)","match":{"equals":"shisa-v2-llama3.3-70b:free"},"prices":{}},{"id":"skyfall-36b-v2","name":"Skyfall 36B V2","match":{"equals":"skyfall-36b-v2"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"sonar","name":"Sonar","match":{"equals":"sonar"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"sonar-deep-research","name":"Sonar Deep Research","match":{"equals":"sonar-deep-research"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sonar-pro","name":"Sonar Pro","match":{"equals":"sonar-pro"},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"sonar-reasoning","name":"Sonar Reasoning","match":{"equals":"sonar-reasoning"},"prices":{"input_mtok":1,"output_mtok":5}},{"id":"sonar-reasoning-pro","name":"Sonar Reasoning Pro","match":{"equals":"sonar-reasoning-pro"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sophosympatheia/midnight-rose-70b","match":{"equals":"sophosympatheia/midnight-rose-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"sophosympatheia/rogue-rose-103b-v0.2:free","match":{"equals":"sophosympatheia/rogue-rose-103b-v0.2:free"},"prices":{}},{"id":"sorcererlm-8x22b","name":"SorcererLM 8x22B","match":{"equals":"sorcererlm-8x22b"},"prices":{"input_mtok":4.5,"output_mtok":4.5}},{"id":"spotlight","name":"Spotlight","match":{"equals":"spotlight"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"steelskull/l3.3-electra-r1-70b","match":{"equals":"steelskull/l3.3-electra-r1-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.95}},{"id":"thedrummer/anubis-pro-105b-v1","match":{"equals":"thedrummer/anubis-pro-105b-v1"},"prices":{"input_mtok":0.8,"output_mtok":1}},{"id":"thedrummer/rocinante-12b","match":{"equals":"thedrummer/rocinante-12b"},"prices":{"input_mtok":0.25,"output_mtok":0.5}},{"id":"thedrummer/skyfall-36b-v2","match":{"equals":"thedrummer/skyfall-36b-v2"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"thedrummer/unslopnemo-12b","match":{"equals":"thedrummer/unslopnemo-12b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"thudm/glm-4-32b:free","match":{"equals":"thudm/glm-4-32b:free"},"prices":{}},{"id":"thudm/glm-z1-32b:free","match":{"equals":"thudm/glm-z1-32b:free"},"prices":{}},{"id":"toppy-m-7b","name":"Toppy M 7B","match":{"equals":"toppy-m-7b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"undi95/remm-slerp-l2-13b","match":{"equals":"undi95/remm-slerp-l2-13b"},"prices":{"input_mtok":0.5625,"output_mtok":1.125}},{"id":"undi95/toppy-m-7b","match":{"equals":"undi95/toppy-m-7b"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"unslopnemo-12b","name":"UnslopNemo 12B","match":{"equals":"unslopnemo-12b"},"prices":{"input_mtok":0.45,"output_mtok":0.45}},{"id":"valkyrie-49b-v1","name":"Valkyrie 49B V1","match":{"equals":"valkyrie-49b-v1"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"virtuoso-large","name":"Virtuoso Large","match":{"equals":"virtuoso-large"},"prices":{"input_mtok":0.75,"output_mtok":1.2}},{"id":"virtuoso-medium-v2","name":"Virtuoso Medium V2","match":{"equals":"virtuoso-medium-v2"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"weaver","name":"Weaver (alpha)","match":{"equals":"weaver"},"prices":{"input_mtok":1.5,"output_mtok":1.5}},{"id":"wizardlm-2-8x22b","name":"WizardLM-2 8x22B","match":{"equals":"wizardlm-2-8x22b"},"prices":{"input_mtok":0.48,"output_mtok":0.48}},{"id":"x-ai/grok-2-1212","match":{"equals":"x-ai/grok-2-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"x-ai/grok-2-vision-1212","match":{"equals":"x-ai/grok-2-vision-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"x-ai/grok-3-beta","match":{"equals":"x-ai/grok-3-beta"},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"x-ai/grok-3-mini-beta","match":{"equals":"x-ai/grok-3-mini-beta"},"prices":{"input_mtok":0.3,"output_mtok":0.5}},{"id":"x-ai/grok-4-fast","match":{"equals":"x-ai/grok-4-fast"},"context_window":2000000,"prices":{"input_mtok":{"base":0.2,"tiers":[{"start":128000,"price":0.4}]},"cache_read_mtok":0.05,"output_mtok":{"base":0.5,"tiers":[{"start":128000,"price":1}]}}},{"id":"x-ai/grok-4.1-fast:free","match":{"equals":"x-ai/grok-4.1-fast:free"},"context_window":2000000,"prices":{}},{"id":"x-ai/grok-beta","match":{"equals":"x-ai/grok-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"x-ai/grok-code-fast-1","match":{"equals":"x-ai/grok-code-fast-1"},"context_window":256000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.02,"output_mtok":1.5}},{"id":"x-ai/grok-vision-beta","match":{"equals":"x-ai/grok-vision-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"xwin-lm/xwin-lm-70b","match":{"equals":"xwin-lm/xwin-lm-70b"},"prices":{"input_mtok":3.75,"output_mtok":3.75}},{"id":"yi-large","name":"Yi Large","match":{"equals":"yi-large"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"z-ai/glm-4.5","match":{"equals":"z-ai/glm-4.5"},"context_window":131072,"prices":{"input_mtok":0.35,"output_mtok":1.55}},{"id":"z-ai/glm-4.6","match":{"equals":"z-ai/glm-4.6"},"context_window":202752,"prices":{"input_mtok":0.4,"output_mtok":1.75}}]},{"id":"ovhcloud","name":"OVHcloud AI Endpoints","pricing_urls":["https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/models"],"api_pattern":"https://oai\\.endpoints\\.kepler\\.ai\\.cloud\\.ovh\\.net","extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"DeepSeek-R1-Distill-Llama-70B"},{"equals":"deepseek-r1-distill-llama-70b"}]},"context_window":131072,"prices":{"input_mtok":0.74,"output_mtok":0.74}},{"id":"Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"Llama-3.1-8B-Instruct"},{"equals":"llama-3.1-8b-instruct"}]},"context_window":131072,"prices":{"input_mtok":0.11,"output_mtok":0.11}},{"id":"Meta-Llama-3_3-70B-Instruct","name":"Meta-Llama-3_3-70B-Instruct","match":{"or":[{"equals":"Meta-Llama-3_3-70B-Instruct"},{"equals":"meta-llama-3_3-70b-instruct"}]},"context_window":131072,"prices":{"input_mtok":0.74,"output_mtok":0.74}},{"id":"Mistral-7B-Instruct-v0.3","name":"Mistral-7B-Instruct-v0.3","match":{"or":[{"equals":"Mistral-7B-Instruct-v0.3"},{"equals":"mistral-7b-instruct-v0.3"}]},"context_window":65536,"prices":{"input_mtok":0.11,"output_mtok":0.11}},{"id":"Mistral-Nemo-Instruct-2407","name":"Mistral-Nemo-Instruct-2407","match":{"or":[{"equals":"Mistral-Nemo-Instruct-2407"},{"equals":"mistral-nemo-instruct-2407"}]},"context_window":65536,"prices":{"input_mtok":0.14,"output_mtok":0.14}},{"id":"Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral-Small-3.2-24B-Instruct-2506","match":{"or":[{"equals":"Mistral-Small-3.2-24B-Instruct-2506"},{"equals":"mistral-small-3.2-24b-instruct-2506"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.31}},{"id":"Mixtral-8x7B-Instruct-v0.1","name":"Mixtral-8x7B-Instruct-v0.1","match":{"or":[{"equals":"Mixtral-8x7B-Instruct-v0.1"},{"equals":"mixtral-8x7b-instruct-v0.1"}]},"context_window":32768,"prices":{"input_mtok":0.7,"output_mtok":0.7}},{"id":"Qwen2.5-VL-72B-Instruct","name":"Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"Qwen2.5-VL-72B-Instruct"},{"equals":"qwen2.5-vl-72b-instruct"}]},"context_window":32768,"prices":{"input_mtok":1.01,"output_mtok":1.01}},{"id":"Qwen3-32B","name":"Qwen3-32B","match":{"or":[{"equals":"Qwen3-32B"},{"equals":"qwen3-32b"}]},"context_window":32768,"prices":{"input_mtok":0.09,"output_mtok":0.25}},{"id":"Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3-Coder-30B-A3B-Instruct","match":{"or":[{"equals":"Qwen3-Coder-30B-A3B-Instruct"},{"equals":"qwen3-coder-30b-a3b-instruct"}]},"context_window":262144,"prices":{"input_mtok":0.07,"output_mtok":0.26}},{"id":"bge-base-en-v1.5","name":"bge-base-en-v1.5","match":{"equals":"bge-base-en-v1.5"},"context_window":512,"prices":{"input_mtok":0.01}},{"id":"bge-m3","name":"bge-m3","match":{"equals":"bge-m3"},"context_window":8192,"prices":{"input_mtok":0.01}},{"id":"bge-multilingual-gemma2","name":"bge-multilingual-gemma2","match":{"equals":"bge-multilingual-gemma2"},"context_window":8192,"prices":{"input_mtok":0.01}},{"id":"gpt-oss-120b","name":"gpt-oss-120b","match":{"equals":"gpt-oss-120b"},"context_window":131072,"prices":{"input_mtok":0.09,"output_mtok":0.47}},{"id":"gpt-oss-20b","name":"gpt-oss-20b","match":{"equals":"gpt-oss-20b"},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.18}}]},{"id":"perplexity","name":"Perplexity","pricing_urls":["https://docs.perplexity.ai/guides/pricing"],"api_pattern":"https://api\\.perplexity\\.ai","price_comments":"Prices per request vary based on usage, this is not represented here, instead we just take the highest price shown for `requests_kcount`.","models":[{"id":"llama-3.1-sonar-large-128k-online","name":"Llama 3.1 Sonar 70B Online","description":"Llama 3.1 Sonar is Perplexity's latest model family. It surpasses their earlier Sonar models in cost-efficiency, speed, and performance.","match":{"equals":"llama-3.1-sonar-large-128k-online"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"llama-3.1-sonar-small-128k-online","name":"Llama 3.1 Sonar 8B Online","description":"Llama 3.1 Sonar is Perplexity's latest model family. It surpasses their earlier Sonar models in cost-efficiency, speed, and performance.","match":{"equals":"llama-3.1-sonar-small-128k-online"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"r1-1776","name":"R1 1776","description":"R1 1776 is a version of DeepSeek-R1 that has been post-trained to remove censorship constraints related to topics restricted by the Chinese government. The model retains its original reasoning capabilities while providing direct responses to a wider range of queries. R1 1776 is an offline chat model that does not use the perplexity search subsystem.","match":{"equals":"r1-1776"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sonar","name":"Sonar","description":"Sonar is lightweight, affordable, fast, and simple to use — now featuring citations and the ability to customize sources. It is designed for companies seeking to integrate lightweight question-and-answer features optimized for speed.","match":{"equals":"sonar"},"prices":{"input_mtok":1,"output_mtok":1,"requests_kcount":12}},{"id":"sonar-deep-research","name":"Sonar Deep Research","description":"Sonar Deep Research is a research-focused model designed for multi-step retrieval, synthesis, and reasoning across complex topics. It autonomously searches, reads, and evaluates sources, refining its approach as it gathers information. This enables comprehensive report generation across domains like finance, technology, health, and current events.","match":{"equals":"sonar-deep-research"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sonar-pro","name":"Sonar Pro","description":"Note: Sonar Pro pricing includes Perplexity search pricing. See details here","match":{"equals":"sonar-pro"},"prices":{"input_mtok":3,"output_mtok":15,"requests_kcount":14}},{"id":"sonar-reasoning","name":"Sonar Reasoning","description":"Sonar Reasoning is a reasoning model provided by Perplexity based on DeepSeek R1.","match":{"equals":"sonar-reasoning"},"prices":{"input_mtok":1,"output_mtok":5,"requests_kcount":12}},{"id":"sonar-reasoning-pro","name":"Sonar Reasoning Pro","description":"Sonar Pro pricing includes Perplexity search pricing.","match":{"equals":"sonar-reasoning-pro"},"prices":{"input_mtok":2,"output_mtok":8,"requests_kcount":14}}]},{"id":"together","name":"Together AI","pricing_urls":["https://www.together.ai/pricing"],"api_pattern":"https://api\\.together\\.xyz","provider_match":{"or":[{"equals":"together-ai"},{"equals":"together_ai"}]},"models":[{"id":"Austism/chronos-hermes-13b","match":{"equals":"Austism/chronos-hermes-13b"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Gryphe/MythoMax-L2-13b","match":{"equals":"Gryphe/MythoMax-L2-13b"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Nexusflow/NexusRaven-V2-13B","match":{"equals":"Nexusflow/NexusRaven-V2-13B"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"NousResearch/Nous-Capybara-7B-V1p9","match":{"equals":"NousResearch/Nous-Capybara-7B-V1p9"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO","match":{"equals":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-SFT","match":{"equals":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-SFT"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"NousResearch/Nous-Hermes-2-Yi-34B","match":{"equals":"NousResearch/Nous-Hermes-2-Yi-34B"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"NousResearch/Nous-Hermes-Llama2-13b","match":{"equals":"NousResearch/Nous-Hermes-Llama2-13b"},"prices":{"input_mtok":0.225,"output_mtok":0.225}},{"id":"NousResearch/Nous-Hermes-llama-2-7b","match":{"equals":"NousResearch/Nous-Hermes-llama-2-7b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Open-Orca/Mistral-7B-OpenOrca","match":{"equals":"Open-Orca/Mistral-7B-OpenOrca"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Qwen/Qwen1.5-0.5B","match":{"or":[{"equals":"Qwen/Qwen1.5-0.5B"},{"equals":"Qwen/Qwen1.5-0.5B-Chat"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Qwen/Qwen1.5-1.8B","match":{"or":[{"equals":"Qwen/Qwen1.5-1.8B"},{"equals":"Qwen/Qwen1.5-1.8B-Chat"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Qwen/Qwen1.5-14B","match":{"or":[{"equals":"Qwen/Qwen1.5-14B"},{"equals":"Qwen/Qwen1.5-14B-Chat"}]},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Qwen/Qwen1.5-4B","match":{"or":[{"equals":"Qwen/Qwen1.5-4B"},{"equals":"Qwen/Qwen1.5-4B-Chat"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Qwen/Qwen1.5-72B","match":{"equals":"Qwen/Qwen1.5-72B"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"Qwen/Qwen1.5-7B","match":{"or":[{"equals":"Qwen/Qwen1.5-7B"},{"equals":"Qwen/Qwen1.5-7B-Chat"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Undi95/ReMM-SLERP-L2-13B","match":{"equals":"Undi95/ReMM-SLERP-L2-13B"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Undi95/Toppy-M-7B","match":{"equals":"Undi95/Toppy-M-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"WizardLM/WizardLM-13B-V1.2","match":{"equals":"WizardLM/WizardLM-13B-V1.2"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"allenai/OLMo-7B","match":{"or":[{"equals":"allenai/OLMo-7B"},{"equals":"allenai/OLMo-7B-Instruct"},{"equals":"allenai/OLMo-7B-Twin-2T"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"codellama/CodeLlama-13b-Instruct-hf","match":{"equals":"codellama/CodeLlama-13b-Instruct-hf"},"prices":{"input_mtok":0.225,"output_mtok":0.225}},{"id":"codellama/CodeLlama-34b-Instruct-hf","match":{"equals":"codellama/CodeLlama-34b-Instruct-hf"},"prices":{"input_mtok":0.776,"output_mtok":0.776}},{"id":"codellama/CodeLlama-70b-Instruct-hf","match":{"equals":"codellama/CodeLlama-70b-Instruct-hf"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"codellama/CodeLlama-7b-Instruct-hf","match":{"equals":"codellama/CodeLlama-7b-Instruct-hf"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"deepseek-ai/deepseek-coder-33b-instruct","match":{"equals":"deepseek-ai/deepseek-coder-33b-instruct"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"garage-bAInd/Platypus2-70B-instruct","match":{"equals":"garage-bAInd/Platypus2-70B-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"google/gemma-2b","match":{"or":[{"equals":"google/gemma-2b"},{"equals":"google/gemma-2b-it"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"google/gemma-7b","match":{"or":[{"equals":"google/gemma-7b"},{"equals":"google/gemma-7b-it"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"lmsys/vicuna-13b-v1.5","match":{"equals":"lmsys/vicuna-13b-v1.5"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"lmsys/vicuna-7b-v1.5","match":{"equals":"lmsys/vicuna-7b-v1.5"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/Llama-2-13b-chat-hf","match":{"equals":"meta-llama/Llama-2-13b-chat-hf"},"prices":{"input_mtok":0.225,"output_mtok":0.225}},{"id":"meta-llama/Llama-2-70b-chat-hf","match":{"equals":"meta-llama/Llama-2-70b-chat-hf"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/Llama-2-7b-chat-hf","match":{"equals":"meta-llama/Llama-2-7b-chat-hf"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/Llama-3-70b-chat-hf","match":{"equals":"meta-llama/Llama-3-70b-chat-hf"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/Llama-3-8b-chat-hf","match":{"equals":"meta-llama/Llama-3-8b-chat-hf"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","match":{"equals":"meta-llama/Llama-3.3-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","match":{"equals":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8"},"prices":{"input_mtok":0.27,"output_mtok":0.85}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","match":{"equals":"meta-llama/Llama-4-Scout-17B-16E-Instruct"},"prices":{"input_mtok":0.18,"output_mtok":0.59}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct-Lite","match":{"equals":"meta-llama/Meta-Llama-3-70B-Instruct-Lite"},"prices":{"input_mtok":0.54,"output_mtok":0.54}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct-Lite","match":{"equals":"meta-llama/Meta-Llama-3-8B-Instruct-Lite"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3-8B-Instruct-Turbo"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo"},"prices":{"input_mtok":3.5,"output_mtok":3.5}},{"id":"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"meta-llama/Meta-Llama-3.3-70B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.3-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"microsoft/WizardLM-2-8x22B","match":{"equals":"microsoft/WizardLM-2-8x22B"},"prices":{"input_mtok":1.2,"output_mtok":1.2}},{"id":"microsoft/phi-2","match":{"equals":"microsoft/phi-2"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/Mistral-7B-Instruct-v0.1","match":{"equals":"mistralai/Mistral-7B-Instruct-v0.1"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/Mistral-7B-Instruct-v0.2","match":{"equals":"mistralai/Mistral-7B-Instruct-v0.2"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/Mistral-7B-v0.1","match":{"equals":"mistralai/Mistral-7B-v0.1"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/Mixtral-8x22B-Instruct-v0.1","match":{"equals":"mistralai/Mixtral-8x22B-Instruct-v0.1"},"prices":{"input_mtok":2.4,"output_mtok":2.4}},{"id":"mistralai/Mixtral-8x7B-Instruct-v0.1","match":{"equals":"mistralai/Mixtral-8x7B-Instruct-v0.1"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mistralai/Mixtral-8x7B-v0.1","match":{"equals":"mistralai/Mixtral-8x7B-v0.1"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"openchat/openchat-3.5-1210","match":{"equals":"openchat/openchat-3.5-1210"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"snorkelai/Snorkel-Mistral-PairRM-DPO","match":{"equals":"snorkelai/Snorkel-Mistral-PairRM-DPO"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"teknium/OpenHermes-2-Mistral-7B","match":{"equals":"teknium/OpenHermes-2-Mistral-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"teknium/OpenHermes-2p5-Mistral-7B","match":{"equals":"teknium/OpenHermes-2p5-Mistral-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/GPT-JT-Moderation-6B","match":{"equals":"togethercomputer/GPT-JT-Moderation-6B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/Llama-2-7B-32K-Instruct","match":{"equals":"togethercomputer/Llama-2-7B-32K-Instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-7B-Base","match":{"equals":"togethercomputer/RedPajama-INCITE-7B-Base"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-7B-Chat","match":{"equals":"togethercomputer/RedPajama-INCITE-7B-Chat"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-7B-Instruct","match":{"equals":"togethercomputer/RedPajama-INCITE-7B-Instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-Base-3B-v1","match":{"equals":"togethercomputer/RedPajama-INCITE-Base-3B-v1"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"togethercomputer/RedPajama-INCITE-Chat-3B-v1","match":{"equals":"togethercomputer/RedPajama-INCITE-Chat-3B-v1"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"togethercomputer/RedPajama-INCITE-Instruct-3B-v1","match":{"equals":"togethercomputer/RedPajama-INCITE-Instruct-3B-v1"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"togethercomputer/StripedHyena-Hessian-7B","match":{"equals":"togethercomputer/StripedHyena-Hessian-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/StripedHyena-Nous-7B","match":{"equals":"togethercomputer/StripedHyena-Nous-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/alpaca-7b","match":{"equals":"togethercomputer/alpaca-7b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"upstage/SOLAR-10.7B-Instruct-v1.0","match":{"equals":"upstage/SOLAR-10.7B-Instruct-v1.0"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"zero-one-ai/Yi-34B","match":{"equals":"zero-one-ai/Yi-34B"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"zero-one-ai/Yi-6B","match":{"equals":"zero-one-ai/Yi-6B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}}]},{"id":"x-ai","name":"X AI","pricing_urls":["https://docs.x.ai/docs/models"],"api_pattern":"https://api\\.x\\.ai","model_match":{"contains":"grok"},"provider_match":{"equals":"xai"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"cached_prompt_text_tokens","dest":"cache_read_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"grok-2-1212","name":"Grok 2 1212","description":"(deprecated) Grok 2 1212 introduces significant enhancements to accuracy, instruction adherence, and multilingual support, making it a powerful and flexible choice for developers seeking a highly steerable, intelligent model.","match":{"or":[{"equals":"grok-2-1212"},{"equals":"grok-2"},{"equals":"grok-2-latest"}]},"context_window":32768,"prices":{"input_mtok":2,"output_mtok":10},"deprecated":true},{"id":"grok-2-vision-1212","name":"Grok 2 Vision 1212","description":"Our multimodal model that processes documents, diagrams, charts, screenshots, and photographs.","match":{"or":[{"equals":"grok-2-vision-1212"},{"equals":"grok-2-vision"},{"equals":"grok-2-vision-latest"}]},"context_window":32768,"prices":{"input_mtok":2,"output_mtok":10}},{"id":"grok-3","name":"Grok 3","description":"Flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in finance, healthcare, law, and science.","match":{"or":[{"equals":"grok-3"},{"equals":"grok-3-latest"},{"equals":"grok-3-beta"}]},"context_window":131072,"prices":{"input_mtok":3,"cache_read_mtok":0.75,"output_mtok":15}},{"id":"grok-3-fast","name":"Grok 3 Fast","description":"Excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in finance, healthcare, law, and science.","match":{"or":[{"equals":"grok-3-fast"},{"equals":"grok-3-fast-latest"},{"equals":"grok-3-fast-beta"}]},"context_window":131072,"prices":{"input_mtok":5,"cache_read_mtok":1.25,"output_mtok":25}},{"id":"grok-3-mini","name":"Grok 3 Mini","description":"A lightweight model that thinks before responding. Fast, smart, and great for logic-based tasks that do not require deep domain knowledge. The raw thinking traces are accessible.","match":{"or":[{"equals":"grok-3-mini"},{"equals":"grok-3-mini-beta"},{"equals":"grok-3-mini-latest"}]},"context_window":131072,"prices":{"input_mtok":0.3,"cache_read_mtok":0.075,"output_mtok":0.5}},{"id":"grok-3-mini-fast","name":"Grok 3 Mini Fast","description":"A lightweight model that thinks before responding. Fast, smart, and great for logic-based tasks that do not require deep domain knowledge. The raw thinking traces are accessible.","match":{"or":[{"equals":"grok-3-mini-fast"},{"equals":"grok-3-mini-fast-beta"},{"equals":"grok-3-mini-fast-latest"}]},"context_window":131072,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":4}},{"id":"grok-4-0709","name":"Grok 4","description":"A flagship model, offering unparalleled performance in natural language, math and reasoning - the perfect jack of all trades.","match":{"or":[{"equals":"grok-4-0709"},{"equals":"grok-4"},{"equals":"grok-4-latest"}]},"context_window":256000,"prices":{"input_mtok":3,"cache_read_mtok":0.75,"output_mtok":15}},{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast Non-Reasoning","description":"A frontier multimodal model optimized specifically for high-performance agentic tool calling.","match":{"or":[{"equals":"grok-4-1-fast-non-reasoning"},{"equals":"grok-4-1-fast-non-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-4-1-fast-reasoning","name":"Grok 4.1 Fast Reasoning","description":"A frontier multimodal model optimized specifically for high-performance agentic tool calling.","match":{"or":[{"equals":"grok-4-1-fast"},{"equals":"grok-4-1-fast-reasoning"},{"equals":"grok-4-1-fast-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast Non-Reasoning","description":"A frontier multimodal model optimized specifically for high-performance agentic tool calling.","match":{"or":[{"equals":"grok-4-fast-non-reasoning"},{"equals":"grok-4-fast-non-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-4-fast-reasoning","name":"Grok 4 Fast Reasoning","description":"A frontier multimodal model optimized specifically for high-performance agentic tool calling.","match":{"or":[{"equals":"grok-4-fast"},{"equals":"grok-4-fast-reasoning"},{"equals":"grok-4-fast-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-code-fast-1","name":"Grok Code Fast 1","description":"A speedy and economical reasoning model that excels at agentic coding.","match":{"or":[{"equals":"grok-code-fast"},{"equals":"grok-code-fast-1"},{"equals":"grok-code-fast-1-0825"}]},"context_window":256000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.02,"output_mtok":1.5}}]}] diff --git a/prices/data_slim.json b/prices/data_slim.json index 77da3c0c..85a1c4fa 100644 --- a/prices/data_slim.json +++ b/prices/data_slim.json @@ -1 +1 @@ -[{"id":"anthropic","name":"Anthropic","pricing_urls":["https://www.anthropic.com/pricing#api"],"api_pattern":"https://api\\.anthropic\\.com","model_match":{"contains":"claude"},"provider_match":{"contains":"anthropic"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"cached_tokens","dest":"cache_read_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"claude-2","match":{"or":[{"starts_with":"claude-2"},{"contains":"claude-v2"}]},"context_window":200000,"prices":{"input_mtok":8,"output_mtok":24}},{"id":"claude-3-5-haiku-latest","match":{"or":[{"starts_with":"claude-3-5-haiku"},{"starts_with":"claude-3.5-haiku"}]},"context_window":200000,"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"claude-3-5-sonnet","match":{"or":[{"starts_with":"claude-3-5-sonnet"},{"starts_with":"claude-3.5-sonnet"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-7-sonnet-latest","match":{"or":[{"starts_with":"claude-3-7-sonnet"},{"starts_with":"claude-3.7-sonnet"},{"starts_with":"claude-sonnet-3.7"},{"starts_with":"claude-sonnet-3-7"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-haiku","match":{"starts_with":"claude-3-haiku"},"context_window":200000,"prices":{"input_mtok":0.25,"cache_write_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":1.25}},{"id":"claude-3-opus-latest","match":{"starts_with":"claude-3-opus"},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-3-sonnet","match":{"starts_with":"claude-3-sonnet"},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-haiku-4-5","match":{"or":[{"starts_with":"claude-haiku-4-5"},{"starts_with":"claude-haiku-4.5"},{"starts_with":"claude-4-5-haiku"},{"starts_with":"claude-4.5-haiku"}]},"context_window":200000,"prices":{"input_mtok":1,"cache_write_mtok":1.25,"cache_read_mtok":0.1,"output_mtok":5}},{"id":"claude-opus-4-0","match":{"or":[{"starts_with":"claude-opus-4-0"},{"starts_with":"claude-4-opus"},{"equals":"claude-opus-4"},{"equals":"claude-opus-4-20250514"}]},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-opus-4-1","match":{"or":[{"starts_with":"claude-opus-4-1"},{"starts_with":"claude-opus-4.1"}]},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-opus-4-5","match":{"or":[{"starts_with":"claude-opus-4-5"},{"starts_with":"claude-opus-4.5"},{"starts_with":"claude-4-5-opus"},{"starts_with":"claude-4.5-opus"}]},"context_window":200000,"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"claude-opus-4-6","match":{"or":[{"starts_with":"claude-opus-4-6"},{"starts_with":"claude-opus-4.6"},{"starts_with":"claude-4-6-opus"},{"starts_with":"claude-4.6-opus"}]},"context_window":200000,"prices":[{"prices":{"input_mtok":{"base":5,"tiers":[{"start":200000,"price":10}]},"cache_write_mtok":{"base":6.25,"tiers":[{"start":200000,"price":12.5}]},"cache_read_mtok":{"base":0.5,"tiers":[{"start":200000,"price":1}]},"output_mtok":{"base":25,"tiers":[{"start":200000,"price":37.5}]}}},{"constraint":{"start_date":"2026-03-13"},"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}}]},{"id":"claude-sonnet-4-0","match":{"or":[{"starts_with":"claude-sonnet-4-2025"},{"starts_with":"claude-sonnet-4-0"},{"starts_with":"claude-sonnet-4@"},{"equals":"claude-sonnet-4"},{"starts_with":"claude-4-sonnet"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-sonnet-4-5","match":{"or":[{"starts_with":"claude-sonnet-4-5"},{"starts_with":"claude-sonnet-4.5"}]},"context_window":1000000,"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"id":"claude-sonnet-4-6","match":{"or":[{"starts_with":"claude-sonnet-4-6"},{"starts_with":"claude-sonnet-4.6"}]},"context_window":1000000,"prices":[{"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"constraint":{"start_date":"2026-03-13"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}}]},{"id":"claude-v1","match":{"equals":"claude-v1"},"prices":{"input_mtok":8,"output_mtok":24}}]},{"id":"avian","name":"Avian","pricing_urls":["https://avian.io/pricing/"],"api_pattern":"https://api\\.avian\\.io","models":[{"id":"Meta-Llama-3.1-405B-Instruct","match":{"equals":"Meta-Llama-3.1-405B-Instruct"},"prices":{"input_mtok":1.5,"output_mtok":1.5}},{"id":"Meta-Llama-3.1-70B-Instruct","match":{"equals":"Meta-Llama-3.1-70B-Instruct"},"prices":{"input_mtok":0.45,"output_mtok":0.45}},{"id":"Meta-Llama-3.1-8B-Instruct","match":{"equals":"Meta-Llama-3.1-8B-Instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Meta-Llama-3.3-70B-Instruct","match":{"equals":"Meta-Llama-3.3-70B-Instruct"},"prices":{"input_mtok":0.45,"output_mtok":0.45}}]},{"id":"aws","name":"AWS Bedrock","pricing_urls":["https://aws.amazon.com/bedrock/pricing/"],"api_pattern":"https://bedrock-runtime\\.[a-z0-9-]+\\.amazonaws\\.com/","provider_match":{"contains":"bedrock"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"inputTokens","dest":"input_tokens","required":true},{"path":"outputTokens","dest":"output_tokens","required":true}]},{"api_flavor":"anthropic","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"amazon.nova-lite-v1:0","match":{"contains":"amazon.nova-lite"},"prices":{"input_mtok":0.06,"cache_read_mtok":0.015,"output_mtok":0.24}},{"id":"amazon.nova-micro-v1:0","match":{"contains":"amazon.nova-micro"},"prices":{"input_mtok":0.035,"cache_read_mtok":0.00875,"output_mtok":0.14}},{"id":"amazon.nova-premier-v1:0","match":{"contains":"amazon.nova-premier"},"prices":{"input_mtok":2.5,"cache_read_mtok":0.625,"output_mtok":12.5}},{"id":"amazon.nova-pro-v1:0","match":{"contains":"amazon.nova-pro"},"prices":{"input_mtok":0.8,"cache_read_mtok":0.2,"output_mtok":3.2}},{"id":"amazon.nova-sonic-v1:0","match":{"contains":"amazon.nova-sonic"},"prices":{"input_mtok":0.06,"output_mtok":0.24,"input_audio_mtok":3.4,"output_audio_mtok":13.6}},{"id":"amazon.titan-embed-text-v1","match":{"contains":"amazon.titan-embed-text"},"prices":{"input_mtok":0.1}},{"id":"amazon.titan-text-express-v1","match":{"contains":"titan-text-express"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"amazon.titan-text-lite-v1","match":{"contains":"titan-text-lite"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"deepseek.r1-v1:0","match":{"contains":"deepseek.r1"},"prices":{"input_mtok":1.35,"output_mtok":5.4}},{"id":"global.anthropic.claude-haiku-4-5-20251001-v1:0","match":{"contains":"global.anthropic.claude-haiku-4-5-20251001"},"prices":{"input_mtok":1,"cache_write_mtok":1.25,"cache_read_mtok":0.1,"output_mtok":5}},{"id":"global.anthropic.claude-opus-4-5-v1:0","match":{"contains":"global.anthropic.claude-opus-4-5"},"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"global.anthropic.claude-opus-4-6-v1:0","match":{"contains":"global.anthropic.claude-opus-4-6"},"prices":{"input_mtok":{"base":5,"tiers":[{"start":200000,"price":10}]},"cache_write_mtok":{"base":6.25,"tiers":[{"start":200000,"price":12.5}]},"cache_read_mtok":{"base":0.5,"tiers":[{"start":200000,"price":1}]},"output_mtok":{"base":25,"tiers":[{"start":200000,"price":37.5}]}}},{"id":"global.anthropic.claude-sonnet-4-20250514-v1:0","match":{"contains":"global.anthropic.claude-sonnet-4-20250514"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","match":{"contains":"global.anthropic.claude-sonnet-4-5-20250929"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"global.anthropic.claude-sonnet-4-6-v1:0","match":{"contains":"global.anthropic.claude-sonnet-4-6"},"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"id":"meta.llama3-1-70b-instruct-v1:0","match":{"contains":"meta.llama3-1-70b-instruct"},"prices":{"input_mtok":0.72,"output_mtok":0.72}},{"id":"meta.llama3-1-8b-instruct-v1:0","match":{"contains":"meta.llama3-1-8b-instruct"},"prices":{"input_mtok":0.22,"output_mtok":0.22}},{"id":"meta.llama3-2-11b-instruct-v1:0","match":{"contains":"meta.llama3-2-11b-instruct"},"prices":{"input_mtok":0.16,"output_mtok":0.16}},{"id":"meta.llama3-2-1b-instruct-v1:0","match":{"contains":"meta.llama3-2-1b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"meta.llama3-2-3b-instruct-v1:0","match":{"contains":"meta.llama3-2-3b-instruct"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"meta.llama3-2-90b-instruct-v1:0","match":{"contains":"meta.llama3-2-90b-instruct"},"prices":{"input_mtok":0.72,"output_mtok":0.72}},{"id":"meta.llama3-3-70b-instruct-v1:0","match":{"contains":"meta.llama3-3-70b-instruct"},"prices":{"input_mtok":0.72,"output_mtok":0.72}},{"id":"meta.llama3-70b-instruct-v1:0","match":{"contains":"meta.llama3-70b-instruct"},"prices":{"input_mtok":2.65,"output_mtok":3.5}},{"id":"meta.llama3-8b-instruct-v1:0","match":{"contains":"meta.llama3-8b-instruct"},"prices":{"input_mtok":0.3,"output_mtok":0.6}},{"id":"meta.llama4-maverick-17b-instruct-v1:0","match":{"contains":"meta.llama4-maverick-17b-instruct"},"prices":{"input_mtok":0.24,"output_mtok":0.97}},{"id":"meta.llama4-scout-17b-instruct-v1:0","match":{"contains":"meta.llama4-scout-17b-instruct"},"prices":{"input_mtok":0.17,"output_mtok":0.66}},{"id":"mistral.mistral-7b-instruct-v0:2","match":{"contains":"mistral.mistral-7b-instruct-v0"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"mistral.mistral-large-2402-v1:0","match":{"contains":"mistral.mistral-large-2402"},"prices":{"input_mtok":4,"output_mtok":12}},{"id":"mistral.mistral-small-2402-v1:0","match":{"contains":"mistral.mistral-small-2402"},"prices":{"input_mtok":1,"output_mtok":3}},{"id":"mistral.mixtral-8x7b-instruct-v0:1","match":{"contains":"mistral.mixtral-8x7b-instruct-v0"},"prices":{"input_mtok":0.45,"output_mtok":0.7}},{"id":"mistral.pixtral-large-2502-v1:0","match":{"contains":"mistral.pixtral-large-2502"},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"openai.gpt-oss-120b-1:0","match":{"contains":"openai.gpt-oss-120b-1"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai.gpt-oss-20b-1:0","match":{"contains":"openai.gpt-oss-20b-1"},"prices":{"input_mtok":0.07,"output_mtok":0.3}},{"id":"qwen.qwen3-32b-v1:0","match":{"contains":"qwen.qwen3-32b"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"qwen.qwen3-coder-30b-a3b-v1:0","match":{"contains":"qwen.qwen3-coder-30b-a3b"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"qwen.qwen3-coder-480b-a35b-v1:0","match":{"contains":"qwen.qwen3-coder-480b-a35b"},"prices":{"input_mtok":0.45,"output_mtok":1.8}},{"id":"qwen.qwen3-vl-235b-a22b-v1:0","match":{"contains":"qwen.qwen3-vl-235b-a22b"},"prices":{"input_mtok":0.53,"output_mtok":2.66}},{"id":"regional.anthropic.claude-3-5-haiku-20241022-v1:0","match":{"contains":"claude-3-5-haiku-20241022"},"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"regional.anthropic.claude-3-5-sonnet-20240620-v1:0","match":{"contains":"claude-3-5-sonnet-20240620"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-3-5-sonnet-20241022-v2:0","match":{"contains":"claude-3-5-sonnet-20241022"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-3-7-sonnet-20250219-v1:0","match":{"contains":"claude-3-7-sonnet-20250219"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-3-haiku-20240307-v1:0","match":{"contains":"claude-3-haiku-20240307"},"prices":{"input_mtok":0.25,"output_mtok":1.25}},{"id":"regional.anthropic.claude-3-opus-20240229-v1:0","match":{"contains":"claude-3-opus-20240229"},"prices":{"input_mtok":15,"output_mtok":75}},{"id":"regional.anthropic.claude-3-sonnet-20240229-v1:0","match":{"contains":"claude-3-sonnet-20240229"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-haiku-4-5-20251001-v1:0","match":{"or":[{"starts_with":"anthropic.claude-haiku-4-5-20251001"},{"starts_with":"claude-haiku-4-5-20251001"},{"contains":"us.anthropic.claude-haiku-4-5-20251001"},{"contains":"au.anthropic.claude-haiku-4-5-20251001"},{"contains":"apac.anthropic.claude-haiku-4-5-20251001"},{"contains":"eu.anthropic.claude-haiku-4-5-20251001"},{"contains":"us-gov.anthropic.claude-haiku-4-5-20251001"},{"contains":"jp.anthropic.claude-haiku-4-5-20251001"}]},"prices":{"input_mtok":1.1,"cache_write_mtok":1.375,"cache_read_mtok":0.11,"output_mtok":5.5}},{"id":"regional.anthropic.claude-opus-4-1-20250805-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-1-20250805"},{"starts_with":"claude-opus-4-1-20250805"},{"contains":"us.anthropic.claude-opus-4-1-20250805"},{"contains":"au.anthropic.claude-opus-4-1-20250805"},{"contains":"apac.anthropic.claude-opus-4-1-20250805"},{"contains":"eu.anthropic.claude-opus-4-1-20250805"},{"contains":"us-gov.anthropic.claude-opus-4-1-20250805"},{"contains":"jp.anthropic.claude-opus-4-1-20250805"}]},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"regional.anthropic.claude-opus-4-20250514-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-20250514"},{"starts_with":"claude-opus-4-20250514"},{"contains":"us.anthropic.claude-opus-4-20250514"},{"contains":"au.anthropic.claude-opus-4-20250514"},{"contains":"apac.anthropic.claude-opus-4-20250514"},{"contains":"eu.anthropic.claude-opus-4-20250514"},{"contains":"us-gov.anthropic.claude-opus-4-20250514"},{"contains":"jp.anthropic.claude-opus-4-20250514"}]},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"regional.anthropic.claude-opus-4-5-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-5"},{"starts_with":"claude-opus-4-5"},{"contains":"us.anthropic.claude-opus-4-5"},{"contains":"au.anthropic.claude-opus-4-5"},{"contains":"apac.anthropic.claude-opus-4-5"},{"contains":"eu.anthropic.claude-opus-4-5"},{"contains":"us-gov.anthropic.claude-opus-4-5"},{"contains":"jp.anthropic.claude-opus-4-5"}]},"prices":{"input_mtok":5.5,"cache_write_mtok":6.875,"cache_read_mtok":0.55,"output_mtok":27.5}},{"id":"regional.anthropic.claude-opus-4-6-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-6"},{"starts_with":"claude-opus-4-6"},{"contains":"us.anthropic.claude-opus-4-6"},{"contains":"au.anthropic.claude-opus-4-6"},{"contains":"apac.anthropic.claude-opus-4-6"},{"contains":"eu.anthropic.claude-opus-4-6"},{"contains":"us-gov.anthropic.claude-opus-4-6"},{"contains":"jp.anthropic.claude-opus-4-6"}]},"prices":{"input_mtok":{"base":5.5,"tiers":[{"start":200000,"price":11}]},"cache_write_mtok":{"base":6.875,"tiers":[{"start":200000,"price":13.75}]},"cache_read_mtok":{"base":0.55,"tiers":[{"start":200000,"price":1.1}]},"output_mtok":{"base":27.5,"tiers":[{"start":200000,"price":41.25}]}}},{"id":"regional.anthropic.claude-sonnet-4-20250514-v1:0","match":{"or":[{"starts_with":"anthropic.claude-sonnet-4-20250514"},{"starts_with":"claude-sonnet-4-20250514"},{"contains":"us.anthropic.claude-sonnet-4-20250514"},{"contains":"au.anthropic.claude-sonnet-4-20250514"},{"contains":"apac.anthropic.claude-sonnet-4-20250514"},{"contains":"eu.anthropic.claude-sonnet-4-20250514"},{"contains":"us-gov.anthropic.claude-sonnet-4-20250514"},{"contains":"jp.anthropic.claude-sonnet-4-20250514"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-sonnet-4-5-20250929-v1:0","match":{"or":[{"starts_with":"anthropic.claude-sonnet-4-5-20250929"},{"starts_with":"claude-sonnet-4-5-20250929"},{"contains":"us.anthropic.claude-sonnet-4-5-20250929"},{"contains":"au.anthropic.claude-sonnet-4-5-20250929"},{"contains":"apac.anthropic.claude-sonnet-4-5-20250929"},{"contains":"eu.anthropic.claude-sonnet-4-5-20250929"},{"contains":"us-gov.anthropic.claude-sonnet-4-5-20250929"},{"contains":"jp.anthropic.claude-sonnet-4-5-20250929"}]},"prices":{"input_mtok":3.3,"cache_write_mtok":4.125,"cache_read_mtok":0.33,"output_mtok":16.5}},{"id":"regional.anthropic.claude-sonnet-4-6-v1:0","match":{"or":[{"starts_with":"anthropic.claude-sonnet-4-6"},{"starts_with":"claude-sonnet-4-6"},{"contains":"us.anthropic.claude-sonnet-4-6"},{"contains":"au.anthropic.claude-sonnet-4-6"},{"contains":"apac.anthropic.claude-sonnet-4-6"},{"contains":"eu.anthropic.claude-sonnet-4-6"},{"contains":"us-gov.anthropic.claude-sonnet-4-6"},{"contains":"jp.anthropic.claude-sonnet-4-6"}]},"prices":{"input_mtok":{"base":3.3,"tiers":[{"start":200000,"price":6.6}]},"cache_write_mtok":{"base":4.125,"tiers":[{"start":200000,"price":8.25}]},"cache_read_mtok":{"base":0.33,"tiers":[{"start":200000,"price":0.66}]},"output_mtok":{"base":16.5,"tiers":[{"start":200000,"price":24.75}]}}}]},{"id":"azure","name":"Microsoft Azure","pricing_urls":["https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/#pricing"],"api_pattern":"(https?://)?([^.]*\\.)?(?:openai\\.azure\\.com|azure-api\\.net|cognitiveservices\\.azure\\.com)","extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"responses","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":["input_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"embeddings","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true}]},{"api_flavor":"anthropic","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]}],"fallback_model_providers":["openai","anthropic"],"models":[{"id":"ada","match":{"or":[{"equals":"ada"},{"equals":"text-embedding-ada"},{"equals":"text-embedding-ada-002"},{"equals":"text-embedding-ada-002-v2"}]},"prices":{"input_mtok":0.1}},{"id":"babbage","match":{"or":[{"equals":"babbage"},{"equals":"babbage-002"}]},"prices":{"input_mtok":0.4}},{"id":"curie","match":{"or":[{"equals":"curie"},{"equals":"text-curie"},{"equals":"text-curie-001"}]},"prices":{"input_mtok":2}},{"id":"davinci","match":{"or":[{"equals":"davinci"},{"equals":"davinci-002"},{"equals":"text-davinci"},{"equals":"text-davinci-002"}]},"prices":{"input_mtok":2}},{"id":"o1","match":{"or":[{"equals":"o1"},{"equals":"o1-2024-12-17"},{"equals":"o1-preview"},{"equals":"o1-preview-2024-09-12"}]},"prices":{"input_mtok":15,"cache_read_mtok":7.5,"output_mtok":60}},{"id":"o1-mini","match":{"or":[{"equals":"o1-mini"},{"equals":"o1-mini-2024-09-12"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o3-2025-04-16","match":{"or":[{"equals":"o3"},{"equals":"o3-2025-04-16"}]},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"o3-mini","match":{"or":[{"equals":"o3-mini"},{"equals":"o3-mini-2025-01-31"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o4-mini","match":{"or":[{"contains":"o4-mini"},{"contains":"o4-mini-2025-04-16"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.28,"output_mtok":4.4}},{"id":"phi-3-medium-128k-instruct","match":{"equals":"phi-3-medium-128k-instruct"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"phi-3-mini-128k-instruct","match":{"equals":"phi-3-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-3.5-mini-128k-instruct","match":{"equals":"phi-3.5-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-4","match":{"equals":"phi-4"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"phi-4-multimodal-instruct","match":{"equals":"phi-4-multimodal-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"phi-4-reasoning-plus","match":{"equals":"phi-4-reasoning-plus"},"prices":{"input_mtok":0.07,"output_mtok":0.35}},{"id":"text-embedding-3-large","match":{"equals":"text-embedding-3-large"},"prices":{"input_mtok":0.13}},{"id":"text-embedding-3-small","match":{"equals":"text-embedding-3-small"},"prices":{"input_mtok":0.02}},{"id":"wizardlm-2-8x22b","match":{"equals":"wizardlm-2-8x22b"},"prices":{"input_mtok":0.48,"output_mtok":0.48}}]},{"id":"cerebras","name":"Cerebras","pricing_urls":["https://www.cerebras.ai/pricing#pricing","https://inference-docs.cerebras.ai/models/openai-oss"],"api_pattern":"https://api\\.cerebras\\.ai","model_match":{"contains":"cerebras"},"provider_match":{"contains":"cerebras"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"gpt-oss-120b","match":{"or":[{"equals":"gpt-oss-120b"},{"starts_with":"cerebras/gpt-oss-120b"},{"starts_with":"cerebras:gpt-oss-120b"}]},"context_window":131072,"prices":{"input_mtok":0.35,"output_mtok":0.75}},{"id":"llama-3.3-70b","match":{"or":[{"equals":"llama-3.3-70b"},{"starts_with":"cerebras/llama-3.3-70b"},{"starts_with":"cerebras:llama-3.3-70b"}]},"context_window":128000,"prices":{"input_mtok":0.85,"output_mtok":1.2}},{"id":"llama3.1-8b","match":{"or":[{"equals":"llama3.1-8b"},{"starts_with":"cerebras/llama3.1-8b"},{"starts_with":"cerebras:llama3.1-8b"}]},"context_window":32768,"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"qwen-3-32b","match":{"or":[{"equals":"qwen-3-32b"},{"starts_with":"cerebras/qwen-3-32b"},{"starts_with":"cerebras:qwen-3-32b"}]},"context_window":131072,"prices":{"input_mtok":0.4,"output_mtok":0.8}}]},{"id":"cohere","name":"Cohere","pricing_urls":["https://cohere.com/pricing"],"api_pattern":"https://api\\.cohere\\.ai","model_match":{"starts_with":"command-"},"provider_match":{"contains":"cohere"},"extractors":[{"api_flavor":"default","root":["usage","billed_units"],"model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"embeddings","root":["meta","billed_units"],"model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true}]}],"models":[{"id":"command","match":{"equals":"command"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"command-a","match":{"starts_with":"command-a"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r","match":{"or":[{"equals":"command-r"},{"equals":"command-r-08-2024"}]},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"command-r-plus","match":{"or":[{"equals":"command-r-plus"},{"equals":"command-r-plus-08-2024"}]},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r7b","match":{"or":[{"equals":"command-r7b"},{"equals":"command-r7b-12-2024"}]},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"embed-v4.0","match":{"equals":"embed-v4.0"},"context_window":128000,"prices":{"input_mtok":0.12}}]},{"id":"deepseek","name":"Deepseek","pricing_urls":["https://api-docs.deepseek.com/quick_start/pricing"],"api_pattern":"https://api\\.deepseek\\.com","model_match":{"contains":"deepseek"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"deepseek-chat","match":{"or":[{"starts_with":"deepseek-chat"},{"equals":"deepseek-chat-v3-0324"}]},"context_window":64000,"prices":[{"prices":{"input_mtok":0.135,"cache_read_mtok":0.035,"output_mtok":0.55}},{"constraint":{"start_time":"00:30:00Z","end_time":"16:30:00Z"},"prices":{"input_mtok":0.27,"cache_read_mtok":0.07,"output_mtok":1.1}}]},{"id":"deepseek-reasoner","match":{"or":[{"equals":"deepseek-reasoner"},{"starts_with":"deepseek-r1"},{"equals":"deepseek-r1-0528"}]},"context_window":64000,"prices":[{"prices":{"input_mtok":0.135,"cache_read_mtok":0.035,"output_mtok":0.55}},{"constraint":{"start_time":"00:30:00Z","end_time":"16:30:00Z"},"prices":{"input_mtok":0.55,"cache_read_mtok":0.14,"output_mtok":2.19}}]}]},{"id":"fireworks","name":"Fireworks","pricing_urls":["https://fireworks.ai/pricing"],"api_pattern":"https://api\\.fireworks\\.ai","model_match":{"starts_with":"accounts/fireworks/models/"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"deepseek-r1-0528","match":{"equals":"accounts/fireworks/models/deepseek-r1-0528"},"context_window":160000,"prices":{"input_mtok":3,"output_mtok":8}},{"id":"deepseek-v3-0324","match":{"equals":"accounts/fireworks/models/deepseek-v3-0324"},"context_window":160000,"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"deepseek-v3p2","match":{"equals":"accounts/fireworks/models/deepseek-v3p2"},"context_window":163840,"prices":{"input_mtok":0.56,"cache_read_mtok":0.28,"output_mtok":1.68}},{"id":"gemma-3-27b-it","match":{"equals":"accounts/fireworks/models/gemma-3-27b-it"},"context_window":131000,"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"glm-4p7","match":{"equals":"accounts/fireworks/models/glm-4p7"},"context_window":202752,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"gpt-oss-120b","match":{"equals":"accounts/fireworks/models/gpt-oss-120b"},"context_window":131072,"prices":{"input_mtok":0.15,"cache_read_mtok":0.07,"output_mtok":0.6}},{"id":"gpt-oss-20b","match":{"equals":"accounts/fireworks/models/gpt-oss-20b"},"context_window":131072,"prices":{"input_mtok":0.07,"cache_read_mtok":0.04,"output_mtok":0.3}},{"id":"kimi-k2p5","match":{"equals":"accounts/fireworks/models/kimi-k2p5"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.1,"output_mtok":3}},{"id":"llama-v3p1-8b-instruct","match":{"equals":"accounts/fireworks/models/llama-v3p1-8b-instruct"},"context_window":131000,"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama4-maverick-instruct-basic","match":{"equals":"accounts/fireworks/models/llama4-maverick-instruct-basic"},"context_window":1000000,"prices":{"input_mtok":0.22,"output_mtok":0.88}},{"id":"minimax-m2p1","match":{"equals":"accounts/fireworks/models/minimax-m2p1"},"context_window":204800,"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"qwen2p5-vl-72b-instruct","match":{"equals":"accounts/fireworks/models/qwen2p5-vl-72b-instruct"},"context_window":128000,"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen3-235b-a22b","match":{"equals":"accounts/fireworks/models/qwen3-235b-a22b"},"context_window":128000,"prices":{"input_mtok":0.22,"output_mtok":0.88}}]},{"id":"google","name":"Google","pricing_urls":["https://ai.google.dev/gemini-api/docs/pricing","https://cloud.google.com/vertex-ai/generative-ai/pricing"],"api_pattern":"https://(.*\\.)?googleapis\\.com","model_match":{"contains":"gemini"},"provider_match":{"or":[{"contains":"google"},{"contains":"vertex"},{"contains":"gemini"}]},"extractors":[{"api_flavor":"default","root":"usageMetadata","model_path":"modelVersion","mappings":[{"path":"promptTokenCount","dest":"input_tokens","required":false},{"path":"cachedContentTokenCount","dest":"cache_read_tokens","required":false},{"path":["cacheTokensDetails",{"type":"array-match","field":"modality","match":{"equals":"AUDIO"}},"tokenCount"],"dest":"cache_audio_read_tokens","required":false},{"path":["promptTokensDetails",{"type":"array-match","field":"modality","match":{"equals":"AUDIO"}},"tokenCount"],"dest":"input_audio_tokens","required":false},{"path":["candidatesTokensDetails",{"type":"array-match","field":"modality","match":{"equals":"AUDIO"}},"tokenCount"],"dest":"output_audio_tokens","required":false},{"path":"candidatesTokenCount","dest":"output_tokens","required":false},{"path":"thoughtsTokenCount","dest":"output_tokens","required":false},{"path":"toolUsePromptTokenCount","dest":"output_tokens","required":false}]},{"api_flavor":"anthropic","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"fallback_model_providers":["anthropic"],"models":[{"id":"claude-3-5-haiku","match":{"contains":"claude-3-5-haiku"},"context_window":200000,"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"claude-3-5-sonnet","match":{"contains":"claude-3-5-sonnet"},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-7-sonnet","match":{"contains":"claude-3-7-sonnet"},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-haiku","match":{"contains":"claude-3-haiku"},"context_window":200000,"prices":{"input_mtok":0.25,"cache_write_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":1.25}},{"id":"claude-3-opus","match":{"contains":"claude-3-opus"},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-4-opus","match":{"or":[{"contains":"claude-4-opus"},{"contains":"claude-opus-4@"},{"contains":"claude-opus-4-0"},{"contains":"claude-opus-4-1"},{"equals":"claude-opus-4"}]},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-4-sonnet","match":{"or":[{"contains":"claude-4-sonnet"},{"contains":"claude-sonnet-4"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-opus-4-6","match":{"or":[{"contains":"claude-4-6-opus"},{"contains":"claude-opus-4-6"},{"contains":"claude-4.6-opus"},{"contains":"claude-opus-4.6"}]},"context_window":200000,"prices":{"input_mtok":{"base":5,"tiers":[{"start":200000,"price":10}]},"cache_write_mtok":{"base":6.25,"tiers":[{"start":200000,"price":12.5}]},"cache_read_mtok":{"base":0.5,"tiers":[{"start":200000,"price":1}]},"output_mtok":{"base":25,"tiers":[{"start":200000,"price":37.5}]}}},{"id":"gemini-1.0-pro-vision-001","match":{"equals":"gemini-1.0-pro-vision-001"},"context_window":32768,"prices":{"input_mtok":0.125,"output_mtok":0.375}},{"id":"gemini-1.5-flash","match":{"contains":"gemini-1.5-flash"},"context_window":1000000,"prices":{"input_mtok":{"base":0.075,"tiers":[{"start":128000,"price":0.15}]},"cache_read_mtok":{"base":0.01875,"tiers":[{"start":128000,"price":0.0375}]},"output_mtok":{"base":0.3,"tiers":[{"start":128000,"price":0.6}]}}},{"id":"gemini-1.5-pro","match":{"contains":"gemini-1.5-pro"},"context_window":1000000,"prices":{"input_mtok":{"base":1.25,"tiers":[{"start":128000,"price":2.5}]},"output_mtok":{"base":5,"tiers":[{"start":128000,"price":10}]}}},{"id":"gemini-2.0-flash","match":{"or":[{"ends_with":"gemini-2.0-flash"},{"contains":"gemini-2.0-flash-0"},{"contains":"gemini-2.0-flash-exp"},{"contains":"gemini-2.0-flash-thinking"},{"contains":"gemini-2.0-flash-latest"}]},"context_window":1000000,"prices":{"input_mtok":0.1,"cache_read_mtok":{"base":0.025,"tiers":[{"start":1000000,"price":0.175}]},"output_mtok":0.4,"input_audio_mtok":0.7}},{"id":"gemini-2.0-flash-lite","match":{"contains":"gemini-2.0-flash-lite"},"context_window":1000000,"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"gemini-2.5-flash","match":{"or":[{"equals":"gemini-2.5-flash"},{"equals":"gemini-2.5-flash-latest"},{"equals":"gemini-2.5-flash-preview-09-2025"}]},"prices":{"input_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":2.5,"input_audio_mtok":1,"cache_audio_read_mtok":0.1}},{"id":"gemini-2.5-flash-image","match":{"or":[{"equals":"gemini-2.5-flash-image"},{"equals":"gemini-2.5-flash-image-preview"}]},"context_window":1000000,"prices":{"input_mtok":0.3,"output_mtok":30}},{"id":"gemini-2.5-flash-lite","match":{"or":[{"equals":"gemini-2.5-flash-lite"},{"starts_with":"gemini-2.5-flash-lite-preview"}]},"context_window":1000000,"prices":{"input_mtok":0.1,"cache_read_mtok":0.01,"output_mtok":0.4,"input_audio_mtok":0.3,"cache_audio_read_mtok":0.03}},{"id":"gemini-2.5-flash-preview","match":{"or":[{"contains":"gemini-2.5-flash-preview-05-20"},{"contains":"gemini-2.5-flash-preview-04-17"},{"equals":"gemini-2.5-flash-preview-05-20:thinking"},{"equals":"gemini-2.5-flash-preview"},{"equals":"gemini-2.5-flash-preview:thinking"}]},"prices":{"input_mtok":0.15,"output_mtok":0.6},"deprecated":true},{"id":"gemini-2.5-pro","match":{"starts_with":"gemini-2.5-pro"},"prices":{"input_mtok":{"base":1.25,"tiers":[{"start":200000,"price":2.5}]},"cache_read_mtok":{"base":0.125,"tiers":[{"start":200000,"price":0.25}]},"output_mtok":{"base":10,"tiers":[{"start":200000,"price":15}]}}},{"id":"gemini-3-flash-preview","match":{"or":[{"equals":"gemini-3-flash-preview"},{"starts_with":"gemini-3-flash-preview-"}]},"context_window":1000000,"prices":{"input_mtok":0.5,"cache_read_mtok":0.05,"output_mtok":3,"input_audio_mtok":1,"cache_audio_read_mtok":0.1}},{"id":"gemini-3-pro-image-preview","match":{"or":[{"starts_with":"gemini-3-pro-image-preview"},{"equals":"gemini-3-pro-image-preview"}]},"context_window":1000000,"prices":{"input_mtok":2,"output_mtok":120}},{"id":"gemini-3-pro-preview","match":{"or":[{"starts_with":"gemini-3-pro-preview"},{"equals":"gemini-3-pro-text-preview"}]},"prices":{"input_mtok":{"base":2,"tiers":[{"start":200000,"price":4}]},"cache_read_mtok":{"base":0.2,"tiers":[{"start":200000,"price":0.4}]},"output_mtok":{"base":12,"tiers":[{"start":200000,"price":18}]}}},{"id":"gemini-3.1-flash-image-preview","match":{"starts_with":"gemini-3.1-flash-image-preview"},"context_window":1000000,"prices":{"input_mtok":0.5,"output_mtok":60}},{"id":"gemini-3.1-flash-lite-preview","match":{"starts_with":"gemini-3.1-flash-lite-preview"},"context_window":1000000,"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":1.5,"input_audio_mtok":0.5,"cache_audio_read_mtok":0.05}},{"id":"gemini-3.1-pro-preview","match":{"starts_with":"gemini-3.1-pro-preview"},"prices":{"input_mtok":{"base":2,"tiers":[{"start":200000,"price":4}]},"cache_read_mtok":{"base":0.2,"tiers":[{"start":200000,"price":0.4}]},"output_mtok":{"base":12,"tiers":[{"start":200000,"price":18}]}}},{"id":"gemini-embedding-001","match":{"equals":"gemini-embedding-001"},"prices":{"input_mtok":0.15}},{"id":"gemini-flash-1.5","match":{"equals":"gemini-flash-1.5"},"prices":{"input_mtok":{"base":0.075,"tiers":[{"start":128000,"price":0.15}]},"cache_read_mtok":{"base":0.01875,"tiers":[{"start":128000,"price":0.0375}]},"output_mtok":{"base":0.3,"tiers":[{"start":128000,"price":0.6}]}}},{"id":"gemini-flash-1.5-8b","match":{"equals":"gemini-flash-1.5-8b"},"context_window":1000000,"prices":{"input_mtok":{"base":0.0375,"tiers":[{"start":128000,"price":0.075}]},"cache_read_mtok":{"base":0.01,"tiers":[{"start":128000,"price":0.02}]},"output_mtok":{"base":0.15,"tiers":[{"start":128000,"price":0.3}]}}},{"id":"gemini-live-2.5-flash-preview","match":{"or":[{"starts_with":"gemini-live-2.5-flash-preview"},{"starts_with":"gemini-2.5-flash-native-audio-preview"}]},"prices":{"input_mtok":0.5,"output_mtok":2,"input_audio_mtok":3,"output_audio_mtok":12}},{"id":"gemini-pro","match":{"or":[{"equals":"gemini-pro"},{"equals":"gemini-1.0-pro"}]},"context_window":32768,"prices":{"input_mtok":0.125,"output_mtok":0.375}},{"id":"gemini-pro-1.5","match":{"equals":"gemini-pro-1.5"},"context_window":2000000,"prices":{"input_mtok":{"base":1.25,"tiers":[{"start":128000,"price":2.5}]},"cache_read_mtok":{"base":0.3125,"tiers":[{"start":128000,"price":0.625}]},"output_mtok":{"base":5,"tiers":[{"start":128000,"price":10}]}}}]},{"id":"groq","name":"Groq","pricing_urls":["https://groq.com/pricing/"],"api_pattern":"https://api\\.groq\\.com","extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"deepseek-r1-distill-llama-70b","match":{"equals":"deepseek-r1-distill-llama-70b"},"context_window":131072,"prices":{"input_mtok":0.75,"output_mtok":0.99}},{"id":"gemma-7b-it","match":{"equals":"gemma-7b-it"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"gemma2-9b-it","match":{"or":[{"equals":"gemma2-9b-it"},{"equals":"gemma2-9b"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama-3.1-405b-reasoning","match":{"equals":"llama-3.1-405b-reasoning"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama-3.1-70b-versatile","match":{"equals":"llama-3.1-70b-versatile"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama-3.1-8b-instant","match":{"equals":"llama-3.1-8b-instant"},"prices":{"input_mtok":0.05,"output_mtok":0.08}},{"id":"llama-3.2-11b-text-preview","match":{"equals":"llama-3.2-11b-text-preview"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"llama-3.2-11b-vision-preview","match":{"equals":"llama-3.2-11b-vision-preview"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"llama-3.2-1b-preview","match":{"equals":"llama-3.2-1b-preview"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"llama-3.2-3b-preview","match":{"equals":"llama-3.2-3b-preview"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"llama-3.2-90b-text-preview","match":{"equals":"llama-3.2-90b-text-preview"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"llama-3.2-90b-vision-preview","match":{"equals":"llama-3.2-90b-vision-preview"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"llama-3.3-70b-specdec","match":{"equals":"llama-3.3-70b-specdec"},"prices":{"input_mtok":0.59,"output_mtok":0.99}},{"id":"llama-3.3-70b-versatile","match":{"equals":"llama-3.3-70b-versatile"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama-guard-3-8b","match":{"equals":"llama-guard-3-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama2-70b-4096","match":{"equals":"llama2-70b-4096"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"llama3-70b-8192","match":{"equals":"llama3-70b-8192"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama3-8b-8192","match":{"equals":"llama3-8b-8192"},"prices":{"input_mtok":0.05,"output_mtok":0.08}},{"id":"llama3-groq-70b-8192-tool-use-preview","match":{"equals":"llama3-groq-70b-8192-tool-use-preview"},"prices":{"input_mtok":0.89,"output_mtok":0.89}},{"id":"llama3-groq-8b-8192-tool-use-preview","match":{"equals":"llama3-groq-8b-8192-tool-use-preview"},"prices":{"input_mtok":0.19,"output_mtok":0.19}},{"id":"meta-llama/llama-4-maverick-17b-128e-instruct","match":{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct"},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"meta-llama/llama-4-scout-17b-16e-instruct","match":{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},"prices":{"input_mtok":0.11,"output_mtok":0.34}},{"id":"meta-llama/llama-guard-4-12b","match":{"equals":"meta-llama/llama-guard-4-12b"},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistral-saba-24b","match":{"equals":"mistral-saba-24b"},"prices":{"input_mtok":0.79,"output_mtok":0.79}},{"id":"mixtral-8x7b-32768","match":{"equals":"mixtral-8x7b-32768"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"moonshotai/kimi-k2-instruct","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct"},{"equals":"moonshotai/kimi-k2-instruct-0905"}]},"context_window":131072,"prices":{"input_mtok":1,"cache_read_mtok":0.5,"output_mtok":3}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-safeguard-20b"}]},"context_window":131072,"prices":{"input_mtok":0.15,"cache_read_mtok":0.075,"output_mtok":0.6}},{"id":"openai/gpt-oss-20b","match":{"equals":"openai/gpt-oss-20b"},"context_window":131072,"prices":{"input_mtok":0.075,"cache_read_mtok":0.0375,"output_mtok":0.3}},{"id":"qwen/qwen3-32b","match":{"equals":"qwen/qwen3-32b"},"prices":{"input_mtok":0.29,"output_mtok":0.59}}]},{"id":"huggingface_cerebras","name":"HuggingFace (cerebras)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/cerebras","provider_match":{"and":[{"contains":"huggingface"},{"contains":"cerebras"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"meta-llama/Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}}]},{"id":"huggingface_fireworks-ai","name":"HuggingFace (fireworks-ai)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/fireworks-ai","provider_match":{"and":[{"contains":"huggingface"},{"contains":"fireworks-ai"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.2}}]},{"id":"huggingface_groq","name":"HuggingFace (groq)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/groq","provider_match":{"and":[{"contains":"huggingface"},{"contains":"groq"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.29,"output_mtok":0.59}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","match":{"or":[{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},{"equals":"meta-llama/llama-4-scout-17b-16e-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.11,"output_mtok":0.34}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.75}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.5}}]},{"id":"huggingface_hyperbolic","name":"HuggingFace (hyperbolic)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/hyperbolic","provider_match":{"and":[{"contains":"huggingface"},{"contains":"hyperbolic"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-72b-instruct"},{"equals":"qwen/qwen2.5-vl-72b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"Qwen/Qwen2.5-VL-7B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-7b-instruct"},{"equals":"qwen/qwen2.5-vl-7b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-instruct"},{"equals":"qwen/qwen3-next-80b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-thinking"},{"equals":"qwen/qwen3-next-80b-a3b-thinking-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"deepseek-ai/DeepSeek-R1","match":{"or":[{"equals":"deepseek-ai/deepseek-r1"},{"equals":"deepseek-ai/deepseek-r1-fast"}]},"context_window":163840,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"deepseek-ai/DeepSeek-R1-0528","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":163840,"prices":{"input_mtok":3,"output_mtok":3}},{"id":"deepseek-ai/DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":163840,"prices":{"input_mtok":1.25,"output_mtok":1.25}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.4,"output_mtok":0.4}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.1}}]},{"id":"huggingface_nebius","name":"HuggingFace (nebius)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/nebius","provider_match":{"and":[{"contains":"huggingface"},{"contains":"nebius"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"NousResearch/Hermes-4-405B","match":{"or":[{"equals":"nousresearch/hermes-4-405b"},{"equals":"nousresearch/hermes-4-405b-fast"}]},"context_window":131072,"prices":{"input_mtok":1,"output_mtok":3}},{"id":"NousResearch/Hermes-4-70B","match":{"or":[{"equals":"nousresearch/hermes-4-70b"},{"equals":"nousresearch/hermes-4-70b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.13,"output_mtok":0.4}},{"id":"PrimeIntellect/INTELLECT-3-FP8","match":{"or":[{"equals":"primeintellect/intellect-3-fp8"},{"equals":"primeintellect/intellect-3-fp8-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"Qwen/Qwen2.5-Coder-7B","match":{"or":[{"equals":"qwen/qwen2.5-coder-7b"},{"equals":"qwen/qwen2.5-coder-7b-fast"}]},"context_window":32768,"prices":{"input_mtok":0.03,"output_mtok":0.09}},{"id":"Qwen/Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-72b-instruct"},{"equals":"qwen/qwen2.5-vl-72b-instruct-fast"}]},"context_window":32000,"prices":{"input_mtok":0.25,"output_mtok":0.75}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-thinking-2507"},{"equals":"qwen/qwen3-235b-a22b-thinking-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":0.8}},{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-30b-a3b-instruct-2507"},{"equals":"qwen/qwen3-30b-a3b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-30b-a3b-thinking-2507"},{"equals":"qwen/qwen3-30b-a3b-thinking-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-30b-a3b-instruct"},{"equals":"qwen/qwen3-coder-30b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.4,"output_mtok":1.8}},{"id":"deepseek-ai/DeepSeek-R1-0528","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":163840,"prices":{"input_mtok":0.8,"output_mtok":2.4}},{"id":"deepseek-ai/DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":32768,"prices":{"input_mtok":0.75,"output_mtok":2.25}},{"id":"google/gemma-2-2b-it","match":{"or":[{"equals":"google/gemma-2-2b-it"},{"equals":"google/gemma-2-2b-it-fast"}]},"context_window":8192,"prices":{"input_mtok":0.02,"output_mtok":0.06}},{"id":"google/gemma-2-9b-it","match":{"or":[{"equals":"google/gemma-2-9b-it"},{"equals":"google/gemma-2-9b-it-fast"}]},"context_window":8192,"prices":{"input_mtok":0.03,"output_mtok":0.09}},{"id":"google/gemma-3-27b-it","match":{"or":[{"equals":"google/gemma-3-27b-it"},{"equals":"google/gemma-3-27b-it-fast"}]},"context_window":110000,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"meta-llama/Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.03,"output_mtok":0.09}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.25,"output_mtok":0.75}},{"id":"moonshotai/Kimi-K2-Instruct","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct"},{"equals":"moonshotai/kimi-k2-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.5,"output_mtok":2.4}},{"id":"moonshotai/Kimi-K2-Thinking","match":{"or":[{"equals":"moonshotai/kimi-k2-thinking"},{"equals":"moonshotai/kimi-k2-thinking-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":2.5}},{"id":"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1","match":{"or":[{"equals":"nvidia/llama-3_1-nemotron-ultra-253b-v1"},{"equals":"nvidia/llama-3_1-nemotron-ultra-253b-v1-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.8}},{"id":"nvidia/NVIDIA-Nemotron-Nano-12B-v2","match":{"or":[{"equals":"nvidia/nvidia-nemotron-nano-12b-v2"},{"equals":"nvidia/nvidia-nemotron-nano-12b-v2-fast"}]},"context_window":131072,"prices":{"input_mtok":0.07,"output_mtok":0.2}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"zai-org/GLM-4.5","match":{"or":[{"equals":"zai-org/glm-4.5"},{"equals":"zai-org/glm-4.5-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.5-Air","match":{"or":[{"equals":"zai-org/glm-4.5-air"},{"equals":"zai-org/glm-4.5-air-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1.2}}]},{"id":"huggingface_novita","name":"HuggingFace (novita)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/novita","provider_match":{"and":[{"contains":"huggingface"},{"contains":"novita"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"MiniMaxAI/MiniMax-M1-80k","match":{"or":[{"equals":"minimaxai/minimax-m1-80k"},{"equals":"minimaxai/minimax-m1-80k-fast"}]},"context_window":1000000,"prices":{"input_mtok":0.55,"output_mtok":2.2}},{"id":"MiniMaxAI/MiniMax-M2","match":{"or":[{"equals":"minimaxai/minimax-m2"},{"equals":"minimaxai/minimax-m2-fast"},{"equals":"minimaxai/minimax-m2.1"},{"equals":"minimaxai/minimax-m2.1-fast"},{"equals":"minimaxai/minimax-m2.5"},{"equals":"minimaxai/minimax-m2.5-fast"}]},"context_window":204800,"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"NousResearch/Hermes-2-Pro-Llama-3-8B","match":{"or":[{"equals":"nousresearch/hermes-2-pro-llama-3-8b"},{"equals":"nousresearch/hermes-2-pro-llama-3-8b-fast"}]},"context_window":8192,"prices":{"input_mtok":0.14,"output_mtok":0.14}},{"id":"Qwen/Qwen2.5-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-72b-instruct"},{"equals":"qwen/qwen2.5-72b-instruct-fast"}]},"context_window":32000,"prices":{"input_mtok":0.38,"output_mtok":0.4}},{"id":"Qwen/Qwen3-235B-A22B","match":{"or":[{"equals":"qwen/qwen3-235b-a22b"},{"equals":"qwen/qwen3-235b-a22b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.2,"output_mtok":0.8}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":131072,"prices":{"input_mtok":0.09,"output_mtok":0.58}},{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-thinking-2507"},{"equals":"qwen/qwen3-235b-a22b-thinking-2507-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":3}},{"id":"Qwen/Qwen3-30B-A3B","match":{"or":[{"equals":"qwen/qwen3-30b-a3b"},{"equals":"qwen/qwen3-30b-a3b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.09,"output_mtok":0.45}},{"id":"Qwen/Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.1,"output_mtok":0.45}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":1.3}},{"id":"Qwen/Qwen3-Coder-Next","match":{"or":[{"equals":"qwen/qwen3-coder-next"},{"equals":"qwen/qwen3-coder-next-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":1.5}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-instruct"},{"equals":"qwen/qwen3-next-80b-a3b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":1.5}},{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-thinking"},{"equals":"qwen/qwen3-next-80b-a3b-thinking-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":1.5}},{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-235b-a22b-instruct"},{"equals":"qwen/qwen3-vl-235b-a22b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":1.5}},{"id":"Qwen/Qwen3-VL-235B-A22B-Thinking","match":{"or":[{"equals":"qwen/qwen3-vl-235b-a22b-thinking"},{"equals":"qwen/qwen3-vl-235b-a22b-thinking-fast"}]},"context_window":131072,"prices":{"input_mtok":0.98,"output_mtok":3.95}},{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-30b-a3b-instruct"},{"equals":"qwen/qwen3-vl-30b-a3b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":0.7}},{"id":"Qwen/Qwen3-VL-30B-A3B-Thinking","match":{"or":[{"equals":"qwen/qwen3-vl-30b-a3b-thinking"},{"equals":"qwen/qwen3-vl-30b-a3b-thinking-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1}},{"id":"Qwen/Qwen3-VL-8B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-8b-instruct"},{"equals":"qwen/qwen3-vl-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.08,"output_mtok":0.5}},{"id":"Qwen/Qwen3.5-122B-A10B","match":{"or":[{"equals":"qwen/qwen3.5-122b-a10b"},{"equals":"qwen/qwen3.5-122b-a10b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.4,"output_mtok":3.2}},{"id":"Qwen/Qwen3.5-27B","match":{"or":[{"equals":"qwen/qwen3.5-27b"},{"equals":"qwen/qwen3.5-27b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":2.4}},{"id":"Qwen/Qwen3.5-35B-A3B","match":{"or":[{"equals":"qwen/qwen3.5-35b-a3b"},{"equals":"qwen/qwen3.5-35b-a3b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.25,"output_mtok":2}},{"id":"Qwen/Qwen3.5-397B-A17B","match":{"or":[{"equals":"qwen/qwen3.5-397b-a17b"},{"equals":"qwen/qwen3.5-397b-a17b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":3.6}},{"id":"Sao10K/L3-70B-Euryale-v2.1","match":{"or":[{"equals":"sao10k/l3-70b-euryale-v2.1"},{"equals":"sao10k/l3-70b-euryale-v2.1-fast"}]},"context_window":8192,"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"Sao10K/L3-8B-Lunaris-v1","match":{"or":[{"equals":"sao10k/l3-8b-lunaris-v1"},{"equals":"sao10k/l3-8b-lunaris-v1-fast"}]},"context_window":8192,"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"Sao10K/L3-8B-Stheno-v3.2","match":{"or":[{"equals":"sao10k/l3-8b-stheno-v3.2"},{"equals":"sao10k/l3-8b-stheno-v3.2-fast"}]},"context_window":8192,"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"XiaomiMiMo/MiMo-V2-Flash","match":{"or":[{"equals":"xiaomimimo/mimo-v2-flash"},{"equals":"xiaomimimo/mimo-v2-flash-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"alpindale/WizardLM-2-8x22B","match":{"or":[{"equals":"alpindale/wizardlm-2-8x22b"},{"equals":"alpindale/wizardlm-2-8x22b-fast"}]},"context_window":65535,"prices":{"input_mtok":0.62,"output_mtok":0.62}},{"id":"baidu/ERNIE-4.5-21B-A3B-PT","match":{"or":[{"equals":"baidu/ernie-4.5-21b-a3b-pt"},{"equals":"baidu/ernie-4.5-21b-a3b-pt-fast"}]},"context_window":120000,"prices":{"input_mtok":0.07,"output_mtok":0.28}},{"id":"baidu/ERNIE-4.5-300B-A47B-Base-PT","match":{"or":[{"equals":"baidu/ernie-4.5-300b-a47b-base-pt"},{"equals":"baidu/ernie-4.5-300b-a47b-base-pt-fast"}]},"context_window":123000,"prices":{"input_mtok":0.28,"output_mtok":1.1}},{"id":"baidu/ERNIE-4.5-VL-28B-A3B-PT","match":{"or":[{"equals":"baidu/ernie-4.5-vl-28b-a3b-pt"},{"equals":"baidu/ernie-4.5-vl-28b-a3b-pt-fast"}]},"context_window":30000,"prices":{"input_mtok":0.14,"output_mtok":0.56}},{"id":"baidu/ERNIE-4.5-VL-424B-A47B-Base-PT","match":{"or":[{"equals":"baidu/ernie-4.5-vl-424b-a47b-base-pt"},{"equals":"baidu/ernie-4.5-vl-424b-a47b-base-pt-fast"}]},"context_window":123000,"prices":{"input_mtok":0.42,"output_mtok":1.25}},{"id":"deepseek-ai/DeepSeek-Prover-V2-671B","match":{"or":[{"equals":"deepseek-ai/deepseek-prover-v2-671b"},{"equals":"deepseek-ai/deepseek-prover-v2-671b-fast"}]},"context_window":160000,"prices":{"input_mtok":0.7,"output_mtok":2.5}},{"id":"deepseek-ai/DeepSeek-R1","match":{"or":[{"equals":"deepseek-ai/deepseek-r1"},{"equals":"deepseek-ai/deepseek-r1-fast"},{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":64000,"prices":{"input_mtok":0.7,"output_mtok":2.5}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b-fast"}]},"context_window":8192,"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"deepseek-ai/DeepSeek-V3","match":{"or":[{"equals":"deepseek-ai/deepseek-v3"},{"equals":"deepseek-ai/deepseek-v3-fast"}]},"context_window":64000,"prices":{"input_mtok":0.4,"output_mtok":1.3}},{"id":"deepseek-ai/DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":163840,"prices":{"input_mtok":0.27,"output_mtok":1.12}},{"id":"deepseek-ai/DeepSeek-V3.1","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.1"},{"equals":"deepseek-ai/deepseek-v3.1-fast"},{"equals":"deepseek-ai/deepseek-v3.1-terminus"},{"equals":"deepseek-ai/deepseek-v3.1-terminus-fast"}]},"context_window":131072,"prices":{"input_mtok":0.27,"output_mtok":1}},{"id":"deepseek-ai/DeepSeek-V3.2","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.2"},{"equals":"deepseek-ai/deepseek-v3.2-fast"}]},"context_window":163840,"prices":{"input_mtok":0.269,"output_mtok":0.4}},{"id":"deepseek-ai/DeepSeek-V3.2-Exp","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.2-exp"},{"equals":"deepseek-ai/deepseek-v3.2-exp-fast"}]},"context_window":163840,"prices":{"input_mtok":0.27,"output_mtok":0.41}},{"id":"meta-llama/Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":16384,"prices":{"input_mtok":0.02,"output_mtok":0.05}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.135,"output_mtok":0.4}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","match":{"or":[{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8"},{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8-fast"}]},"context_window":1048576,"prices":{"input_mtok":0.27,"output_mtok":0.85}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","match":{"or":[{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},{"equals":"meta-llama/llama-4-scout-17b-16e-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.18,"output_mtok":0.59}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct","match":{"or":[{"equals":"meta-llama/meta-llama-3-70b-instruct"},{"equals":"meta-llama/meta-llama-3-70b-instruct-fast"}]},"context_window":8192,"prices":{"input_mtok":0.51,"output_mtok":0.74}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct","match":{"or":[{"equals":"meta-llama/meta-llama-3-8b-instruct"},{"equals":"meta-llama/meta-llama-3-8b-instruct-fast"}]},"context_window":8192,"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"moonshotai/Kimi-K2-Instruct","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct"},{"equals":"moonshotai/kimi-k2-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.57,"output_mtok":2.3}},{"id":"moonshotai/Kimi-K2-Instruct-0905","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct-0905"},{"equals":"moonshotai/kimi-k2-instruct-0905-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":2.5}},{"id":"moonshotai/Kimi-K2-Thinking","match":{"or":[{"equals":"moonshotai/kimi-k2-thinking"},{"equals":"moonshotai/kimi-k2-thinking-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":2.5}},{"id":"moonshotai/Kimi-K2.5","match":{"or":[{"equals":"moonshotai/kimi-k2.5"},{"equals":"moonshotai/kimi-k2.5-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":3}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.25}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.04,"output_mtok":0.15}},{"id":"zai-org/AutoGLM-Phone-9B-Multilingual","match":{"or":[{"equals":"zai-org/autoglm-phone-9b-multilingual"},{"equals":"zai-org/autoglm-phone-9b-multilingual-fast"}]},"context_window":65536,"prices":{"input_mtok":0.035,"output_mtok":0.138}},{"id":"zai-org/GLM-4-32B-0414","match":{"or":[{"equals":"zai-org/glm-4-32b-0414"},{"equals":"zai-org/glm-4-32b-0414-fast"}]},"context_window":32000,"prices":{"input_mtok":0.55,"output_mtok":1.66}},{"id":"zai-org/GLM-4.5","match":{"or":[{"equals":"zai-org/glm-4.5"},{"equals":"zai-org/glm-4.5-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.5-Air","match":{"or":[{"equals":"zai-org/glm-4.5-air"},{"equals":"zai-org/glm-4.5-air-fast"}]},"context_window":131072,"prices":{"input_mtok":0.13,"output_mtok":0.85}},{"id":"zai-org/GLM-4.5V","match":{"or":[{"equals":"zai-org/glm-4.5v"},{"equals":"zai-org/glm-4.5v-fast"}]},"context_window":65536,"prices":{"input_mtok":0.6,"output_mtok":1.8}},{"id":"zai-org/GLM-4.6","match":{"or":[{"equals":"zai-org/glm-4.6"},{"equals":"zai-org/glm-4.6-fast"}]},"context_window":204800,"prices":{"input_mtok":0.55,"output_mtok":2.2}},{"id":"zai-org/GLM-4.6V-Flash","match":{"or":[{"equals":"zai-org/glm-4.6v-flash"},{"equals":"zai-org/glm-4.6v-flash-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"zai-org/GLM-4.7","match":{"or":[{"equals":"zai-org/glm-4.7"},{"equals":"zai-org/glm-4.7-fast"}]},"context_window":204800,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.7-Flash","match":{"or":[{"equals":"zai-org/glm-4.7-flash"},{"equals":"zai-org/glm-4.7-flash-fast"}]},"context_window":200000,"prices":{"input_mtok":0.07,"output_mtok":0.4}},{"id":"zai-org/GLM-5","match":{"or":[{"equals":"zai-org/glm-5"},{"equals":"zai-org/glm-5-fast"}]},"context_window":202800,"prices":{"input_mtok":1,"output_mtok":3.2}}]},{"id":"huggingface_nscale","name":"HuggingFace (nscale)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/nscale","provider_match":{"and":[{"contains":"huggingface"},{"contains":"nscale"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/QwQ-32B","match":{"or":[{"equals":"qwen/qwq-32b"},{"equals":"qwen/qwq-32b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.18,"output_mtok":0.2}},{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-coder-32b-instruct"},{"equals":"qwen/qwen2.5-coder-32b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.06,"output_mtok":0.2}},{"id":"Qwen/Qwen2.5-Coder-3B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-coder-3b-instruct"},{"equals":"qwen/qwen2.5-coder-3b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen2.5-Coder-7B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-coder-7b-instruct"},{"equals":"qwen/qwen2.5-coder-7b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen3-14B","match":{"or":[{"equals":"qwen/qwen3-14b"},{"equals":"qwen/qwen3-14b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.07,"output_mtok":0.2}},{"id":"Qwen/Qwen3-235B-A22B","match":{"or":[{"equals":"qwen/qwen3-235b-a22b"},{"equals":"qwen/qwen3-235b-a22b-fast"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":32000,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"Qwen/Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.08,"output_mtok":0.25}},{"id":"Qwen/Qwen3-4B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-4b-instruct-2507"},{"equals":"qwen/qwen3-4b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen3-4B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-4b-thinking-2507"},{"equals":"qwen/qwen3-4b-thinking-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen3-8B","match":{"or":[{"equals":"qwen/qwen3-8b"},{"equals":"qwen/qwen3-8b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.07,"output_mtok":0.18}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.75,"output_mtok":0.75}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-8B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-8b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-8b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-qwen-1.5b"},{"equals":"deepseek-ai/deepseek-r1-distill-qwen-1.5b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-qwen-32b"},{"equals":"deepseek-ai/deepseek-r1-distill-qwen-32b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-qwen-7b"},{"equals":"deepseek-ai/deepseek-r1-distill-qwen-7b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"meta-llama/Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.4,"output_mtok":0.4}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","match":{"or":[{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},{"equals":"meta-llama/llama-4-scout-17b-16e-instruct-fast"}]},"context_window":890000,"prices":{"input_mtok":0.09,"output_mtok":0.29}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.2}}]},{"id":"huggingface_ovhcloud","name":"HuggingFace (ovhcloud)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/ovhcloud","provider_match":{"and":[{"contains":"huggingface"},{"contains":"ovhcloud"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-72b-instruct"},{"equals":"qwen/qwen2.5-vl-72b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":1.01,"output_mtok":1.01}},{"id":"Qwen/Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":32768,"prices":{"input_mtok":0.09,"output_mtok":0.25}},{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-30b-a3b-instruct"},{"equals":"qwen/qwen3-coder-30b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.07,"output_mtok":0.26}},{"id":"meta-llama/Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.11,"output_mtok":0.11}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.74,"output_mtok":0.74}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.09,"output_mtok":0.47}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.18}}]},{"id":"huggingface_publicai","name":"HuggingFace (publicai)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/publicai","provider_match":{"and":[{"contains":"huggingface"},{"contains":"publicai"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"aisingapore/Gemma-SEA-LION-v4-27B-IT","match":{"or":[{"equals":"aisingapore/gemma-sea-lion-v4-27b-it"},{"equals":"aisingapore/gemma-sea-lion-v4-27b-it-fast"}]},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"aisingapore/Qwen-SEA-LION-v4-32B-IT","match":{"or":[{"equals":"aisingapore/qwen-sea-lion-v4-32b-it"},{"equals":"aisingapore/qwen-sea-lion-v4-32b-it-fast"}]},"prices":{"input_mtok":0.25,"output_mtok":0.5}},{"id":"allenai/Olmo-3-7B-Instruct","match":{"or":[{"equals":"allenai/olmo-3-7b-instruct"},{"equals":"allenai/olmo-3-7b-instruct-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"allenai/Olmo-3.1-32B-Instruct","match":{"or":[{"equals":"allenai/olmo-3.1-32b-instruct"},{"equals":"allenai/olmo-3.1-32b-instruct-fast"}]},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"dicta-il/DictaLM-3.0-24B-Thinking","match":{"or":[{"equals":"dicta-il/dictalm-3.0-24b-thinking"},{"equals":"dicta-il/dictalm-3.0-24b-thinking-fast"}]},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"swiss-ai/Apertus-70B-Instruct-2509","match":{"or":[{"equals":"swiss-ai/apertus-70b-instruct-2509"},{"equals":"swiss-ai/apertus-70b-instruct-2509-fast"}]},"prices":{"input_mtok":0.82,"output_mtok":2.92}},{"id":"swiss-ai/Apertus-8B-Instruct-2509","match":{"or":[{"equals":"swiss-ai/apertus-8b-instruct-2509"},{"equals":"swiss-ai/apertus-8b-instruct-2509-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"utter-project/EuroLLM-22B-Instruct-2512","match":{"or":[{"equals":"utter-project/eurollm-22b-instruct-2512"},{"equals":"utter-project/eurollm-22b-instruct-2512-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.2}}]},{"id":"huggingface_sambanova","name":"HuggingFace (sambanova)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/sambanova","provider_match":{"and":[{"contains":"huggingface"},{"contains":"sambanova"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":32768,"prices":{"input_mtok":0.4,"output_mtok":0.8}},{"id":"deepseek-ai/DeepSeek-R1-0528","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":131072,"prices":{"input_mtok":5,"output_mtok":7}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.7,"output_mtok":1.4}},{"id":"deepseek-ai/DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":131072,"prices":{"input_mtok":3,"output_mtok":4.5}},{"id":"meta-llama/Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":16384,"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.2}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.22,"output_mtok":0.59}},{"id":"tokyotech-llm/Llama-3.3-Swallow-70B-Instruct-v0.4","match":{"or":[{"equals":"tokyotech-llm/llama-3.3-swallow-70b-instruct-v0.4"},{"equals":"tokyotech-llm/llama-3.3-swallow-70b-instruct-v0.4-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.2}}]},{"id":"huggingface_together","name":"HuggingFace (together)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/together","provider_match":{"and":[{"contains":"huggingface"},{"contains":"together"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"EssentialAI/rnj-1-instruct","match":{"or":[{"equals":"essentialai/rnj-1-instruct"},{"equals":"essentialai/rnj-1-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"Qwen/Qwen2.5-7B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-7b-instruct"},{"equals":"qwen/qwen2.5-7b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fp8"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fp8-fast"}]},"context_window":262144,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"Qwen/Qwen3-Coder-Next-FP8","match":{"or":[{"equals":"qwen/qwen3-coder-next-fp8"},{"equals":"qwen/qwen3-coder-next-fp8-fast"}]},"context_window":262144,"prices":{"input_mtok":0.5,"output_mtok":1.2}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-instruct"},{"equals":"qwen/qwen3-next-80b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.15,"output_mtok":1.5}},{"id":"Qwen/Qwen3-VL-8B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-8b-instruct"},{"equals":"qwen/qwen3-vl-8b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.18000000000000002,"output_mtok":0.68}},{"id":"Qwen/Qwen3.5-397B-A17B","match":{"or":[{"equals":"qwen/qwen3.5-397b-a17b"},{"equals":"qwen/qwen3.5-397b-a17b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":3.6}},{"id":"Qwen/Qwen3.5-9B","match":{"or":[{"equals":"qwen/qwen3.5-9b"},{"equals":"qwen/qwen3.5-9b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.15}},{"id":"deepcogito/cogito-671b-v2.1","match":{"or":[{"equals":"deepcogito/cogito-671b-v2.1"},{"equals":"deepcogito/cogito-671b-v2.1-fast"},{"equals":"deepcogito/cogito-671b-v2.1-fp8"},{"equals":"deepcogito/cogito-671b-v2.1-fp8-fast"}]},"context_window":163840,"prices":{"input_mtok":1.25,"output_mtok":1.25}},{"id":"deepseek-ai/DeepSeek-R1","match":{"or":[{"equals":"deepseek-ai/deepseek-r1"},{"equals":"deepseek-ai/deepseek-r1-fast"},{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":163840,"prices":{"input_mtok":3,"output_mtok":7}},{"id":"deepseek-ai/DeepSeek-V3","match":{"or":[{"equals":"deepseek-ai/deepseek-v3"},{"equals":"deepseek-ai/deepseek-v3-fast"},{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":131072,"prices":{"input_mtok":1.25,"output_mtok":1.25}},{"id":"deepseek-ai/DeepSeek-V3.1","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.1"},{"equals":"deepseek-ai/deepseek-v3.1-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.7}},{"id":"google/gemma-3n-E4B-it","match":{"or":[{"equals":"google/gemma-3n-e4b-it"},{"equals":"google/gemma-3n-e4b-it-fast"}]},"context_window":32768,"prices":{"input_mtok":0.02,"output_mtok":0.04}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","match":{"or":[{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8"},{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8-fast"}]},"context_window":1048576,"prices":{"input_mtok":0.27,"output_mtok":0.85}},{"id":"moonshotai/Kimi-K2.5","match":{"or":[{"equals":"moonshotai/kimi-k2.5"},{"equals":"moonshotai/kimi-k2.5-fast"}]},"context_window":262144,"prices":{"input_mtok":0.5,"output_mtok":2.8}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.2}},{"id":"zai-org/GLM-4.5-Air-FP8","match":{"or":[{"equals":"zai-org/glm-4.5-air-fp8"},{"equals":"zai-org/glm-4.5-air-fp8-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"zai-org/GLM-4.6","match":{"or":[{"equals":"zai-org/glm-4.6"},{"equals":"zai-org/glm-4.6-fast"}]},"context_window":202752,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.7-FP8","match":{"or":[{"equals":"zai-org/glm-4.7-fp8"},{"equals":"zai-org/glm-4.7-fp8-fast"}]},"context_window":202752,"prices":{"input_mtok":0.45,"output_mtok":2}},{"id":"zai-org/GLM-5","match":{"or":[{"equals":"zai-org/glm-5"},{"equals":"zai-org/glm-5-fast"}]},"context_window":202752,"prices":{"input_mtok":1,"output_mtok":3.2}}]},{"id":"mistral","name":"Mistral","pricing_urls":["https://mistral.ai/pricing#api-pricing"],"api_pattern":"https://api\\.mistral\\.ai","model_match":{"regex":"(?:mi|code|dev|magi|mini)stral"},"provider_match":{"starts_with":"mistral"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"codestral","match":{"or":[{"equals":"codestral-latest"},{"equals":"codestral-2501"}]},"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"devstral-small","match":{"equals":"devstral-small"},"prices":{"input_mtok":0.06,"output_mtok":0.12}},{"id":"magistral-medium","match":{"or":[{"starts_with":"magistral-medium"}]},"prices":{"input_mtok":2,"output_mtok":5}},{"id":"magistral-small","match":{"starts_with":"magistral-small-"},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"ministral-3b","match":{"equals":"ministral-3b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"ministral-8b","match":{"starts_with":"ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":1}},{"id":"mistral-7b","match":{"or":[{"equals":"mistral-7b"},{"equals":"open-mistral-7b"}]},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistral-embed","match":{"equals":"mistral-embed"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistral-large","match":{"or":[{"equals":"mistral-large"},{"equals":"mistral-large-latest"},{"equals":"mistral-large-2407"},{"equals":"mistral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mistral-medium-3","match":{"starts_with":"mistral-medium"},"prices":{"input_mtok":0.4,"output_mtok":2}},{"id":"mistral-nemo","match":{"or":[{"equals":"mistral-nemo"},{"equals":"open-mistral-nemo"}]},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"mistral-saba","match":{"or":[{"equals":"mistral-saba"},{"equals":"mistral-saba-latest"}]},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistral-small-24b-instruct-2501","match":{"equals":"mistral-small-24b-instruct-2501"},"prices":{"input_mtok":0.05,"output_mtok":0.08}},{"id":"mistral-small-latest","match":{"equals":"mistral-small-latest"},"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"mistral-tiny","match":{"equals":"mistral-tiny"},"prices":{"input_mtok":0.25,"output_mtok":0.25},"deprecated":true},{"id":"mixtral-8x22b-instruct","match":{"equals":"mixtral-8x22b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mixtral-8x7b","match":{"or":[{"starts_with":"mixtral-8x7b"},{"equals":"open-mixtral-8x7b"}]},"prices":{"input_mtok":0.7,"output_mtok":0.7}},{"id":"pixtral-12b","match":{"or":[{"equals":"pixtral-12b"},{"equals":"pixtral-12b-latest"}]},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"pixtral-large","match":{"or":[{"equals":"pixtral-large-latest"},{"equals":"pixtral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}}]},{"id":"moonshotai","name":"MoonshotAi","pricing_urls":["https://platform.moonshot.ai/docs/pricing/chat#product-pricing"],"api_pattern":"https://api\\.moonshot\\.","model_match":{"or":[{"starts_with":"kimi"},{"starts_with":"moonshot"}]},"provider_match":{"contains":"moonshot"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"kimi-k2-0711-preview","match":{"equals":"kimi-k2-0711-preview"},"context_window":131072,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":2.5}},{"id":"kimi-k2-0905-preview","match":{"equals":"kimi-k2-0905-preview"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":2.5}},{"id":"kimi-k2-thinking","match":{"equals":"kimi-k2-thinking"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":2.5}},{"id":"kimi-k2-thinking-turbo","match":{"equals":"kimi-k2-thinking-turbo"},"context_window":262144,"prices":{"input_mtok":1.15,"cache_read_mtok":0.15,"output_mtok":8}},{"id":"kimi-k2-turbo-preview","match":{"starts_with":"kimi-k2-turbo"},"context_window":262144,"prices":{"input_mtok":1.15,"cache_read_mtok":0.15,"output_mtok":8}},{"id":"kimi-k2.5","match":{"starts_with":"kimi-k2.5"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.1,"output_mtok":3}},{"id":"moonshot-v1-128k","match":{"or":[{"equals":"moonshot-v1-128k"},{"equals":"moonshot-v1-128k-vision-preview"}]},"context_window":131072,"prices":{"input_mtok":2,"output_mtok":5}},{"id":"moonshot-v1-32k","match":{"or":[{"equals":"moonshot-v1-32k"},{"equals":"moonshot-v1-32k-vision-preview"}]},"context_window":32768,"prices":{"input_mtok":1,"output_mtok":3}},{"id":"moonshot-v1-8k","match":{"or":[{"equals":"moonshot-v1-8k"},{"equals":"moonshot-v1-8k-vision-preview"}]},"context_window":8192,"prices":{"input_mtok":0.2,"output_mtok":2}}]},{"id":"novita","name":"Novita","pricing_urls":["https://novita.ai/pricing"],"api_pattern":"https://api\\.novita\\.ai","models":[{"id":"Sao10K/L3-8B-Stheno-v3.2","match":{"equals":"Sao10K/L3-8B-Stheno-v3.2"},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"cognitivecomputations/dolphin-mixtral-8x22b","match":{"equals":"cognitivecomputations/dolphin-mixtral-8x22b"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"deepseek/deepseek-r1","match":{"equals":"deepseek/deepseek-r1"},"prices":{"input_mtok":4,"output_mtok":4}},{"id":"deepseek/deepseek-r1-distill-llama-70b","match":{"equals":"deepseek/deepseek-r1-distill-llama-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"deepseek/deepseek-r1-distill-llama-8b","match":{"equals":"deepseek/deepseek-r1-distill-llama-8b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"deepseek/deepseek-r1-distill-qwen-14b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-14b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"deepseek/deepseek-r1-distill-qwen-32b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-32b"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"deepseek/deepseek_v3","match":{"equals":"deepseek/deepseek_v3"},"prices":{"input_mtok":0.89,"output_mtok":0.89}},{"id":"google/gemma-2-9b-it","match":{"equals":"google/gemma-2-9b-it"},"prices":{"input_mtok":0.08,"output_mtok":0.08}},{"id":"gryphe/mythomax-l2-13b","match":{"equals":"gryphe/mythomax-l2-13b"},"prices":{"input_mtok":0.09,"output_mtok":0.09}},{"id":"jondurbin/airoboros-l2-70b","match":{"equals":"jondurbin/airoboros-l2-70b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"meta-llama/llama-3-70b-instruct","match":{"equals":"meta-llama/llama-3-70b-instruct"},"prices":{"input_mtok":0.51,"output_mtok":0.74}},{"id":"meta-llama/llama-3-8b-instruct","match":{"equals":"meta-llama/llama-3-8b-instruct"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"meta-llama/llama-3.1-70b-instruct","match":{"equals":"meta-llama/llama-3.1-70b-instruct"},"prices":{"input_mtok":0.34,"output_mtok":0.39}},{"id":"meta-llama/llama-3.1-8b-instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-max"}]},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"meta-llama/llama-3.1-8b-instruct-bf16","match":{"equals":"meta-llama/llama-3.1-8b-instruct-bf16"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"meta-llama/llama-3.2-11b-vision-instruct","match":{"equals":"meta-llama/llama-3.2-11b-vision-instruct"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"meta-llama/llama-3.2-1b-instruct","match":{"equals":"meta-llama/llama-3.2-1b-instruct"},"prices":{"input_mtok":0.02,"output_mtok":0.02}},{"id":"meta-llama/llama-3.2-3b-instruct","match":{"equals":"meta-llama/llama-3.2-3b-instruct"},"prices":{"input_mtok":0.03,"output_mtok":0.05}},{"id":"meta-llama/llama-3.3-70b-instruct","match":{"equals":"meta-llama/llama-3.3-70b-instruct"},"prices":{"input_mtok":0.39,"output_mtok":0.39}},{"id":"microsoft/wizardlm-2-8x22b","match":{"equals":"microsoft/wizardlm-2-8x22b"},"prices":{"input_mtok":0.62,"output_mtok":0.62}},{"id":"mistralai/mistral-7b-instruct","match":{"equals":"mistralai/mistral-7b-instruct"},"prices":{"input_mtok":0.059,"output_mtok":0.059}},{"id":"mistralai/mistral-nemo","match":{"equals":"mistralai/mistral-nemo"},"prices":{"input_mtok":0.17,"output_mtok":0.17}},{"id":"nousresearch/hermes-2-pro-llama-3-8b","match":{"equals":"nousresearch/hermes-2-pro-llama-3-8b"},"prices":{"input_mtok":0.14,"output_mtok":0.14}},{"id":"nousresearch/nous-hermes-llama2-13b","match":{"equals":"nousresearch/nous-hermes-llama2-13b"},"prices":{"input_mtok":0.17,"output_mtok":0.17}},{"id":"openchat/openchat-7b","match":{"equals":"openchat/openchat-7b"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"qwen/qwen-2-7b-instruct","match":{"equals":"qwen/qwen-2-7b-instruct"},"prices":{"input_mtok":0.054,"output_mtok":0.054}},{"id":"qwen/qwen-2-vl-72b-instruct","match":{"equals":"qwen/qwen-2-vl-72b-instruct"},"prices":{"input_mtok":0.45,"output_mtok":0.45}},{"id":"qwen/qwen-2.5-72b-instruct","match":{"equals":"qwen/qwen-2.5-72b-instruct"},"prices":{"input_mtok":0.38,"output_mtok":0.4}},{"id":"sao10k/l3-70b-euryale-v2.1","match":{"equals":"sao10k/l3-70b-euryale-v2.1"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"sao10k/l3-8b-lunaris","match":{"equals":"sao10k/l3-8b-lunaris"},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"sao10k/l31-70b-euryale-v2.2","match":{"equals":"sao10k/l31-70b-euryale-v2.2"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"sophosympatheia/midnight-rose-70b","match":{"equals":"sophosympatheia/midnight-rose-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"teknium/openhermes-2.5-mistral-7b","match":{"equals":"teknium/openhermes-2.5-mistral-7b"},"prices":{"input_mtok":0.17,"output_mtok":0.17}}]},{"id":"openai","name":"OpenAI","pricing_urls":["https://platform.openai.com/docs/pricing","https://openai.com/api/pricing/","https://platform.openai.com/docs/models","https://help.openai.com/en/articles/7127956-how-much-does-gpt-4-cost"],"api_pattern":"https://api\\.openai\\.com","model_match":{"or":[{"starts_with":"gpt-"},{"regex":"^o[134]"}]},"provider_match":{"contains":"openai"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"responses","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":["input_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"embeddings","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true}]}],"models":[{"id":"ada","match":{"or":[{"equals":"ada"},{"equals":"text-ada-001"}]},"prices":{"input_mtok":0.4,"output_mtok":0.4}},{"id":"babbage","match":{"equals":"babbage"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"chatgpt-4o-latest","match":{"equals":"chatgpt-4o-latest"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"codex-mini","match":{"or":[{"equals":"codex-mini"},{"equals":"codex-mini-latest"}]},"prices":{"input_mtok":1.5,"cache_read_mtok":0.375,"output_mtok":6}},{"id":"computer-use","match":{"starts_with":"computer-use"},"prices":{"input_mtok":3,"output_mtok":12}},{"id":"curie","match":{"or":[{"equals":"curie"},{"equals":"text-curie-001"}]},"prices":{"input_mtok":2,"output_mtok":2}},{"id":"davinci","match":{"or":[{"equals":"davinci"},{"equals":"text-davinci-001"}]},"prices":{"input_mtok":20,"output_mtok":20}},{"id":"ft:gpt-3.5-turbo-","match":{"starts_with":"ft:gpt-3.5-turbo"},"prices":{"input_mtok":3,"output_mtok":6}},{"id":"ft:gpt-4o","match":{"starts_with":"ft:gpt-4o-2024-"},"prices":{"input_mtok":3.75,"output_mtok":15}},{"id":"ft:gpt-4o-mini","match":{"starts_with":"ft:gpt-4o-mini-2024-"},"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"gpt-3.5-0301","match":{"or":[{"equals":"gpt-3.5-turbo-0301"},{"equals":"gpt-3.5-0301"}]},"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-3.5-turbo","match":{"or":[{"equals":"gpt-3.5-turbo"},{"equals":"gpt-35-turbo"},{"equals":"gpt-3.5-turbo-0125"}]},"context_window":16385,"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"gpt-3.5-turbo-0613","match":{"equals":"gpt-3.5-turbo-0613"},"context_window":16385,"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-3.5-turbo-1106","match":{"equals":"gpt-3.5-turbo-1106"},"context_window":16385,"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo-16k","match":{"or":[{"equals":"gpt-3.5-turbo-16k"},{"equals":"gpt-3.5-turbo-16k-0613"},{"equals":"gpt-35-turbo-16k-0613"},{"equals":"gpt-35-turbo-16k"}]},"context_window":16385,"prices":{"input_mtok":3,"output_mtok":4}},{"id":"gpt-3.5-turbo-instruct","match":{"or":[{"starts_with":"gpt-3.5-turbo-instruct"},{"equals":"gpt-3.5-turbo-instruct-0914"}]},"context_window":16385,"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-4","match":{"or":[{"equals":"gpt-4"},{"equals":"gpt-4-0314"},{"equals":"gpt-4-0613"},{"starts_with":"ft:gpt-4-0"}]},"context_window":8192,"prices":{"input_mtok":30,"output_mtok":60}},{"id":"gpt-4-32k","match":{"or":[{"equals":"gpt-4-32k"},{"equals":"gpt-4-32k-0314"},{"equals":"gpt-4-32k-0613"}]},"context_window":32000,"prices":{"input_mtok":60,"output_mtok":120}},{"id":"gpt-4-turbo","match":{"or":[{"equals":"gpt-4-turbo"},{"equals":"gpt-4-turbo-2024-04-09"},{"equals":"gpt-4-turbo-0125-preview"},{"equals":"gpt-4-0125-preview"},{"equals":"gpt-4-1106-preview"},{"equals":"gpt-4-turbo-preview"}]},"context_window":128000,"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4-vision-preview","match":{"or":[{"equals":"gpt-4-vision-preview"},{"equals":"gpt-4-1106-vision-preview"}]},"context_window":128000,"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4.1","match":{"or":[{"equals":"gpt-4.1"},{"equals":"gpt-4.1-2025-04-14"}]},"context_window":1000000,"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"gpt-4.1-mini","match":{"or":[{"equals":"gpt-4.1-mini"},{"equals":"gpt-4.1-mini-2025-04-14"}]},"context_window":1000000,"prices":{"input_mtok":0.4,"cache_read_mtok":0.1,"output_mtok":1.6}},{"id":"gpt-4.1-nano","match":{"or":[{"equals":"gpt-4.1-nano"},{"equals":"gpt-4.1-nano-2025-04-14"}]},"context_window":1000000,"prices":{"input_mtok":0.1,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"gpt-4.5-preview","match":{"starts_with":"gpt-4.5-preview"},"prices":{"input_mtok":75,"cache_read_mtok":37.5,"output_mtok":150}},{"id":"gpt-4o","match":{"or":[{"equals":"gpt-4o"},{"equals":"gpt-4o-2024-05-13"},{"equals":"gpt-4o-2024-08-06"},{"equals":"gpt-4o-2024-11-20"}]},"context_window":128000,"prices":{"input_mtok":2.5,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"gpt-4o-audio-preview","match":{"starts_with":"gpt-4o-audio-preview"},"context_window":128000,"prices":{"output_mtok":10,"input_audio_mtok":2.5}},{"id":"gpt-4o-mini","match":{"or":[{"equals":"gpt-4o-mini"},{"equals":"gpt-4o-mini-2024-07-18"},{"equals":"gpt-4o-mini-search-preview"},{"equals":"gpt-4o-mini-search-preview-2025-03-11"}]},"context_window":128000,"prices":{"input_mtok":0.15,"cache_read_mtok":0.075,"output_mtok":0.6}},{"id":"gpt-4o-mini-2024-07-18.ft-","match":{"starts_with":"gpt-4o-mini-2024-07-18.ft-"},"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"gpt-4o-mini-audio-preview","match":{"starts_with":"gpt-4o-mini-audio"},"prices":{"output_mtok":0.6,"input_audio_mtok":0.15}},{"id":"gpt-4o-mini-realtime-preview","match":{"starts_with":"gpt-4o-mini-realtime"},"prices":{"input_mtok":0.6,"cache_read_mtok":0.3,"output_mtok":2.4,"input_audio_mtok":10,"cache_audio_read_mtok":0.3,"output_audio_mtok":20}},{"id":"gpt-4o-mini-transcribe","match":{"equals":"gpt-4o-mini-transcribe"},"prices":{"input_mtok":1.25,"output_mtok":5,"input_audio_mtok":3}},{"id":"gpt-4o-mini-tts","match":{"equals":"gpt-4o-mini-tts"},"prices":{"input_mtok":0.6,"output_audio_mtok":12}},{"id":"gpt-4o-realtime-preview","match":{"starts_with":"gpt-4o-realtime"},"prices":{"input_mtok":5,"cache_read_mtok":2.5,"output_mtok":20,"input_audio_mtok":40,"cache_audio_read_mtok":2.5,"output_audio_mtok":80}},{"id":"gpt-4o-search-preview","match":{"or":[{"equals":"gpt-4o-search-preview"},{"equals":"gpt-4o-search-preview-2025-03-11"}]},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"gpt-4o-transcribe","match":{"or":[{"equals":"gpt-4o-transcribe"},{"equals":"gpt-4o-transcribe-diarize"}]},"prices":{"input_mtok":2.5,"output_mtok":10,"input_audio_mtok":6}},{"id":"gpt-4o:extended","match":{"equals":"gpt-4o:extended"},"prices":{"input_mtok":6,"output_mtok":18}},{"id":"gpt-5","match":{"or":[{"equals":"gpt-5"},{"equals":"gpt-5-2025-08-07"},{"equals":"gpt-5-chat"},{"equals":"gpt-5-chat-latest"},{"equals":"gpt-5-codex"}]},"context_window":400000,"prices":{"input_mtok":1.25,"cache_read_mtok":0.125,"output_mtok":10}},{"id":"gpt-5-image","match":{"equals":"gpt-5-image"},"prices":{"input_mtok":10,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"gpt-5-image-mini","match":{"equals":"gpt-5-image-mini"},"prices":{"input_mtok":2.5,"cache_read_mtok":0.25,"output_mtok":2}},{"id":"gpt-5-mini","match":{"or":[{"equals":"gpt-5-mini"},{"equals":"gpt-5-mini-2025-08-07"}]},"context_window":400000,"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"gpt-5-nano","match":{"or":[{"equals":"gpt-5-nano"},{"starts_with":"gpt-5-nano-"}]},"context_window":400000,"prices":{"input_mtok":0.05,"cache_read_mtok":0.005,"output_mtok":0.4}},{"id":"gpt-5-pro","match":{"or":[{"equals":"gpt-5-pro"},{"equals":"gpt-5-pro-2025-10-06"}]},"context_window":400000,"prices":{"input_mtok":15,"output_mtok":120}},{"id":"gpt-5.1","match":{"or":[{"equals":"gpt-5.1"},{"equals":"gpt-5.1-2025-11-13"},{"equals":"gpt-5.1-codex"},{"equals":"gpt-5.1-codex-max"},{"equals":"gpt-5.1-chat"},{"equals":"gpt-5.1-chat-latest"},{"equals":"gpt-5-1"},{"equals":"gpt-5-1-2025-11-13"},{"equals":"gpt-5-1-codex"},{"equals":"gpt-5-1-codex-max"},{"equals":"gpt-5-1-chat"},{"equals":"gpt-5-1-chat-latest"}]},"context_window":400000,"prices":{"input_mtok":1.25,"cache_read_mtok":0.125,"output_mtok":10}},{"id":"gpt-5.1-codex-mini","match":{"or":[{"equals":"gpt-5.1-codex-mini"},{"equals":"gpt-5.1-mini"},{"equals":"gpt-5-1-codex-mini"},{"equals":"gpt-5-1-mini"}]},"context_window":400000,"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"gpt-5.2","match":{"or":[{"equals":"gpt-5.2"},{"equals":"gpt-5.2-2025-12-11"},{"equals":"gpt-5-2"},{"equals":"gpt-5-2-2025-12-11"},{"equals":"gpt-5.2-chat"},{"equals":"gpt-5.2-chat-latest"},{"equals":"gpt-5-2-chat"},{"equals":"gpt-5-2-chat-latest"},{"equals":"gpt-5.2-codex"},{"equals":"gpt-5-2-codex"}]},"context_window":400000,"prices":{"input_mtok":1.75,"cache_read_mtok":0.175,"output_mtok":14}},{"id":"gpt-5.2-pro","match":{"or":[{"equals":"gpt-5.2-pro"},{"equals":"gpt-5.2-pro-2025-12-11"},{"equals":"gpt-5-2-pro-2025-12-11"}]},"context_window":400000,"prices":{"input_mtok":21,"output_mtok":168}},{"id":"gpt-5.3-codex","match":{"or":[{"equals":"gpt-5.3-codex"},{"equals":"gpt-5-3-codex"}]},"context_window":400000,"prices":{"input_mtok":1.75,"cache_read_mtok":0.175,"output_mtok":14}},{"id":"gpt-5.4","match":{"or":[{"equals":"gpt-5.4"},{"equals":"gpt-5.4-2026-03-05"},{"equals":"gpt-5-4"},{"equals":"gpt-5-4-2026-03-05"}]},"context_window":1050000,"prices":{"input_mtok":{"base":2.5,"tiers":[{"start":272000,"price":5}]},"cache_read_mtok":{"base":0.25,"tiers":[{"start":272000,"price":0.5}]},"output_mtok":{"base":15,"tiers":[{"start":272000,"price":22.5}]}}},{"id":"gpt-5.4-mini","match":{"or":[{"equals":"gpt-5.4-mini"},{"equals":"gpt-5.4-mini-2026-03-17"},{"equals":"gpt-5-4-mini"},{"equals":"gpt-5-4-mini-2026-03-17"}]},"context_window":400000,"prices":{"input_mtok":0.75,"cache_read_mtok":0.075,"output_mtok":4.5}},{"id":"gpt-5.4-nano","match":{"or":[{"equals":"gpt-5.4-nano"},{"equals":"gpt-5.4-nano-2026-03-17"},{"equals":"gpt-5-4-nano"},{"equals":"gpt-5-4-nano-2026-03-17"}]},"context_window":400000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.02,"output_mtok":1.25}},{"id":"gpt-5.4-pro","match":{"or":[{"equals":"gpt-5.4-pro"},{"equals":"gpt-5.4-pro-2026-03-05"},{"equals":"gpt-5-4-pro"},{"equals":"gpt-5-4-pro-2026-03-05"}]},"context_window":1050000,"prices":{"input_mtok":{"base":30,"tiers":[{"start":272000,"price":60}]},"output_mtok":{"base":180,"tiers":[{"start":272000,"price":270}]}}},{"id":"gpt-realtime","match":{"or":[{"equals":"gpt-realtime"},{"equals":"gpt-realtime-2025-08-28"}]},"prices":{"input_mtok":4,"cache_read_mtok":0.4,"output_mtok":16,"input_audio_mtok":32,"cache_audio_read_mtok":0.4,"output_audio_mtok":64}},{"id":"gpt-realtime-mini","match":{"equals":"gpt-realtime-mini"},"prices":{"input_mtok":0.6,"cache_read_mtok":0.06,"output_mtok":2.4,"input_audio_mtok":10,"cache_audio_read_mtok":0.3,"output_audio_mtok":20}},{"id":"o1","match":{"or":[{"equals":"o1"},{"equals":"o1-2024-12-17"},{"equals":"o1-preview"},{"equals":"o1-preview-2024-09-12"}]},"context_window":128000,"prices":{"input_mtok":15,"cache_read_mtok":7.5,"output_mtok":60}},{"id":"o1-mini","match":{"or":[{"equals":"o1-mini"},{"equals":"o1-mini-2024-09-12"}]},"context_window":128000,"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o1-pro","match":{"or":[{"equals":"o1-pro"},{"equals":"o1-pro-2025-03-19"}]},"prices":{"input_mtok":150,"output_mtok":600}},{"id":"o3","match":{"or":[{"equals":"o3"},{"equals":"o3-2025-04-16"}]},"prices":[{"prices":{"input_mtok":10,"cache_read_mtok":0.5,"output_mtok":40}},{"constraint":{"start_date":"2025-06-10"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}}]},{"id":"o3-deep-research","match":{"or":[{"equals":"o3-deep-research"},{"equals":"o3-deep-research-2025-06-26"}]},"prices":{"input_mtok":10,"cache_read_mtok":2.5,"output_mtok":40}},{"id":"o3-mini","match":{"or":[{"equals":"o3-mini"},{"equals":"o3-mini-2025-01-31"},{"equals":"o3-mini-high"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o3-pro","match":{"or":[{"equals":"o3-pro"},{"equals":"o3-pro-2025-06-10"}]},"prices":{"input_mtok":20,"output_mtok":80}},{"id":"o4-mini","match":{"or":[{"equals":"o4-mini-2025-04-16"},{"equals":"o4-mini-high"},{"equals":"o4-mini"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.275,"output_mtok":4.4}},{"id":"o4-mini-deep-research","match":{"or":[{"equals":"o4-mini-deep-research"},{"equals":"o4-mini-deep-research-2025-06-26"}]},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"text-davinci-002","match":{"equals":"text-davinci-002"},"prices":{"input_mtok":20,"output_mtok":20}},{"id":"text-davinci-003","match":{"equals":"text-davinci-003"},"prices":{"input_mtok":20,"output_mtok":20}},{"id":"text-embedding-3-large","match":{"equals":"text-embedding-3-large"},"context_window":8192,"prices":{"input_mtok":0.13}},{"id":"text-embedding-3-small","match":{"equals":"text-embedding-3-small"},"context_window":8192,"prices":{"input_mtok":0.02}},{"id":"text-embedding-ada-002","match":{"or":[{"equals":"text-embedding-ada"},{"equals":"text-embedding-ada-002"},{"equals":"text-embedding-ada-002-v2"}]},"context_window":8192,"prices":{"input_mtok":0.1}}]},{"id":"openrouter","name":"OpenRouter","pricing_urls":["https://openrouter.ai/models"],"api_pattern":"https://(api\\.)?openrouter\\.ai","models":[{"id":"01-ai/yi-large","match":{"equals":"01-ai/yi-large"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"aetherwiing/mn-starcannon-12b","match":{"equals":"aetherwiing/mn-starcannon-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"ai21/jamba-1-5-large","match":{"equals":"ai21/jamba-1-5-large"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"ai21/jamba-1-5-mini","match":{"equals":"ai21/jamba-1-5-mini"},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"ai21/jamba-1.6-large","match":{"equals":"ai21/jamba-1.6-large"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"ai21/jamba-1.6-mini","match":{"equals":"ai21/jamba-1.6-mini"},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"ai21/jamba-instruct","match":{"equals":"ai21/jamba-instruct"},"prices":{"input_mtok":0.5,"output_mtok":0.7}},{"id":"aion-1.0","match":{"equals":"aion-1.0"},"prices":{"input_mtok":4,"output_mtok":8}},{"id":"aion-1.0-mini","match":{"equals":"aion-1.0-mini"},"prices":{"input_mtok":0.7,"output_mtok":1.4}},{"id":"aion-labs/aion-1.0","match":{"equals":"aion-labs/aion-1.0"},"prices":{"input_mtok":4,"output_mtok":8}},{"id":"aion-labs/aion-1.0-mini","match":{"equals":"aion-labs/aion-1.0-mini"},"prices":{"input_mtok":0.7,"output_mtok":1.4}},{"id":"aion-labs/aion-rp-llama-3.1-8b","match":{"equals":"aion-labs/aion-rp-llama-3.1-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"aion-rp-llama-3.1-8b","match":{"equals":"aion-rp-llama-3.1-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"alfredpros/codellama-7b-instruct-solidity","match":{"equals":"alfredpros/codellama-7b-instruct-solidity"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"all-hands/openhands-lm-32b-v0.1","match":{"equals":"all-hands/openhands-lm-32b-v0.1"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"alpindale/goliath-120b","match":{"equals":"alpindale/goliath-120b"},"prices":{"input_mtok":6.5625,"output_mtok":9.375}},{"id":"alpindale/magnum-72b","match":{"equals":"alpindale/magnum-72b"},"prices":{"input_mtok":1.5,"output_mtok":2.25}},{"id":"amazon/nova-lite-v1","match":{"equals":"amazon/nova-lite-v1"},"prices":{"input_mtok":0.06,"output_mtok":0.24}},{"id":"amazon/nova-micro-v1","match":{"equals":"amazon/nova-micro-v1"},"prices":{"input_mtok":0.035,"output_mtok":0.14}},{"id":"amazon/nova-pro-v1","match":{"equals":"amazon/nova-pro-v1"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"anthracite-org/magnum-v2-72b","match":{"equals":"anthracite-org/magnum-v2-72b"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"anthracite-org/magnum-v4-72b","match":{"equals":"anthracite-org/magnum-v4-72b"},"prices":{"input_mtok":1.5,"output_mtok":2.25}},{"id":"anthropic/claude-2","match":{"or":[{"equals":"anthropic/claude-2"},{"equals":"anthropic/claude-2.0"},{"equals":"anthropic/claude-2.0:beta"},{"equals":"anthropic/claude-2.1"},{"equals":"anthropic/claude-2.1:beta"},{"equals":"anthropic/claude-2:beta"}]},"prices":{"input_mtok":8,"output_mtok":24}},{"id":"anthropic/claude-3-haiku","match":{"or":[{"equals":"anthropic/claude-3-haiku"},{"equals":"anthropic/claude-3-haiku:beta"}]},"prices":{"input_mtok":0.25,"output_mtok":1.25}},{"id":"anthropic/claude-3-opus","match":{"or":[{"equals":"anthropic/claude-3-opus"},{"equals":"anthropic/claude-3-opus:beta"}]},"prices":{"input_mtok":15,"output_mtok":75}},{"id":"anthropic/claude-3-sonnet","match":{"or":[{"equals":"anthropic/claude-3-sonnet"},{"equals":"anthropic/claude-3-sonnet:beta"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"anthropic/claude-3.5-haiku","match":{"or":[{"equals":"anthropic/claude-3.5-haiku"},{"equals":"anthropic/claude-3.5-haiku-20241022"},{"equals":"anthropic/claude-3.5-haiku-20241022:beta"},{"equals":"anthropic/claude-3.5-haiku:beta"}]},"prices":{"input_mtok":0.8,"output_mtok":4}},{"id":"anthropic/claude-3.5-sonnet","match":{"or":[{"equals":"anthropic/claude-3.5-sonnet"},{"equals":"anthropic/claude-3.5-sonnet-20240620"},{"equals":"anthropic/claude-3.5-sonnet-20240620:beta"},{"equals":"anthropic/claude-3.5-sonnet:beta"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"anthropic/claude-3.7-sonnet","match":{"or":[{"equals":"anthropic/claude-3.7-sonnet"},{"equals":"anthropic/claude-3.7-sonnet:beta"},{"equals":"anthropic/claude-3.7-sonnet:thinking"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"anthropic/claude-haiku-4.5","match":{"or":[{"equals":"anthropic/claude-haiku-4.5"},{"equals":"anthropic/claude-4.5-haiku-20251001"},{"equals":"anthropic/claude-4.5-haiku-20251001:beta"},{"equals":"anthropic/claude-haiku-4.5-20251001"},{"equals":"anthropic/claude-haiku-4.5-20251001:beta"},{"equals":"anthropic/claude-haiku-4.5:beta"}]},"prices":{"input_mtok":1,"cache_write_mtok":1.25,"cache_read_mtok":0.1,"output_mtok":5}},{"id":"anthropic/claude-opus-4.5","match":{"or":[{"equals":"anthropic/claude-opus-4.5"},{"equals":"anthropic/claude-4.5-opus-20251124"},{"equals":"anthropic/claude-4.5-opus-20251124:beta"},{"equals":"anthropic/claude-opus-4.5-20251124"},{"equals":"anthropic/claude-opus-4.5-20251124:beta"},{"equals":"anthropic/claude-opus-4.5:beta"}]},"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"anthropic/claude-opus-4.6","match":{"or":[{"equals":"anthropic/claude-opus-4.6"},{"equals":"anthropic/claude-4.6-opus-20260205"},{"equals":"anthropic/claude-4.6-opus-20260205:beta"},{"equals":"anthropic/claude-opus-4.6-20260205"},{"equals":"anthropic/claude-opus-4.6-20260205:beta"},{"equals":"anthropic/claude-opus-4.6:beta"}]},"context_window":1000000,"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"anthropic/claude-sonnet-4.5","match":{"or":[{"equals":"anthropic/claude-sonnet-4.5"},{"equals":"anthropic/claude-4.5-sonnet-20250929"},{"equals":"anthropic/claude-4.5-sonnet-20250929:beta"},{"equals":"anthropic/claude-sonnet-4.5-20250929"},{"equals":"anthropic/claude-sonnet-4.5-20250929:beta"},{"equals":"anthropic/claude-sonnet-4.5:beta"}]},"context_window":1000000,"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"id":"anthropic/claude-sonnet-4.6","match":{"or":[{"equals":"anthropic/claude-sonnet-4.6"},{"equals":"anthropic/claude-4.6-sonnet-20260217"},{"equals":"anthropic/claude-4.6-sonnet-20260217:beta"},{"equals":"anthropic/claude-sonnet-4.6-20260217"},{"equals":"anthropic/claude-sonnet-4.6-20260217:beta"},{"equals":"anthropic/claude-sonnet-4.6:beta"}]},"context_window":1000000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"anubis-pro-105b-v1","match":{"equals":"anubis-pro-105b-v1"},"prices":{"input_mtok":0.8,"output_mtok":1}},{"id":"arcee-blitz","match":{"equals":"arcee-blitz"},"prices":{"input_mtok":0.45,"output_mtok":0.75}},{"id":"caller-large","match":{"equals":"caller-large"},"prices":{"input_mtok":0.55,"output_mtok":0.85}},{"id":"chatgpt-4o-latest","match":{"equals":"chatgpt-4o-latest"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"claude-2","match":{"or":[{"equals":"claude-2"},{"equals":"claude-2.0"},{"equals":"claude-2.0:beta"},{"equals":"claude-2.1"},{"equals":"claude-2.1:beta"},{"equals":"claude-2:beta"}]},"prices":{"input_mtok":8,"output_mtok":24}},{"id":"claude-3-haiku","match":{"or":[{"equals":"claude-3-haiku"},{"equals":"claude-3-haiku:beta"}]},"prices":{"input_mtok":0.25,"cache_write_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":1.25}},{"id":"claude-3-opus","match":{"or":[{"equals":"claude-3-opus"},{"equals":"claude-3-opus:beta"}]},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-3-sonnet","match":{"or":[{"equals":"claude-3-sonnet"},{"equals":"claude-3-sonnet:beta"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3.5-haiku","match":{"or":[{"equals":"claude-3.5-haiku"},{"equals":"claude-3.5-haiku-20241022"},{"equals":"claude-3.5-haiku-20241022:beta"},{"equals":"claude-3.5-haiku:beta"}]},"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"claude-3.5-sonnet","match":{"or":[{"equals":"claude-3.5-sonnet"},{"equals":"claude-3.5-sonnet-20240620"},{"equals":"claude-3.5-sonnet-20240620:beta"},{"equals":"claude-3.5-sonnet:beta"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3.7-sonnet","match":{"or":[{"equals":"claude-3.7-sonnet"},{"equals":"claude-3.7-sonnet:beta"},{"equals":"claude-3.7-sonnet:thinking"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-opus-4","match":{"equals":"claude-opus-4"},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-sonnet-4","match":{"equals":"claude-sonnet-4"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"codellama-7b-instruct-solidity","match":{"equals":"codellama-7b-instruct-solidity"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"coder-large","match":{"equals":"coder-large"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"codestral-2501","match":{"equals":"codestral-2501"},"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"codex-mini","match":{"equals":"codex-mini"},"prices":{"input_mtok":1.5,"cache_read_mtok":0.375,"output_mtok":6}},{"id":"cognitivecomputations/dolphin-mixtral-8x22b","match":{"equals":"cognitivecomputations/dolphin-mixtral-8x22b"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"cognitivecomputations/dolphin-mixtral-8x7b","match":{"equals":"cognitivecomputations/dolphin-mixtral-8x7b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"cohere/command","match":{"equals":"cohere/command"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"cohere/command-a","match":{"equals":"cohere/command-a"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"cohere/command-r","match":{"or":[{"equals":"cohere/command-r"},{"equals":"cohere/command-r-03-2024"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"cohere/command-r-08-2024","match":{"equals":"cohere/command-r-08-2024"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"cohere/command-r-plus","match":{"or":[{"equals":"cohere/command-r-plus"},{"equals":"cohere/command-r-plus-04-2024"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"cohere/command-r-plus-08-2024","match":{"equals":"cohere/command-r-plus-08-2024"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"cohere/command-r7b-12-2024","match":{"equals":"cohere/command-r7b-12-2024"},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"command","match":{"equals":"command"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"command-a","match":{"equals":"command-a"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r","match":{"or":[{"equals":"command-r"},{"equals":"command-r-03-2024"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"command-r-08-2024","match":{"equals":"command-r-08-2024"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"command-r-plus","match":{"or":[{"equals":"command-r-plus"},{"equals":"command-r-plus-04-2024"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"command-r-plus-08-2024","match":{"equals":"command-r-plus-08-2024"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r7b-12-2024","match":{"equals":"command-r7b-12-2024"},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"deepseek-chat","match":{"equals":"deepseek-chat"},"prices":{"input_mtok":0.38,"output_mtok":0.89}},{"id":"deepseek-chat-v3-0324","match":{"equals":"deepseek-chat-v3-0324"},"prices":{"input_mtok":0.3,"output_mtok":0.88}},{"id":"deepseek-prover-v2","match":{"equals":"deepseek-prover-v2"},"prices":{"input_mtok":0.5,"output_mtok":2.18}},{"id":"deepseek-r1","match":{"equals":"deepseek-r1"},"prices":{"input_mtok":0.45,"output_mtok":2.15}},{"id":"deepseek-r1-0528","match":{"equals":"deepseek-r1-0528"},"prices":{"input_mtok":0.5,"output_mtok":2.15}},{"id":"deepseek-r1-0528-qwen3-8b","match":{"equals":"deepseek-r1-0528-qwen3-8b"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"deepseek-r1-distill-llama-70b","match":{"equals":"deepseek-r1-distill-llama-70b"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"deepseek-r1-distill-llama-8b","match":{"equals":"deepseek-r1-distill-llama-8b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"deepseek-r1-distill-qwen-1.5b","match":{"equals":"deepseek-r1-distill-qwen-1.5b"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"deepseek-r1-distill-qwen-14b","match":{"equals":"deepseek-r1-distill-qwen-14b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"deepseek-r1-distill-qwen-32b","match":{"equals":"deepseek-r1-distill-qwen-32b"},"prices":{"input_mtok":0.12,"output_mtok":0.18}},{"id":"deepseek-r1-distill-qwen-7b","match":{"equals":"deepseek-r1-distill-qwen-7b"},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"deepseek-v3.1-terminus","match":{"equals":"deepseek-v3.1-terminus"},"context_window":163840,"prices":{"input_mtok":0.23,"output_mtok":0.9}},{"id":"deepseek/deepseek-chat","match":{"equals":"deepseek/deepseek-chat"},"prices":{"input_mtok":0.38,"output_mtok":0.89}},{"id":"deepseek/deepseek-chat-v3-0324","match":{"equals":"deepseek/deepseek-chat-v3-0324"},"prices":{"input_mtok":0.27,"output_mtok":1.1}},{"id":"deepseek/deepseek-chat-v3.1","match":{"equals":"deepseek/deepseek-chat-v3.1"},"context_window":163840,"prices":{"input_mtok":0.2,"output_mtok":0.8}},{"id":"deepseek/deepseek-r1","match":{"equals":"deepseek/deepseek-r1"},"prices":{"input_mtok":0.5,"output_mtok":3}},{"id":"deepseek/deepseek-r1-distill-llama-70b","match":{"equals":"deepseek/deepseek-r1-distill-llama-70b"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"deepseek/deepseek-r1-distill-llama-8b","match":{"equals":"deepseek/deepseek-r1-distill-llama-8b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"deepseek/deepseek-r1-distill-qwen-1.5b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-1.5b"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"deepseek/deepseek-r1-distill-qwen-14b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-14b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"deepseek/deepseek-r1-distill-qwen-32b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-32b"},"prices":{"input_mtok":0.12,"output_mtok":0.18}},{"id":"deepseek/deepseek-v3.2-exp","match":{"equals":"deepseek/deepseek-v3.2-exp"},"prices":{"input_mtok":0.27,"output_mtok":0.4}},{"id":"devstral-small","match":{"equals":"devstral-small"},"prices":{"input_mtok":0.06,"output_mtok":0.12}},{"id":"dobby-mini-unhinged-plus-llama-3.1-8b","match":{"equals":"dobby-mini-unhinged-plus-llama-3.1-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"dolphin-mixtral-8x22b","match":{"equals":"dolphin-mixtral-8x22b"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"eleutherai/llemma_7b","match":{"equals":"eleutherai/llemma_7b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"eva-llama-3.33-70b","match":{"equals":"eva-llama-3.33-70b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"eva-qwen-2.5-32b","match":{"equals":"eva-qwen-2.5-32b"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"eva-qwen-2.5-72b","match":{"equals":"eva-qwen-2.5-72b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"eva-unit-01/eva-llama-3.33-70b","match":{"equals":"eva-unit-01/eva-llama-3.33-70b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"eva-unit-01/eva-qwen-2.5-32b","match":{"equals":"eva-unit-01/eva-qwen-2.5-32b"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"eva-unit-01/eva-qwen-2.5-72b","match":{"equals":"eva-unit-01/eva-qwen-2.5-72b"},"prices":{"input_mtok":0.9,"output_mtok":1.2}},{"id":"fimbulvetr-11b-v2","match":{"equals":"fimbulvetr-11b-v2"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"gemini-2.0-flash-001","match":{"equals":"gemini-2.0-flash-001"},"prices":{"input_mtok":0.1,"cache_write_mtok":0.1833,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"gemini-2.0-flash-lite-001","match":{"equals":"gemini-2.0-flash-lite-001"},"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"gemini-2.5-flash","match":{"or":[{"equals":"gemini-2.5-flash"},{"equals":"google/gemini-2.5-flash"}]},"prices":{"input_mtok":0.3,"cache_write_mtok":0.3833,"cache_read_mtok":0.075,"output_mtok":2.5}},{"id":"gemini-2.5-flash-lite-preview-06-17","match":{"equals":"gemini-2.5-flash-lite-preview-06-17"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"gemini-2.5-flash-preview","match":{"or":[{"equals":"gemini-2.5-flash-preview"},{"equals":"gemini-2.5-flash-preview-05-20"}]},"prices":{"input_mtok":0.15,"cache_write_mtok":0.2333,"cache_read_mtok":0.0375,"output_mtok":0.6}},{"id":"gemini-2.5-flash-preview-05-20:thinking","match":{"equals":"gemini-2.5-flash-preview-05-20:thinking"},"prices":{"input_mtok":0.15,"cache_write_mtok":0.2333,"cache_read_mtok":0.0375,"output_mtok":3.5}},{"id":"gemini-2.5-flash-preview:thinking","match":{"equals":"gemini-2.5-flash-preview:thinking"},"prices":{"input_mtok":0.15,"cache_write_mtok":0.2333,"cache_read_mtok":0.0375,"output_mtok":3.5}},{"id":"gemini-2.5-pro","match":{"or":[{"equals":"gemini-2.5-pro"},{"equals":"gemini-2.5-pro-preview"},{"equals":"gemini-2.5-pro-preview-05-06"},{"equals":"google/gemini-2.5-pro"},{"equals":"google/gemini-2.5-pro-preview"},{"equals":"google/gemini-2.5-pro-preview-05-06"}]},"prices":{"input_mtok":1.25,"cache_write_mtok":1.625,"cache_read_mtok":0.31,"output_mtok":10}},{"id":"gemini-flash-1.5","match":{"equals":"gemini-flash-1.5"},"prices":{"input_mtok":0.075,"cache_write_mtok":0.1583,"cache_read_mtok":0.01875,"output_mtok":0.3}},{"id":"gemini-flash-1.5-8b","match":{"equals":"gemini-flash-1.5-8b"},"prices":{"input_mtok":0.0375,"cache_write_mtok":0.0583,"cache_read_mtok":0.01,"output_mtok":0.15}},{"id":"gemini-pro-1.5","match":{"equals":"gemini-pro-1.5"},"prices":{"input_mtok":1.25,"output_mtok":5}},{"id":"gemma-2-27b-it","match":{"equals":"gemma-2-27b-it"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"gemma-2-9b-it","match":{"equals":"gemma-2-9b-it"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"gemma-3-12b-it","match":{"equals":"gemma-3-12b-it"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"gemma-3-27b-it","match":{"equals":"gemma-3-27b-it"},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"gemma-3-4b-it","match":{"equals":"gemma-3-4b-it"},"prices":{"input_mtok":0.02,"output_mtok":0.04}},{"id":"glm-4-32b","match":{"equals":"glm-4-32b"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"glm-z1-32b","match":{"equals":"glm-z1-32b"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"glm-z1-rumination-32b","match":{"equals":"glm-z1-rumination-32b"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"goliath-120b","match":{"equals":"goliath-120b"},"prices":{"input_mtok":10,"output_mtok":12.5}},{"id":"google/gemini-2.0-flash-001","match":{"equals":"google/gemini-2.0-flash-001"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"google/gemini-2.0-flash-lite-001","match":{"equals":"google/gemini-2.0-flash-lite-001"},"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"google/gemini-2.5-flash-image","match":{"or":[{"equals":"google/gemini-2.5-flash-image"},{"equals":"google/gemini-2.5-flash-image-preview"}]},"prices":{"input_mtok":0.3,"output_mtok":2.5}},{"id":"google/gemini-2.5-flash-lite","match":{"equals":"google/gemini-2.5-flash-lite"},"prices":{"input_mtok":0.1,"cache_write_mtok":0.183,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"google/gemini-2.5-flash-lite-preview-09-2025","match":{"equals":"google/gemini-2.5-flash-lite-preview-09-2025"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"google/gemini-2.5-flash-preview","match":{"equals":"google/gemini-2.5-flash-preview"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"google/gemini-2.5-flash-preview-09-2025","match":{"equals":"google/gemini-2.5-flash-preview-09-2025"},"prices":{"input_mtok":0.3,"cache_write_mtok":0.383,"cache_read_mtok":0.075,"output_mtok":2.5}},{"id":"google/gemini-2.5-flash-preview:thinking","match":{"equals":"google/gemini-2.5-flash-preview:thinking"},"prices":{"input_mtok":0.15,"output_mtok":3.5}},{"id":"google/gemini-2.5-pro-preview-03-25","match":{"equals":"google/gemini-2.5-pro-preview-03-25"},"prices":{"input_mtok":1.25,"output_mtok":10}},{"id":"google/gemini-flash-1.5","match":{"equals":"google/gemini-flash-1.5"},"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"google/gemini-flash-1.5-8b","match":{"equals":"google/gemini-flash-1.5-8b"},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"google/gemini-pro","match":{"or":[{"equals":"google/gemini-pro"},{"equals":"google/gemini-pro-vision"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"google/gemini-pro-1.5","match":{"equals":"google/gemini-pro-1.5"},"prices":{"input_mtok":1.25,"output_mtok":5}},{"id":"google/gemma-2-27b-it","match":{"equals":"google/gemma-2-27b-it"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"google/gemma-2-9b-it","match":{"equals":"google/gemma-2-9b-it"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"google/gemma-3-12b-it","match":{"equals":"google/gemma-3-12b-it"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"google/gemma-3-27b-it","match":{"equals":"google/gemma-3-27b-it"},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"google/gemma-3-4b-it","match":{"equals":"google/gemma-3-4b-it"},"prices":{"input_mtok":0.02,"output_mtok":0.04}},{"id":"google/palm-2-chat-bison","match":{"or":[{"equals":"google/palm-2-chat-bison"},{"equals":"google/palm-2-chat-bison-32k"}]},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"google/palm-2-codechat-bison","match":{"or":[{"equals":"google/palm-2-codechat-bison"},{"equals":"google/palm-2-codechat-bison-32k"}]},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo","match":{"or":[{"equals":"gpt-3.5-turbo"},{"equals":"gpt-3.5-turbo-0125"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"gpt-3.5-turbo-0613","match":{"equals":"gpt-3.5-turbo-0613"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo-1106","match":{"equals":"gpt-3.5-turbo-1106"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo-16k","match":{"equals":"gpt-3.5-turbo-16k"},"prices":{"input_mtok":3,"output_mtok":4}},{"id":"gpt-3.5-turbo-instruct","match":{"equals":"gpt-3.5-turbo-instruct"},"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-4","match":{"or":[{"equals":"gpt-4"},{"equals":"gpt-4-0314"}]},"prices":{"input_mtok":30,"output_mtok":60}},{"id":"gpt-4-1106-preview","match":{"equals":"gpt-4-1106-preview"},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4-turbo","match":{"or":[{"equals":"gpt-4-turbo"},{"equals":"gpt-4-turbo-preview"}]},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4.1","match":{"equals":"gpt-4.1"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"gpt-4.1-mini","match":{"equals":"gpt-4.1-mini"},"prices":{"input_mtok":0.4,"cache_read_mtok":0.1,"output_mtok":1.6}},{"id":"gpt-4.1-nano","match":{"equals":"gpt-4.1-nano"},"prices":{"input_mtok":0.1,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"gpt-4.5-preview","match":{"equals":"gpt-4.5-preview"},"prices":{"input_mtok":75,"cache_read_mtok":37.5,"output_mtok":150}},{"id":"gpt-4o","match":{"or":[{"equals":"gpt-4o"},{"equals":"gpt-4o-2024-08-06"},{"equals":"gpt-4o-2024-11-20"}]},"prices":{"input_mtok":2.5,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"gpt-4o-2024-05-13","match":{"equals":"gpt-4o-2024-05-13"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"gpt-4o-mini","match":{"or":[{"equals":"gpt-4o-mini"},{"equals":"gpt-4o-mini-2024-07-18"}]},"prices":{"input_mtok":0.15,"cache_read_mtok":0.075,"output_mtok":0.6}},{"id":"gpt-4o-mini-search-preview","match":{"equals":"gpt-4o-mini-search-preview"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"gpt-4o-search-preview","match":{"equals":"gpt-4o-search-preview"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"gpt-4o:extended","match":{"equals":"gpt-4o:extended"},"prices":{"input_mtok":6,"output_mtok":18}},{"id":"grok-2-1212","match":{"equals":"grok-2-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"grok-2-vision-1212","match":{"equals":"grok-2-vision-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"grok-3","match":{"or":[{"equals":"grok-3"},{"equals":"grok-3-beta"}]},"prices":{"input_mtok":3,"cache_read_mtok":0.75,"output_mtok":15}},{"id":"grok-3-mini","match":{"or":[{"equals":"grok-3-mini"},{"equals":"grok-3-mini-beta"}]},"prices":{"input_mtok":0.3,"cache_read_mtok":0.075,"output_mtok":0.5}},{"id":"grok-beta","match":{"equals":"grok-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"grok-vision-beta","match":{"equals":"grok-vision-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"gryphe/mythomax-l2-13b","match":{"equals":"gryphe/mythomax-l2-13b"},"prices":{"input_mtok":0.065,"output_mtok":0.065}},{"id":"hermes-2-pro-llama-3-8b","match":{"equals":"hermes-2-pro-llama-3-8b"},"prices":{"input_mtok":0.025,"output_mtok":0.04}},{"id":"hermes-3-llama-3.1-405b","match":{"equals":"hermes-3-llama-3.1-405b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"hermes-3-llama-3.1-70b","match":{"equals":"hermes-3-llama-3.1-70b"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"infermatic/mn-inferor-12b","match":{"equals":"infermatic/mn-inferor-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"inflection-3-pi","match":{"equals":"inflection-3-pi"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"inflection-3-productivity","match":{"equals":"inflection-3-productivity"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"inflection/inflection-3-pi","match":{"equals":"inflection/inflection-3-pi"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"inflection/inflection-3-productivity","match":{"equals":"inflection/inflection-3-productivity"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"jamba-1.6-large","match":{"equals":"jamba-1.6-large"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"jamba-1.6-mini","match":{"equals":"jamba-1.6-mini"},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"jondurbin/airoboros-l2-70b","match":{"equals":"jondurbin/airoboros-l2-70b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"l3-euryale-70b","match":{"equals":"l3-euryale-70b"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"l3-lunaris-8b","match":{"equals":"l3-lunaris-8b"},"prices":{"input_mtok":0.02,"output_mtok":0.05}},{"id":"l3.1-euryale-70b","match":{"equals":"l3.1-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"l3.3-euryale-70b","match":{"equals":"l3.3-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"latitudegames/wayfarer-large-70b-llama-3.3","match":{"equals":"latitudegames/wayfarer-large-70b-llama-3.3"},"prices":{"input_mtok":0.8,"output_mtok":0.9}},{"id":"lfm-3b","match":{"equals":"lfm-3b"},"prices":{"input_mtok":0.02,"output_mtok":0.02}},{"id":"lfm-40b","match":{"equals":"lfm-40b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"lfm-7b","match":{"equals":"lfm-7b"},"prices":{"input_mtok":0.01,"output_mtok":0.01}},{"id":"liquid/lfm-3b","match":{"equals":"liquid/lfm-3b"},"prices":{"input_mtok":0.02,"output_mtok":0.02}},{"id":"liquid/lfm-40b","match":{"equals":"liquid/lfm-40b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"liquid/lfm-7b","match":{"equals":"liquid/lfm-7b"},"prices":{"input_mtok":0.01,"output_mtok":0.01}},{"id":"llama-3-70b-instruct","match":{"equals":"llama-3-70b-instruct"},"prices":{"input_mtok":0.3,"output_mtok":0.4}},{"id":"llama-3-8b-instruct","match":{"equals":"llama-3-8b-instruct"},"prices":{"input_mtok":0.03,"output_mtok":0.06}},{"id":"llama-3-lumimaid-70b","match":{"equals":"llama-3-lumimaid-70b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"llama-3-lumimaid-8b","match":{"equals":"llama-3-lumimaid-8b"},"prices":{"input_mtok":0.2,"output_mtok":1.25}},{"id":"llama-3.1-405b","match":{"equals":"llama-3.1-405b"},"prices":{"input_mtok":2,"output_mtok":2}},{"id":"llama-3.1-405b-instruct","match":{"equals":"llama-3.1-405b-instruct"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"llama-3.1-70b-instruct","match":{"equals":"llama-3.1-70b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.28}},{"id":"llama-3.1-8b-instruct","match":{"equals":"llama-3.1-8b-instruct"},"prices":{"input_mtok":0.016,"output_mtok":0.029}},{"id":"llama-3.1-lumimaid-70b","match":{"equals":"llama-3.1-lumimaid-70b"},"prices":{"input_mtok":2.5,"output_mtok":3}},{"id":"llama-3.1-lumimaid-8b","match":{"equals":"llama-3.1-lumimaid-8b"},"prices":{"input_mtok":0.2,"output_mtok":1.25}},{"id":"llama-3.1-nemotron-70b-instruct","match":{"equals":"llama-3.1-nemotron-70b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"llama-3.1-nemotron-ultra-253b-v1","match":{"equals":"llama-3.1-nemotron-ultra-253b-v1"},"prices":{"input_mtok":0.6,"output_mtok":1.8}},{"id":"llama-3.1-sonar-large-128k-online","match":{"equals":"llama-3.1-sonar-large-128k-online"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"llama-3.1-sonar-small-128k-online","match":{"equals":"llama-3.1-sonar-small-128k-online"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama-3.2-11b-vision-instruct","match":{"equals":"llama-3.2-11b-vision-instruct"},"prices":{"input_mtok":0.049,"output_mtok":0.049}},{"id":"llama-3.2-1b-instruct","match":{"equals":"llama-3.2-1b-instruct"},"prices":{"input_mtok":0.005,"output_mtok":0.01}},{"id":"llama-3.2-3b-instruct","match":{"equals":"llama-3.2-3b-instruct"},"prices":{"input_mtok":0.01,"output_mtok":0.02}},{"id":"llama-3.2-90b-vision-instruct","match":{"equals":"llama-3.2-90b-vision-instruct"},"prices":{"input_mtok":1.2,"output_mtok":1.2}},{"id":"llama-3.3-70b-instruct","match":{"equals":"llama-3.3-70b-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.24}},{"id":"llama-3.3-nemotron-super-49b-v1","match":{"equals":"llama-3.3-nemotron-super-49b-v1"},"prices":{"input_mtok":0.13,"output_mtok":0.4}},{"id":"llama-4-maverick","match":{"equals":"llama-4-maverick"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"llama-4-scout","match":{"equals":"llama-4-scout"},"prices":{"input_mtok":0.08,"output_mtok":0.3}},{"id":"llama-guard-2-8b","match":{"equals":"llama-guard-2-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama-guard-3-8b","match":{"equals":"llama-guard-3-8b"},"prices":{"input_mtok":0.02,"output_mtok":0.06}},{"id":"llama-guard-4-12b","match":{"equals":"llama-guard-4-12b"},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"llama3.1-typhoon2-70b-instruct","match":{"equals":"llama3.1-typhoon2-70b-instruct"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"llemma_7b","match":{"equals":"llemma_7b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"maestro-reasoning","match":{"equals":"maestro-reasoning"},"prices":{"input_mtok":0.9,"output_mtok":3.3}},{"id":"magistral-medium-2506","match":{"or":[{"equals":"magistral-medium-2506"},{"equals":"magistral-medium-2506:thinking"}]},"prices":{"input_mtok":2,"output_mtok":5}},{"id":"magistral-small-2506","match":{"equals":"magistral-small-2506"},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"magnum-72b","match":{"equals":"magnum-72b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"magnum-v2-72b","match":{"equals":"magnum-v2-72b"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"magnum-v4-72b","match":{"equals":"magnum-v4-72b"},"prices":{"input_mtok":2.5,"output_mtok":3}},{"id":"mancer/weaver","match":{"equals":"mancer/weaver"},"prices":{"input_mtok":1.125,"output_mtok":1.125}},{"id":"mercury-coder-small-beta","match":{"equals":"mercury-coder-small-beta"},"prices":{"input_mtok":0.25,"output_mtok":1}},{"id":"meta-llama/llama-2-13b-chat","match":{"equals":"meta-llama/llama-2-13b-chat"},"prices":{"input_mtok":0.22,"output_mtok":0.22}},{"id":"meta-llama/llama-2-70b-chat","match":{"equals":"meta-llama/llama-2-70b-chat"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/llama-3-70b-instruct","match":{"equals":"meta-llama/llama-3-70b-instruct"},"prices":{"input_mtok":0.3,"output_mtok":0.4}},{"id":"meta-llama/llama-3-8b-instruct","match":{"equals":"meta-llama/llama-3-8b-instruct"},"prices":{"input_mtok":0.03,"output_mtok":0.06}},{"id":"meta-llama/llama-3.1-405b","match":{"equals":"meta-llama/llama-3.1-405b"},"prices":{"input_mtok":2,"output_mtok":2}},{"id":"meta-llama/llama-3.1-405b-instruct","match":{"equals":"meta-llama/llama-3.1-405b-instruct"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"meta-llama/llama-3.1-70b-instruct","match":{"equals":"meta-llama/llama-3.1-70b-instruct"},"prices":{"input_mtok":0.119,"output_mtok":0.39}},{"id":"meta-llama/llama-3.1-8b-instruct","match":{"equals":"meta-llama/llama-3.1-8b-instruct"},"prices":{"input_mtok":0.02,"output_mtok":0.03}},{"id":"meta-llama/llama-3.2-11b-vision-instruct","match":{"equals":"meta-llama/llama-3.2-11b-vision-instruct"},"prices":{"input_mtok":0.049,"output_mtok":0.049}},{"id":"meta-llama/llama-3.2-1b-instruct","match":{"equals":"meta-llama/llama-3.2-1b-instruct"},"prices":{"input_mtok":0.01,"output_mtok":0.01}},{"id":"meta-llama/llama-3.2-3b-instruct","match":{"equals":"meta-llama/llama-3.2-3b-instruct"},"prices":{"input_mtok":0.015,"output_mtok":0.025}},{"id":"meta-llama/llama-3.2-90b-vision-instruct","match":{"equals":"meta-llama/llama-3.2-90b-vision-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/llama-3.3-70b-instruct","match":{"equals":"meta-llama/llama-3.3-70b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.25}},{"id":"meta-llama/llama-4-maverick","match":{"equals":"meta-llama/llama-4-maverick"},"prices":{"input_mtok":0.17,"output_mtok":0.85}},{"id":"meta-llama/llama-4-scout","match":{"equals":"meta-llama/llama-4-scout"},"prices":{"input_mtok":0.08,"output_mtok":0.3}},{"id":"meta-llama/llama-guard-2-8b","match":{"equals":"meta-llama/llama-guard-2-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/llama-guard-3-8b","match":{"equals":"meta-llama/llama-guard-3-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"microsoft/phi-3-medium-128k-instruct","match":{"equals":"microsoft/phi-3-medium-128k-instruct"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"microsoft/phi-3-mini-128k-instruct","match":{"equals":"microsoft/phi-3-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"microsoft/phi-3.5-mini-128k-instruct","match":{"equals":"microsoft/phi-3.5-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"microsoft/phi-4","match":{"equals":"microsoft/phi-4"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"microsoft/phi-4-multimodal-instruct","match":{"equals":"microsoft/phi-4-multimodal-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"microsoft/wizardlm-2-7b","match":{"equals":"microsoft/wizardlm-2-7b"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"microsoft/wizardlm-2-8x22b","match":{"equals":"microsoft/wizardlm-2-8x22b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"midnight-rose-70b","match":{"equals":"midnight-rose-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"minimax-01","match":{"equals":"minimax-01"},"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"minimax-m1","match":{"equals":"minimax-m1"},"prices":{"input_mtok":0.3,"output_mtok":1.65}},{"id":"minimax-m1:extended","match":{"equals":"minimax-m1:extended"},"prices":{"input_mtok":0.55,"output_mtok":2.2}},{"id":"minimax/minimax-01","match":{"equals":"minimax/minimax-01"},"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"ministral-3b","match":{"equals":"ministral-3b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"ministral-8b","match":{"equals":"ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistral-7b-instruct","match":{"or":[{"equals":"mistral-7b-instruct"},{"equals":"mistral-7b-instruct-v0.3"}]},"prices":{"input_mtok":0.028,"output_mtok":0.054}},{"id":"mistral-7b-instruct-v0.1","match":{"equals":"mistral-7b-instruct-v0.1"},"prices":{"input_mtok":0.11,"output_mtok":0.19}},{"id":"mistral-7b-instruct-v0.2","match":{"equals":"mistral-7b-instruct-v0.2"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistral-large","match":{"or":[{"equals":"mistral-large"},{"equals":"mistral-large-2407"},{"equals":"mistral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mistral-medium","match":{"equals":"mistral-medium"},"prices":{"input_mtok":2.75,"output_mtok":8.1}},{"id":"mistral-medium-3","match":{"equals":"mistral-medium-3"},"prices":{"input_mtok":0.4,"output_mtok":2}},{"id":"mistral-nemo","match":{"equals":"mistral-nemo"},"prices":{"input_mtok":0.01,"output_mtok":0.019}},{"id":"mistral-saba","match":{"equals":"mistral-saba"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistral-small","match":{"equals":"mistral-small"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistral-small-24b-instruct-2501","match":{"equals":"mistral-small-24b-instruct-2501"},"prices":{"input_mtok":0.05,"output_mtok":0.09}},{"id":"mistral-small-3.1-24b-instruct","match":{"equals":"mistral-small-3.1-24b-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.15}},{"id":"mistral-tiny","match":{"equals":"mistral-tiny"},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistral/ministral-8b","match":{"equals":"mistral/ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/codestral-2501","match":{"equals":"mistralai/codestral-2501"},"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"mistralai/codestral-mamba","match":{"equals":"mistralai/codestral-mamba"},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistralai/ministral-3b","match":{"equals":"mistralai/ministral-3b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"mistralai/ministral-8b","match":{"equals":"mistralai/ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/mistral-7b-instruct","match":{"or":[{"equals":"mistralai/mistral-7b-instruct"},{"equals":"mistralai/mistral-7b-instruct-v0.3"}]},"prices":{"input_mtok":0.029,"output_mtok":0.059}},{"id":"mistralai/mistral-7b-instruct-v0.1","match":{"equals":"mistralai/mistral-7b-instruct-v0.1"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/mistral-7b-instruct-v0.2","match":{"equals":"mistralai/mistral-7b-instruct-v0.2"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/mistral-large","match":{"or":[{"equals":"mistralai/mistral-large"},{"equals":"mistralai/mistral-large-2407"},{"equals":"mistralai/mistral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mistralai/mistral-medium","match":{"equals":"mistralai/mistral-medium"},"prices":{"input_mtok":2.75,"output_mtok":8.1}},{"id":"mistralai/mistral-nemo","match":{"equals":"mistralai/mistral-nemo"},"prices":{"input_mtok":0.035,"output_mtok":0.08}},{"id":"mistralai/mistral-saba","match":{"equals":"mistralai/mistral-saba"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistralai/mistral-small","match":{"equals":"mistralai/mistral-small"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistralai/mistral-small-24b-instruct-2501","match":{"equals":"mistralai/mistral-small-24b-instruct-2501"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"mistralai/mistral-small-3.1-24b-instruct","match":{"equals":"mistralai/mistral-small-3.1-24b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"mistralai/mistral-tiny","match":{"equals":"mistralai/mistral-tiny"},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistralai/mixtral-8x22b-instruct","match":{"equals":"mistralai/mixtral-8x22b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mistralai/mixtral-8x7b-instruct","match":{"equals":"mistralai/mixtral-8x7b-instruct"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"mistralai/pixtral-12b","match":{"equals":"mistralai/pixtral-12b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/pixtral-large-2411","match":{"equals":"mistralai/pixtral-large-2411"},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mixtral-8x22b-instruct","match":{"equals":"mixtral-8x22b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mixtral-8x7b-instruct","match":{"equals":"mixtral-8x7b-instruct"},"prices":{"input_mtok":0.08,"output_mtok":0.24}},{"id":"mn-celeste-12b","match":{"equals":"mn-celeste-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"mn-inferor-12b","match":{"equals":"mn-inferor-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"mn-starcannon-12b","match":{"equals":"mn-starcannon-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"moonshotai/kimi-k2.5","match":{"equals":"moonshotai/kimi-k2.5"},"prices":{"input_mtok":0.6,"output_mtok":3}},{"id":"mythalion-13b","match":{"equals":"mythalion-13b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"mythomax-l2-13b","match":{"equals":"mythomax-l2-13b"},"prices":{"input_mtok":0.065,"output_mtok":0.065}},{"id":"neversleep/llama-3-lumimaid-70b","match":{"equals":"neversleep/llama-3-lumimaid-70b"},"prices":{"input_mtok":3.375,"output_mtok":4.5}},{"id":"neversleep/llama-3-lumimaid-8b","match":{"or":[{"equals":"neversleep/llama-3-lumimaid-8b"},{"equals":"neversleep/llama-3-lumimaid-8b:extended"}]},"prices":{"input_mtok":0.09375,"output_mtok":0.75}},{"id":"neversleep/llama-3.1-lumimaid-70b","match":{"equals":"neversleep/llama-3.1-lumimaid-70b"},"prices":{"input_mtok":1.5,"output_mtok":2.25}},{"id":"neversleep/llama-3.1-lumimaid-8b","match":{"equals":"neversleep/llama-3.1-lumimaid-8b"},"prices":{"input_mtok":0.09375,"output_mtok":0.75}},{"id":"neversleep/noromaid-20b","match":{"equals":"neversleep/noromaid-20b"},"prices":{"input_mtok":0.75,"output_mtok":1.5}},{"id":"noromaid-20b","match":{"equals":"noromaid-20b"},"prices":{"input_mtok":1.25,"output_mtok":2}},{"id":"nothingiisreal/mn-celeste-12b","match":{"equals":"nothingiisreal/mn-celeste-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"nous-hermes-2-mixtral-8x7b-dpo","match":{"equals":"nous-hermes-2-mixtral-8x7b-dpo"},"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"nousresearch/hermes-2-pro-llama-3-8b","match":{"equals":"nousresearch/hermes-2-pro-llama-3-8b"},"prices":{"input_mtok":0.025,"output_mtok":0.04}},{"id":"nousresearch/hermes-3-llama-3.1-405b","match":{"equals":"nousresearch/hermes-3-llama-3.1-405b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"nousresearch/hermes-3-llama-3.1-70b","match":{"equals":"nousresearch/hermes-3-llama-3.1-70b"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"nousresearch/nous-hermes-2-mixtral-8x7b-dpo","match":{"equals":"nousresearch/nous-hermes-2-mixtral-8x7b-dpo"},"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"nousresearch/nous-hermes-llama2-13b","match":{"equals":"nousresearch/nous-hermes-llama2-13b"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"nova-lite-v1","match":{"equals":"nova-lite-v1"},"prices":{"input_mtok":0.06,"output_mtok":0.24}},{"id":"nova-micro-v1","match":{"equals":"nova-micro-v1"},"prices":{"input_mtok":0.035,"output_mtok":0.14}},{"id":"nova-pro-v1","match":{"equals":"nova-pro-v1"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"nvidia/llama-3.1-nemotron-70b-instruct","match":{"equals":"nvidia/llama-3.1-nemotron-70b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"o1","match":{"or":[{"equals":"o1"},{"equals":"o1-preview"},{"equals":"o1-preview-2024-09-12"}]},"prices":{"input_mtok":15,"cache_read_mtok":7.5,"output_mtok":60}},{"id":"o1-mini","match":{"or":[{"equals":"o1-mini"},{"equals":"o1-mini-2024-09-12"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o1-pro","match":{"equals":"o1-pro"},"prices":{"input_mtok":150,"output_mtok":600}},{"id":"o3","match":{"equals":"o3"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"o3-mini","match":{"or":[{"equals":"o3-mini"},{"equals":"o3-mini-high"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o3-pro","match":{"equals":"o3-pro"},"prices":{"input_mtok":20,"output_mtok":80}},{"id":"o4-mini","match":{"or":[{"equals":"o4-mini"},{"equals":"o4-mini-high"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.275,"output_mtok":4.4}},{"id":"openai/chatgpt-4o-latest","match":{"equals":"openai/chatgpt-4o-latest"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"openai/codex-mini","match":{"equals":"openai/codex-mini"},"prices":{"input_mtok":1.5,"cache_read_mtok":0.375,"output_mtok":6}},{"id":"openai/gpt-3.5-turbo","match":{"or":[{"equals":"openai/gpt-3.5-turbo"},{"equals":"openai/gpt-3.5-turbo-0125"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"openai/gpt-3.5-turbo-0613","match":{"equals":"openai/gpt-3.5-turbo-0613"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"openai/gpt-3.5-turbo-1106","match":{"equals":"openai/gpt-3.5-turbo-1106"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"openai/gpt-3.5-turbo-16k","match":{"equals":"openai/gpt-3.5-turbo-16k"},"prices":{"input_mtok":3,"output_mtok":4}},{"id":"openai/gpt-3.5-turbo-instruct","match":{"equals":"openai/gpt-3.5-turbo-instruct"},"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"openai/gpt-4","match":{"or":[{"equals":"openai/gpt-4"},{"equals":"openai/gpt-4-0314"}]},"prices":{"input_mtok":30,"output_mtok":60}},{"id":"openai/gpt-4-1106-preview","match":{"equals":"openai/gpt-4-1106-preview"},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"openai/gpt-4-32k","match":{"or":[{"equals":"openai/gpt-4-32k"},{"equals":"openai/gpt-4-32k-0314"}]},"prices":{"input_mtok":60,"output_mtok":120}},{"id":"openai/gpt-4-turbo","match":{"or":[{"equals":"openai/gpt-4-turbo"},{"equals":"openai/gpt-4-turbo-preview"}]},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"openai/gpt-4.1","match":{"equals":"openai/gpt-4.1"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"openai/gpt-4.1-mini","match":{"equals":"openai/gpt-4.1-mini"},"prices":{"input_mtok":0.4,"output_mtok":1.6}},{"id":"openai/gpt-4.1-nano","match":{"equals":"openai/gpt-4.1-nano"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"openai/gpt-4.5-preview","match":{"equals":"openai/gpt-4.5-preview"},"prices":{"input_mtok":75,"output_mtok":150}},{"id":"openai/gpt-4o","match":{"or":[{"equals":"openai/gpt-4o"},{"equals":"openai/gpt-4o-2024-08-06"},{"equals":"openai/gpt-4o-2024-11-20"},{"equals":"openai/gpt-4o-search-preview"},{"equals":"openai/gpt-4o-audio-preview"}]},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"openai/gpt-4o-2024-05-13","match":{"equals":"openai/gpt-4o-2024-05-13"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"openai/gpt-4o-mini","match":{"or":[{"equals":"openai/gpt-4o-mini"},{"equals":"openai/gpt-4o-mini-2024-07-18"},{"equals":"openai/gpt-4o-mini-search-preview"}]},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai/gpt-4o:extended","match":{"equals":"openai/gpt-4o:extended"},"prices":{"input_mtok":6,"output_mtok":18}},{"id":"openai/gpt-5","match":{"or":[{"equals":"openai/gpt-5"},{"equals":"openai/gpt-5-chat"},{"equals":"openai/gpt-5-codex"},{"equals":"openai/gpt-5.1"},{"equals":"openai/gpt-5.1-chat"},{"equals":"openai/gpt-5.1-codex"}]},"prices":{"input_mtok":1.25,"cache_read_mtok":0.125,"output_mtok":10}},{"id":"openai/gpt-5-image","match":{"equals":"openai/gpt-5-image"},"prices":{"input_mtok":10,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"openai/gpt-5-image-mini","match":{"equals":"openai/gpt-5-image-mini"},"prices":{"input_mtok":2.5,"cache_read_mtok":0.25,"output_mtok":2}},{"id":"openai/gpt-5-mini","match":{"equals":"openai/gpt-5-mini"},"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"openai/gpt-5-nano","match":{"equals":"openai/gpt-5-nano"},"prices":{"input_mtok":0.05,"cache_read_mtok":0.005,"output_mtok":0.4}},{"id":"openai/gpt-5-pro","match":{"equals":"openai/gpt-5-pro"},"prices":{"input_mtok":15,"output_mtok":120}},{"id":"openai/gpt-5.1-codex-mini","match":{"equals":"openai/gpt-5.1-codex-mini"},"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b:exacto"}]},"prices":{"input_mtok":0.04,"output_mtok":0.2}},{"id":"openai/gpt-oss-20b","match":{"equals":"openai/gpt-oss-20b"},"prices":{"input_mtok":0.03,"output_mtok":0.14}},{"id":"openai/gpt-oss-safeguard-20b","match":{"equals":"openai/gpt-oss-safeguard-20b"},"prices":{"input_mtok":0.075,"cache_read_mtok":0.037,"output_mtok":0.3}},{"id":"openai/o1","match":{"or":[{"equals":"openai/o1"},{"equals":"openai/o1-preview"},{"equals":"openai/o1-preview-2024-09-12"}]},"prices":{"input_mtok":15,"output_mtok":60}},{"id":"openai/o1-mini","match":{"or":[{"equals":"openai/o1-mini"},{"equals":"openai/o1-mini-2024-09-12"}]},"prices":{"input_mtok":1.1,"output_mtok":4.4}},{"id":"openai/o1-pro","match":{"equals":"openai/o1-pro"},"prices":{"input_mtok":150,"output_mtok":600}},{"id":"openai/o3","match":{"equals":"openai/o3"},"prices":{"input_mtok":10,"output_mtok":40}},{"id":"openai/o3-deep-research","match":{"equals":"openai/o3-deep-research"},"prices":{"input_mtok":10,"cache_read_mtok":2.5,"output_mtok":40}},{"id":"openai/o3-mini","match":{"or":[{"equals":"openai/o3-mini"},{"equals":"openai/o3-mini-high"}]},"prices":{"input_mtok":1.1,"output_mtok":4.4}},{"id":"openai/o3-pro","match":{"equals":"openai/o3-pro"},"prices":{"input_mtok":20,"output_mtok":80}},{"id":"openai/o4-mini","match":{"or":[{"equals":"openai/o4-mini"},{"equals":"openai/o4-mini-high"}]},"prices":{"input_mtok":1.1,"output_mtok":4.4}},{"id":"openai/o4-mini-deep-research","match":{"equals":"openai/o4-mini-deep-research"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"openchat/openchat-7b","match":{"equals":"openchat/openchat-7b"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"openhands-lm-32b-v0.1","match":{"equals":"openhands-lm-32b-v0.1"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"perplexity/llama-3.1-sonar-large-128k-online","match":{"equals":"perplexity/llama-3.1-sonar-large-128k-online"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"perplexity/llama-3.1-sonar-small-128k-online","match":{"equals":"perplexity/llama-3.1-sonar-small-128k-online"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"perplexity/r1-1776","match":{"equals":"perplexity/r1-1776"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"perplexity/sonar","match":{"equals":"perplexity/sonar"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"perplexity/sonar-deep-research","match":{"equals":"perplexity/sonar-deep-research"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"perplexity/sonar-pro","match":{"equals":"perplexity/sonar-pro"},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"perplexity/sonar-reasoning","match":{"equals":"perplexity/sonar-reasoning"},"prices":{"input_mtok":1,"output_mtok":5}},{"id":"perplexity/sonar-reasoning-pro","match":{"equals":"perplexity/sonar-reasoning-pro"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"phi-3-medium-128k-instruct","match":{"equals":"phi-3-medium-128k-instruct"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"phi-3-mini-128k-instruct","match":{"equals":"phi-3-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-3.5-mini-128k-instruct","match":{"equals":"phi-3.5-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-4","match":{"equals":"phi-4"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"phi-4-multimodal-instruct","match":{"equals":"phi-4-multimodal-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"phi-4-reasoning-plus","match":{"equals":"phi-4-reasoning-plus"},"prices":{"input_mtok":0.07,"output_mtok":0.35}},{"id":"pixtral-12b","match":{"equals":"pixtral-12b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"pixtral-large-2411","match":{"equals":"pixtral-large-2411"},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"pygmalionai/mythalion-13b","match":{"equals":"pygmalionai/mythalion-13b"},"prices":{"input_mtok":0.5625,"output_mtok":1.125}},{"id":"qwen-2-72b-instruct","match":{"equals":"qwen-2-72b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen-2.5-72b-instruct","match":{"equals":"qwen-2.5-72b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.39}},{"id":"qwen-2.5-7b-instruct","match":{"equals":"qwen-2.5-7b-instruct"},"prices":{"input_mtok":0.04,"output_mtok":0.1}},{"id":"qwen-2.5-coder-32b-instruct","match":{"equals":"qwen-2.5-coder-32b-instruct"},"prices":{"input_mtok":0.06,"output_mtok":0.15}},{"id":"qwen-2.5-vl-7b-instruct","match":{"equals":"qwen-2.5-vl-7b-instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen-max","match":{"equals":"qwen-max"},"prices":{"input_mtok":1.6,"cache_read_mtok":0.64,"output_mtok":6.4}},{"id":"qwen-plus","match":{"equals":"qwen-plus"},"prices":{"input_mtok":0.4,"cache_read_mtok":0.16,"output_mtok":1.2}},{"id":"qwen-turbo","match":{"equals":"qwen-turbo"},"prices":{"input_mtok":0.05,"cache_read_mtok":0.02,"output_mtok":0.2}},{"id":"qwen-vl-max","match":{"equals":"qwen-vl-max"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"qwen-vl-plus","match":{"equals":"qwen-vl-plus"},"prices":{"input_mtok":0.21,"output_mtok":0.63}},{"id":"qwen/qwen-2-72b-instruct","match":{"equals":"qwen/qwen-2-72b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen/qwen-2.5-72b-instruct","match":{"equals":"qwen/qwen-2.5-72b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.39}},{"id":"qwen/qwen-2.5-7b-instruct","match":{"equals":"qwen/qwen-2.5-7b-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"qwen/qwen-2.5-coder-32b-instruct","match":{"equals":"qwen/qwen-2.5-coder-32b-instruct"},"prices":{"input_mtok":0.07,"output_mtok":0.15}},{"id":"qwen/qwen-2.5-vl-72b-instruct","match":{"equals":"qwen/qwen-2.5-vl-72b-instruct"},"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"qwen/qwen-2.5-vl-7b-instruct","match":{"equals":"qwen/qwen-2.5-vl-7b-instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen/qwen-max","match":{"equals":"qwen/qwen-max"},"prices":{"input_mtok":1.6,"output_mtok":6.4}},{"id":"qwen/qwen-plus","match":{"equals":"qwen/qwen-plus"},"prices":{"input_mtok":0.4,"output_mtok":1.2}},{"id":"qwen/qwen-turbo","match":{"equals":"qwen/qwen-turbo"},"prices":{"input_mtok":0.05,"output_mtok":0.2}},{"id":"qwen/qwen-vl-max","match":{"equals":"qwen/qwen-vl-max"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"qwen/qwen-vl-plus","match":{"equals":"qwen/qwen-vl-plus"},"prices":{"input_mtok":0.21,"output_mtok":0.63}},{"id":"qwen/qwen2.5-coder-7b-instruct","match":{"equals":"qwen/qwen2.5-coder-7b-instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen/qwen2.5-vl-32b-instruct","match":{"equals":"qwen/qwen2.5-vl-32b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen/qwen2.5-vl-72b-instruct","match":{"equals":"qwen/qwen2.5-vl-72b-instruct"},"prices":{"input_mtok":0.7,"output_mtok":0.7}},{"id":"qwen/qwen3-max","match":{"or":[{"equals":"qwen/qwen3-max"},{"equals":"qwen/qwen3-max-thinking"}]},"prices":{"input_mtok":1.2,"output_mtok":6}},{"id":"qwen/qwq-32b","match":{"equals":"qwen/qwq-32b"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"qwen/qwq-32b-preview","match":{"equals":"qwen/qwq-32b-preview"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen2.5-vl-32b-instruct","match":{"equals":"qwen2.5-vl-32b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen2.5-vl-72b-instruct","match":{"equals":"qwen2.5-vl-72b-instruct"},"prices":{"input_mtok":0.25,"output_mtok":0.75}},{"id":"qwen3-14b","match":{"equals":"qwen3-14b"},"prices":{"input_mtok":0.06,"output_mtok":0.24}},{"id":"qwen3-235b-a22b","match":{"equals":"qwen3-235b-a22b"},"prices":{"input_mtok":0.13,"output_mtok":0.6}},{"id":"qwen3-30b-a3b","match":{"equals":"qwen3-30b-a3b"},"prices":{"input_mtok":0.08,"output_mtok":0.29}},{"id":"qwen3-32b","match":{"equals":"qwen3-32b"},"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"qwen3-8b","match":{"equals":"qwen3-8b"},"prices":{"input_mtok":0.035,"output_mtok":0.138}},{"id":"qwen3.5-plus-02-15","match":{"equals":"qwen3.5-plus-02-15"},"prices":{"input_mtok":0.4,"output_mtok":2.4}},{"id":"qwq-32b","match":{"equals":"qwq-32b"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"qwq-32b-preview","match":{"equals":"qwq-32b-preview"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"r1-1776","match":{"equals":"r1-1776"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"raifle/sorcererlm-8x22b","match":{"equals":"raifle/sorcererlm-8x22b"},"prices":{"input_mtok":4.5,"output_mtok":4.5}},{"id":"remm-slerp-l2-13b","match":{"equals":"remm-slerp-l2-13b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"rocinante-12b","match":{"equals":"rocinante-12b"},"prices":{"input_mtok":0.25,"output_mtok":0.5}},{"id":"sao10k/fimbulvetr-11b-v2","match":{"equals":"sao10k/fimbulvetr-11b-v2"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"sao10k/l3-euryale-70b","match":{"equals":"sao10k/l3-euryale-70b"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"sao10k/l3-lunaris-8b","match":{"equals":"sao10k/l3-lunaris-8b"},"prices":{"input_mtok":0.02,"output_mtok":0.05}},{"id":"sao10k/l3.1-euryale-70b","match":{"equals":"sao10k/l3.1-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"sao10k/l3.3-euryale-70b","match":{"equals":"sao10k/l3.3-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"scb10x/llama3.1-typhoon2-70b-instruct","match":{"equals":"scb10x/llama3.1-typhoon2-70b-instruct"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"scb10x/llama3.1-typhoon2-8b-instruct","match":{"equals":"scb10x/llama3.1-typhoon2-8b-instruct"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"skyfall-36b-v2","match":{"equals":"skyfall-36b-v2"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"sonar","match":{"equals":"sonar"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"sonar-deep-research","match":{"equals":"sonar-deep-research"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sonar-pro","match":{"equals":"sonar-pro"},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"sonar-reasoning","match":{"equals":"sonar-reasoning"},"prices":{"input_mtok":1,"output_mtok":5}},{"id":"sonar-reasoning-pro","match":{"equals":"sonar-reasoning-pro"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sophosympatheia/midnight-rose-70b","match":{"equals":"sophosympatheia/midnight-rose-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"sorcererlm-8x22b","match":{"equals":"sorcererlm-8x22b"},"prices":{"input_mtok":4.5,"output_mtok":4.5}},{"id":"spotlight","match":{"equals":"spotlight"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"steelskull/l3.3-electra-r1-70b","match":{"equals":"steelskull/l3.3-electra-r1-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.95}},{"id":"thedrummer/anubis-pro-105b-v1","match":{"equals":"thedrummer/anubis-pro-105b-v1"},"prices":{"input_mtok":0.8,"output_mtok":1}},{"id":"thedrummer/rocinante-12b","match":{"equals":"thedrummer/rocinante-12b"},"prices":{"input_mtok":0.25,"output_mtok":0.5}},{"id":"thedrummer/skyfall-36b-v2","match":{"equals":"thedrummer/skyfall-36b-v2"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"thedrummer/unslopnemo-12b","match":{"equals":"thedrummer/unslopnemo-12b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"toppy-m-7b","match":{"equals":"toppy-m-7b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"undi95/remm-slerp-l2-13b","match":{"equals":"undi95/remm-slerp-l2-13b"},"prices":{"input_mtok":0.5625,"output_mtok":1.125}},{"id":"undi95/toppy-m-7b","match":{"equals":"undi95/toppy-m-7b"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"unslopnemo-12b","match":{"equals":"unslopnemo-12b"},"prices":{"input_mtok":0.45,"output_mtok":0.45}},{"id":"valkyrie-49b-v1","match":{"equals":"valkyrie-49b-v1"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"virtuoso-large","match":{"equals":"virtuoso-large"},"prices":{"input_mtok":0.75,"output_mtok":1.2}},{"id":"virtuoso-medium-v2","match":{"equals":"virtuoso-medium-v2"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"weaver","match":{"equals":"weaver"},"prices":{"input_mtok":1.5,"output_mtok":1.5}},{"id":"wizardlm-2-8x22b","match":{"equals":"wizardlm-2-8x22b"},"prices":{"input_mtok":0.48,"output_mtok":0.48}},{"id":"x-ai/grok-2-1212","match":{"equals":"x-ai/grok-2-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"x-ai/grok-2-vision-1212","match":{"equals":"x-ai/grok-2-vision-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"x-ai/grok-3-beta","match":{"equals":"x-ai/grok-3-beta"},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"x-ai/grok-3-mini-beta","match":{"equals":"x-ai/grok-3-mini-beta"},"prices":{"input_mtok":0.3,"output_mtok":0.5}},{"id":"x-ai/grok-4-fast","match":{"equals":"x-ai/grok-4-fast"},"context_window":2000000,"prices":{"input_mtok":{"base":0.2,"tiers":[{"start":128000,"price":0.4}]},"cache_read_mtok":0.05,"output_mtok":{"base":0.5,"tiers":[{"start":128000,"price":1}]}}},{"id":"x-ai/grok-beta","match":{"equals":"x-ai/grok-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"x-ai/grok-code-fast-1","match":{"equals":"x-ai/grok-code-fast-1"},"context_window":256000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.02,"output_mtok":1.5}},{"id":"x-ai/grok-vision-beta","match":{"equals":"x-ai/grok-vision-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"xwin-lm/xwin-lm-70b","match":{"equals":"xwin-lm/xwin-lm-70b"},"prices":{"input_mtok":3.75,"output_mtok":3.75}},{"id":"yi-large","match":{"equals":"yi-large"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"z-ai/glm-4.5","match":{"equals":"z-ai/glm-4.5"},"context_window":131072,"prices":{"input_mtok":0.35,"output_mtok":1.55}},{"id":"z-ai/glm-4.6","match":{"equals":"z-ai/glm-4.6"},"context_window":202752,"prices":{"input_mtok":0.4,"output_mtok":1.75}}]},{"id":"ovhcloud","name":"OVHcloud AI Endpoints","pricing_urls":["https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/models"],"api_pattern":"https://oai\\.endpoints\\.kepler\\.ai\\.cloud\\.ovh\\.net","extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"DeepSeek-R1-Distill-Llama-70B"},{"equals":"deepseek-r1-distill-llama-70b"}]},"context_window":131072,"prices":{"input_mtok":0.74,"output_mtok":0.74}},{"id":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"Llama-3.1-8B-Instruct"},{"equals":"llama-3.1-8b-instruct"}]},"context_window":131072,"prices":{"input_mtok":0.11,"output_mtok":0.11}},{"id":"Meta-Llama-3_3-70B-Instruct","match":{"or":[{"equals":"Meta-Llama-3_3-70B-Instruct"},{"equals":"meta-llama-3_3-70b-instruct"}]},"context_window":131072,"prices":{"input_mtok":0.74,"output_mtok":0.74}},{"id":"Mistral-7B-Instruct-v0.3","match":{"or":[{"equals":"Mistral-7B-Instruct-v0.3"},{"equals":"mistral-7b-instruct-v0.3"}]},"context_window":65536,"prices":{"input_mtok":0.11,"output_mtok":0.11}},{"id":"Mistral-Nemo-Instruct-2407","match":{"or":[{"equals":"Mistral-Nemo-Instruct-2407"},{"equals":"mistral-nemo-instruct-2407"}]},"context_window":65536,"prices":{"input_mtok":0.14,"output_mtok":0.14}},{"id":"Mistral-Small-3.2-24B-Instruct-2506","match":{"or":[{"equals":"Mistral-Small-3.2-24B-Instruct-2506"},{"equals":"mistral-small-3.2-24b-instruct-2506"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.31}},{"id":"Mixtral-8x7B-Instruct-v0.1","match":{"or":[{"equals":"Mixtral-8x7B-Instruct-v0.1"},{"equals":"mixtral-8x7b-instruct-v0.1"}]},"context_window":32768,"prices":{"input_mtok":0.7,"output_mtok":0.7}},{"id":"Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"Qwen2.5-VL-72B-Instruct"},{"equals":"qwen2.5-vl-72b-instruct"}]},"context_window":32768,"prices":{"input_mtok":1.01,"output_mtok":1.01}},{"id":"Qwen3-32B","match":{"or":[{"equals":"Qwen3-32B"},{"equals":"qwen3-32b"}]},"context_window":32768,"prices":{"input_mtok":0.09,"output_mtok":0.25}},{"id":"Qwen3-Coder-30B-A3B-Instruct","match":{"or":[{"equals":"Qwen3-Coder-30B-A3B-Instruct"},{"equals":"qwen3-coder-30b-a3b-instruct"}]},"context_window":262144,"prices":{"input_mtok":0.07,"output_mtok":0.26}},{"id":"bge-base-en-v1.5","match":{"equals":"bge-base-en-v1.5"},"context_window":512,"prices":{"input_mtok":0.01}},{"id":"bge-m3","match":{"equals":"bge-m3"},"context_window":8192,"prices":{"input_mtok":0.01}},{"id":"bge-multilingual-gemma2","match":{"equals":"bge-multilingual-gemma2"},"context_window":8192,"prices":{"input_mtok":0.01}},{"id":"gpt-oss-120b","match":{"equals":"gpt-oss-120b"},"context_window":131072,"prices":{"input_mtok":0.09,"output_mtok":0.47}},{"id":"gpt-oss-20b","match":{"equals":"gpt-oss-20b"},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.18}}]},{"id":"perplexity","name":"Perplexity","pricing_urls":["https://docs.perplexity.ai/guides/pricing"],"api_pattern":"https://api\\.perplexity\\.ai","models":[{"id":"llama-3.1-sonar-large-128k-online","match":{"equals":"llama-3.1-sonar-large-128k-online"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"llama-3.1-sonar-small-128k-online","match":{"equals":"llama-3.1-sonar-small-128k-online"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"r1-1776","match":{"equals":"r1-1776"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sonar","match":{"equals":"sonar"},"prices":{"input_mtok":1,"output_mtok":1,"requests_kcount":12}},{"id":"sonar-deep-research","match":{"equals":"sonar-deep-research"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sonar-pro","match":{"equals":"sonar-pro"},"prices":{"input_mtok":3,"output_mtok":15,"requests_kcount":14}},{"id":"sonar-reasoning","match":{"equals":"sonar-reasoning"},"prices":{"input_mtok":1,"output_mtok":5,"requests_kcount":12}},{"id":"sonar-reasoning-pro","match":{"equals":"sonar-reasoning-pro"},"prices":{"input_mtok":2,"output_mtok":8,"requests_kcount":14}}]},{"id":"together","name":"Together AI","pricing_urls":["https://www.together.ai/pricing"],"api_pattern":"https://api\\.together\\.xyz","provider_match":{"or":[{"equals":"together-ai"},{"equals":"together_ai"}]},"models":[{"id":"Austism/chronos-hermes-13b","match":{"equals":"Austism/chronos-hermes-13b"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Gryphe/MythoMax-L2-13b","match":{"equals":"Gryphe/MythoMax-L2-13b"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Nexusflow/NexusRaven-V2-13B","match":{"equals":"Nexusflow/NexusRaven-V2-13B"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"NousResearch/Nous-Capybara-7B-V1p9","match":{"equals":"NousResearch/Nous-Capybara-7B-V1p9"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO","match":{"equals":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-SFT","match":{"equals":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-SFT"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"NousResearch/Nous-Hermes-2-Yi-34B","match":{"equals":"NousResearch/Nous-Hermes-2-Yi-34B"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"NousResearch/Nous-Hermes-Llama2-13b","match":{"equals":"NousResearch/Nous-Hermes-Llama2-13b"},"prices":{"input_mtok":0.225,"output_mtok":0.225}},{"id":"NousResearch/Nous-Hermes-llama-2-7b","match":{"equals":"NousResearch/Nous-Hermes-llama-2-7b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Open-Orca/Mistral-7B-OpenOrca","match":{"equals":"Open-Orca/Mistral-7B-OpenOrca"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Qwen/Qwen1.5-0.5B","match":{"or":[{"equals":"Qwen/Qwen1.5-0.5B"},{"equals":"Qwen/Qwen1.5-0.5B-Chat"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Qwen/Qwen1.5-1.8B","match":{"or":[{"equals":"Qwen/Qwen1.5-1.8B"},{"equals":"Qwen/Qwen1.5-1.8B-Chat"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Qwen/Qwen1.5-14B","match":{"or":[{"equals":"Qwen/Qwen1.5-14B"},{"equals":"Qwen/Qwen1.5-14B-Chat"}]},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Qwen/Qwen1.5-4B","match":{"or":[{"equals":"Qwen/Qwen1.5-4B"},{"equals":"Qwen/Qwen1.5-4B-Chat"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Qwen/Qwen1.5-72B","match":{"equals":"Qwen/Qwen1.5-72B"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"Qwen/Qwen1.5-7B","match":{"or":[{"equals":"Qwen/Qwen1.5-7B"},{"equals":"Qwen/Qwen1.5-7B-Chat"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Undi95/ReMM-SLERP-L2-13B","match":{"equals":"Undi95/ReMM-SLERP-L2-13B"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Undi95/Toppy-M-7B","match":{"equals":"Undi95/Toppy-M-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"WizardLM/WizardLM-13B-V1.2","match":{"equals":"WizardLM/WizardLM-13B-V1.2"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"allenai/OLMo-7B","match":{"or":[{"equals":"allenai/OLMo-7B"},{"equals":"allenai/OLMo-7B-Instruct"},{"equals":"allenai/OLMo-7B-Twin-2T"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"codellama/CodeLlama-13b-Instruct-hf","match":{"equals":"codellama/CodeLlama-13b-Instruct-hf"},"prices":{"input_mtok":0.225,"output_mtok":0.225}},{"id":"codellama/CodeLlama-34b-Instruct-hf","match":{"equals":"codellama/CodeLlama-34b-Instruct-hf"},"prices":{"input_mtok":0.776,"output_mtok":0.776}},{"id":"codellama/CodeLlama-70b-Instruct-hf","match":{"equals":"codellama/CodeLlama-70b-Instruct-hf"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"codellama/CodeLlama-7b-Instruct-hf","match":{"equals":"codellama/CodeLlama-7b-Instruct-hf"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"deepseek-ai/deepseek-coder-33b-instruct","match":{"equals":"deepseek-ai/deepseek-coder-33b-instruct"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"garage-bAInd/Platypus2-70B-instruct","match":{"equals":"garage-bAInd/Platypus2-70B-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"google/gemma-2b","match":{"or":[{"equals":"google/gemma-2b"},{"equals":"google/gemma-2b-it"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"google/gemma-7b","match":{"or":[{"equals":"google/gemma-7b"},{"equals":"google/gemma-7b-it"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"lmsys/vicuna-13b-v1.5","match":{"equals":"lmsys/vicuna-13b-v1.5"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"lmsys/vicuna-7b-v1.5","match":{"equals":"lmsys/vicuna-7b-v1.5"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/Llama-2-13b-chat-hf","match":{"equals":"meta-llama/Llama-2-13b-chat-hf"},"prices":{"input_mtok":0.225,"output_mtok":0.225}},{"id":"meta-llama/Llama-2-70b-chat-hf","match":{"equals":"meta-llama/Llama-2-70b-chat-hf"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/Llama-2-7b-chat-hf","match":{"equals":"meta-llama/Llama-2-7b-chat-hf"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/Llama-3-70b-chat-hf","match":{"equals":"meta-llama/Llama-3-70b-chat-hf"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/Llama-3-8b-chat-hf","match":{"equals":"meta-llama/Llama-3-8b-chat-hf"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","match":{"equals":"meta-llama/Llama-3.3-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","match":{"equals":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8"},"prices":{"input_mtok":0.27,"output_mtok":0.85}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","match":{"equals":"meta-llama/Llama-4-Scout-17B-16E-Instruct"},"prices":{"input_mtok":0.18,"output_mtok":0.59}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct-Lite","match":{"equals":"meta-llama/Meta-Llama-3-70B-Instruct-Lite"},"prices":{"input_mtok":0.54,"output_mtok":0.54}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct-Lite","match":{"equals":"meta-llama/Meta-Llama-3-8B-Instruct-Lite"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3-8B-Instruct-Turbo"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo"},"prices":{"input_mtok":3.5,"output_mtok":3.5}},{"id":"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"meta-llama/Meta-Llama-3.3-70B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.3-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"microsoft/WizardLM-2-8x22B","match":{"equals":"microsoft/WizardLM-2-8x22B"},"prices":{"input_mtok":1.2,"output_mtok":1.2}},{"id":"microsoft/phi-2","match":{"equals":"microsoft/phi-2"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/Mistral-7B-Instruct-v0.1","match":{"equals":"mistralai/Mistral-7B-Instruct-v0.1"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/Mistral-7B-Instruct-v0.2","match":{"equals":"mistralai/Mistral-7B-Instruct-v0.2"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/Mistral-7B-v0.1","match":{"equals":"mistralai/Mistral-7B-v0.1"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/Mixtral-8x22B-Instruct-v0.1","match":{"equals":"mistralai/Mixtral-8x22B-Instruct-v0.1"},"prices":{"input_mtok":2.4,"output_mtok":2.4}},{"id":"mistralai/Mixtral-8x7B-Instruct-v0.1","match":{"equals":"mistralai/Mixtral-8x7B-Instruct-v0.1"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mistralai/Mixtral-8x7B-v0.1","match":{"equals":"mistralai/Mixtral-8x7B-v0.1"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"openchat/openchat-3.5-1210","match":{"equals":"openchat/openchat-3.5-1210"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"snorkelai/Snorkel-Mistral-PairRM-DPO","match":{"equals":"snorkelai/Snorkel-Mistral-PairRM-DPO"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"teknium/OpenHermes-2-Mistral-7B","match":{"equals":"teknium/OpenHermes-2-Mistral-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"teknium/OpenHermes-2p5-Mistral-7B","match":{"equals":"teknium/OpenHermes-2p5-Mistral-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/GPT-JT-Moderation-6B","match":{"equals":"togethercomputer/GPT-JT-Moderation-6B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/Llama-2-7B-32K-Instruct","match":{"equals":"togethercomputer/Llama-2-7B-32K-Instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-7B-Base","match":{"equals":"togethercomputer/RedPajama-INCITE-7B-Base"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-7B-Chat","match":{"equals":"togethercomputer/RedPajama-INCITE-7B-Chat"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-7B-Instruct","match":{"equals":"togethercomputer/RedPajama-INCITE-7B-Instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-Base-3B-v1","match":{"equals":"togethercomputer/RedPajama-INCITE-Base-3B-v1"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"togethercomputer/RedPajama-INCITE-Chat-3B-v1","match":{"equals":"togethercomputer/RedPajama-INCITE-Chat-3B-v1"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"togethercomputer/RedPajama-INCITE-Instruct-3B-v1","match":{"equals":"togethercomputer/RedPajama-INCITE-Instruct-3B-v1"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"togethercomputer/StripedHyena-Hessian-7B","match":{"equals":"togethercomputer/StripedHyena-Hessian-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/StripedHyena-Nous-7B","match":{"equals":"togethercomputer/StripedHyena-Nous-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/alpaca-7b","match":{"equals":"togethercomputer/alpaca-7b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"upstage/SOLAR-10.7B-Instruct-v1.0","match":{"equals":"upstage/SOLAR-10.7B-Instruct-v1.0"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"zero-one-ai/Yi-34B","match":{"equals":"zero-one-ai/Yi-34B"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"zero-one-ai/Yi-6B","match":{"equals":"zero-one-ai/Yi-6B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}}]},{"id":"x-ai","name":"X AI","pricing_urls":["https://docs.x.ai/docs/models"],"api_pattern":"https://api\\.x\\.ai","model_match":{"contains":"grok"},"provider_match":{"equals":"xai"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"cached_prompt_text_tokens","dest":"cache_read_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"grok-2-1212","match":{"or":[{"equals":"grok-2-1212"},{"equals":"grok-2"},{"equals":"grok-2-latest"}]},"context_window":32768,"prices":{"input_mtok":2,"output_mtok":10},"deprecated":true},{"id":"grok-2-vision-1212","match":{"or":[{"equals":"grok-2-vision-1212"},{"equals":"grok-2-vision"},{"equals":"grok-2-vision-latest"}]},"context_window":32768,"prices":{"input_mtok":2,"output_mtok":10}},{"id":"grok-3","match":{"or":[{"equals":"grok-3"},{"equals":"grok-3-latest"},{"equals":"grok-3-beta"}]},"context_window":131072,"prices":{"input_mtok":3,"cache_read_mtok":0.75,"output_mtok":15}},{"id":"grok-3-fast","match":{"or":[{"equals":"grok-3-fast"},{"equals":"grok-3-fast-latest"},{"equals":"grok-3-fast-beta"}]},"context_window":131072,"prices":{"input_mtok":5,"cache_read_mtok":1.25,"output_mtok":25}},{"id":"grok-3-mini","match":{"or":[{"equals":"grok-3-mini"},{"equals":"grok-3-mini-beta"},{"equals":"grok-3-mini-latest"}]},"context_window":131072,"prices":{"input_mtok":0.3,"cache_read_mtok":0.075,"output_mtok":0.5}},{"id":"grok-3-mini-fast","match":{"or":[{"equals":"grok-3-mini-fast"},{"equals":"grok-3-mini-fast-beta"},{"equals":"grok-3-mini-fast-latest"}]},"context_window":131072,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":4}},{"id":"grok-4-0709","match":{"or":[{"equals":"grok-4-0709"},{"equals":"grok-4"},{"equals":"grok-4-latest"}]},"context_window":256000,"prices":{"input_mtok":3,"cache_read_mtok":0.75,"output_mtok":15}},{"id":"grok-4-1-fast-non-reasoning","match":{"or":[{"equals":"grok-4-1-fast-non-reasoning"},{"equals":"grok-4-1-fast-non-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-4-1-fast-reasoning","match":{"or":[{"equals":"grok-4-1-fast"},{"equals":"grok-4-1-fast-reasoning"},{"equals":"grok-4-1-fast-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-4-fast-non-reasoning","match":{"or":[{"equals":"grok-4-fast-non-reasoning"},{"equals":"grok-4-fast-non-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-4-fast-reasoning","match":{"or":[{"equals":"grok-4-fast"},{"equals":"grok-4-fast-reasoning"},{"equals":"grok-4-fast-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-code-fast-1","match":{"or":[{"equals":"grok-code-fast"},{"equals":"grok-code-fast-1"},{"equals":"grok-code-fast-1-0825"}]},"context_window":256000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.02,"output_mtok":1.5}}]}] +[{"id":"anthropic","name":"Anthropic","pricing_urls":["https://www.anthropic.com/pricing#api"],"api_pattern":"https://api\\.anthropic\\.com","model_match":{"contains":"claude"},"provider_match":{"contains":"anthropic"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"cached_tokens","dest":"cache_read_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"claude-2","match":{"or":[{"starts_with":"claude-2"},{"contains":"claude-v2"}]},"context_window":200000,"prices":{"input_mtok":8,"output_mtok":24}},{"id":"claude-3-5-haiku-latest","match":{"or":[{"starts_with":"claude-3-5-haiku"},{"starts_with":"claude-3.5-haiku"}]},"context_window":200000,"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"claude-3-5-sonnet","match":{"or":[{"starts_with":"claude-3-5-sonnet"},{"starts_with":"claude-3.5-sonnet"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-7-sonnet-latest","match":{"or":[{"starts_with":"claude-3-7-sonnet"},{"starts_with":"claude-3.7-sonnet"},{"starts_with":"claude-sonnet-3.7"},{"starts_with":"claude-sonnet-3-7"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-haiku","match":{"starts_with":"claude-3-haiku"},"context_window":200000,"prices":{"input_mtok":0.25,"cache_write_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":1.25}},{"id":"claude-3-opus-latest","match":{"starts_with":"claude-3-opus"},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-3-sonnet","match":{"starts_with":"claude-3-sonnet"},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-haiku-4-5","match":{"or":[{"starts_with":"claude-haiku-4-5"},{"starts_with":"claude-haiku-4.5"},{"starts_with":"claude-4-5-haiku"},{"starts_with":"claude-4.5-haiku"}]},"context_window":200000,"prices":{"input_mtok":1,"cache_write_mtok":1.25,"cache_read_mtok":0.1,"output_mtok":5}},{"id":"claude-opus-4-0","match":{"or":[{"starts_with":"claude-opus-4-0"},{"starts_with":"claude-4-opus"},{"equals":"claude-opus-4"},{"equals":"claude-opus-4-20250514"}]},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-opus-4-1","match":{"or":[{"starts_with":"claude-opus-4-1"},{"starts_with":"claude-opus-4.1"}]},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-opus-4-5","match":{"or":[{"starts_with":"claude-opus-4-5"},{"starts_with":"claude-opus-4.5"},{"starts_with":"claude-4-5-opus"},{"starts_with":"claude-4.5-opus"}]},"context_window":200000,"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"claude-opus-4-6","match":{"or":[{"starts_with":"claude-opus-4-6"},{"starts_with":"claude-opus-4.6"},{"starts_with":"claude-4-6-opus"},{"starts_with":"claude-4.6-opus"}]},"context_window":200000,"prices":[{"prices":{"input_mtok":{"base":5,"tiers":[{"start":200000,"price":10}]},"cache_write_mtok":{"base":6.25,"tiers":[{"start":200000,"price":12.5}]},"cache_read_mtok":{"base":0.5,"tiers":[{"start":200000,"price":1}]},"output_mtok":{"base":25,"tiers":[{"start":200000,"price":37.5}]}}},{"constraint":{"start_date":"2026-03-13"},"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}}]},{"id":"claude-sonnet-4-0","match":{"or":[{"starts_with":"claude-sonnet-4-2025"},{"starts_with":"claude-sonnet-4-0"},{"starts_with":"claude-sonnet-4@"},{"equals":"claude-sonnet-4"},{"starts_with":"claude-4-sonnet"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-sonnet-4-5","match":{"or":[{"starts_with":"claude-sonnet-4-5"},{"starts_with":"claude-sonnet-4.5"}]},"context_window":1000000,"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"id":"claude-sonnet-4-6","match":{"or":[{"starts_with":"claude-sonnet-4-6"},{"starts_with":"claude-sonnet-4.6"}]},"context_window":1000000,"prices":[{"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"constraint":{"start_date":"2026-03-13"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}}]},{"id":"claude-v1","match":{"equals":"claude-v1"},"prices":{"input_mtok":8,"output_mtok":24}}]},{"id":"avian","name":"Avian","pricing_urls":["https://avian.io/pricing/"],"api_pattern":"https://api\\.avian\\.io","models":[{"id":"Meta-Llama-3.1-405B-Instruct","match":{"equals":"Meta-Llama-3.1-405B-Instruct"},"prices":{"input_mtok":1.5,"output_mtok":1.5}},{"id":"Meta-Llama-3.1-70B-Instruct","match":{"equals":"Meta-Llama-3.1-70B-Instruct"},"prices":{"input_mtok":0.45,"output_mtok":0.45}},{"id":"Meta-Llama-3.1-8B-Instruct","match":{"equals":"Meta-Llama-3.1-8B-Instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Meta-Llama-3.3-70B-Instruct","match":{"equals":"Meta-Llama-3.3-70B-Instruct"},"prices":{"input_mtok":0.45,"output_mtok":0.45}}]},{"id":"aws","name":"AWS Bedrock","pricing_urls":["https://aws.amazon.com/bedrock/pricing/"],"api_pattern":"https://bedrock-runtime\\.[a-z0-9-]+\\.amazonaws\\.com/","provider_match":{"contains":"bedrock"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"inputTokens","dest":"input_tokens","required":true},{"path":"outputTokens","dest":"output_tokens","required":true}]},{"api_flavor":"anthropic","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"amazon.nova-lite-v1:0","match":{"contains":"amazon.nova-lite"},"prices":{"input_mtok":0.06,"cache_read_mtok":0.015,"output_mtok":0.24}},{"id":"amazon.nova-micro-v1:0","match":{"contains":"amazon.nova-micro"},"prices":{"input_mtok":0.035,"cache_read_mtok":0.00875,"output_mtok":0.14}},{"id":"amazon.nova-premier-v1:0","match":{"contains":"amazon.nova-premier"},"prices":{"input_mtok":2.5,"cache_read_mtok":0.625,"output_mtok":12.5}},{"id":"amazon.nova-pro-v1:0","match":{"contains":"amazon.nova-pro"},"prices":{"input_mtok":0.8,"cache_read_mtok":0.2,"output_mtok":3.2}},{"id":"amazon.nova-sonic-v1:0","match":{"contains":"amazon.nova-sonic"},"prices":{"input_mtok":0.06,"output_mtok":0.24,"input_audio_mtok":3.4,"output_audio_mtok":13.6}},{"id":"amazon.titan-embed-text-v1","match":{"contains":"amazon.titan-embed-text"},"prices":{"input_mtok":0.1}},{"id":"amazon.titan-text-express-v1","match":{"contains":"titan-text-express"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"amazon.titan-text-lite-v1","match":{"contains":"titan-text-lite"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"deepseek.r1-v1:0","match":{"contains":"deepseek.r1"},"prices":{"input_mtok":1.35,"output_mtok":5.4}},{"id":"global.anthropic.claude-haiku-4-5-20251001-v1:0","match":{"contains":"global.anthropic.claude-haiku-4-5-20251001"},"prices":{"input_mtok":1,"cache_write_mtok":1.25,"cache_read_mtok":0.1,"output_mtok":5}},{"id":"global.anthropic.claude-opus-4-5-v1:0","match":{"contains":"global.anthropic.claude-opus-4-5"},"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"global.anthropic.claude-opus-4-6-v1:0","match":{"contains":"global.anthropic.claude-opus-4-6"},"prices":{"input_mtok":{"base":5,"tiers":[{"start":200000,"price":10}]},"cache_write_mtok":{"base":6.25,"tiers":[{"start":200000,"price":12.5}]},"cache_read_mtok":{"base":0.5,"tiers":[{"start":200000,"price":1}]},"output_mtok":{"base":25,"tiers":[{"start":200000,"price":37.5}]}}},{"id":"global.anthropic.claude-sonnet-4-20250514-v1:0","match":{"contains":"global.anthropic.claude-sonnet-4-20250514"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","match":{"contains":"global.anthropic.claude-sonnet-4-5-20250929"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"global.anthropic.claude-sonnet-4-6-v1:0","match":{"contains":"global.anthropic.claude-sonnet-4-6"},"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"id":"meta.llama3-1-70b-instruct-v1:0","match":{"contains":"meta.llama3-1-70b-instruct"},"prices":{"input_mtok":0.72,"output_mtok":0.72}},{"id":"meta.llama3-1-8b-instruct-v1:0","match":{"contains":"meta.llama3-1-8b-instruct"},"prices":{"input_mtok":0.22,"output_mtok":0.22}},{"id":"meta.llama3-2-11b-instruct-v1:0","match":{"contains":"meta.llama3-2-11b-instruct"},"prices":{"input_mtok":0.16,"output_mtok":0.16}},{"id":"meta.llama3-2-1b-instruct-v1:0","match":{"contains":"meta.llama3-2-1b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"meta.llama3-2-3b-instruct-v1:0","match":{"contains":"meta.llama3-2-3b-instruct"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"meta.llama3-2-90b-instruct-v1:0","match":{"contains":"meta.llama3-2-90b-instruct"},"prices":{"input_mtok":0.72,"output_mtok":0.72}},{"id":"meta.llama3-3-70b-instruct-v1:0","match":{"contains":"meta.llama3-3-70b-instruct"},"prices":{"input_mtok":0.72,"output_mtok":0.72}},{"id":"meta.llama3-70b-instruct-v1:0","match":{"contains":"meta.llama3-70b-instruct"},"prices":{"input_mtok":2.65,"output_mtok":3.5}},{"id":"meta.llama3-8b-instruct-v1:0","match":{"contains":"meta.llama3-8b-instruct"},"prices":{"input_mtok":0.3,"output_mtok":0.6}},{"id":"meta.llama4-maverick-17b-instruct-v1:0","match":{"contains":"meta.llama4-maverick-17b-instruct"},"prices":{"input_mtok":0.24,"output_mtok":0.97}},{"id":"meta.llama4-scout-17b-instruct-v1:0","match":{"contains":"meta.llama4-scout-17b-instruct"},"prices":{"input_mtok":0.17,"output_mtok":0.66}},{"id":"mistral.mistral-7b-instruct-v0:2","match":{"contains":"mistral.mistral-7b-instruct-v0"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"mistral.mistral-large-2402-v1:0","match":{"contains":"mistral.mistral-large-2402"},"prices":{"input_mtok":4,"output_mtok":12}},{"id":"mistral.mistral-small-2402-v1:0","match":{"contains":"mistral.mistral-small-2402"},"prices":{"input_mtok":1,"output_mtok":3}},{"id":"mistral.mixtral-8x7b-instruct-v0:1","match":{"contains":"mistral.mixtral-8x7b-instruct-v0"},"prices":{"input_mtok":0.45,"output_mtok":0.7}},{"id":"mistral.pixtral-large-2502-v1:0","match":{"contains":"mistral.pixtral-large-2502"},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"openai.gpt-oss-120b-1:0","match":{"contains":"openai.gpt-oss-120b-1"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai.gpt-oss-20b-1:0","match":{"contains":"openai.gpt-oss-20b-1"},"prices":{"input_mtok":0.07,"output_mtok":0.3}},{"id":"qwen.qwen3-32b-v1:0","match":{"contains":"qwen.qwen3-32b"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"qwen.qwen3-coder-30b-a3b-v1:0","match":{"contains":"qwen.qwen3-coder-30b-a3b"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"qwen.qwen3-coder-480b-a35b-v1:0","match":{"contains":"qwen.qwen3-coder-480b-a35b"},"prices":{"input_mtok":0.45,"output_mtok":1.8}},{"id":"qwen.qwen3-vl-235b-a22b-v1:0","match":{"contains":"qwen.qwen3-vl-235b-a22b"},"prices":{"input_mtok":0.53,"output_mtok":2.66}},{"id":"regional.anthropic.claude-3-5-haiku-20241022-v1:0","match":{"contains":"claude-3-5-haiku-20241022"},"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"regional.anthropic.claude-3-5-sonnet-20240620-v1:0","match":{"contains":"claude-3-5-sonnet-20240620"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-3-5-sonnet-20241022-v2:0","match":{"contains":"claude-3-5-sonnet-20241022"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-3-7-sonnet-20250219-v1:0","match":{"contains":"claude-3-7-sonnet-20250219"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-3-haiku-20240307-v1:0","match":{"contains":"claude-3-haiku-20240307"},"prices":{"input_mtok":0.25,"output_mtok":1.25}},{"id":"regional.anthropic.claude-3-opus-20240229-v1:0","match":{"contains":"claude-3-opus-20240229"},"prices":{"input_mtok":15,"output_mtok":75}},{"id":"regional.anthropic.claude-3-sonnet-20240229-v1:0","match":{"contains":"claude-3-sonnet-20240229"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-haiku-4-5-20251001-v1:0","match":{"or":[{"starts_with":"anthropic.claude-haiku-4-5-20251001"},{"starts_with":"claude-haiku-4-5-20251001"},{"contains":"us.anthropic.claude-haiku-4-5-20251001"},{"contains":"au.anthropic.claude-haiku-4-5-20251001"},{"contains":"apac.anthropic.claude-haiku-4-5-20251001"},{"contains":"eu.anthropic.claude-haiku-4-5-20251001"},{"contains":"us-gov.anthropic.claude-haiku-4-5-20251001"},{"contains":"jp.anthropic.claude-haiku-4-5-20251001"}]},"prices":{"input_mtok":1.1,"cache_write_mtok":1.375,"cache_read_mtok":0.11,"output_mtok":5.5}},{"id":"regional.anthropic.claude-opus-4-1-20250805-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-1-20250805"},{"starts_with":"claude-opus-4-1-20250805"},{"contains":"us.anthropic.claude-opus-4-1-20250805"},{"contains":"au.anthropic.claude-opus-4-1-20250805"},{"contains":"apac.anthropic.claude-opus-4-1-20250805"},{"contains":"eu.anthropic.claude-opus-4-1-20250805"},{"contains":"us-gov.anthropic.claude-opus-4-1-20250805"},{"contains":"jp.anthropic.claude-opus-4-1-20250805"}]},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"regional.anthropic.claude-opus-4-20250514-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-20250514"},{"starts_with":"claude-opus-4-20250514"},{"contains":"us.anthropic.claude-opus-4-20250514"},{"contains":"au.anthropic.claude-opus-4-20250514"},{"contains":"apac.anthropic.claude-opus-4-20250514"},{"contains":"eu.anthropic.claude-opus-4-20250514"},{"contains":"us-gov.anthropic.claude-opus-4-20250514"},{"contains":"jp.anthropic.claude-opus-4-20250514"}]},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"regional.anthropic.claude-opus-4-5-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-5"},{"starts_with":"claude-opus-4-5"},{"contains":"us.anthropic.claude-opus-4-5"},{"contains":"au.anthropic.claude-opus-4-5"},{"contains":"apac.anthropic.claude-opus-4-5"},{"contains":"eu.anthropic.claude-opus-4-5"},{"contains":"us-gov.anthropic.claude-opus-4-5"},{"contains":"jp.anthropic.claude-opus-4-5"}]},"prices":{"input_mtok":5.5,"cache_write_mtok":6.875,"cache_read_mtok":0.55,"output_mtok":27.5}},{"id":"regional.anthropic.claude-opus-4-6-v1:0","match":{"or":[{"starts_with":"anthropic.claude-opus-4-6"},{"starts_with":"claude-opus-4-6"},{"contains":"us.anthropic.claude-opus-4-6"},{"contains":"au.anthropic.claude-opus-4-6"},{"contains":"apac.anthropic.claude-opus-4-6"},{"contains":"eu.anthropic.claude-opus-4-6"},{"contains":"us-gov.anthropic.claude-opus-4-6"},{"contains":"jp.anthropic.claude-opus-4-6"}]},"prices":{"input_mtok":{"base":5.5,"tiers":[{"start":200000,"price":11}]},"cache_write_mtok":{"base":6.875,"tiers":[{"start":200000,"price":13.75}]},"cache_read_mtok":{"base":0.55,"tiers":[{"start":200000,"price":1.1}]},"output_mtok":{"base":27.5,"tiers":[{"start":200000,"price":41.25}]}}},{"id":"regional.anthropic.claude-sonnet-4-20250514-v1:0","match":{"or":[{"starts_with":"anthropic.claude-sonnet-4-20250514"},{"starts_with":"claude-sonnet-4-20250514"},{"contains":"us.anthropic.claude-sonnet-4-20250514"},{"contains":"au.anthropic.claude-sonnet-4-20250514"},{"contains":"apac.anthropic.claude-sonnet-4-20250514"},{"contains":"eu.anthropic.claude-sonnet-4-20250514"},{"contains":"us-gov.anthropic.claude-sonnet-4-20250514"},{"contains":"jp.anthropic.claude-sonnet-4-20250514"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"regional.anthropic.claude-sonnet-4-5-20250929-v1:0","match":{"or":[{"starts_with":"anthropic.claude-sonnet-4-5-20250929"},{"starts_with":"claude-sonnet-4-5-20250929"},{"contains":"us.anthropic.claude-sonnet-4-5-20250929"},{"contains":"au.anthropic.claude-sonnet-4-5-20250929"},{"contains":"apac.anthropic.claude-sonnet-4-5-20250929"},{"contains":"eu.anthropic.claude-sonnet-4-5-20250929"},{"contains":"us-gov.anthropic.claude-sonnet-4-5-20250929"},{"contains":"jp.anthropic.claude-sonnet-4-5-20250929"}]},"prices":{"input_mtok":3.3,"cache_write_mtok":4.125,"cache_read_mtok":0.33,"output_mtok":16.5}},{"id":"regional.anthropic.claude-sonnet-4-6-v1:0","match":{"or":[{"starts_with":"anthropic.claude-sonnet-4-6"},{"starts_with":"claude-sonnet-4-6"},{"contains":"us.anthropic.claude-sonnet-4-6"},{"contains":"au.anthropic.claude-sonnet-4-6"},{"contains":"apac.anthropic.claude-sonnet-4-6"},{"contains":"eu.anthropic.claude-sonnet-4-6"},{"contains":"us-gov.anthropic.claude-sonnet-4-6"},{"contains":"jp.anthropic.claude-sonnet-4-6"}]},"prices":{"input_mtok":{"base":3.3,"tiers":[{"start":200000,"price":6.6}]},"cache_write_mtok":{"base":4.125,"tiers":[{"start":200000,"price":8.25}]},"cache_read_mtok":{"base":0.33,"tiers":[{"start":200000,"price":0.66}]},"output_mtok":{"base":16.5,"tiers":[{"start":200000,"price":24.75}]}}}]},{"id":"azure","name":"Microsoft Azure","pricing_urls":["https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/#pricing"],"api_pattern":"(https?://)?([^.]*\\.)?(?:openai\\.azure\\.com|azure-api\\.net|cognitiveservices\\.azure\\.com)","extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"responses","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":["input_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"embeddings","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true}]},{"api_flavor":"anthropic","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]}],"fallback_model_providers":["openai","anthropic"],"models":[{"id":"ada","match":{"or":[{"equals":"ada"},{"equals":"text-embedding-ada"},{"equals":"text-embedding-ada-002"},{"equals":"text-embedding-ada-002-v2"}]},"prices":{"input_mtok":0.1}},{"id":"babbage","match":{"or":[{"equals":"babbage"},{"equals":"babbage-002"}]},"prices":{"input_mtok":0.4}},{"id":"curie","match":{"or":[{"equals":"curie"},{"equals":"text-curie"},{"equals":"text-curie-001"}]},"prices":{"input_mtok":2}},{"id":"davinci","match":{"or":[{"equals":"davinci"},{"equals":"davinci-002"},{"equals":"text-davinci"},{"equals":"text-davinci-002"}]},"prices":{"input_mtok":2}},{"id":"o1","match":{"or":[{"equals":"o1"},{"equals":"o1-2024-12-17"},{"equals":"o1-preview"},{"equals":"o1-preview-2024-09-12"}]},"prices":{"input_mtok":15,"cache_read_mtok":7.5,"output_mtok":60}},{"id":"o1-mini","match":{"or":[{"equals":"o1-mini"},{"equals":"o1-mini-2024-09-12"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o3-2025-04-16","match":{"or":[{"equals":"o3"},{"equals":"o3-2025-04-16"}]},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"o3-mini","match":{"or":[{"equals":"o3-mini"},{"equals":"o3-mini-2025-01-31"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o4-mini","match":{"or":[{"contains":"o4-mini"},{"contains":"o4-mini-2025-04-16"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.28,"output_mtok":4.4}},{"id":"phi-3-medium-128k-instruct","match":{"equals":"phi-3-medium-128k-instruct"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"phi-3-mini-128k-instruct","match":{"equals":"phi-3-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-3.5-mini-128k-instruct","match":{"equals":"phi-3.5-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-4","match":{"equals":"phi-4"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"phi-4-multimodal-instruct","match":{"equals":"phi-4-multimodal-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"phi-4-reasoning-plus","match":{"equals":"phi-4-reasoning-plus"},"prices":{"input_mtok":0.07,"output_mtok":0.35}},{"id":"text-embedding-3-large","match":{"equals":"text-embedding-3-large"},"prices":{"input_mtok":0.13}},{"id":"text-embedding-3-small","match":{"equals":"text-embedding-3-small"},"prices":{"input_mtok":0.02}},{"id":"wizardlm-2-8x22b","match":{"equals":"wizardlm-2-8x22b"},"prices":{"input_mtok":0.48,"output_mtok":0.48}}]},{"id":"cerebras","name":"Cerebras","pricing_urls":["https://www.cerebras.ai/pricing#pricing","https://inference-docs.cerebras.ai/models/openai-oss"],"api_pattern":"https://api\\.cerebras\\.ai","model_match":{"contains":"cerebras"},"provider_match":{"contains":"cerebras"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"gpt-oss-120b","match":{"or":[{"equals":"gpt-oss-120b"},{"starts_with":"cerebras/gpt-oss-120b"},{"starts_with":"cerebras:gpt-oss-120b"}]},"context_window":131072,"prices":{"input_mtok":0.35,"output_mtok":0.75}},{"id":"llama-3.3-70b","match":{"or":[{"equals":"llama-3.3-70b"},{"starts_with":"cerebras/llama-3.3-70b"},{"starts_with":"cerebras:llama-3.3-70b"}]},"context_window":128000,"prices":{"input_mtok":0.85,"output_mtok":1.2}},{"id":"llama3.1-8b","match":{"or":[{"equals":"llama3.1-8b"},{"starts_with":"cerebras/llama3.1-8b"},{"starts_with":"cerebras:llama3.1-8b"}]},"context_window":32768,"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"qwen-3-32b","match":{"or":[{"equals":"qwen-3-32b"},{"starts_with":"cerebras/qwen-3-32b"},{"starts_with":"cerebras:qwen-3-32b"}]},"context_window":131072,"prices":{"input_mtok":0.4,"output_mtok":0.8}}]},{"id":"cohere","name":"Cohere","pricing_urls":["https://cohere.com/pricing"],"api_pattern":"https://api\\.cohere\\.ai","model_match":{"starts_with":"command-"},"provider_match":{"contains":"cohere"},"extractors":[{"api_flavor":"default","root":["usage","billed_units"],"model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"embeddings","root":["meta","billed_units"],"model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true}]}],"models":[{"id":"command","match":{"equals":"command"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"command-a","match":{"starts_with":"command-a"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r","match":{"or":[{"equals":"command-r"},{"equals":"command-r-08-2024"}]},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"command-r-plus","match":{"or":[{"equals":"command-r-plus"},{"equals":"command-r-plus-08-2024"}]},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r7b","match":{"or":[{"equals":"command-r7b"},{"equals":"command-r7b-12-2024"}]},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"embed-v4.0","match":{"equals":"embed-v4.0"},"context_window":128000,"prices":{"input_mtok":0.12}}]},{"id":"deepseek","name":"Deepseek","pricing_urls":["https://api-docs.deepseek.com/quick_start/pricing"],"api_pattern":"https://api\\.deepseek\\.com","model_match":{"contains":"deepseek"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"deepseek-chat","match":{"or":[{"starts_with":"deepseek-chat"},{"equals":"deepseek-chat-v3-0324"}]},"context_window":64000,"prices":[{"prices":{"input_mtok":0.135,"cache_read_mtok":0.035,"output_mtok":0.55}},{"constraint":{"start_time":"00:30:00Z","end_time":"16:30:00Z"},"prices":{"input_mtok":0.27,"cache_read_mtok":0.07,"output_mtok":1.1}}]},{"id":"deepseek-reasoner","match":{"or":[{"equals":"deepseek-reasoner"},{"starts_with":"deepseek-r1"},{"equals":"deepseek-r1-0528"}]},"context_window":64000,"prices":[{"prices":{"input_mtok":0.135,"cache_read_mtok":0.035,"output_mtok":0.55}},{"constraint":{"start_time":"00:30:00Z","end_time":"16:30:00Z"},"prices":{"input_mtok":0.55,"cache_read_mtok":0.14,"output_mtok":2.19}}]}]},{"id":"fireworks","name":"Fireworks","pricing_urls":["https://fireworks.ai/pricing"],"api_pattern":"https://api\\.fireworks\\.ai","model_match":{"starts_with":"accounts/fireworks/models/"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"deepseek-r1-0528","match":{"equals":"accounts/fireworks/models/deepseek-r1-0528"},"context_window":160000,"prices":{"input_mtok":3,"output_mtok":8}},{"id":"deepseek-v3-0324","match":{"equals":"accounts/fireworks/models/deepseek-v3-0324"},"context_window":160000,"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"deepseek-v3p2","match":{"equals":"accounts/fireworks/models/deepseek-v3p2"},"context_window":163840,"prices":{"input_mtok":0.56,"cache_read_mtok":0.28,"output_mtok":1.68}},{"id":"gemma-3-27b-it","match":{"equals":"accounts/fireworks/models/gemma-3-27b-it"},"context_window":131000,"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"glm-4p7","match":{"equals":"accounts/fireworks/models/glm-4p7"},"context_window":202752,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"gpt-oss-120b","match":{"equals":"accounts/fireworks/models/gpt-oss-120b"},"context_window":131072,"prices":{"input_mtok":0.15,"cache_read_mtok":0.07,"output_mtok":0.6}},{"id":"gpt-oss-20b","match":{"equals":"accounts/fireworks/models/gpt-oss-20b"},"context_window":131072,"prices":{"input_mtok":0.07,"cache_read_mtok":0.04,"output_mtok":0.3}},{"id":"kimi-k2p5","match":{"equals":"accounts/fireworks/models/kimi-k2p5"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.1,"output_mtok":3}},{"id":"llama-v3p1-8b-instruct","match":{"equals":"accounts/fireworks/models/llama-v3p1-8b-instruct"},"context_window":131000,"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama4-maverick-instruct-basic","match":{"equals":"accounts/fireworks/models/llama4-maverick-instruct-basic"},"context_window":1000000,"prices":{"input_mtok":0.22,"output_mtok":0.88}},{"id":"minimax-m2p1","match":{"equals":"accounts/fireworks/models/minimax-m2p1"},"context_window":204800,"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"qwen2p5-vl-72b-instruct","match":{"equals":"accounts/fireworks/models/qwen2p5-vl-72b-instruct"},"context_window":128000,"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen3-235b-a22b","match":{"equals":"accounts/fireworks/models/qwen3-235b-a22b"},"context_window":128000,"prices":{"input_mtok":0.22,"output_mtok":0.88}}]},{"id":"google","name":"Google","pricing_urls":["https://ai.google.dev/gemini-api/docs/pricing","https://cloud.google.com/vertex-ai/generative-ai/pricing"],"api_pattern":"https://(.*\\.)?googleapis\\.com","model_match":{"contains":"gemini"},"provider_match":{"or":[{"contains":"google"},{"contains":"vertex"},{"contains":"gemini"}]},"extractors":[{"api_flavor":"default","root":"usageMetadata","model_path":"modelVersion","mappings":[{"path":"promptTokenCount","dest":"input_tokens","required":false},{"path":"cachedContentTokenCount","dest":"cache_read_tokens","required":false},{"path":["cacheTokensDetails",{"type":"array-match","field":"modality","match":{"equals":"AUDIO"}},"tokenCount"],"dest":"cache_audio_read_tokens","required":false},{"path":["promptTokensDetails",{"type":"array-match","field":"modality","match":{"equals":"AUDIO"}},"tokenCount"],"dest":"input_audio_tokens","required":false},{"path":["candidatesTokensDetails",{"type":"array-match","field":"modality","match":{"equals":"AUDIO"}},"tokenCount"],"dest":"output_audio_tokens","required":false},{"path":"candidatesTokenCount","dest":"output_tokens","required":false},{"path":"thoughtsTokenCount","dest":"output_tokens","required":false},{"path":"toolUsePromptTokenCount","dest":"output_tokens","required":false}]},{"api_flavor":"anthropic","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":"cache_creation_input_tokens","dest":"input_tokens","required":false},{"path":"cache_read_input_tokens","dest":"input_tokens","required":false},{"path":"cache_creation_input_tokens","dest":"cache_write_tokens","required":false},{"path":"cache_read_input_tokens","dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"fallback_model_providers":["anthropic"],"models":[{"id":"claude-3-5-haiku","match":{"contains":"claude-3-5-haiku"},"context_window":200000,"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"claude-3-5-sonnet","match":{"contains":"claude-3-5-sonnet"},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-7-sonnet","match":{"contains":"claude-3-7-sonnet"},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3-haiku","match":{"contains":"claude-3-haiku"},"context_window":200000,"prices":{"input_mtok":0.25,"cache_write_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":1.25}},{"id":"claude-3-opus","match":{"contains":"claude-3-opus"},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-4-opus","match":{"or":[{"contains":"claude-4-opus"},{"contains":"claude-opus-4@"},{"contains":"claude-opus-4-0"},{"contains":"claude-opus-4-1"},{"equals":"claude-opus-4"}]},"context_window":200000,"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-4-sonnet","match":{"or":[{"contains":"claude-4-sonnet"},{"contains":"claude-sonnet-4"}]},"context_window":200000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-opus-4-6","match":{"or":[{"contains":"claude-4-6-opus"},{"contains":"claude-opus-4-6"},{"contains":"claude-4.6-opus"},{"contains":"claude-opus-4.6"}]},"context_window":200000,"prices":{"input_mtok":{"base":5,"tiers":[{"start":200000,"price":10}]},"cache_write_mtok":{"base":6.25,"tiers":[{"start":200000,"price":12.5}]},"cache_read_mtok":{"base":0.5,"tiers":[{"start":200000,"price":1}]},"output_mtok":{"base":25,"tiers":[{"start":200000,"price":37.5}]}}},{"id":"gemini-1.0-pro-vision-001","match":{"equals":"gemini-1.0-pro-vision-001"},"context_window":32768,"prices":{"input_mtok":0.125,"output_mtok":0.375}},{"id":"gemini-1.5-flash","match":{"contains":"gemini-1.5-flash"},"context_window":1000000,"prices":{"input_mtok":{"base":0.075,"tiers":[{"start":128000,"price":0.15}]},"cache_read_mtok":{"base":0.01875,"tiers":[{"start":128000,"price":0.0375}]},"output_mtok":{"base":0.3,"tiers":[{"start":128000,"price":0.6}]}}},{"id":"gemini-1.5-pro","match":{"contains":"gemini-1.5-pro"},"context_window":1000000,"prices":{"input_mtok":{"base":1.25,"tiers":[{"start":128000,"price":2.5}]},"output_mtok":{"base":5,"tiers":[{"start":128000,"price":10}]}}},{"id":"gemini-2.0-flash","match":{"or":[{"ends_with":"gemini-2.0-flash"},{"contains":"gemini-2.0-flash-0"},{"contains":"gemini-2.0-flash-exp"},{"contains":"gemini-2.0-flash-thinking"},{"contains":"gemini-2.0-flash-latest"}]},"context_window":1000000,"prices":{"input_mtok":0.1,"cache_read_mtok":{"base":0.025,"tiers":[{"start":1000000,"price":0.175}]},"output_mtok":0.4,"input_audio_mtok":0.7}},{"id":"gemini-2.0-flash-lite","match":{"contains":"gemini-2.0-flash-lite"},"context_window":1000000,"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"gemini-2.5-flash","match":{"or":[{"equals":"gemini-2.5-flash"},{"equals":"gemini-2.5-flash-latest"},{"equals":"gemini-2.5-flash-preview-09-2025"}]},"prices":{"input_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":2.5,"input_audio_mtok":1,"cache_audio_read_mtok":0.1}},{"id":"gemini-2.5-flash-image","match":{"or":[{"equals":"gemini-2.5-flash-image"},{"equals":"gemini-2.5-flash-image-preview"}]},"context_window":1000000,"prices":{"input_mtok":0.3,"output_mtok":30}},{"id":"gemini-2.5-flash-lite","match":{"or":[{"equals":"gemini-2.5-flash-lite"},{"starts_with":"gemini-2.5-flash-lite-preview"}]},"context_window":1000000,"prices":{"input_mtok":0.1,"cache_read_mtok":0.01,"output_mtok":0.4,"input_audio_mtok":0.3,"cache_audio_read_mtok":0.03}},{"id":"gemini-2.5-flash-preview","match":{"or":[{"contains":"gemini-2.5-flash-preview-05-20"},{"contains":"gemini-2.5-flash-preview-04-17"},{"equals":"gemini-2.5-flash-preview-05-20:thinking"},{"equals":"gemini-2.5-flash-preview"},{"equals":"gemini-2.5-flash-preview:thinking"}]},"prices":{"input_mtok":0.15,"output_mtok":0.6},"deprecated":true},{"id":"gemini-2.5-pro","match":{"starts_with":"gemini-2.5-pro"},"prices":{"input_mtok":{"base":1.25,"tiers":[{"start":200000,"price":2.5}]},"cache_read_mtok":{"base":0.125,"tiers":[{"start":200000,"price":0.25}]},"output_mtok":{"base":10,"tiers":[{"start":200000,"price":15}]}}},{"id":"gemini-3-flash-preview","match":{"or":[{"equals":"gemini-3-flash-preview"},{"starts_with":"gemini-3-flash-preview-"}]},"context_window":1000000,"prices":{"input_mtok":0.5,"cache_read_mtok":0.05,"output_mtok":3,"input_audio_mtok":1,"cache_audio_read_mtok":0.1}},{"id":"gemini-3-pro-image-preview","match":{"or":[{"starts_with":"gemini-3-pro-image-preview"},{"equals":"gemini-3-pro-image-preview"}]},"context_window":1000000,"prices":{"input_mtok":2,"output_mtok":120}},{"id":"gemini-3-pro-preview","match":{"or":[{"starts_with":"gemini-3-pro-preview"},{"equals":"gemini-3-pro-text-preview"}]},"prices":{"input_mtok":{"base":2,"tiers":[{"start":200000,"price":4}]},"cache_read_mtok":{"base":0.2,"tiers":[{"start":200000,"price":0.4}]},"output_mtok":{"base":12,"tiers":[{"start":200000,"price":18}]}}},{"id":"gemini-3.1-flash-image-preview","match":{"starts_with":"gemini-3.1-flash-image-preview"},"context_window":1000000,"prices":{"input_mtok":0.5,"output_mtok":60}},{"id":"gemini-3.1-flash-lite-preview","match":{"starts_with":"gemini-3.1-flash-lite-preview"},"context_window":1000000,"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":1.5,"input_audio_mtok":0.5,"cache_audio_read_mtok":0.05}},{"id":"gemini-3.1-pro-preview","match":{"starts_with":"gemini-3.1-pro-preview"},"prices":{"input_mtok":{"base":2,"tiers":[{"start":200000,"price":4}]},"cache_read_mtok":{"base":0.2,"tiers":[{"start":200000,"price":0.4}]},"output_mtok":{"base":12,"tiers":[{"start":200000,"price":18}]}}},{"id":"gemini-embedding-001","match":{"equals":"gemini-embedding-001"},"prices":{"input_mtok":0.15}},{"id":"gemini-flash-1.5","match":{"equals":"gemini-flash-1.5"},"prices":{"input_mtok":{"base":0.075,"tiers":[{"start":128000,"price":0.15}]},"cache_read_mtok":{"base":0.01875,"tiers":[{"start":128000,"price":0.0375}]},"output_mtok":{"base":0.3,"tiers":[{"start":128000,"price":0.6}]}}},{"id":"gemini-flash-1.5-8b","match":{"equals":"gemini-flash-1.5-8b"},"context_window":1000000,"prices":{"input_mtok":{"base":0.0375,"tiers":[{"start":128000,"price":0.075}]},"cache_read_mtok":{"base":0.01,"tiers":[{"start":128000,"price":0.02}]},"output_mtok":{"base":0.15,"tiers":[{"start":128000,"price":0.3}]}}},{"id":"gemini-live-2.5-flash-preview","match":{"or":[{"starts_with":"gemini-live-2.5-flash-preview"},{"starts_with":"gemini-2.5-flash-native-audio-preview"}]},"prices":{"input_mtok":0.5,"output_mtok":2,"input_audio_mtok":3,"output_audio_mtok":12}},{"id":"gemini-pro","match":{"or":[{"equals":"gemini-pro"},{"equals":"gemini-1.0-pro"}]},"context_window":32768,"prices":{"input_mtok":0.125,"output_mtok":0.375}},{"id":"gemini-pro-1.5","match":{"equals":"gemini-pro-1.5"},"context_window":2000000,"prices":{"input_mtok":{"base":1.25,"tiers":[{"start":128000,"price":2.5}]},"cache_read_mtok":{"base":0.3125,"tiers":[{"start":128000,"price":0.625}]},"output_mtok":{"base":5,"tiers":[{"start":128000,"price":10}]}}}]},{"id":"groq","name":"Groq","pricing_urls":["https://groq.com/pricing/"],"api_pattern":"https://api\\.groq\\.com","extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"deepseek-r1-distill-llama-70b","match":{"equals":"deepseek-r1-distill-llama-70b"},"context_window":131072,"prices":{"input_mtok":0.75,"output_mtok":0.99}},{"id":"gemma-7b-it","match":{"equals":"gemma-7b-it"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"gemma2-9b-it","match":{"or":[{"equals":"gemma2-9b-it"},{"equals":"gemma2-9b"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama-3.1-405b-reasoning","match":{"equals":"llama-3.1-405b-reasoning"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama-3.1-70b-versatile","match":{"equals":"llama-3.1-70b-versatile"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama-3.1-8b-instant","match":{"equals":"llama-3.1-8b-instant"},"prices":{"input_mtok":0.05,"output_mtok":0.08}},{"id":"llama-3.2-11b-text-preview","match":{"equals":"llama-3.2-11b-text-preview"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"llama-3.2-11b-vision-preview","match":{"equals":"llama-3.2-11b-vision-preview"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"llama-3.2-1b-preview","match":{"equals":"llama-3.2-1b-preview"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"llama-3.2-3b-preview","match":{"equals":"llama-3.2-3b-preview"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"llama-3.2-90b-text-preview","match":{"equals":"llama-3.2-90b-text-preview"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"llama-3.2-90b-vision-preview","match":{"equals":"llama-3.2-90b-vision-preview"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"llama-3.3-70b-specdec","match":{"equals":"llama-3.3-70b-specdec"},"prices":{"input_mtok":0.59,"output_mtok":0.99}},{"id":"llama-3.3-70b-versatile","match":{"equals":"llama-3.3-70b-versatile"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama-guard-3-8b","match":{"equals":"llama-guard-3-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama2-70b-4096","match":{"equals":"llama2-70b-4096"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"llama3-70b-8192","match":{"equals":"llama3-70b-8192"},"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"llama3-8b-8192","match":{"equals":"llama3-8b-8192"},"prices":{"input_mtok":0.05,"output_mtok":0.08}},{"id":"llama3-groq-70b-8192-tool-use-preview","match":{"equals":"llama3-groq-70b-8192-tool-use-preview"},"prices":{"input_mtok":0.89,"output_mtok":0.89}},{"id":"llama3-groq-8b-8192-tool-use-preview","match":{"equals":"llama3-groq-8b-8192-tool-use-preview"},"prices":{"input_mtok":0.19,"output_mtok":0.19}},{"id":"meta-llama/llama-4-maverick-17b-128e-instruct","match":{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct"},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"meta-llama/llama-4-scout-17b-16e-instruct","match":{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},"prices":{"input_mtok":0.11,"output_mtok":0.34}},{"id":"meta-llama/llama-guard-4-12b","match":{"equals":"meta-llama/llama-guard-4-12b"},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistral-saba-24b","match":{"equals":"mistral-saba-24b"},"prices":{"input_mtok":0.79,"output_mtok":0.79}},{"id":"mixtral-8x7b-32768","match":{"equals":"mixtral-8x7b-32768"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"moonshotai/kimi-k2-instruct","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct"},{"equals":"moonshotai/kimi-k2-instruct-0905"}]},"context_window":131072,"prices":{"input_mtok":1,"cache_read_mtok":0.5,"output_mtok":3}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-safeguard-20b"}]},"context_window":131072,"prices":{"input_mtok":0.15,"cache_read_mtok":0.075,"output_mtok":0.6}},{"id":"openai/gpt-oss-20b","match":{"equals":"openai/gpt-oss-20b"},"context_window":131072,"prices":{"input_mtok":0.075,"cache_read_mtok":0.0375,"output_mtok":0.3}},{"id":"qwen/qwen3-32b","match":{"equals":"qwen/qwen3-32b"},"prices":{"input_mtok":0.29,"output_mtok":0.59}}]},{"id":"huggingface_cerebras","name":"HuggingFace (cerebras)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/cerebras","provider_match":{"and":[{"contains":"huggingface"},{"contains":"cerebras"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"meta-llama/Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}}]},{"id":"huggingface_fireworks-ai","name":"HuggingFace (fireworks-ai)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/fireworks-ai","provider_match":{"and":[{"contains":"huggingface"},{"contains":"fireworks-ai"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.2}}]},{"id":"huggingface_groq","name":"HuggingFace (groq)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/groq","provider_match":{"and":[{"contains":"huggingface"},{"contains":"groq"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.29,"output_mtok":0.59}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.59,"output_mtok":0.79}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","match":{"or":[{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},{"equals":"meta-llama/llama-4-scout-17b-16e-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.11,"output_mtok":0.34}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.75}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.5}}]},{"id":"huggingface_hyperbolic","name":"HuggingFace (hyperbolic)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/hyperbolic","provider_match":{"and":[{"contains":"huggingface"},{"contains":"hyperbolic"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-72b-instruct"},{"equals":"qwen/qwen2.5-vl-72b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"Qwen/Qwen2.5-VL-7B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-7b-instruct"},{"equals":"qwen/qwen2.5-vl-7b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-instruct"},{"equals":"qwen/qwen3-next-80b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-thinking"},{"equals":"qwen/qwen3-next-80b-a3b-thinking-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"deepseek-ai/DeepSeek-R1","match":{"or":[{"equals":"deepseek-ai/deepseek-r1"},{"equals":"deepseek-ai/deepseek-r1-fast"}]},"context_window":163840,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"deepseek-ai/DeepSeek-R1-0528","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":163840,"prices":{"input_mtok":3,"output_mtok":3}},{"id":"deepseek-ai/DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":163840,"prices":{"input_mtok":1.25,"output_mtok":1.25}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.4,"output_mtok":0.4}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.1}}]},{"id":"huggingface_nebius","name":"HuggingFace (nebius)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/nebius","provider_match":{"and":[{"contains":"huggingface"},{"contains":"nebius"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"NousResearch/Hermes-4-405B","match":{"or":[{"equals":"nousresearch/hermes-4-405b"},{"equals":"nousresearch/hermes-4-405b-fast"}]},"context_window":131072,"prices":{"input_mtok":1,"output_mtok":3}},{"id":"NousResearch/Hermes-4-70B","match":{"or":[{"equals":"nousresearch/hermes-4-70b"},{"equals":"nousresearch/hermes-4-70b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.13,"output_mtok":0.4}},{"id":"PrimeIntellect/INTELLECT-3-FP8","match":{"or":[{"equals":"primeintellect/intellect-3-fp8"},{"equals":"primeintellect/intellect-3-fp8-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"Qwen/Qwen2.5-Coder-7B","match":{"or":[{"equals":"qwen/qwen2.5-coder-7b"},{"equals":"qwen/qwen2.5-coder-7b-fast"}]},"context_window":32768,"prices":{"input_mtok":0.03,"output_mtok":0.09}},{"id":"Qwen/Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-72b-instruct"},{"equals":"qwen/qwen2.5-vl-72b-instruct-fast"}]},"context_window":32000,"prices":{"input_mtok":0.25,"output_mtok":0.75}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-thinking-2507"},{"equals":"qwen/qwen3-235b-a22b-thinking-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":0.8}},{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-30b-a3b-instruct-2507"},{"equals":"qwen/qwen3-30b-a3b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-30b-a3b-thinking-2507"},{"equals":"qwen/qwen3-30b-a3b-thinking-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-30b-a3b-instruct"},{"equals":"qwen/qwen3-coder-30b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.4,"output_mtok":1.8}},{"id":"deepseek-ai/DeepSeek-R1-0528","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":163840,"prices":{"input_mtok":0.8,"output_mtok":2.4}},{"id":"deepseek-ai/DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":32768,"prices":{"input_mtok":0.75,"output_mtok":2.25}},{"id":"google/gemma-2-2b-it","match":{"or":[{"equals":"google/gemma-2-2b-it"},{"equals":"google/gemma-2-2b-it-fast"}]},"context_window":8192,"prices":{"input_mtok":0.02,"output_mtok":0.06}},{"id":"google/gemma-2-9b-it","match":{"or":[{"equals":"google/gemma-2-9b-it"},{"equals":"google/gemma-2-9b-it-fast"}]},"context_window":8192,"prices":{"input_mtok":0.03,"output_mtok":0.09}},{"id":"google/gemma-3-27b-it","match":{"or":[{"equals":"google/gemma-3-27b-it"},{"equals":"google/gemma-3-27b-it-fast"}]},"context_window":110000,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"meta-llama/Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.03,"output_mtok":0.09}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.25,"output_mtok":0.75}},{"id":"moonshotai/Kimi-K2-Instruct","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct"},{"equals":"moonshotai/kimi-k2-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.5,"output_mtok":2.4}},{"id":"moonshotai/Kimi-K2-Thinking","match":{"or":[{"equals":"moonshotai/kimi-k2-thinking"},{"equals":"moonshotai/kimi-k2-thinking-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":2.5}},{"id":"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1","match":{"or":[{"equals":"nvidia/llama-3_1-nemotron-ultra-253b-v1"},{"equals":"nvidia/llama-3_1-nemotron-ultra-253b-v1-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.8}},{"id":"nvidia/NVIDIA-Nemotron-Nano-12B-v2","match":{"or":[{"equals":"nvidia/nvidia-nemotron-nano-12b-v2"},{"equals":"nvidia/nvidia-nemotron-nano-12b-v2-fast"}]},"context_window":131072,"prices":{"input_mtok":0.07,"output_mtok":0.2}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"zai-org/GLM-4.5","match":{"or":[{"equals":"zai-org/glm-4.5"},{"equals":"zai-org/glm-4.5-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.5-Air","match":{"or":[{"equals":"zai-org/glm-4.5-air"},{"equals":"zai-org/glm-4.5-air-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1.2}}]},{"id":"huggingface_novita","name":"HuggingFace (novita)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/novita","provider_match":{"and":[{"contains":"huggingface"},{"contains":"novita"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"MiniMaxAI/MiniMax-M1-80k","match":{"or":[{"equals":"minimaxai/minimax-m1-80k"},{"equals":"minimaxai/minimax-m1-80k-fast"}]},"context_window":1000000,"prices":{"input_mtok":0.55,"output_mtok":2.2}},{"id":"MiniMaxAI/MiniMax-M2","match":{"or":[{"equals":"minimaxai/minimax-m2"},{"equals":"minimaxai/minimax-m2-fast"},{"equals":"minimaxai/minimax-m2.1"},{"equals":"minimaxai/minimax-m2.1-fast"},{"equals":"minimaxai/minimax-m2.5"},{"equals":"minimaxai/minimax-m2.5-fast"}]},"context_window":204800,"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"NousResearch/Hermes-2-Pro-Llama-3-8B","match":{"or":[{"equals":"nousresearch/hermes-2-pro-llama-3-8b"},{"equals":"nousresearch/hermes-2-pro-llama-3-8b-fast"}]},"context_window":8192,"prices":{"input_mtok":0.14,"output_mtok":0.14}},{"id":"Qwen/Qwen2.5-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-72b-instruct"},{"equals":"qwen/qwen2.5-72b-instruct-fast"}]},"context_window":32000,"prices":{"input_mtok":0.38,"output_mtok":0.4}},{"id":"Qwen/Qwen3-235B-A22B","match":{"or":[{"equals":"qwen/qwen3-235b-a22b"},{"equals":"qwen/qwen3-235b-a22b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.2,"output_mtok":0.8}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":131072,"prices":{"input_mtok":0.09,"output_mtok":0.58}},{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-thinking-2507"},{"equals":"qwen/qwen3-235b-a22b-thinking-2507-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":3}},{"id":"Qwen/Qwen3-30B-A3B","match":{"or":[{"equals":"qwen/qwen3-30b-a3b"},{"equals":"qwen/qwen3-30b-a3b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.09,"output_mtok":0.45}},{"id":"Qwen/Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.1,"output_mtok":0.45}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":1.3}},{"id":"Qwen/Qwen3-Coder-Next","match":{"or":[{"equals":"qwen/qwen3-coder-next"},{"equals":"qwen/qwen3-coder-next-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":1.5}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-instruct"},{"equals":"qwen/qwen3-next-80b-a3b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":1.5}},{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-thinking"},{"equals":"qwen/qwen3-next-80b-a3b-thinking-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":1.5}},{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-235b-a22b-instruct"},{"equals":"qwen/qwen3-vl-235b-a22b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":1.5}},{"id":"Qwen/Qwen3-VL-235B-A22B-Thinking","match":{"or":[{"equals":"qwen/qwen3-vl-235b-a22b-thinking"},{"equals":"qwen/qwen3-vl-235b-a22b-thinking-fast"}]},"context_window":131072,"prices":{"input_mtok":0.98,"output_mtok":3.95}},{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-30b-a3b-instruct"},{"equals":"qwen/qwen3-vl-30b-a3b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":0.7}},{"id":"Qwen/Qwen3-VL-30B-A3B-Thinking","match":{"or":[{"equals":"qwen/qwen3-vl-30b-a3b-thinking"},{"equals":"qwen/qwen3-vl-30b-a3b-thinking-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1}},{"id":"Qwen/Qwen3-VL-8B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-8b-instruct"},{"equals":"qwen/qwen3-vl-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.08,"output_mtok":0.5}},{"id":"Qwen/Qwen3.5-122B-A10B","match":{"or":[{"equals":"qwen/qwen3.5-122b-a10b"},{"equals":"qwen/qwen3.5-122b-a10b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.4,"output_mtok":3.2}},{"id":"Qwen/Qwen3.5-27B","match":{"or":[{"equals":"qwen/qwen3.5-27b"},{"equals":"qwen/qwen3.5-27b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.3,"output_mtok":2.4}},{"id":"Qwen/Qwen3.5-35B-A3B","match":{"or":[{"equals":"qwen/qwen3.5-35b-a3b"},{"equals":"qwen/qwen3.5-35b-a3b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.25,"output_mtok":2}},{"id":"Qwen/Qwen3.5-397B-A17B","match":{"or":[{"equals":"qwen/qwen3.5-397b-a17b"},{"equals":"qwen/qwen3.5-397b-a17b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":3.6}},{"id":"Sao10K/L3-70B-Euryale-v2.1","match":{"or":[{"equals":"sao10k/l3-70b-euryale-v2.1"},{"equals":"sao10k/l3-70b-euryale-v2.1-fast"}]},"context_window":8192,"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"Sao10K/L3-8B-Lunaris-v1","match":{"or":[{"equals":"sao10k/l3-8b-lunaris-v1"},{"equals":"sao10k/l3-8b-lunaris-v1-fast"}]},"context_window":8192,"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"Sao10K/L3-8B-Stheno-v3.2","match":{"or":[{"equals":"sao10k/l3-8b-stheno-v3.2"},{"equals":"sao10k/l3-8b-stheno-v3.2-fast"}]},"context_window":8192,"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"XiaomiMiMo/MiMo-V2-Flash","match":{"or":[{"equals":"xiaomimimo/mimo-v2-flash"},{"equals":"xiaomimimo/mimo-v2-flash-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"alpindale/WizardLM-2-8x22B","match":{"or":[{"equals":"alpindale/wizardlm-2-8x22b"},{"equals":"alpindale/wizardlm-2-8x22b-fast"}]},"context_window":65535,"prices":{"input_mtok":0.62,"output_mtok":0.62}},{"id":"baidu/ERNIE-4.5-21B-A3B-PT","match":{"or":[{"equals":"baidu/ernie-4.5-21b-a3b-pt"},{"equals":"baidu/ernie-4.5-21b-a3b-pt-fast"}]},"context_window":120000,"prices":{"input_mtok":0.07,"output_mtok":0.28}},{"id":"baidu/ERNIE-4.5-300B-A47B-Base-PT","match":{"or":[{"equals":"baidu/ernie-4.5-300b-a47b-base-pt"},{"equals":"baidu/ernie-4.5-300b-a47b-base-pt-fast"}]},"context_window":123000,"prices":{"input_mtok":0.28,"output_mtok":1.1}},{"id":"baidu/ERNIE-4.5-VL-28B-A3B-PT","match":{"or":[{"equals":"baidu/ernie-4.5-vl-28b-a3b-pt"},{"equals":"baidu/ernie-4.5-vl-28b-a3b-pt-fast"}]},"context_window":30000,"prices":{"input_mtok":0.14,"output_mtok":0.56}},{"id":"baidu/ERNIE-4.5-VL-424B-A47B-Base-PT","match":{"or":[{"equals":"baidu/ernie-4.5-vl-424b-a47b-base-pt"},{"equals":"baidu/ernie-4.5-vl-424b-a47b-base-pt-fast"}]},"context_window":123000,"prices":{"input_mtok":0.42,"output_mtok":1.25}},{"id":"deepseek-ai/DeepSeek-Prover-V2-671B","match":{"or":[{"equals":"deepseek-ai/deepseek-prover-v2-671b"},{"equals":"deepseek-ai/deepseek-prover-v2-671b-fast"}]},"context_window":160000,"prices":{"input_mtok":0.7,"output_mtok":2.5}},{"id":"deepseek-ai/DeepSeek-R1","match":{"or":[{"equals":"deepseek-ai/deepseek-r1"},{"equals":"deepseek-ai/deepseek-r1-fast"},{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":64000,"prices":{"input_mtok":0.7,"output_mtok":2.5}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b-fast"}]},"context_window":8192,"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"deepseek-ai/DeepSeek-V3","match":{"or":[{"equals":"deepseek-ai/deepseek-v3"},{"equals":"deepseek-ai/deepseek-v3-fast"}]},"context_window":64000,"prices":{"input_mtok":0.4,"output_mtok":1.3}},{"id":"deepseek-ai/DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":163840,"prices":{"input_mtok":0.27,"output_mtok":1.12}},{"id":"deepseek-ai/DeepSeek-V3.1","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.1"},{"equals":"deepseek-ai/deepseek-v3.1-fast"},{"equals":"deepseek-ai/deepseek-v3.1-terminus"},{"equals":"deepseek-ai/deepseek-v3.1-terminus-fast"}]},"context_window":131072,"prices":{"input_mtok":0.27,"output_mtok":1}},{"id":"deepseek-ai/DeepSeek-V3.2","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.2"},{"equals":"deepseek-ai/deepseek-v3.2-fast"}]},"context_window":163840,"prices":{"input_mtok":0.269,"output_mtok":0.4}},{"id":"deepseek-ai/DeepSeek-V3.2-Exp","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.2-exp"},{"equals":"deepseek-ai/deepseek-v3.2-exp-fast"}]},"context_window":163840,"prices":{"input_mtok":0.27,"output_mtok":0.41}},{"id":"meta-llama/Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":16384,"prices":{"input_mtok":0.02,"output_mtok":0.05}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.135,"output_mtok":0.4}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","match":{"or":[{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8"},{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8-fast"}]},"context_window":1048576,"prices":{"input_mtok":0.27,"output_mtok":0.85}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","match":{"or":[{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},{"equals":"meta-llama/llama-4-scout-17b-16e-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.18,"output_mtok":0.59}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct","match":{"or":[{"equals":"meta-llama/meta-llama-3-70b-instruct"},{"equals":"meta-llama/meta-llama-3-70b-instruct-fast"}]},"context_window":8192,"prices":{"input_mtok":0.51,"output_mtok":0.74}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct","match":{"or":[{"equals":"meta-llama/meta-llama-3-8b-instruct"},{"equals":"meta-llama/meta-llama-3-8b-instruct-fast"}]},"context_window":8192,"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"moonshotai/Kimi-K2-Instruct","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct"},{"equals":"moonshotai/kimi-k2-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.57,"output_mtok":2.3}},{"id":"moonshotai/Kimi-K2-Instruct-0905","match":{"or":[{"equals":"moonshotai/kimi-k2-instruct-0905"},{"equals":"moonshotai/kimi-k2-instruct-0905-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":2.5}},{"id":"moonshotai/Kimi-K2-Thinking","match":{"or":[{"equals":"moonshotai/kimi-k2-thinking"},{"equals":"moonshotai/kimi-k2-thinking-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":2.5}},{"id":"moonshotai/Kimi-K2.5","match":{"or":[{"equals":"moonshotai/kimi-k2.5"},{"equals":"moonshotai/kimi-k2.5-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":3}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.25}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.04,"output_mtok":0.15}},{"id":"zai-org/AutoGLM-Phone-9B-Multilingual","match":{"or":[{"equals":"zai-org/autoglm-phone-9b-multilingual"},{"equals":"zai-org/autoglm-phone-9b-multilingual-fast"}]},"context_window":65536,"prices":{"input_mtok":0.035,"output_mtok":0.138}},{"id":"zai-org/GLM-4-32B-0414","match":{"or":[{"equals":"zai-org/glm-4-32b-0414"},{"equals":"zai-org/glm-4-32b-0414-fast"}]},"context_window":32000,"prices":{"input_mtok":0.55,"output_mtok":1.66}},{"id":"zai-org/GLM-4.5","match":{"or":[{"equals":"zai-org/glm-4.5"},{"equals":"zai-org/glm-4.5-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.5-Air","match":{"or":[{"equals":"zai-org/glm-4.5-air"},{"equals":"zai-org/glm-4.5-air-fast"}]},"context_window":131072,"prices":{"input_mtok":0.13,"output_mtok":0.85}},{"id":"zai-org/GLM-4.5V","match":{"or":[{"equals":"zai-org/glm-4.5v"},{"equals":"zai-org/glm-4.5v-fast"}]},"context_window":65536,"prices":{"input_mtok":0.6,"output_mtok":1.8}},{"id":"zai-org/GLM-4.6","match":{"or":[{"equals":"zai-org/glm-4.6"},{"equals":"zai-org/glm-4.6-fast"}]},"context_window":204800,"prices":{"input_mtok":0.55,"output_mtok":2.2}},{"id":"zai-org/GLM-4.6V-Flash","match":{"or":[{"equals":"zai-org/glm-4.6v-flash"},{"equals":"zai-org/glm-4.6v-flash-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"zai-org/GLM-4.7","match":{"or":[{"equals":"zai-org/glm-4.7"},{"equals":"zai-org/glm-4.7-fast"}]},"context_window":204800,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.7-Flash","match":{"or":[{"equals":"zai-org/glm-4.7-flash"},{"equals":"zai-org/glm-4.7-flash-fast"}]},"context_window":200000,"prices":{"input_mtok":0.07,"output_mtok":0.4}},{"id":"zai-org/GLM-5","match":{"or":[{"equals":"zai-org/glm-5"},{"equals":"zai-org/glm-5-fast"}]},"context_window":202800,"prices":{"input_mtok":1,"output_mtok":3.2}}]},{"id":"huggingface_nscale","name":"HuggingFace (nscale)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/nscale","provider_match":{"and":[{"contains":"huggingface"},{"contains":"nscale"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/QwQ-32B","match":{"or":[{"equals":"qwen/qwq-32b"},{"equals":"qwen/qwq-32b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.18,"output_mtok":0.2}},{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-coder-32b-instruct"},{"equals":"qwen/qwen2.5-coder-32b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.06,"output_mtok":0.2}},{"id":"Qwen/Qwen2.5-Coder-3B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-coder-3b-instruct"},{"equals":"qwen/qwen2.5-coder-3b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen2.5-Coder-7B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-coder-7b-instruct"},{"equals":"qwen/qwen2.5-coder-7b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen3-14B","match":{"or":[{"equals":"qwen/qwen3-14b"},{"equals":"qwen/qwen3-14b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.07,"output_mtok":0.2}},{"id":"Qwen/Qwen3-235B-A22B","match":{"or":[{"equals":"qwen/qwen3-235b-a22b"},{"equals":"qwen/qwen3-235b-a22b-fast"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":32000,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"Qwen/Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.08,"output_mtok":0.25}},{"id":"Qwen/Qwen3-4B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-4b-instruct-2507"},{"equals":"qwen/qwen3-4b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen3-4B-Thinking-2507","match":{"or":[{"equals":"qwen/qwen3-4b-thinking-2507"},{"equals":"qwen/qwen3-4b-thinking-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.01,"output_mtok":0.03}},{"id":"Qwen/Qwen3-8B","match":{"or":[{"equals":"qwen/qwen3-8b"},{"equals":"qwen/qwen3-8b-fast"}]},"context_window":40960,"prices":{"input_mtok":0.07,"output_mtok":0.18}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.75,"output_mtok":0.75}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-8B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-8b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-8b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-qwen-1.5b"},{"equals":"deepseek-ai/deepseek-r1-distill-qwen-1.5b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-qwen-32b"},{"equals":"deepseek-ai/deepseek-r1-distill-qwen-32b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-qwen-7b"},{"equals":"deepseek-ai/deepseek-r1-distill-qwen-7b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"meta-llama/Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.4,"output_mtok":0.4}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","match":{"or":[{"equals":"meta-llama/llama-4-scout-17b-16e-instruct"},{"equals":"meta-llama/llama-4-scout-17b-16e-instruct-fast"}]},"context_window":890000,"prices":{"input_mtok":0.09,"output_mtok":0.29}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.2}}]},{"id":"huggingface_ovhcloud","name":"HuggingFace (ovhcloud)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/ovhcloud","provider_match":{"and":[{"contains":"huggingface"},{"contains":"ovhcloud"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-vl-72b-instruct"},{"equals":"qwen/qwen2.5-vl-72b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":1.01,"output_mtok":1.01}},{"id":"Qwen/Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":32768,"prices":{"input_mtok":0.09,"output_mtok":0.25}},{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-30b-a3b-instruct"},{"equals":"qwen/qwen3-coder-30b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.07,"output_mtok":0.26}},{"id":"meta-llama/Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.11,"output_mtok":0.11}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.74,"output_mtok":0.74}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.09,"output_mtok":0.47}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.18}}]},{"id":"huggingface_publicai","name":"HuggingFace (publicai)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/publicai","provider_match":{"and":[{"contains":"huggingface"},{"contains":"publicai"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"aisingapore/Gemma-SEA-LION-v4-27B-IT","match":{"or":[{"equals":"aisingapore/gemma-sea-lion-v4-27b-it"},{"equals":"aisingapore/gemma-sea-lion-v4-27b-it-fast"}]},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"aisingapore/Qwen-SEA-LION-v4-32B-IT","match":{"or":[{"equals":"aisingapore/qwen-sea-lion-v4-32b-it"},{"equals":"aisingapore/qwen-sea-lion-v4-32b-it-fast"}]},"prices":{"input_mtok":0.25,"output_mtok":0.5}},{"id":"allenai/Olmo-3-7B-Instruct","match":{"or":[{"equals":"allenai/olmo-3-7b-instruct"},{"equals":"allenai/olmo-3-7b-instruct-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"allenai/Olmo-3.1-32B-Instruct","match":{"or":[{"equals":"allenai/olmo-3.1-32b-instruct"},{"equals":"allenai/olmo-3.1-32b-instruct-fast"}]},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"dicta-il/DictaLM-3.0-24B-Thinking","match":{"or":[{"equals":"dicta-il/dictalm-3.0-24b-thinking"},{"equals":"dicta-il/dictalm-3.0-24b-thinking-fast"}]},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"swiss-ai/Apertus-70B-Instruct-2509","match":{"or":[{"equals":"swiss-ai/apertus-70b-instruct-2509"},{"equals":"swiss-ai/apertus-70b-instruct-2509-fast"}]},"prices":{"input_mtok":0.82,"output_mtok":2.92}},{"id":"swiss-ai/Apertus-8B-Instruct-2509","match":{"or":[{"equals":"swiss-ai/apertus-8b-instruct-2509"},{"equals":"swiss-ai/apertus-8b-instruct-2509-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"utter-project/EuroLLM-22B-Instruct-2512","match":{"or":[{"equals":"utter-project/eurollm-22b-instruct-2512"},{"equals":"utter-project/eurollm-22b-instruct-2512-fast"}]},"prices":{"input_mtok":0.1,"output_mtok":0.2}}]},{"id":"huggingface_sambanova","name":"HuggingFace (sambanova)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/sambanova","provider_match":{"and":[{"contains":"huggingface"},{"contains":"sambanova"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"Qwen/Qwen3-32B","match":{"or":[{"equals":"qwen/qwen3-32b"},{"equals":"qwen/qwen3-32b-fast"}]},"context_window":32768,"prices":{"input_mtok":0.4,"output_mtok":0.8}},{"id":"deepseek-ai/DeepSeek-R1-0528","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":131072,"prices":{"input_mtok":5,"output_mtok":7}},{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b"},{"equals":"deepseek-ai/deepseek-r1-distill-llama-70b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.7,"output_mtok":1.4}},{"id":"deepseek-ai/DeepSeek-V3-0324","match":{"or":[{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":131072,"prices":{"input_mtok":3,"output_mtok":4.5}},{"id":"meta-llama/Llama-3.1-8B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-fast"}]},"context_window":16384,"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.2}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.22,"output_mtok":0.59}},{"id":"tokyotech-llm/Llama-3.3-Swallow-70B-Instruct-v0.4","match":{"or":[{"equals":"tokyotech-llm/llama-3.3-swallow-70b-instruct-v0.4"},{"equals":"tokyotech-llm/llama-3.3-swallow-70b-instruct-v0.4-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.2}}]},{"id":"huggingface_together","name":"HuggingFace (together)","pricing_urls":["https://router.huggingface.co/v1/models","https://huggingface.co/inference/models"],"api_pattern":"https://router\\.huggingface\\.co/together","provider_match":{"and":[{"contains":"huggingface"},{"contains":"together"}]},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"EssentialAI/rnj-1-instruct","match":{"or":[{"equals":"essentialai/rnj-1-instruct"},{"equals":"essentialai/rnj-1-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"Qwen/Qwen2.5-7B-Instruct","match":{"or":[{"equals":"qwen/qwen2.5-7b-instruct"},{"equals":"qwen/qwen2.5-7b-instruct-fast"}]},"context_window":32768,"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","match":{"or":[{"equals":"qwen/qwen3-235b-a22b-instruct-2507"},{"equals":"qwen/qwen3-235b-a22b-instruct-2507-fast"}]},"context_window":262144,"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","match":{"or":[{"equals":"qwen/qwen3-coder-480b-a35b-instruct"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fast"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fp8"},{"equals":"qwen/qwen3-coder-480b-a35b-instruct-fp8-fast"}]},"context_window":262144,"prices":{"input_mtok":2,"output_mtok":2}},{"id":"Qwen/Qwen3-Coder-Next-FP8","match":{"or":[{"equals":"qwen/qwen3-coder-next-fp8"},{"equals":"qwen/qwen3-coder-next-fp8-fast"}]},"context_window":262144,"prices":{"input_mtok":0.5,"output_mtok":1.2}},{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","match":{"or":[{"equals":"qwen/qwen3-next-80b-a3b-instruct"},{"equals":"qwen/qwen3-next-80b-a3b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.15,"output_mtok":1.5}},{"id":"Qwen/Qwen3-VL-8B-Instruct","match":{"or":[{"equals":"qwen/qwen3-vl-8b-instruct"},{"equals":"qwen/qwen3-vl-8b-instruct-fast"}]},"context_window":262144,"prices":{"input_mtok":0.18000000000000002,"output_mtok":0.68}},{"id":"Qwen/Qwen3.5-397B-A17B","match":{"or":[{"equals":"qwen/qwen3.5-397b-a17b"},{"equals":"qwen/qwen3.5-397b-a17b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.6,"output_mtok":3.6}},{"id":"Qwen/Qwen3.5-9B","match":{"or":[{"equals":"qwen/qwen3.5-9b"},{"equals":"qwen/qwen3.5-9b-fast"}]},"context_window":262144,"prices":{"input_mtok":0.1,"output_mtok":0.15}},{"id":"deepcogito/cogito-671b-v2.1","match":{"or":[{"equals":"deepcogito/cogito-671b-v2.1"},{"equals":"deepcogito/cogito-671b-v2.1-fast"},{"equals":"deepcogito/cogito-671b-v2.1-fp8"},{"equals":"deepcogito/cogito-671b-v2.1-fp8-fast"}]},"context_window":163840,"prices":{"input_mtok":1.25,"output_mtok":1.25}},{"id":"deepseek-ai/DeepSeek-R1","match":{"or":[{"equals":"deepseek-ai/deepseek-r1"},{"equals":"deepseek-ai/deepseek-r1-fast"},{"equals":"deepseek-ai/deepseek-r1-0528"},{"equals":"deepseek-ai/deepseek-r1-0528-fast"}]},"context_window":163840,"prices":{"input_mtok":3,"output_mtok":7}},{"id":"deepseek-ai/DeepSeek-V3","match":{"or":[{"equals":"deepseek-ai/deepseek-v3"},{"equals":"deepseek-ai/deepseek-v3-fast"},{"equals":"deepseek-ai/deepseek-v3-0324"},{"equals":"deepseek-ai/deepseek-v3-0324-fast"}]},"context_window":131072,"prices":{"input_mtok":1.25,"output_mtok":1.25}},{"id":"deepseek-ai/DeepSeek-V3.1","match":{"or":[{"equals":"deepseek-ai/deepseek-v3.1"},{"equals":"deepseek-ai/deepseek-v3.1-fast"}]},"context_window":131072,"prices":{"input_mtok":0.6,"output_mtok":1.7}},{"id":"google/gemma-3n-E4B-it","match":{"or":[{"equals":"google/gemma-3n-e4b-it"},{"equals":"google/gemma-3n-e4b-it-fast"}]},"context_window":32768,"prices":{"input_mtok":0.02,"output_mtok":0.04}},{"id":"meta-llama/Llama-3.3-70B-Instruct","match":{"or":[{"equals":"meta-llama/llama-3.3-70b-instruct"},{"equals":"meta-llama/llama-3.3-70b-instruct-fast"}]},"context_window":131072,"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","match":{"or":[{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8"},{"equals":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8-fast"}]},"context_window":1048576,"prices":{"input_mtok":0.27,"output_mtok":0.85}},{"id":"moonshotai/Kimi-K2.5","match":{"or":[{"equals":"moonshotai/kimi-k2.5"},{"equals":"moonshotai/kimi-k2.5-fast"}]},"context_window":262144,"prices":{"input_mtok":0.5,"output_mtok":2.8}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai/gpt-oss-20b","match":{"or":[{"equals":"openai/gpt-oss-20b"},{"equals":"openai/gpt-oss-20b-fast"}]},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.2}},{"id":"zai-org/GLM-4.5-Air-FP8","match":{"or":[{"equals":"zai-org/glm-4.5-air-fp8"},{"equals":"zai-org/glm-4.5-air-fp8-fast"}]},"context_window":131072,"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"zai-org/GLM-4.6","match":{"or":[{"equals":"zai-org/glm-4.6"},{"equals":"zai-org/glm-4.6-fast"}]},"context_window":202752,"prices":{"input_mtok":0.6,"output_mtok":2.2}},{"id":"zai-org/GLM-4.7-FP8","match":{"or":[{"equals":"zai-org/glm-4.7-fp8"},{"equals":"zai-org/glm-4.7-fp8-fast"}]},"context_window":202752,"prices":{"input_mtok":0.45,"output_mtok":2}},{"id":"zai-org/GLM-5","match":{"or":[{"equals":"zai-org/glm-5"},{"equals":"zai-org/glm-5-fast"}]},"context_window":202752,"prices":{"input_mtok":1,"output_mtok":3.2}}]},{"id":"mistral","name":"Mistral","pricing_urls":["https://mistral.ai/pricing#api-pricing"],"api_pattern":"https://api\\.mistral\\.ai","model_match":{"regex":"(?:mi|code|dev|magi|mini)stral"},"provider_match":{"starts_with":"mistral"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"codestral","match":{"or":[{"equals":"codestral-latest"},{"equals":"codestral-2501"}]},"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"devstral-small","match":{"equals":"devstral-small"},"prices":{"input_mtok":0.06,"output_mtok":0.12}},{"id":"magistral-medium","match":{"or":[{"starts_with":"magistral-medium"}]},"prices":{"input_mtok":2,"output_mtok":5}},{"id":"magistral-small","match":{"starts_with":"magistral-small-"},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"ministral-3b","match":{"equals":"ministral-3b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"ministral-8b","match":{"starts_with":"ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":1}},{"id":"mistral-7b","match":{"or":[{"equals":"mistral-7b"},{"equals":"open-mistral-7b"}]},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistral-embed","match":{"equals":"mistral-embed"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistral-large","match":{"or":[{"equals":"mistral-large"},{"equals":"mistral-large-latest"},{"equals":"mistral-large-2407"},{"equals":"mistral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mistral-medium-3","match":{"starts_with":"mistral-medium"},"prices":{"input_mtok":0.4,"output_mtok":2}},{"id":"mistral-nemo","match":{"or":[{"equals":"mistral-nemo"},{"equals":"open-mistral-nemo"}]},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"mistral-saba","match":{"or":[{"equals":"mistral-saba"},{"equals":"mistral-saba-latest"}]},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistral-small-24b-instruct-2501","match":{"equals":"mistral-small-24b-instruct-2501"},"prices":{"input_mtok":0.05,"output_mtok":0.08}},{"id":"mistral-small-latest","match":{"equals":"mistral-small-latest"},"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"mistral-tiny","match":{"equals":"mistral-tiny"},"prices":{"input_mtok":0.25,"output_mtok":0.25},"deprecated":true},{"id":"mixtral-8x22b-instruct","match":{"equals":"mixtral-8x22b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mixtral-8x7b","match":{"or":[{"starts_with":"mixtral-8x7b"},{"equals":"open-mixtral-8x7b"}]},"prices":{"input_mtok":0.7,"output_mtok":0.7}},{"id":"pixtral-12b","match":{"or":[{"equals":"pixtral-12b"},{"equals":"pixtral-12b-latest"}]},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"pixtral-large","match":{"or":[{"equals":"pixtral-large-latest"},{"equals":"pixtral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}}]},{"id":"moonshotai","name":"MoonshotAi","pricing_urls":["https://platform.moonshot.ai/docs/pricing/chat#product-pricing"],"api_pattern":"https://api\\.moonshot\\.","model_match":{"or":[{"starts_with":"kimi"},{"starts_with":"moonshot"}]},"provider_match":{"contains":"moonshot"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"kimi-k2-0711-preview","match":{"equals":"kimi-k2-0711-preview"},"context_window":131072,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":2.5}},{"id":"kimi-k2-0905-preview","match":{"equals":"kimi-k2-0905-preview"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":2.5}},{"id":"kimi-k2-thinking","match":{"equals":"kimi-k2-thinking"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":2.5}},{"id":"kimi-k2-thinking-turbo","match":{"equals":"kimi-k2-thinking-turbo"},"context_window":262144,"prices":{"input_mtok":1.15,"cache_read_mtok":0.15,"output_mtok":8}},{"id":"kimi-k2-turbo-preview","match":{"starts_with":"kimi-k2-turbo"},"context_window":262144,"prices":{"input_mtok":1.15,"cache_read_mtok":0.15,"output_mtok":8}},{"id":"kimi-k2.5","match":{"starts_with":"kimi-k2.5"},"context_window":262144,"prices":{"input_mtok":0.6,"cache_read_mtok":0.1,"output_mtok":3}},{"id":"moonshot-v1-128k","match":{"or":[{"equals":"moonshot-v1-128k"},{"equals":"moonshot-v1-128k-vision-preview"}]},"context_window":131072,"prices":{"input_mtok":2,"output_mtok":5}},{"id":"moonshot-v1-32k","match":{"or":[{"equals":"moonshot-v1-32k"},{"equals":"moonshot-v1-32k-vision-preview"}]},"context_window":32768,"prices":{"input_mtok":1,"output_mtok":3}},{"id":"moonshot-v1-8k","match":{"or":[{"equals":"moonshot-v1-8k"},{"equals":"moonshot-v1-8k-vision-preview"}]},"context_window":8192,"prices":{"input_mtok":0.2,"output_mtok":2}}]},{"id":"novita","name":"Novita","pricing_urls":["https://novita.ai/pricing"],"api_pattern":"https://api\\.novita\\.ai","models":[{"id":"Sao10K/L3-8B-Stheno-v3.2","match":{"equals":"Sao10K/L3-8B-Stheno-v3.2"},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"cognitivecomputations/dolphin-mixtral-8x22b","match":{"equals":"cognitivecomputations/dolphin-mixtral-8x22b"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"deepseek/deepseek-r1","match":{"equals":"deepseek/deepseek-r1"},"prices":{"input_mtok":4,"output_mtok":4}},{"id":"deepseek/deepseek-r1-distill-llama-70b","match":{"equals":"deepseek/deepseek-r1-distill-llama-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"deepseek/deepseek-r1-distill-llama-8b","match":{"equals":"deepseek/deepseek-r1-distill-llama-8b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"deepseek/deepseek-r1-distill-qwen-14b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-14b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"deepseek/deepseek-r1-distill-qwen-32b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-32b"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"deepseek/deepseek_v3","match":{"equals":"deepseek/deepseek_v3"},"prices":{"input_mtok":0.89,"output_mtok":0.89}},{"id":"google/gemma-2-9b-it","match":{"equals":"google/gemma-2-9b-it"},"prices":{"input_mtok":0.08,"output_mtok":0.08}},{"id":"gryphe/mythomax-l2-13b","match":{"equals":"gryphe/mythomax-l2-13b"},"prices":{"input_mtok":0.09,"output_mtok":0.09}},{"id":"jondurbin/airoboros-l2-70b","match":{"equals":"jondurbin/airoboros-l2-70b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"meta-llama/llama-3-70b-instruct","match":{"equals":"meta-llama/llama-3-70b-instruct"},"prices":{"input_mtok":0.51,"output_mtok":0.74}},{"id":"meta-llama/llama-3-8b-instruct","match":{"equals":"meta-llama/llama-3-8b-instruct"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"meta-llama/llama-3.1-70b-instruct","match":{"equals":"meta-llama/llama-3.1-70b-instruct"},"prices":{"input_mtok":0.34,"output_mtok":0.39}},{"id":"meta-llama/llama-3.1-8b-instruct","match":{"or":[{"equals":"meta-llama/llama-3.1-8b-instruct"},{"equals":"meta-llama/llama-3.1-8b-instruct-max"}]},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"meta-llama/llama-3.1-8b-instruct-bf16","match":{"equals":"meta-llama/llama-3.1-8b-instruct-bf16"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"meta-llama/llama-3.2-11b-vision-instruct","match":{"equals":"meta-llama/llama-3.2-11b-vision-instruct"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"meta-llama/llama-3.2-1b-instruct","match":{"equals":"meta-llama/llama-3.2-1b-instruct"},"prices":{"input_mtok":0.02,"output_mtok":0.02}},{"id":"meta-llama/llama-3.2-3b-instruct","match":{"equals":"meta-llama/llama-3.2-3b-instruct"},"prices":{"input_mtok":0.03,"output_mtok":0.05}},{"id":"meta-llama/llama-3.3-70b-instruct","match":{"equals":"meta-llama/llama-3.3-70b-instruct"},"prices":{"input_mtok":0.39,"output_mtok":0.39}},{"id":"microsoft/wizardlm-2-8x22b","match":{"equals":"microsoft/wizardlm-2-8x22b"},"prices":{"input_mtok":0.62,"output_mtok":0.62}},{"id":"mistralai/mistral-7b-instruct","match":{"equals":"mistralai/mistral-7b-instruct"},"prices":{"input_mtok":0.059,"output_mtok":0.059}},{"id":"mistralai/mistral-nemo","match":{"equals":"mistralai/mistral-nemo"},"prices":{"input_mtok":0.17,"output_mtok":0.17}},{"id":"nousresearch/hermes-2-pro-llama-3-8b","match":{"equals":"nousresearch/hermes-2-pro-llama-3-8b"},"prices":{"input_mtok":0.14,"output_mtok":0.14}},{"id":"nousresearch/nous-hermes-llama2-13b","match":{"equals":"nousresearch/nous-hermes-llama2-13b"},"prices":{"input_mtok":0.17,"output_mtok":0.17}},{"id":"openchat/openchat-7b","match":{"equals":"openchat/openchat-7b"},"prices":{"input_mtok":0.06,"output_mtok":0.06}},{"id":"qwen/qwen-2-7b-instruct","match":{"equals":"qwen/qwen-2-7b-instruct"},"prices":{"input_mtok":0.054,"output_mtok":0.054}},{"id":"qwen/qwen-2-vl-72b-instruct","match":{"equals":"qwen/qwen-2-vl-72b-instruct"},"prices":{"input_mtok":0.45,"output_mtok":0.45}},{"id":"qwen/qwen-2.5-72b-instruct","match":{"equals":"qwen/qwen-2.5-72b-instruct"},"prices":{"input_mtok":0.38,"output_mtok":0.4}},{"id":"sao10k/l3-70b-euryale-v2.1","match":{"equals":"sao10k/l3-70b-euryale-v2.1"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"sao10k/l3-8b-lunaris","match":{"equals":"sao10k/l3-8b-lunaris"},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"sao10k/l31-70b-euryale-v2.2","match":{"equals":"sao10k/l31-70b-euryale-v2.2"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"sophosympatheia/midnight-rose-70b","match":{"equals":"sophosympatheia/midnight-rose-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"teknium/openhermes-2.5-mistral-7b","match":{"equals":"teknium/openhermes-2.5-mistral-7b"},"prices":{"input_mtok":0.17,"output_mtok":0.17}}]},{"id":"openai","name":"OpenAI","pricing_urls":["https://platform.openai.com/docs/pricing","https://openai.com/api/pricing/","https://platform.openai.com/docs/models","https://help.openai.com/en/articles/7127956-how-much-does-gpt-4-cost"],"api_pattern":"https://api\\.openai\\.com","model_match":{"or":[{"starts_with":"gpt-"},{"regex":"^o[134]"}]},"provider_match":{"contains":"openai"},"extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"responses","root":"usage","model_path":"model","mappings":[{"path":"input_tokens","dest":"input_tokens","required":true},{"path":["input_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":"output_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"embeddings","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true}]}],"models":[{"id":"ada","match":{"or":[{"equals":"ada"},{"equals":"text-ada-001"}]},"prices":{"input_mtok":0.4,"output_mtok":0.4}},{"id":"babbage","match":{"equals":"babbage"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"chatgpt-4o-latest","match":{"equals":"chatgpt-4o-latest"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"codex-mini","match":{"or":[{"equals":"codex-mini"},{"equals":"codex-mini-latest"}]},"prices":{"input_mtok":1.5,"cache_read_mtok":0.375,"output_mtok":6}},{"id":"computer-use","match":{"starts_with":"computer-use"},"prices":{"input_mtok":3,"output_mtok":12}},{"id":"curie","match":{"or":[{"equals":"curie"},{"equals":"text-curie-001"}]},"prices":{"input_mtok":2,"output_mtok":2}},{"id":"davinci","match":{"or":[{"equals":"davinci"},{"equals":"text-davinci-001"}]},"prices":{"input_mtok":20,"output_mtok":20}},{"id":"ft:gpt-3.5-turbo-","match":{"starts_with":"ft:gpt-3.5-turbo"},"prices":{"input_mtok":3,"output_mtok":6}},{"id":"ft:gpt-4o","match":{"starts_with":"ft:gpt-4o-2024-"},"prices":{"input_mtok":3.75,"output_mtok":15}},{"id":"ft:gpt-4o-mini","match":{"starts_with":"ft:gpt-4o-mini-2024-"},"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"gpt-3.5-0301","match":{"or":[{"equals":"gpt-3.5-turbo-0301"},{"equals":"gpt-3.5-0301"}]},"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-3.5-turbo","match":{"or":[{"equals":"gpt-3.5-turbo"},{"equals":"gpt-35-turbo"},{"equals":"gpt-3.5-turbo-0125"}]},"context_window":16385,"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"gpt-3.5-turbo-0613","match":{"equals":"gpt-3.5-turbo-0613"},"context_window":16385,"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-3.5-turbo-1106","match":{"equals":"gpt-3.5-turbo-1106"},"context_window":16385,"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo-16k","match":{"or":[{"equals":"gpt-3.5-turbo-16k"},{"equals":"gpt-3.5-turbo-16k-0613"},{"equals":"gpt-35-turbo-16k-0613"},{"equals":"gpt-35-turbo-16k"}]},"context_window":16385,"prices":{"input_mtok":3,"output_mtok":4}},{"id":"gpt-3.5-turbo-instruct","match":{"or":[{"starts_with":"gpt-3.5-turbo-instruct"},{"equals":"gpt-3.5-turbo-instruct-0914"}]},"context_window":16385,"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-4","match":{"or":[{"equals":"gpt-4"},{"equals":"gpt-4-0314"},{"equals":"gpt-4-0613"},{"starts_with":"ft:gpt-4-0"}]},"context_window":8192,"prices":{"input_mtok":30,"output_mtok":60}},{"id":"gpt-4-32k","match":{"or":[{"equals":"gpt-4-32k"},{"equals":"gpt-4-32k-0314"},{"equals":"gpt-4-32k-0613"}]},"context_window":32000,"prices":{"input_mtok":60,"output_mtok":120}},{"id":"gpt-4-turbo","match":{"or":[{"equals":"gpt-4-turbo"},{"equals":"gpt-4-turbo-2024-04-09"},{"equals":"gpt-4-turbo-0125-preview"},{"equals":"gpt-4-0125-preview"},{"equals":"gpt-4-1106-preview"},{"equals":"gpt-4-turbo-preview"}]},"context_window":128000,"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4-vision-preview","match":{"or":[{"equals":"gpt-4-vision-preview"},{"equals":"gpt-4-1106-vision-preview"}]},"context_window":128000,"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4.1","match":{"or":[{"equals":"gpt-4.1"},{"equals":"gpt-4.1-2025-04-14"}]},"context_window":1000000,"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"gpt-4.1-mini","match":{"or":[{"equals":"gpt-4.1-mini"},{"equals":"gpt-4.1-mini-2025-04-14"}]},"context_window":1000000,"prices":{"input_mtok":0.4,"cache_read_mtok":0.1,"output_mtok":1.6}},{"id":"gpt-4.1-nano","match":{"or":[{"equals":"gpt-4.1-nano"},{"equals":"gpt-4.1-nano-2025-04-14"}]},"context_window":1000000,"prices":{"input_mtok":0.1,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"gpt-4.5-preview","match":{"starts_with":"gpt-4.5-preview"},"prices":{"input_mtok":75,"cache_read_mtok":37.5,"output_mtok":150}},{"id":"gpt-4o","match":{"or":[{"equals":"gpt-4o"},{"equals":"gpt-4o-2024-05-13"},{"equals":"gpt-4o-2024-08-06"},{"equals":"gpt-4o-2024-11-20"}]},"context_window":128000,"prices":{"input_mtok":2.5,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"gpt-4o-audio-preview","match":{"starts_with":"gpt-4o-audio-preview"},"context_window":128000,"prices":{"input_mtok":2.5,"output_mtok":10,"input_audio_mtok":2.5}},{"id":"gpt-4o-mini","match":{"or":[{"equals":"gpt-4o-mini"},{"equals":"gpt-4o-mini-2024-07-18"},{"equals":"gpt-4o-mini-search-preview"},{"equals":"gpt-4o-mini-search-preview-2025-03-11"}]},"context_window":128000,"prices":{"input_mtok":0.15,"cache_read_mtok":0.075,"output_mtok":0.6}},{"id":"gpt-4o-mini-2024-07-18.ft-","match":{"starts_with":"gpt-4o-mini-2024-07-18.ft-"},"prices":{"input_mtok":0.3,"output_mtok":1.2}},{"id":"gpt-4o-mini-audio-preview","match":{"starts_with":"gpt-4o-mini-audio"},"prices":{"input_mtok":0.15,"output_mtok":0.6,"input_audio_mtok":0.15}},{"id":"gpt-4o-mini-realtime-preview","match":{"starts_with":"gpt-4o-mini-realtime"},"prices":{"input_mtok":0.6,"cache_read_mtok":0.3,"output_mtok":2.4,"input_audio_mtok":10,"cache_audio_read_mtok":0.3,"output_audio_mtok":20}},{"id":"gpt-4o-mini-transcribe","match":{"equals":"gpt-4o-mini-transcribe"},"prices":{"input_mtok":1.25,"output_mtok":5,"input_audio_mtok":3}},{"id":"gpt-4o-mini-tts","match":{"equals":"gpt-4o-mini-tts"},"prices":{"input_mtok":0.6,"output_mtok":12,"output_audio_mtok":12}},{"id":"gpt-4o-realtime-preview","match":{"starts_with":"gpt-4o-realtime"},"prices":{"input_mtok":5,"cache_read_mtok":2.5,"output_mtok":20,"input_audio_mtok":40,"cache_audio_read_mtok":2.5,"output_audio_mtok":80}},{"id":"gpt-4o-search-preview","match":{"or":[{"equals":"gpt-4o-search-preview"},{"equals":"gpt-4o-search-preview-2025-03-11"}]},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"gpt-4o-transcribe","match":{"or":[{"equals":"gpt-4o-transcribe"},{"equals":"gpt-4o-transcribe-diarize"}]},"prices":{"input_mtok":2.5,"output_mtok":10,"input_audio_mtok":6}},{"id":"gpt-4o:extended","match":{"equals":"gpt-4o:extended"},"prices":{"input_mtok":6,"output_mtok":18}},{"id":"gpt-5","match":{"or":[{"equals":"gpt-5"},{"equals":"gpt-5-2025-08-07"},{"equals":"gpt-5-chat"},{"equals":"gpt-5-chat-latest"},{"equals":"gpt-5-codex"}]},"context_window":400000,"prices":{"input_mtok":1.25,"cache_read_mtok":0.125,"output_mtok":10}},{"id":"gpt-5-image","match":{"equals":"gpt-5-image"},"prices":{"input_mtok":10,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"gpt-5-image-mini","match":{"equals":"gpt-5-image-mini"},"prices":{"input_mtok":2.5,"cache_read_mtok":0.25,"output_mtok":2}},{"id":"gpt-5-mini","match":{"or":[{"equals":"gpt-5-mini"},{"equals":"gpt-5-mini-2025-08-07"}]},"context_window":400000,"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"gpt-5-nano","match":{"or":[{"equals":"gpt-5-nano"},{"starts_with":"gpt-5-nano-"}]},"context_window":400000,"prices":{"input_mtok":0.05,"cache_read_mtok":0.005,"output_mtok":0.4}},{"id":"gpt-5-pro","match":{"or":[{"equals":"gpt-5-pro"},{"equals":"gpt-5-pro-2025-10-06"}]},"context_window":400000,"prices":{"input_mtok":15,"output_mtok":120}},{"id":"gpt-5.1","match":{"or":[{"equals":"gpt-5.1"},{"equals":"gpt-5.1-2025-11-13"},{"equals":"gpt-5.1-codex"},{"equals":"gpt-5.1-codex-max"},{"equals":"gpt-5.1-chat"},{"equals":"gpt-5.1-chat-latest"},{"equals":"gpt-5-1"},{"equals":"gpt-5-1-2025-11-13"},{"equals":"gpt-5-1-codex"},{"equals":"gpt-5-1-codex-max"},{"equals":"gpt-5-1-chat"},{"equals":"gpt-5-1-chat-latest"}]},"context_window":400000,"prices":{"input_mtok":1.25,"cache_read_mtok":0.125,"output_mtok":10}},{"id":"gpt-5.1-codex-mini","match":{"or":[{"equals":"gpt-5.1-codex-mini"},{"equals":"gpt-5.1-mini"},{"equals":"gpt-5-1-codex-mini"},{"equals":"gpt-5-1-mini"}]},"context_window":400000,"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"gpt-5.2","match":{"or":[{"equals":"gpt-5.2"},{"equals":"gpt-5.2-2025-12-11"},{"equals":"gpt-5-2"},{"equals":"gpt-5-2-2025-12-11"},{"equals":"gpt-5.2-chat"},{"equals":"gpt-5.2-chat-latest"},{"equals":"gpt-5-2-chat"},{"equals":"gpt-5-2-chat-latest"},{"equals":"gpt-5.2-codex"},{"equals":"gpt-5-2-codex"}]},"context_window":400000,"prices":{"input_mtok":1.75,"cache_read_mtok":0.175,"output_mtok":14}},{"id":"gpt-5.2-pro","match":{"or":[{"equals":"gpt-5.2-pro"},{"equals":"gpt-5.2-pro-2025-12-11"},{"equals":"gpt-5-2-pro-2025-12-11"}]},"context_window":400000,"prices":{"input_mtok":21,"output_mtok":168}},{"id":"gpt-5.3-codex","match":{"or":[{"equals":"gpt-5.3-codex"},{"equals":"gpt-5-3-codex"}]},"context_window":400000,"prices":{"input_mtok":1.75,"cache_read_mtok":0.175,"output_mtok":14}},{"id":"gpt-5.4","match":{"or":[{"equals":"gpt-5.4"},{"equals":"gpt-5.4-2026-03-05"},{"equals":"gpt-5-4"},{"equals":"gpt-5-4-2026-03-05"}]},"context_window":1050000,"prices":{"input_mtok":{"base":2.5,"tiers":[{"start":272000,"price":5}]},"cache_read_mtok":{"base":0.25,"tiers":[{"start":272000,"price":0.5}]},"output_mtok":{"base":15,"tiers":[{"start":272000,"price":22.5}]}}},{"id":"gpt-5.4-mini","match":{"or":[{"equals":"gpt-5.4-mini"},{"equals":"gpt-5.4-mini-2026-03-17"},{"equals":"gpt-5-4-mini"},{"equals":"gpt-5-4-mini-2026-03-17"}]},"context_window":400000,"prices":{"input_mtok":0.75,"cache_read_mtok":0.075,"output_mtok":4.5}},{"id":"gpt-5.4-nano","match":{"or":[{"equals":"gpt-5.4-nano"},{"equals":"gpt-5.4-nano-2026-03-17"},{"equals":"gpt-5-4-nano"},{"equals":"gpt-5-4-nano-2026-03-17"}]},"context_window":400000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.02,"output_mtok":1.25}},{"id":"gpt-5.4-pro","match":{"or":[{"equals":"gpt-5.4-pro"},{"equals":"gpt-5.4-pro-2026-03-05"},{"equals":"gpt-5-4-pro"},{"equals":"gpt-5-4-pro-2026-03-05"}]},"context_window":1050000,"prices":{"input_mtok":{"base":30,"tiers":[{"start":272000,"price":60}]},"output_mtok":{"base":180,"tiers":[{"start":272000,"price":270}]}}},{"id":"gpt-realtime","match":{"or":[{"equals":"gpt-realtime"},{"equals":"gpt-realtime-2025-08-28"}]},"prices":{"input_mtok":4,"cache_read_mtok":0.4,"output_mtok":16,"input_audio_mtok":32,"cache_audio_read_mtok":0.4,"output_audio_mtok":64}},{"id":"gpt-realtime-mini","match":{"equals":"gpt-realtime-mini"},"prices":{"input_mtok":0.6,"cache_read_mtok":0.06,"output_mtok":2.4,"input_audio_mtok":10,"cache_audio_read_mtok":0.3,"output_audio_mtok":20}},{"id":"o1","match":{"or":[{"equals":"o1"},{"equals":"o1-2024-12-17"},{"equals":"o1-preview"},{"equals":"o1-preview-2024-09-12"}]},"context_window":128000,"prices":{"input_mtok":15,"cache_read_mtok":7.5,"output_mtok":60}},{"id":"o1-mini","match":{"or":[{"equals":"o1-mini"},{"equals":"o1-mini-2024-09-12"}]},"context_window":128000,"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o1-pro","match":{"or":[{"equals":"o1-pro"},{"equals":"o1-pro-2025-03-19"}]},"prices":{"input_mtok":150,"output_mtok":600}},{"id":"o3","match":{"or":[{"equals":"o3"},{"equals":"o3-2025-04-16"}]},"prices":[{"prices":{"input_mtok":10,"cache_read_mtok":0.5,"output_mtok":40}},{"constraint":{"start_date":"2025-06-10"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}}]},{"id":"o3-deep-research","match":{"or":[{"equals":"o3-deep-research"},{"equals":"o3-deep-research-2025-06-26"}]},"prices":{"input_mtok":10,"cache_read_mtok":2.5,"output_mtok":40}},{"id":"o3-mini","match":{"or":[{"equals":"o3-mini"},{"equals":"o3-mini-2025-01-31"},{"equals":"o3-mini-high"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o3-pro","match":{"or":[{"equals":"o3-pro"},{"equals":"o3-pro-2025-06-10"}]},"prices":{"input_mtok":20,"output_mtok":80}},{"id":"o4-mini","match":{"or":[{"equals":"o4-mini-2025-04-16"},{"equals":"o4-mini-high"},{"equals":"o4-mini"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.275,"output_mtok":4.4}},{"id":"o4-mini-deep-research","match":{"or":[{"equals":"o4-mini-deep-research"},{"equals":"o4-mini-deep-research-2025-06-26"}]},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"text-davinci-002","match":{"equals":"text-davinci-002"},"prices":{"input_mtok":20,"output_mtok":20}},{"id":"text-davinci-003","match":{"equals":"text-davinci-003"},"prices":{"input_mtok":20,"output_mtok":20}},{"id":"text-embedding-3-large","match":{"equals":"text-embedding-3-large"},"context_window":8192,"prices":{"input_mtok":0.13}},{"id":"text-embedding-3-small","match":{"equals":"text-embedding-3-small"},"context_window":8192,"prices":{"input_mtok":0.02}},{"id":"text-embedding-ada-002","match":{"or":[{"equals":"text-embedding-ada"},{"equals":"text-embedding-ada-002"},{"equals":"text-embedding-ada-002-v2"}]},"context_window":8192,"prices":{"input_mtok":0.1}}]},{"id":"openrouter","name":"OpenRouter","pricing_urls":["https://openrouter.ai/models"],"api_pattern":"https://(api\\.)?openrouter\\.ai","models":[{"id":"01-ai/yi-large","match":{"equals":"01-ai/yi-large"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"aetherwiing/mn-starcannon-12b","match":{"equals":"aetherwiing/mn-starcannon-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"ai21/jamba-1-5-large","match":{"equals":"ai21/jamba-1-5-large"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"ai21/jamba-1-5-mini","match":{"equals":"ai21/jamba-1-5-mini"},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"ai21/jamba-1.6-large","match":{"equals":"ai21/jamba-1.6-large"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"ai21/jamba-1.6-mini","match":{"equals":"ai21/jamba-1.6-mini"},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"ai21/jamba-instruct","match":{"equals":"ai21/jamba-instruct"},"prices":{"input_mtok":0.5,"output_mtok":0.7}},{"id":"aion-1.0","match":{"equals":"aion-1.0"},"prices":{"input_mtok":4,"output_mtok":8}},{"id":"aion-1.0-mini","match":{"equals":"aion-1.0-mini"},"prices":{"input_mtok":0.7,"output_mtok":1.4}},{"id":"aion-labs/aion-1.0","match":{"equals":"aion-labs/aion-1.0"},"prices":{"input_mtok":4,"output_mtok":8}},{"id":"aion-labs/aion-1.0-mini","match":{"equals":"aion-labs/aion-1.0-mini"},"prices":{"input_mtok":0.7,"output_mtok":1.4}},{"id":"aion-labs/aion-rp-llama-3.1-8b","match":{"equals":"aion-labs/aion-rp-llama-3.1-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"aion-rp-llama-3.1-8b","match":{"equals":"aion-rp-llama-3.1-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"alfredpros/codellama-7b-instruct-solidity","match":{"equals":"alfredpros/codellama-7b-instruct-solidity"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"all-hands/openhands-lm-32b-v0.1","match":{"equals":"all-hands/openhands-lm-32b-v0.1"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"alpindale/goliath-120b","match":{"equals":"alpindale/goliath-120b"},"prices":{"input_mtok":6.5625,"output_mtok":9.375}},{"id":"alpindale/magnum-72b","match":{"equals":"alpindale/magnum-72b"},"prices":{"input_mtok":1.5,"output_mtok":2.25}},{"id":"amazon/nova-lite-v1","match":{"equals":"amazon/nova-lite-v1"},"prices":{"input_mtok":0.06,"output_mtok":0.24}},{"id":"amazon/nova-micro-v1","match":{"equals":"amazon/nova-micro-v1"},"prices":{"input_mtok":0.035,"output_mtok":0.14}},{"id":"amazon/nova-pro-v1","match":{"equals":"amazon/nova-pro-v1"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"anthracite-org/magnum-v2-72b","match":{"equals":"anthracite-org/magnum-v2-72b"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"anthracite-org/magnum-v4-72b","match":{"equals":"anthracite-org/magnum-v4-72b"},"prices":{"input_mtok":1.5,"output_mtok":2.25}},{"id":"anthropic/claude-2","match":{"or":[{"equals":"anthropic/claude-2"},{"equals":"anthropic/claude-2.0"},{"equals":"anthropic/claude-2.0:beta"},{"equals":"anthropic/claude-2.1"},{"equals":"anthropic/claude-2.1:beta"},{"equals":"anthropic/claude-2:beta"}]},"prices":{"input_mtok":8,"output_mtok":24}},{"id":"anthropic/claude-3-haiku","match":{"or":[{"equals":"anthropic/claude-3-haiku"},{"equals":"anthropic/claude-3-haiku:beta"}]},"prices":{"input_mtok":0.25,"output_mtok":1.25}},{"id":"anthropic/claude-3-opus","match":{"or":[{"equals":"anthropic/claude-3-opus"},{"equals":"anthropic/claude-3-opus:beta"}]},"prices":{"input_mtok":15,"output_mtok":75}},{"id":"anthropic/claude-3-sonnet","match":{"or":[{"equals":"anthropic/claude-3-sonnet"},{"equals":"anthropic/claude-3-sonnet:beta"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"anthropic/claude-3.5-haiku","match":{"or":[{"equals":"anthropic/claude-3.5-haiku"},{"equals":"anthropic/claude-3.5-haiku-20241022"},{"equals":"anthropic/claude-3.5-haiku-20241022:beta"},{"equals":"anthropic/claude-3.5-haiku:beta"}]},"prices":{"input_mtok":0.8,"output_mtok":4}},{"id":"anthropic/claude-3.5-sonnet","match":{"or":[{"equals":"anthropic/claude-3.5-sonnet"},{"equals":"anthropic/claude-3.5-sonnet-20240620"},{"equals":"anthropic/claude-3.5-sonnet-20240620:beta"},{"equals":"anthropic/claude-3.5-sonnet:beta"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"anthropic/claude-3.7-sonnet","match":{"or":[{"equals":"anthropic/claude-3.7-sonnet"},{"equals":"anthropic/claude-3.7-sonnet:beta"},{"equals":"anthropic/claude-3.7-sonnet:thinking"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"anthropic/claude-haiku-4.5","match":{"or":[{"equals":"anthropic/claude-haiku-4.5"},{"equals":"anthropic/claude-4.5-haiku-20251001"},{"equals":"anthropic/claude-4.5-haiku-20251001:beta"},{"equals":"anthropic/claude-haiku-4.5-20251001"},{"equals":"anthropic/claude-haiku-4.5-20251001:beta"},{"equals":"anthropic/claude-haiku-4.5:beta"}]},"prices":{"input_mtok":1,"cache_write_mtok":1.25,"cache_read_mtok":0.1,"output_mtok":5}},{"id":"anthropic/claude-opus-4.5","match":{"or":[{"equals":"anthropic/claude-opus-4.5"},{"equals":"anthropic/claude-4.5-opus-20251124"},{"equals":"anthropic/claude-4.5-opus-20251124:beta"},{"equals":"anthropic/claude-opus-4.5-20251124"},{"equals":"anthropic/claude-opus-4.5-20251124:beta"},{"equals":"anthropic/claude-opus-4.5:beta"}]},"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"anthropic/claude-opus-4.6","match":{"or":[{"equals":"anthropic/claude-opus-4.6"},{"equals":"anthropic/claude-4.6-opus-20260205"},{"equals":"anthropic/claude-4.6-opus-20260205:beta"},{"equals":"anthropic/claude-opus-4.6-20260205"},{"equals":"anthropic/claude-opus-4.6-20260205:beta"},{"equals":"anthropic/claude-opus-4.6:beta"}]},"context_window":1000000,"prices":{"input_mtok":5,"cache_write_mtok":6.25,"cache_read_mtok":0.5,"output_mtok":25}},{"id":"anthropic/claude-sonnet-4.5","match":{"or":[{"equals":"anthropic/claude-sonnet-4.5"},{"equals":"anthropic/claude-4.5-sonnet-20250929"},{"equals":"anthropic/claude-4.5-sonnet-20250929:beta"},{"equals":"anthropic/claude-sonnet-4.5-20250929"},{"equals":"anthropic/claude-sonnet-4.5-20250929:beta"},{"equals":"anthropic/claude-sonnet-4.5:beta"}]},"context_window":1000000,"prices":{"input_mtok":{"base":3,"tiers":[{"start":200000,"price":6}]},"cache_write_mtok":{"base":3.75,"tiers":[{"start":200000,"price":7.5}]},"cache_read_mtok":{"base":0.3,"tiers":[{"start":200000,"price":0.6}]},"output_mtok":{"base":15,"tiers":[{"start":200000,"price":22.5}]}}},{"id":"anthropic/claude-sonnet-4.6","match":{"or":[{"equals":"anthropic/claude-sonnet-4.6"},{"equals":"anthropic/claude-4.6-sonnet-20260217"},{"equals":"anthropic/claude-4.6-sonnet-20260217:beta"},{"equals":"anthropic/claude-sonnet-4.6-20260217"},{"equals":"anthropic/claude-sonnet-4.6-20260217:beta"},{"equals":"anthropic/claude-sonnet-4.6:beta"}]},"context_window":1000000,"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"anubis-pro-105b-v1","match":{"equals":"anubis-pro-105b-v1"},"prices":{"input_mtok":0.8,"output_mtok":1}},{"id":"arcee-blitz","match":{"equals":"arcee-blitz"},"prices":{"input_mtok":0.45,"output_mtok":0.75}},{"id":"caller-large","match":{"equals":"caller-large"},"prices":{"input_mtok":0.55,"output_mtok":0.85}},{"id":"chatgpt-4o-latest","match":{"equals":"chatgpt-4o-latest"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"claude-2","match":{"or":[{"equals":"claude-2"},{"equals":"claude-2.0"},{"equals":"claude-2.0:beta"},{"equals":"claude-2.1"},{"equals":"claude-2.1:beta"},{"equals":"claude-2:beta"}]},"prices":{"input_mtok":8,"output_mtok":24}},{"id":"claude-3-haiku","match":{"or":[{"equals":"claude-3-haiku"},{"equals":"claude-3-haiku:beta"}]},"prices":{"input_mtok":0.25,"cache_write_mtok":0.3,"cache_read_mtok":0.03,"output_mtok":1.25}},{"id":"claude-3-opus","match":{"or":[{"equals":"claude-3-opus"},{"equals":"claude-3-opus:beta"}]},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-3-sonnet","match":{"or":[{"equals":"claude-3-sonnet"},{"equals":"claude-3-sonnet:beta"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3.5-haiku","match":{"or":[{"equals":"claude-3.5-haiku"},{"equals":"claude-3.5-haiku-20241022"},{"equals":"claude-3.5-haiku-20241022:beta"},{"equals":"claude-3.5-haiku:beta"}]},"prices":{"input_mtok":0.8,"cache_write_mtok":1,"cache_read_mtok":0.08,"output_mtok":4}},{"id":"claude-3.5-sonnet","match":{"or":[{"equals":"claude-3.5-sonnet"},{"equals":"claude-3.5-sonnet-20240620"},{"equals":"claude-3.5-sonnet-20240620:beta"},{"equals":"claude-3.5-sonnet:beta"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-3.7-sonnet","match":{"or":[{"equals":"claude-3.7-sonnet"},{"equals":"claude-3.7-sonnet:beta"},{"equals":"claude-3.7-sonnet:thinking"}]},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"claude-opus-4","match":{"equals":"claude-opus-4"},"prices":{"input_mtok":15,"cache_write_mtok":18.75,"cache_read_mtok":1.5,"output_mtok":75}},{"id":"claude-sonnet-4","match":{"equals":"claude-sonnet-4"},"prices":{"input_mtok":3,"cache_write_mtok":3.75,"cache_read_mtok":0.3,"output_mtok":15}},{"id":"codellama-7b-instruct-solidity","match":{"equals":"codellama-7b-instruct-solidity"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"coder-large","match":{"equals":"coder-large"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"codestral-2501","match":{"equals":"codestral-2501"},"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"codex-mini","match":{"equals":"codex-mini"},"prices":{"input_mtok":1.5,"cache_read_mtok":0.375,"output_mtok":6}},{"id":"cognitivecomputations/dolphin-mixtral-8x22b","match":{"equals":"cognitivecomputations/dolphin-mixtral-8x22b"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"cognitivecomputations/dolphin-mixtral-8x7b","match":{"equals":"cognitivecomputations/dolphin-mixtral-8x7b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"cohere/command","match":{"equals":"cohere/command"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"cohere/command-a","match":{"equals":"cohere/command-a"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"cohere/command-r","match":{"or":[{"equals":"cohere/command-r"},{"equals":"cohere/command-r-03-2024"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"cohere/command-r-08-2024","match":{"equals":"cohere/command-r-08-2024"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"cohere/command-r-plus","match":{"or":[{"equals":"cohere/command-r-plus"},{"equals":"cohere/command-r-plus-04-2024"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"cohere/command-r-plus-08-2024","match":{"equals":"cohere/command-r-plus-08-2024"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"cohere/command-r7b-12-2024","match":{"equals":"cohere/command-r7b-12-2024"},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"command","match":{"equals":"command"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"command-a","match":{"equals":"command-a"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r","match":{"or":[{"equals":"command-r"},{"equals":"command-r-03-2024"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"command-r-08-2024","match":{"equals":"command-r-08-2024"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"command-r-plus","match":{"or":[{"equals":"command-r-plus"},{"equals":"command-r-plus-04-2024"}]},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"command-r-plus-08-2024","match":{"equals":"command-r-plus-08-2024"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"command-r7b-12-2024","match":{"equals":"command-r7b-12-2024"},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"deepseek-chat","match":{"equals":"deepseek-chat"},"prices":{"input_mtok":0.38,"output_mtok":0.89}},{"id":"deepseek-chat-v3-0324","match":{"equals":"deepseek-chat-v3-0324"},"prices":{"input_mtok":0.3,"output_mtok":0.88}},{"id":"deepseek-prover-v2","match":{"equals":"deepseek-prover-v2"},"prices":{"input_mtok":0.5,"output_mtok":2.18}},{"id":"deepseek-r1","match":{"equals":"deepseek-r1"},"prices":{"input_mtok":0.45,"output_mtok":2.15}},{"id":"deepseek-r1-0528","match":{"equals":"deepseek-r1-0528"},"prices":{"input_mtok":0.5,"output_mtok":2.15}},{"id":"deepseek-r1-0528-qwen3-8b","match":{"equals":"deepseek-r1-0528-qwen3-8b"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"deepseek-r1-distill-llama-70b","match":{"equals":"deepseek-r1-distill-llama-70b"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"deepseek-r1-distill-llama-8b","match":{"equals":"deepseek-r1-distill-llama-8b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"deepseek-r1-distill-qwen-1.5b","match":{"equals":"deepseek-r1-distill-qwen-1.5b"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"deepseek-r1-distill-qwen-14b","match":{"equals":"deepseek-r1-distill-qwen-14b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"deepseek-r1-distill-qwen-32b","match":{"equals":"deepseek-r1-distill-qwen-32b"},"prices":{"input_mtok":0.12,"output_mtok":0.18}},{"id":"deepseek-r1-distill-qwen-7b","match":{"equals":"deepseek-r1-distill-qwen-7b"},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"deepseek-v3.1-terminus","match":{"equals":"deepseek-v3.1-terminus"},"context_window":163840,"prices":{"input_mtok":0.23,"output_mtok":0.9}},{"id":"deepseek/deepseek-chat","match":{"equals":"deepseek/deepseek-chat"},"prices":{"input_mtok":0.38,"output_mtok":0.89}},{"id":"deepseek/deepseek-chat-v3-0324","match":{"equals":"deepseek/deepseek-chat-v3-0324"},"prices":{"input_mtok":0.27,"output_mtok":1.1}},{"id":"deepseek/deepseek-chat-v3.1","match":{"equals":"deepseek/deepseek-chat-v3.1"},"context_window":163840,"prices":{"input_mtok":0.2,"output_mtok":0.8}},{"id":"deepseek/deepseek-r1","match":{"equals":"deepseek/deepseek-r1"},"prices":{"input_mtok":0.5,"output_mtok":3}},{"id":"deepseek/deepseek-r1-distill-llama-70b","match":{"equals":"deepseek/deepseek-r1-distill-llama-70b"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"deepseek/deepseek-r1-distill-llama-8b","match":{"equals":"deepseek/deepseek-r1-distill-llama-8b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"deepseek/deepseek-r1-distill-qwen-1.5b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-1.5b"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"deepseek/deepseek-r1-distill-qwen-14b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-14b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"deepseek/deepseek-r1-distill-qwen-32b","match":{"equals":"deepseek/deepseek-r1-distill-qwen-32b"},"prices":{"input_mtok":0.12,"output_mtok":0.18}},{"id":"deepseek/deepseek-v3.2-exp","match":{"equals":"deepseek/deepseek-v3.2-exp"},"prices":{"input_mtok":0.27,"output_mtok":0.4}},{"id":"devstral-small","match":{"equals":"devstral-small"},"prices":{"input_mtok":0.06,"output_mtok":0.12}},{"id":"dobby-mini-unhinged-plus-llama-3.1-8b","match":{"equals":"dobby-mini-unhinged-plus-llama-3.1-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"dolphin-mixtral-8x22b","match":{"equals":"dolphin-mixtral-8x22b"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"eleutherai/llemma_7b","match":{"equals":"eleutherai/llemma_7b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"eva-llama-3.33-70b","match":{"equals":"eva-llama-3.33-70b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"eva-qwen-2.5-32b","match":{"equals":"eva-qwen-2.5-32b"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"eva-qwen-2.5-72b","match":{"equals":"eva-qwen-2.5-72b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"eva-unit-01/eva-llama-3.33-70b","match":{"equals":"eva-unit-01/eva-llama-3.33-70b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"eva-unit-01/eva-qwen-2.5-32b","match":{"equals":"eva-unit-01/eva-qwen-2.5-32b"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"eva-unit-01/eva-qwen-2.5-72b","match":{"equals":"eva-unit-01/eva-qwen-2.5-72b"},"prices":{"input_mtok":0.9,"output_mtok":1.2}},{"id":"fimbulvetr-11b-v2","match":{"equals":"fimbulvetr-11b-v2"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"gemini-2.0-flash-001","match":{"equals":"gemini-2.0-flash-001"},"prices":{"input_mtok":0.1,"cache_write_mtok":0.1833,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"gemini-2.0-flash-lite-001","match":{"equals":"gemini-2.0-flash-lite-001"},"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"gemini-2.5-flash","match":{"or":[{"equals":"gemini-2.5-flash"},{"equals":"google/gemini-2.5-flash"}]},"prices":{"input_mtok":0.3,"cache_write_mtok":0.3833,"cache_read_mtok":0.075,"output_mtok":2.5}},{"id":"gemini-2.5-flash-lite-preview-06-17","match":{"equals":"gemini-2.5-flash-lite-preview-06-17"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"gemini-2.5-flash-preview","match":{"or":[{"equals":"gemini-2.5-flash-preview"},{"equals":"gemini-2.5-flash-preview-05-20"}]},"prices":{"input_mtok":0.15,"cache_write_mtok":0.2333,"cache_read_mtok":0.0375,"output_mtok":0.6}},{"id":"gemini-2.5-flash-preview-05-20:thinking","match":{"equals":"gemini-2.5-flash-preview-05-20:thinking"},"prices":{"input_mtok":0.15,"cache_write_mtok":0.2333,"cache_read_mtok":0.0375,"output_mtok":3.5}},{"id":"gemini-2.5-flash-preview:thinking","match":{"equals":"gemini-2.5-flash-preview:thinking"},"prices":{"input_mtok":0.15,"cache_write_mtok":0.2333,"cache_read_mtok":0.0375,"output_mtok":3.5}},{"id":"gemini-2.5-pro","match":{"or":[{"equals":"gemini-2.5-pro"},{"equals":"gemini-2.5-pro-preview"},{"equals":"gemini-2.5-pro-preview-05-06"},{"equals":"google/gemini-2.5-pro"},{"equals":"google/gemini-2.5-pro-preview"},{"equals":"google/gemini-2.5-pro-preview-05-06"}]},"prices":{"input_mtok":1.25,"cache_write_mtok":1.625,"cache_read_mtok":0.31,"output_mtok":10}},{"id":"gemini-flash-1.5","match":{"equals":"gemini-flash-1.5"},"prices":{"input_mtok":0.075,"cache_write_mtok":0.1583,"cache_read_mtok":0.01875,"output_mtok":0.3}},{"id":"gemini-flash-1.5-8b","match":{"equals":"gemini-flash-1.5-8b"},"prices":{"input_mtok":0.0375,"cache_write_mtok":0.0583,"cache_read_mtok":0.01,"output_mtok":0.15}},{"id":"gemini-pro-1.5","match":{"equals":"gemini-pro-1.5"},"prices":{"input_mtok":1.25,"output_mtok":5}},{"id":"gemma-2-27b-it","match":{"equals":"gemma-2-27b-it"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"gemma-2-9b-it","match":{"equals":"gemma-2-9b-it"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"gemma-3-12b-it","match":{"equals":"gemma-3-12b-it"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"gemma-3-27b-it","match":{"equals":"gemma-3-27b-it"},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"gemma-3-4b-it","match":{"equals":"gemma-3-4b-it"},"prices":{"input_mtok":0.02,"output_mtok":0.04}},{"id":"glm-4-32b","match":{"equals":"glm-4-32b"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"glm-z1-32b","match":{"equals":"glm-z1-32b"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"glm-z1-rumination-32b","match":{"equals":"glm-z1-rumination-32b"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"goliath-120b","match":{"equals":"goliath-120b"},"prices":{"input_mtok":10,"output_mtok":12.5}},{"id":"google/gemini-2.0-flash-001","match":{"equals":"google/gemini-2.0-flash-001"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"google/gemini-2.0-flash-lite-001","match":{"equals":"google/gemini-2.0-flash-lite-001"},"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"google/gemini-2.5-flash-image","match":{"or":[{"equals":"google/gemini-2.5-flash-image"},{"equals":"google/gemini-2.5-flash-image-preview"}]},"prices":{"input_mtok":0.3,"output_mtok":2.5}},{"id":"google/gemini-2.5-flash-lite","match":{"equals":"google/gemini-2.5-flash-lite"},"prices":{"input_mtok":0.1,"cache_write_mtok":0.183,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"google/gemini-2.5-flash-lite-preview-09-2025","match":{"equals":"google/gemini-2.5-flash-lite-preview-09-2025"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"google/gemini-2.5-flash-preview","match":{"equals":"google/gemini-2.5-flash-preview"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"google/gemini-2.5-flash-preview-09-2025","match":{"equals":"google/gemini-2.5-flash-preview-09-2025"},"prices":{"input_mtok":0.3,"cache_write_mtok":0.383,"cache_read_mtok":0.075,"output_mtok":2.5}},{"id":"google/gemini-2.5-flash-preview:thinking","match":{"equals":"google/gemini-2.5-flash-preview:thinking"},"prices":{"input_mtok":0.15,"output_mtok":3.5}},{"id":"google/gemini-2.5-pro-preview-03-25","match":{"equals":"google/gemini-2.5-pro-preview-03-25"},"prices":{"input_mtok":1.25,"output_mtok":10}},{"id":"google/gemini-flash-1.5","match":{"equals":"google/gemini-flash-1.5"},"prices":{"input_mtok":0.075,"output_mtok":0.3}},{"id":"google/gemini-flash-1.5-8b","match":{"equals":"google/gemini-flash-1.5-8b"},"prices":{"input_mtok":0.0375,"output_mtok":0.15}},{"id":"google/gemini-pro","match":{"or":[{"equals":"google/gemini-pro"},{"equals":"google/gemini-pro-vision"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"google/gemini-pro-1.5","match":{"equals":"google/gemini-pro-1.5"},"prices":{"input_mtok":1.25,"output_mtok":5}},{"id":"google/gemma-2-27b-it","match":{"equals":"google/gemma-2-27b-it"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"google/gemma-2-9b-it","match":{"equals":"google/gemma-2-9b-it"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"google/gemma-3-12b-it","match":{"equals":"google/gemma-3-12b-it"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"google/gemma-3-27b-it","match":{"equals":"google/gemma-3-27b-it"},"prices":{"input_mtok":0.1,"output_mtok":0.2}},{"id":"google/gemma-3-4b-it","match":{"equals":"google/gemma-3-4b-it"},"prices":{"input_mtok":0.02,"output_mtok":0.04}},{"id":"google/palm-2-chat-bison","match":{"or":[{"equals":"google/palm-2-chat-bison"},{"equals":"google/palm-2-chat-bison-32k"}]},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"google/palm-2-codechat-bison","match":{"or":[{"equals":"google/palm-2-codechat-bison"},{"equals":"google/palm-2-codechat-bison-32k"}]},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo","match":{"or":[{"equals":"gpt-3.5-turbo"},{"equals":"gpt-3.5-turbo-0125"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"gpt-3.5-turbo-0613","match":{"equals":"gpt-3.5-turbo-0613"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo-1106","match":{"equals":"gpt-3.5-turbo-1106"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"gpt-3.5-turbo-16k","match":{"equals":"gpt-3.5-turbo-16k"},"prices":{"input_mtok":3,"output_mtok":4}},{"id":"gpt-3.5-turbo-instruct","match":{"equals":"gpt-3.5-turbo-instruct"},"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"gpt-4","match":{"or":[{"equals":"gpt-4"},{"equals":"gpt-4-0314"}]},"prices":{"input_mtok":30,"output_mtok":60}},{"id":"gpt-4-1106-preview","match":{"equals":"gpt-4-1106-preview"},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4-turbo","match":{"or":[{"equals":"gpt-4-turbo"},{"equals":"gpt-4-turbo-preview"}]},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"gpt-4.1","match":{"equals":"gpt-4.1"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"gpt-4.1-mini","match":{"equals":"gpt-4.1-mini"},"prices":{"input_mtok":0.4,"cache_read_mtok":0.1,"output_mtok":1.6}},{"id":"gpt-4.1-nano","match":{"equals":"gpt-4.1-nano"},"prices":{"input_mtok":0.1,"cache_read_mtok":0.025,"output_mtok":0.4}},{"id":"gpt-4.5-preview","match":{"equals":"gpt-4.5-preview"},"prices":{"input_mtok":75,"cache_read_mtok":37.5,"output_mtok":150}},{"id":"gpt-4o","match":{"or":[{"equals":"gpt-4o"},{"equals":"gpt-4o-2024-08-06"},{"equals":"gpt-4o-2024-11-20"}]},"prices":{"input_mtok":2.5,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"gpt-4o-2024-05-13","match":{"equals":"gpt-4o-2024-05-13"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"gpt-4o-mini","match":{"or":[{"equals":"gpt-4o-mini"},{"equals":"gpt-4o-mini-2024-07-18"}]},"prices":{"input_mtok":0.15,"cache_read_mtok":0.075,"output_mtok":0.6}},{"id":"gpt-4o-mini-search-preview","match":{"equals":"gpt-4o-mini-search-preview"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"gpt-4o-search-preview","match":{"equals":"gpt-4o-search-preview"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"gpt-4o:extended","match":{"equals":"gpt-4o:extended"},"prices":{"input_mtok":6,"output_mtok":18}},{"id":"grok-2-1212","match":{"equals":"grok-2-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"grok-2-vision-1212","match":{"equals":"grok-2-vision-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"grok-3","match":{"or":[{"equals":"grok-3"},{"equals":"grok-3-beta"}]},"prices":{"input_mtok":3,"cache_read_mtok":0.75,"output_mtok":15}},{"id":"grok-3-mini","match":{"or":[{"equals":"grok-3-mini"},{"equals":"grok-3-mini-beta"}]},"prices":{"input_mtok":0.3,"cache_read_mtok":0.075,"output_mtok":0.5}},{"id":"grok-beta","match":{"equals":"grok-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"grok-vision-beta","match":{"equals":"grok-vision-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"gryphe/mythomax-l2-13b","match":{"equals":"gryphe/mythomax-l2-13b"},"prices":{"input_mtok":0.065,"output_mtok":0.065}},{"id":"hermes-2-pro-llama-3-8b","match":{"equals":"hermes-2-pro-llama-3-8b"},"prices":{"input_mtok":0.025,"output_mtok":0.04}},{"id":"hermes-3-llama-3.1-405b","match":{"equals":"hermes-3-llama-3.1-405b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"hermes-3-llama-3.1-70b","match":{"equals":"hermes-3-llama-3.1-70b"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"infermatic/mn-inferor-12b","match":{"equals":"infermatic/mn-inferor-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"inflection-3-pi","match":{"equals":"inflection-3-pi"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"inflection-3-productivity","match":{"equals":"inflection-3-productivity"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"inflection/inflection-3-pi","match":{"equals":"inflection/inflection-3-pi"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"inflection/inflection-3-productivity","match":{"equals":"inflection/inflection-3-productivity"},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"jamba-1.6-large","match":{"equals":"jamba-1.6-large"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"jamba-1.6-mini","match":{"equals":"jamba-1.6-mini"},"prices":{"input_mtok":0.2,"output_mtok":0.4}},{"id":"jondurbin/airoboros-l2-70b","match":{"equals":"jondurbin/airoboros-l2-70b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"l3-euryale-70b","match":{"equals":"l3-euryale-70b"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"l3-lunaris-8b","match":{"equals":"l3-lunaris-8b"},"prices":{"input_mtok":0.02,"output_mtok":0.05}},{"id":"l3.1-euryale-70b","match":{"equals":"l3.1-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"l3.3-euryale-70b","match":{"equals":"l3.3-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"latitudegames/wayfarer-large-70b-llama-3.3","match":{"equals":"latitudegames/wayfarer-large-70b-llama-3.3"},"prices":{"input_mtok":0.8,"output_mtok":0.9}},{"id":"lfm-3b","match":{"equals":"lfm-3b"},"prices":{"input_mtok":0.02,"output_mtok":0.02}},{"id":"lfm-40b","match":{"equals":"lfm-40b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"lfm-7b","match":{"equals":"lfm-7b"},"prices":{"input_mtok":0.01,"output_mtok":0.01}},{"id":"liquid/lfm-3b","match":{"equals":"liquid/lfm-3b"},"prices":{"input_mtok":0.02,"output_mtok":0.02}},{"id":"liquid/lfm-40b","match":{"equals":"liquid/lfm-40b"},"prices":{"input_mtok":0.15,"output_mtok":0.15}},{"id":"liquid/lfm-7b","match":{"equals":"liquid/lfm-7b"},"prices":{"input_mtok":0.01,"output_mtok":0.01}},{"id":"llama-3-70b-instruct","match":{"equals":"llama-3-70b-instruct"},"prices":{"input_mtok":0.3,"output_mtok":0.4}},{"id":"llama-3-8b-instruct","match":{"equals":"llama-3-8b-instruct"},"prices":{"input_mtok":0.03,"output_mtok":0.06}},{"id":"llama-3-lumimaid-70b","match":{"equals":"llama-3-lumimaid-70b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"llama-3-lumimaid-8b","match":{"equals":"llama-3-lumimaid-8b"},"prices":{"input_mtok":0.2,"output_mtok":1.25}},{"id":"llama-3.1-405b","match":{"equals":"llama-3.1-405b"},"prices":{"input_mtok":2,"output_mtok":2}},{"id":"llama-3.1-405b-instruct","match":{"equals":"llama-3.1-405b-instruct"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"llama-3.1-70b-instruct","match":{"equals":"llama-3.1-70b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.28}},{"id":"llama-3.1-8b-instruct","match":{"equals":"llama-3.1-8b-instruct"},"prices":{"input_mtok":0.016,"output_mtok":0.029}},{"id":"llama-3.1-lumimaid-70b","match":{"equals":"llama-3.1-lumimaid-70b"},"prices":{"input_mtok":2.5,"output_mtok":3}},{"id":"llama-3.1-lumimaid-8b","match":{"equals":"llama-3.1-lumimaid-8b"},"prices":{"input_mtok":0.2,"output_mtok":1.25}},{"id":"llama-3.1-nemotron-70b-instruct","match":{"equals":"llama-3.1-nemotron-70b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"llama-3.1-nemotron-ultra-253b-v1","match":{"equals":"llama-3.1-nemotron-ultra-253b-v1"},"prices":{"input_mtok":0.6,"output_mtok":1.8}},{"id":"llama-3.1-sonar-large-128k-online","match":{"equals":"llama-3.1-sonar-large-128k-online"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"llama-3.1-sonar-small-128k-online","match":{"equals":"llama-3.1-sonar-small-128k-online"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama-3.2-11b-vision-instruct","match":{"equals":"llama-3.2-11b-vision-instruct"},"prices":{"input_mtok":0.049,"output_mtok":0.049}},{"id":"llama-3.2-1b-instruct","match":{"equals":"llama-3.2-1b-instruct"},"prices":{"input_mtok":0.005,"output_mtok":0.01}},{"id":"llama-3.2-3b-instruct","match":{"equals":"llama-3.2-3b-instruct"},"prices":{"input_mtok":0.01,"output_mtok":0.02}},{"id":"llama-3.2-90b-vision-instruct","match":{"equals":"llama-3.2-90b-vision-instruct"},"prices":{"input_mtok":1.2,"output_mtok":1.2}},{"id":"llama-3.3-70b-instruct","match":{"equals":"llama-3.3-70b-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.24}},{"id":"llama-3.3-nemotron-super-49b-v1","match":{"equals":"llama-3.3-nemotron-super-49b-v1"},"prices":{"input_mtok":0.13,"output_mtok":0.4}},{"id":"llama-4-maverick","match":{"equals":"llama-4-maverick"},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"llama-4-scout","match":{"equals":"llama-4-scout"},"prices":{"input_mtok":0.08,"output_mtok":0.3}},{"id":"llama-guard-2-8b","match":{"equals":"llama-guard-2-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"llama-guard-3-8b","match":{"equals":"llama-guard-3-8b"},"prices":{"input_mtok":0.02,"output_mtok":0.06}},{"id":"llama-guard-4-12b","match":{"equals":"llama-guard-4-12b"},"prices":{"input_mtok":0.05,"output_mtok":0.05}},{"id":"llama3.1-typhoon2-70b-instruct","match":{"equals":"llama3.1-typhoon2-70b-instruct"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"llemma_7b","match":{"equals":"llemma_7b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"maestro-reasoning","match":{"equals":"maestro-reasoning"},"prices":{"input_mtok":0.9,"output_mtok":3.3}},{"id":"magistral-medium-2506","match":{"or":[{"equals":"magistral-medium-2506"},{"equals":"magistral-medium-2506:thinking"}]},"prices":{"input_mtok":2,"output_mtok":5}},{"id":"magistral-small-2506","match":{"equals":"magistral-small-2506"},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"magnum-72b","match":{"equals":"magnum-72b"},"prices":{"input_mtok":4,"output_mtok":6}},{"id":"magnum-v2-72b","match":{"equals":"magnum-v2-72b"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"magnum-v4-72b","match":{"equals":"magnum-v4-72b"},"prices":{"input_mtok":2.5,"output_mtok":3}},{"id":"mancer/weaver","match":{"equals":"mancer/weaver"},"prices":{"input_mtok":1.125,"output_mtok":1.125}},{"id":"mercury-coder-small-beta","match":{"equals":"mercury-coder-small-beta"},"prices":{"input_mtok":0.25,"output_mtok":1}},{"id":"meta-llama/llama-2-13b-chat","match":{"equals":"meta-llama/llama-2-13b-chat"},"prices":{"input_mtok":0.22,"output_mtok":0.22}},{"id":"meta-llama/llama-2-70b-chat","match":{"equals":"meta-llama/llama-2-70b-chat"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/llama-3-70b-instruct","match":{"equals":"meta-llama/llama-3-70b-instruct"},"prices":{"input_mtok":0.3,"output_mtok":0.4}},{"id":"meta-llama/llama-3-8b-instruct","match":{"equals":"meta-llama/llama-3-8b-instruct"},"prices":{"input_mtok":0.03,"output_mtok":0.06}},{"id":"meta-llama/llama-3.1-405b","match":{"equals":"meta-llama/llama-3.1-405b"},"prices":{"input_mtok":2,"output_mtok":2}},{"id":"meta-llama/llama-3.1-405b-instruct","match":{"equals":"meta-llama/llama-3.1-405b-instruct"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"meta-llama/llama-3.1-70b-instruct","match":{"equals":"meta-llama/llama-3.1-70b-instruct"},"prices":{"input_mtok":0.119,"output_mtok":0.39}},{"id":"meta-llama/llama-3.1-8b-instruct","match":{"equals":"meta-llama/llama-3.1-8b-instruct"},"prices":{"input_mtok":0.02,"output_mtok":0.03}},{"id":"meta-llama/llama-3.2-11b-vision-instruct","match":{"equals":"meta-llama/llama-3.2-11b-vision-instruct"},"prices":{"input_mtok":0.049,"output_mtok":0.049}},{"id":"meta-llama/llama-3.2-1b-instruct","match":{"equals":"meta-llama/llama-3.2-1b-instruct"},"prices":{"input_mtok":0.01,"output_mtok":0.01}},{"id":"meta-llama/llama-3.2-3b-instruct","match":{"equals":"meta-llama/llama-3.2-3b-instruct"},"prices":{"input_mtok":0.015,"output_mtok":0.025}},{"id":"meta-llama/llama-3.2-90b-vision-instruct","match":{"equals":"meta-llama/llama-3.2-90b-vision-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/llama-3.3-70b-instruct","match":{"equals":"meta-llama/llama-3.3-70b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.25}},{"id":"meta-llama/llama-4-maverick","match":{"equals":"meta-llama/llama-4-maverick"},"prices":{"input_mtok":0.17,"output_mtok":0.85}},{"id":"meta-llama/llama-4-scout","match":{"equals":"meta-llama/llama-4-scout"},"prices":{"input_mtok":0.08,"output_mtok":0.3}},{"id":"meta-llama/llama-guard-2-8b","match":{"equals":"meta-llama/llama-guard-2-8b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/llama-guard-3-8b","match":{"equals":"meta-llama/llama-guard-3-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"microsoft/phi-3-medium-128k-instruct","match":{"equals":"microsoft/phi-3-medium-128k-instruct"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"microsoft/phi-3-mini-128k-instruct","match":{"equals":"microsoft/phi-3-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"microsoft/phi-3.5-mini-128k-instruct","match":{"equals":"microsoft/phi-3.5-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"microsoft/phi-4","match":{"equals":"microsoft/phi-4"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"microsoft/phi-4-multimodal-instruct","match":{"equals":"microsoft/phi-4-multimodal-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"microsoft/wizardlm-2-7b","match":{"equals":"microsoft/wizardlm-2-7b"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"microsoft/wizardlm-2-8x22b","match":{"equals":"microsoft/wizardlm-2-8x22b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"midnight-rose-70b","match":{"equals":"midnight-rose-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"minimax-01","match":{"equals":"minimax-01"},"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"minimax-m1","match":{"equals":"minimax-m1"},"prices":{"input_mtok":0.3,"output_mtok":1.65}},{"id":"minimax-m1:extended","match":{"equals":"minimax-m1:extended"},"prices":{"input_mtok":0.55,"output_mtok":2.2}},{"id":"minimax/minimax-01","match":{"equals":"minimax/minimax-01"},"prices":{"input_mtok":0.2,"output_mtok":1.1}},{"id":"ministral-3b","match":{"equals":"ministral-3b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"ministral-8b","match":{"equals":"ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistral-7b-instruct","match":{"or":[{"equals":"mistral-7b-instruct"},{"equals":"mistral-7b-instruct-v0.3"}]},"prices":{"input_mtok":0.028,"output_mtok":0.054}},{"id":"mistral-7b-instruct-v0.1","match":{"equals":"mistral-7b-instruct-v0.1"},"prices":{"input_mtok":0.11,"output_mtok":0.19}},{"id":"mistral-7b-instruct-v0.2","match":{"equals":"mistral-7b-instruct-v0.2"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistral-large","match":{"or":[{"equals":"mistral-large"},{"equals":"mistral-large-2407"},{"equals":"mistral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mistral-medium","match":{"equals":"mistral-medium"},"prices":{"input_mtok":2.75,"output_mtok":8.1}},{"id":"mistral-medium-3","match":{"equals":"mistral-medium-3"},"prices":{"input_mtok":0.4,"output_mtok":2}},{"id":"mistral-nemo","match":{"equals":"mistral-nemo"},"prices":{"input_mtok":0.01,"output_mtok":0.019}},{"id":"mistral-saba","match":{"equals":"mistral-saba"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistral-small","match":{"equals":"mistral-small"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistral-small-24b-instruct-2501","match":{"equals":"mistral-small-24b-instruct-2501"},"prices":{"input_mtok":0.05,"output_mtok":0.09}},{"id":"mistral-small-3.1-24b-instruct","match":{"equals":"mistral-small-3.1-24b-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.15}},{"id":"mistral-tiny","match":{"equals":"mistral-tiny"},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistral/ministral-8b","match":{"equals":"mistral/ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/codestral-2501","match":{"equals":"mistralai/codestral-2501"},"prices":{"input_mtok":0.3,"output_mtok":0.9}},{"id":"mistralai/codestral-mamba","match":{"equals":"mistralai/codestral-mamba"},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistralai/ministral-3b","match":{"equals":"mistralai/ministral-3b"},"prices":{"input_mtok":0.04,"output_mtok":0.04}},{"id":"mistralai/ministral-8b","match":{"equals":"mistralai/ministral-8b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/mistral-7b-instruct","match":{"or":[{"equals":"mistralai/mistral-7b-instruct"},{"equals":"mistralai/mistral-7b-instruct-v0.3"}]},"prices":{"input_mtok":0.029,"output_mtok":0.059}},{"id":"mistralai/mistral-7b-instruct-v0.1","match":{"equals":"mistralai/mistral-7b-instruct-v0.1"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/mistral-7b-instruct-v0.2","match":{"equals":"mistralai/mistral-7b-instruct-v0.2"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/mistral-large","match":{"or":[{"equals":"mistralai/mistral-large"},{"equals":"mistralai/mistral-large-2407"},{"equals":"mistralai/mistral-large-2411"}]},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mistralai/mistral-medium","match":{"equals":"mistralai/mistral-medium"},"prices":{"input_mtok":2.75,"output_mtok":8.1}},{"id":"mistralai/mistral-nemo","match":{"equals":"mistralai/mistral-nemo"},"prices":{"input_mtok":0.035,"output_mtok":0.08}},{"id":"mistralai/mistral-saba","match":{"equals":"mistralai/mistral-saba"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistralai/mistral-small","match":{"equals":"mistralai/mistral-small"},"prices":{"input_mtok":0.2,"output_mtok":0.6}},{"id":"mistralai/mistral-small-24b-instruct-2501","match":{"equals":"mistralai/mistral-small-24b-instruct-2501"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"mistralai/mistral-small-3.1-24b-instruct","match":{"equals":"mistralai/mistral-small-3.1-24b-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"mistralai/mistral-tiny","match":{"equals":"mistralai/mistral-tiny"},"prices":{"input_mtok":0.25,"output_mtok":0.25}},{"id":"mistralai/mixtral-8x22b-instruct","match":{"equals":"mistralai/mixtral-8x22b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mistralai/mixtral-8x7b-instruct","match":{"equals":"mistralai/mixtral-8x7b-instruct"},"prices":{"input_mtok":0.24,"output_mtok":0.24}},{"id":"mistralai/pixtral-12b","match":{"equals":"mistralai/pixtral-12b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/pixtral-large-2411","match":{"equals":"mistralai/pixtral-large-2411"},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"mixtral-8x22b-instruct","match":{"equals":"mixtral-8x22b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mixtral-8x7b-instruct","match":{"equals":"mixtral-8x7b-instruct"},"prices":{"input_mtok":0.08,"output_mtok":0.24}},{"id":"mn-celeste-12b","match":{"equals":"mn-celeste-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"mn-inferor-12b","match":{"equals":"mn-inferor-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"mn-starcannon-12b","match":{"equals":"mn-starcannon-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"moonshotai/kimi-k2.5","match":{"equals":"moonshotai/kimi-k2.5"},"prices":{"input_mtok":0.6,"output_mtok":3}},{"id":"mythalion-13b","match":{"equals":"mythalion-13b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"mythomax-l2-13b","match":{"equals":"mythomax-l2-13b"},"prices":{"input_mtok":0.065,"output_mtok":0.065}},{"id":"neversleep/llama-3-lumimaid-70b","match":{"equals":"neversleep/llama-3-lumimaid-70b"},"prices":{"input_mtok":3.375,"output_mtok":4.5}},{"id":"neversleep/llama-3-lumimaid-8b","match":{"or":[{"equals":"neversleep/llama-3-lumimaid-8b"},{"equals":"neversleep/llama-3-lumimaid-8b:extended"}]},"prices":{"input_mtok":0.09375,"output_mtok":0.75}},{"id":"neversleep/llama-3.1-lumimaid-70b","match":{"equals":"neversleep/llama-3.1-lumimaid-70b"},"prices":{"input_mtok":1.5,"output_mtok":2.25}},{"id":"neversleep/llama-3.1-lumimaid-8b","match":{"equals":"neversleep/llama-3.1-lumimaid-8b"},"prices":{"input_mtok":0.09375,"output_mtok":0.75}},{"id":"neversleep/noromaid-20b","match":{"equals":"neversleep/noromaid-20b"},"prices":{"input_mtok":0.75,"output_mtok":1.5}},{"id":"noromaid-20b","match":{"equals":"noromaid-20b"},"prices":{"input_mtok":1.25,"output_mtok":2}},{"id":"nothingiisreal/mn-celeste-12b","match":{"equals":"nothingiisreal/mn-celeste-12b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"nous-hermes-2-mixtral-8x7b-dpo","match":{"equals":"nous-hermes-2-mixtral-8x7b-dpo"},"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"nousresearch/hermes-2-pro-llama-3-8b","match":{"equals":"nousresearch/hermes-2-pro-llama-3-8b"},"prices":{"input_mtok":0.025,"output_mtok":0.04}},{"id":"nousresearch/hermes-3-llama-3.1-405b","match":{"equals":"nousresearch/hermes-3-llama-3.1-405b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"nousresearch/hermes-3-llama-3.1-70b","match":{"equals":"nousresearch/hermes-3-llama-3.1-70b"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"nousresearch/nous-hermes-2-mixtral-8x7b-dpo","match":{"equals":"nousresearch/nous-hermes-2-mixtral-8x7b-dpo"},"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"nousresearch/nous-hermes-llama2-13b","match":{"equals":"nousresearch/nous-hermes-llama2-13b"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"nova-lite-v1","match":{"equals":"nova-lite-v1"},"prices":{"input_mtok":0.06,"output_mtok":0.24}},{"id":"nova-micro-v1","match":{"equals":"nova-micro-v1"},"prices":{"input_mtok":0.035,"output_mtok":0.14}},{"id":"nova-pro-v1","match":{"equals":"nova-pro-v1"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"nvidia/llama-3.1-nemotron-70b-instruct","match":{"equals":"nvidia/llama-3.1-nemotron-70b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.3}},{"id":"o1","match":{"or":[{"equals":"o1"},{"equals":"o1-preview"},{"equals":"o1-preview-2024-09-12"}]},"prices":{"input_mtok":15,"cache_read_mtok":7.5,"output_mtok":60}},{"id":"o1-mini","match":{"or":[{"equals":"o1-mini"},{"equals":"o1-mini-2024-09-12"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o1-pro","match":{"equals":"o1-pro"},"prices":{"input_mtok":150,"output_mtok":600}},{"id":"o3","match":{"equals":"o3"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"o3-mini","match":{"or":[{"equals":"o3-mini"},{"equals":"o3-mini-high"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.55,"output_mtok":4.4}},{"id":"o3-pro","match":{"equals":"o3-pro"},"prices":{"input_mtok":20,"output_mtok":80}},{"id":"o4-mini","match":{"or":[{"equals":"o4-mini"},{"equals":"o4-mini-high"}]},"prices":{"input_mtok":1.1,"cache_read_mtok":0.275,"output_mtok":4.4}},{"id":"openai/chatgpt-4o-latest","match":{"equals":"openai/chatgpt-4o-latest"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"openai/codex-mini","match":{"equals":"openai/codex-mini"},"prices":{"input_mtok":1.5,"cache_read_mtok":0.375,"output_mtok":6}},{"id":"openai/gpt-3.5-turbo","match":{"or":[{"equals":"openai/gpt-3.5-turbo"},{"equals":"openai/gpt-3.5-turbo-0125"}]},"prices":{"input_mtok":0.5,"output_mtok":1.5}},{"id":"openai/gpt-3.5-turbo-0613","match":{"equals":"openai/gpt-3.5-turbo-0613"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"openai/gpt-3.5-turbo-1106","match":{"equals":"openai/gpt-3.5-turbo-1106"},"prices":{"input_mtok":1,"output_mtok":2}},{"id":"openai/gpt-3.5-turbo-16k","match":{"equals":"openai/gpt-3.5-turbo-16k"},"prices":{"input_mtok":3,"output_mtok":4}},{"id":"openai/gpt-3.5-turbo-instruct","match":{"equals":"openai/gpt-3.5-turbo-instruct"},"prices":{"input_mtok":1.5,"output_mtok":2}},{"id":"openai/gpt-4","match":{"or":[{"equals":"openai/gpt-4"},{"equals":"openai/gpt-4-0314"}]},"prices":{"input_mtok":30,"output_mtok":60}},{"id":"openai/gpt-4-1106-preview","match":{"equals":"openai/gpt-4-1106-preview"},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"openai/gpt-4-32k","match":{"or":[{"equals":"openai/gpt-4-32k"},{"equals":"openai/gpt-4-32k-0314"}]},"prices":{"input_mtok":60,"output_mtok":120}},{"id":"openai/gpt-4-turbo","match":{"or":[{"equals":"openai/gpt-4-turbo"},{"equals":"openai/gpt-4-turbo-preview"}]},"prices":{"input_mtok":10,"output_mtok":30}},{"id":"openai/gpt-4.1","match":{"equals":"openai/gpt-4.1"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"openai/gpt-4.1-mini","match":{"equals":"openai/gpt-4.1-mini"},"prices":{"input_mtok":0.4,"output_mtok":1.6}},{"id":"openai/gpt-4.1-nano","match":{"equals":"openai/gpt-4.1-nano"},"prices":{"input_mtok":0.1,"output_mtok":0.4}},{"id":"openai/gpt-4.5-preview","match":{"equals":"openai/gpt-4.5-preview"},"prices":{"input_mtok":75,"output_mtok":150}},{"id":"openai/gpt-4o","match":{"or":[{"equals":"openai/gpt-4o"},{"equals":"openai/gpt-4o-2024-08-06"},{"equals":"openai/gpt-4o-2024-11-20"},{"equals":"openai/gpt-4o-search-preview"},{"equals":"openai/gpt-4o-audio-preview"}]},"prices":{"input_mtok":2.5,"output_mtok":10}},{"id":"openai/gpt-4o-2024-05-13","match":{"equals":"openai/gpt-4o-2024-05-13"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"openai/gpt-4o-mini","match":{"or":[{"equals":"openai/gpt-4o-mini"},{"equals":"openai/gpt-4o-mini-2024-07-18"},{"equals":"openai/gpt-4o-mini-search-preview"}]},"prices":{"input_mtok":0.15,"output_mtok":0.6}},{"id":"openai/gpt-4o:extended","match":{"equals":"openai/gpt-4o:extended"},"prices":{"input_mtok":6,"output_mtok":18}},{"id":"openai/gpt-5","match":{"or":[{"equals":"openai/gpt-5"},{"equals":"openai/gpt-5-chat"},{"equals":"openai/gpt-5-codex"},{"equals":"openai/gpt-5.1"},{"equals":"openai/gpt-5.1-chat"},{"equals":"openai/gpt-5.1-codex"}]},"prices":{"input_mtok":1.25,"cache_read_mtok":0.125,"output_mtok":10}},{"id":"openai/gpt-5-image","match":{"equals":"openai/gpt-5-image"},"prices":{"input_mtok":10,"cache_read_mtok":1.25,"output_mtok":10}},{"id":"openai/gpt-5-image-mini","match":{"equals":"openai/gpt-5-image-mini"},"prices":{"input_mtok":2.5,"cache_read_mtok":0.25,"output_mtok":2}},{"id":"openai/gpt-5-mini","match":{"equals":"openai/gpt-5-mini"},"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"openai/gpt-5-nano","match":{"equals":"openai/gpt-5-nano"},"prices":{"input_mtok":0.05,"cache_read_mtok":0.005,"output_mtok":0.4}},{"id":"openai/gpt-5-pro","match":{"equals":"openai/gpt-5-pro"},"prices":{"input_mtok":15,"output_mtok":120}},{"id":"openai/gpt-5.1-codex-mini","match":{"equals":"openai/gpt-5.1-codex-mini"},"prices":{"input_mtok":0.25,"cache_read_mtok":0.025,"output_mtok":2}},{"id":"openai/gpt-oss-120b","match":{"or":[{"equals":"openai/gpt-oss-120b"},{"equals":"openai/gpt-oss-120b:exacto"}]},"prices":{"input_mtok":0.04,"output_mtok":0.2}},{"id":"openai/gpt-oss-20b","match":{"equals":"openai/gpt-oss-20b"},"prices":{"input_mtok":0.03,"output_mtok":0.14}},{"id":"openai/gpt-oss-safeguard-20b","match":{"equals":"openai/gpt-oss-safeguard-20b"},"prices":{"input_mtok":0.075,"cache_read_mtok":0.037,"output_mtok":0.3}},{"id":"openai/o1","match":{"or":[{"equals":"openai/o1"},{"equals":"openai/o1-preview"},{"equals":"openai/o1-preview-2024-09-12"}]},"prices":{"input_mtok":15,"output_mtok":60}},{"id":"openai/o1-mini","match":{"or":[{"equals":"openai/o1-mini"},{"equals":"openai/o1-mini-2024-09-12"}]},"prices":{"input_mtok":1.1,"output_mtok":4.4}},{"id":"openai/o1-pro","match":{"equals":"openai/o1-pro"},"prices":{"input_mtok":150,"output_mtok":600}},{"id":"openai/o3","match":{"equals":"openai/o3"},"prices":{"input_mtok":10,"output_mtok":40}},{"id":"openai/o3-deep-research","match":{"equals":"openai/o3-deep-research"},"prices":{"input_mtok":10,"cache_read_mtok":2.5,"output_mtok":40}},{"id":"openai/o3-mini","match":{"or":[{"equals":"openai/o3-mini"},{"equals":"openai/o3-mini-high"}]},"prices":{"input_mtok":1.1,"output_mtok":4.4}},{"id":"openai/o3-pro","match":{"equals":"openai/o3-pro"},"prices":{"input_mtok":20,"output_mtok":80}},{"id":"openai/o4-mini","match":{"or":[{"equals":"openai/o4-mini"},{"equals":"openai/o4-mini-high"}]},"prices":{"input_mtok":1.1,"output_mtok":4.4}},{"id":"openai/o4-mini-deep-research","match":{"equals":"openai/o4-mini-deep-research"},"prices":{"input_mtok":2,"cache_read_mtok":0.5,"output_mtok":8}},{"id":"openchat/openchat-7b","match":{"equals":"openchat/openchat-7b"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"openhands-lm-32b-v0.1","match":{"equals":"openhands-lm-32b-v0.1"},"prices":{"input_mtok":2.6,"output_mtok":3.4}},{"id":"perplexity/llama-3.1-sonar-large-128k-online","match":{"equals":"perplexity/llama-3.1-sonar-large-128k-online"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"perplexity/llama-3.1-sonar-small-128k-online","match":{"equals":"perplexity/llama-3.1-sonar-small-128k-online"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"perplexity/r1-1776","match":{"equals":"perplexity/r1-1776"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"perplexity/sonar","match":{"equals":"perplexity/sonar"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"perplexity/sonar-deep-research","match":{"equals":"perplexity/sonar-deep-research"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"perplexity/sonar-pro","match":{"equals":"perplexity/sonar-pro"},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"perplexity/sonar-reasoning","match":{"equals":"perplexity/sonar-reasoning"},"prices":{"input_mtok":1,"output_mtok":5}},{"id":"perplexity/sonar-reasoning-pro","match":{"equals":"perplexity/sonar-reasoning-pro"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"phi-3-medium-128k-instruct","match":{"equals":"phi-3-medium-128k-instruct"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"phi-3-mini-128k-instruct","match":{"equals":"phi-3-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-3.5-mini-128k-instruct","match":{"equals":"phi-3.5-mini-128k-instruct"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"phi-4","match":{"equals":"phi-4"},"prices":{"input_mtok":0.07,"output_mtok":0.14}},{"id":"phi-4-multimodal-instruct","match":{"equals":"phi-4-multimodal-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"phi-4-reasoning-plus","match":{"equals":"phi-4-reasoning-plus"},"prices":{"input_mtok":0.07,"output_mtok":0.35}},{"id":"pixtral-12b","match":{"equals":"pixtral-12b"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"pixtral-large-2411","match":{"equals":"pixtral-large-2411"},"prices":{"input_mtok":2,"output_mtok":6}},{"id":"pygmalionai/mythalion-13b","match":{"equals":"pygmalionai/mythalion-13b"},"prices":{"input_mtok":0.5625,"output_mtok":1.125}},{"id":"qwen-2-72b-instruct","match":{"equals":"qwen-2-72b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen-2.5-72b-instruct","match":{"equals":"qwen-2.5-72b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.39}},{"id":"qwen-2.5-7b-instruct","match":{"equals":"qwen-2.5-7b-instruct"},"prices":{"input_mtok":0.04,"output_mtok":0.1}},{"id":"qwen-2.5-coder-32b-instruct","match":{"equals":"qwen-2.5-coder-32b-instruct"},"prices":{"input_mtok":0.06,"output_mtok":0.15}},{"id":"qwen-2.5-vl-7b-instruct","match":{"equals":"qwen-2.5-vl-7b-instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen-max","match":{"equals":"qwen-max"},"prices":{"input_mtok":1.6,"cache_read_mtok":0.64,"output_mtok":6.4}},{"id":"qwen-plus","match":{"equals":"qwen-plus"},"prices":{"input_mtok":0.4,"cache_read_mtok":0.16,"output_mtok":1.2}},{"id":"qwen-turbo","match":{"equals":"qwen-turbo"},"prices":{"input_mtok":0.05,"cache_read_mtok":0.02,"output_mtok":0.2}},{"id":"qwen-vl-max","match":{"equals":"qwen-vl-max"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"qwen-vl-plus","match":{"equals":"qwen-vl-plus"},"prices":{"input_mtok":0.21,"output_mtok":0.63}},{"id":"qwen/qwen-2-72b-instruct","match":{"equals":"qwen/qwen-2-72b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen/qwen-2.5-72b-instruct","match":{"equals":"qwen/qwen-2.5-72b-instruct"},"prices":{"input_mtok":0.12,"output_mtok":0.39}},{"id":"qwen/qwen-2.5-7b-instruct","match":{"equals":"qwen/qwen-2.5-7b-instruct"},"prices":{"input_mtok":0.05,"output_mtok":0.1}},{"id":"qwen/qwen-2.5-coder-32b-instruct","match":{"equals":"qwen/qwen-2.5-coder-32b-instruct"},"prices":{"input_mtok":0.07,"output_mtok":0.15}},{"id":"qwen/qwen-2.5-vl-72b-instruct","match":{"equals":"qwen/qwen-2.5-vl-72b-instruct"},"prices":{"input_mtok":0.6,"output_mtok":0.6}},{"id":"qwen/qwen-2.5-vl-7b-instruct","match":{"equals":"qwen/qwen-2.5-vl-7b-instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen/qwen-max","match":{"equals":"qwen/qwen-max"},"prices":{"input_mtok":1.6,"output_mtok":6.4}},{"id":"qwen/qwen-plus","match":{"equals":"qwen/qwen-plus"},"prices":{"input_mtok":0.4,"output_mtok":1.2}},{"id":"qwen/qwen-turbo","match":{"equals":"qwen/qwen-turbo"},"prices":{"input_mtok":0.05,"output_mtok":0.2}},{"id":"qwen/qwen-vl-max","match":{"equals":"qwen/qwen-vl-max"},"prices":{"input_mtok":0.8,"output_mtok":3.2}},{"id":"qwen/qwen-vl-plus","match":{"equals":"qwen/qwen-vl-plus"},"prices":{"input_mtok":0.21,"output_mtok":0.63}},{"id":"qwen/qwen2.5-coder-7b-instruct","match":{"equals":"qwen/qwen2.5-coder-7b-instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen/qwen2.5-vl-32b-instruct","match":{"equals":"qwen/qwen2.5-vl-32b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen/qwen2.5-vl-72b-instruct","match":{"equals":"qwen/qwen2.5-vl-72b-instruct"},"prices":{"input_mtok":0.7,"output_mtok":0.7}},{"id":"qwen/qwen3-max","match":{"or":[{"equals":"qwen/qwen3-max"},{"equals":"qwen/qwen3-max-thinking"}]},"prices":{"input_mtok":1.2,"output_mtok":6}},{"id":"qwen/qwq-32b","match":{"equals":"qwen/qwq-32b"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"qwen/qwq-32b-preview","match":{"equals":"qwen/qwq-32b-preview"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"qwen2.5-vl-32b-instruct","match":{"equals":"qwen2.5-vl-32b-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"qwen2.5-vl-72b-instruct","match":{"equals":"qwen2.5-vl-72b-instruct"},"prices":{"input_mtok":0.25,"output_mtok":0.75}},{"id":"qwen3-14b","match":{"equals":"qwen3-14b"},"prices":{"input_mtok":0.06,"output_mtok":0.24}},{"id":"qwen3-235b-a22b","match":{"equals":"qwen3-235b-a22b"},"prices":{"input_mtok":0.13,"output_mtok":0.6}},{"id":"qwen3-30b-a3b","match":{"equals":"qwen3-30b-a3b"},"prices":{"input_mtok":0.08,"output_mtok":0.29}},{"id":"qwen3-32b","match":{"equals":"qwen3-32b"},"prices":{"input_mtok":0.1,"output_mtok":0.3}},{"id":"qwen3-8b","match":{"equals":"qwen3-8b"},"prices":{"input_mtok":0.035,"output_mtok":0.138}},{"id":"qwen3.5-plus-02-15","match":{"equals":"qwen3.5-plus-02-15"},"prices":{"input_mtok":0.4,"output_mtok":2.4}},{"id":"qwq-32b","match":{"equals":"qwq-32b"},"prices":{"input_mtok":0.15,"output_mtok":0.2}},{"id":"qwq-32b-preview","match":{"equals":"qwq-32b-preview"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"r1-1776","match":{"equals":"r1-1776"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"raifle/sorcererlm-8x22b","match":{"equals":"raifle/sorcererlm-8x22b"},"prices":{"input_mtok":4.5,"output_mtok":4.5}},{"id":"remm-slerp-l2-13b","match":{"equals":"remm-slerp-l2-13b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"rocinante-12b","match":{"equals":"rocinante-12b"},"prices":{"input_mtok":0.25,"output_mtok":0.5}},{"id":"sao10k/fimbulvetr-11b-v2","match":{"equals":"sao10k/fimbulvetr-11b-v2"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"sao10k/l3-euryale-70b","match":{"equals":"sao10k/l3-euryale-70b"},"prices":{"input_mtok":1.48,"output_mtok":1.48}},{"id":"sao10k/l3-lunaris-8b","match":{"equals":"sao10k/l3-lunaris-8b"},"prices":{"input_mtok":0.02,"output_mtok":0.05}},{"id":"sao10k/l3.1-euryale-70b","match":{"equals":"sao10k/l3.1-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"sao10k/l3.3-euryale-70b","match":{"equals":"sao10k/l3.3-euryale-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.8}},{"id":"scb10x/llama3.1-typhoon2-70b-instruct","match":{"equals":"scb10x/llama3.1-typhoon2-70b-instruct"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"scb10x/llama3.1-typhoon2-8b-instruct","match":{"equals":"scb10x/llama3.1-typhoon2-8b-instruct"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"skyfall-36b-v2","match":{"equals":"skyfall-36b-v2"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"sonar","match":{"equals":"sonar"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"sonar-deep-research","match":{"equals":"sonar-deep-research"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sonar-pro","match":{"equals":"sonar-pro"},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"sonar-reasoning","match":{"equals":"sonar-reasoning"},"prices":{"input_mtok":1,"output_mtok":5}},{"id":"sonar-reasoning-pro","match":{"equals":"sonar-reasoning-pro"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sophosympatheia/midnight-rose-70b","match":{"equals":"sophosympatheia/midnight-rose-70b"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"sorcererlm-8x22b","match":{"equals":"sorcererlm-8x22b"},"prices":{"input_mtok":4.5,"output_mtok":4.5}},{"id":"spotlight","match":{"equals":"spotlight"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"steelskull/l3.3-electra-r1-70b","match":{"equals":"steelskull/l3.3-electra-r1-70b"},"prices":{"input_mtok":0.7,"output_mtok":0.95}},{"id":"thedrummer/anubis-pro-105b-v1","match":{"equals":"thedrummer/anubis-pro-105b-v1"},"prices":{"input_mtok":0.8,"output_mtok":1}},{"id":"thedrummer/rocinante-12b","match":{"equals":"thedrummer/rocinante-12b"},"prices":{"input_mtok":0.25,"output_mtok":0.5}},{"id":"thedrummer/skyfall-36b-v2","match":{"equals":"thedrummer/skyfall-36b-v2"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"thedrummer/unslopnemo-12b","match":{"equals":"thedrummer/unslopnemo-12b"},"prices":{"input_mtok":0.5,"output_mtok":0.5}},{"id":"toppy-m-7b","match":{"equals":"toppy-m-7b"},"prices":{"input_mtok":0.8,"output_mtok":1.2}},{"id":"undi95/remm-slerp-l2-13b","match":{"equals":"undi95/remm-slerp-l2-13b"},"prices":{"input_mtok":0.5625,"output_mtok":1.125}},{"id":"undi95/toppy-m-7b","match":{"equals":"undi95/toppy-m-7b"},"prices":{"input_mtok":0.07,"output_mtok":0.07}},{"id":"unslopnemo-12b","match":{"equals":"unslopnemo-12b"},"prices":{"input_mtok":0.45,"output_mtok":0.45}},{"id":"valkyrie-49b-v1","match":{"equals":"valkyrie-49b-v1"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"virtuoso-large","match":{"equals":"virtuoso-large"},"prices":{"input_mtok":0.75,"output_mtok":1.2}},{"id":"virtuoso-medium-v2","match":{"equals":"virtuoso-medium-v2"},"prices":{"input_mtok":0.5,"output_mtok":0.8}},{"id":"weaver","match":{"equals":"weaver"},"prices":{"input_mtok":1.5,"output_mtok":1.5}},{"id":"wizardlm-2-8x22b","match":{"equals":"wizardlm-2-8x22b"},"prices":{"input_mtok":0.48,"output_mtok":0.48}},{"id":"x-ai/grok-2-1212","match":{"equals":"x-ai/grok-2-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"x-ai/grok-2-vision-1212","match":{"equals":"x-ai/grok-2-vision-1212"},"prices":{"input_mtok":2,"output_mtok":10}},{"id":"x-ai/grok-3-beta","match":{"equals":"x-ai/grok-3-beta"},"prices":{"input_mtok":3,"output_mtok":15}},{"id":"x-ai/grok-3-mini-beta","match":{"equals":"x-ai/grok-3-mini-beta"},"prices":{"input_mtok":0.3,"output_mtok":0.5}},{"id":"x-ai/grok-4-fast","match":{"equals":"x-ai/grok-4-fast"},"context_window":2000000,"prices":{"input_mtok":{"base":0.2,"tiers":[{"start":128000,"price":0.4}]},"cache_read_mtok":0.05,"output_mtok":{"base":0.5,"tiers":[{"start":128000,"price":1}]}}},{"id":"x-ai/grok-beta","match":{"equals":"x-ai/grok-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"x-ai/grok-code-fast-1","match":{"equals":"x-ai/grok-code-fast-1"},"context_window":256000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.02,"output_mtok":1.5}},{"id":"x-ai/grok-vision-beta","match":{"equals":"x-ai/grok-vision-beta"},"prices":{"input_mtok":5,"output_mtok":15}},{"id":"xwin-lm/xwin-lm-70b","match":{"equals":"xwin-lm/xwin-lm-70b"},"prices":{"input_mtok":3.75,"output_mtok":3.75}},{"id":"yi-large","match":{"equals":"yi-large"},"prices":{"input_mtok":3,"output_mtok":3}},{"id":"z-ai/glm-4.5","match":{"equals":"z-ai/glm-4.5"},"context_window":131072,"prices":{"input_mtok":0.35,"output_mtok":1.55}},{"id":"z-ai/glm-4.6","match":{"equals":"z-ai/glm-4.6"},"context_window":202752,"prices":{"input_mtok":0.4,"output_mtok":1.75}}]},{"id":"ovhcloud","name":"OVHcloud AI Endpoints","pricing_urls":["https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/models"],"api_pattern":"https://oai\\.endpoints\\.kepler\\.ai\\.cloud\\.ovh\\.net","extractors":[{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["prompt_tokens_details","audio_tokens"],"dest":"input_audio_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"DeepSeek-R1-Distill-Llama-70B","match":{"or":[{"equals":"DeepSeek-R1-Distill-Llama-70B"},{"equals":"deepseek-r1-distill-llama-70b"}]},"context_window":131072,"prices":{"input_mtok":0.74,"output_mtok":0.74}},{"id":"Llama-3.1-8B-Instruct","match":{"or":[{"equals":"Llama-3.1-8B-Instruct"},{"equals":"llama-3.1-8b-instruct"}]},"context_window":131072,"prices":{"input_mtok":0.11,"output_mtok":0.11}},{"id":"Meta-Llama-3_3-70B-Instruct","match":{"or":[{"equals":"Meta-Llama-3_3-70B-Instruct"},{"equals":"meta-llama-3_3-70b-instruct"}]},"context_window":131072,"prices":{"input_mtok":0.74,"output_mtok":0.74}},{"id":"Mistral-7B-Instruct-v0.3","match":{"or":[{"equals":"Mistral-7B-Instruct-v0.3"},{"equals":"mistral-7b-instruct-v0.3"}]},"context_window":65536,"prices":{"input_mtok":0.11,"output_mtok":0.11}},{"id":"Mistral-Nemo-Instruct-2407","match":{"or":[{"equals":"Mistral-Nemo-Instruct-2407"},{"equals":"mistral-nemo-instruct-2407"}]},"context_window":65536,"prices":{"input_mtok":0.14,"output_mtok":0.14}},{"id":"Mistral-Small-3.2-24B-Instruct-2506","match":{"or":[{"equals":"Mistral-Small-3.2-24B-Instruct-2506"},{"equals":"mistral-small-3.2-24b-instruct-2506"}]},"context_window":131072,"prices":{"input_mtok":0.1,"output_mtok":0.31}},{"id":"Mixtral-8x7B-Instruct-v0.1","match":{"or":[{"equals":"Mixtral-8x7B-Instruct-v0.1"},{"equals":"mixtral-8x7b-instruct-v0.1"}]},"context_window":32768,"prices":{"input_mtok":0.7,"output_mtok":0.7}},{"id":"Qwen2.5-VL-72B-Instruct","match":{"or":[{"equals":"Qwen2.5-VL-72B-Instruct"},{"equals":"qwen2.5-vl-72b-instruct"}]},"context_window":32768,"prices":{"input_mtok":1.01,"output_mtok":1.01}},{"id":"Qwen3-32B","match":{"or":[{"equals":"Qwen3-32B"},{"equals":"qwen3-32b"}]},"context_window":32768,"prices":{"input_mtok":0.09,"output_mtok":0.25}},{"id":"Qwen3-Coder-30B-A3B-Instruct","match":{"or":[{"equals":"Qwen3-Coder-30B-A3B-Instruct"},{"equals":"qwen3-coder-30b-a3b-instruct"}]},"context_window":262144,"prices":{"input_mtok":0.07,"output_mtok":0.26}},{"id":"bge-base-en-v1.5","match":{"equals":"bge-base-en-v1.5"},"context_window":512,"prices":{"input_mtok":0.01}},{"id":"bge-m3","match":{"equals":"bge-m3"},"context_window":8192,"prices":{"input_mtok":0.01}},{"id":"bge-multilingual-gemma2","match":{"equals":"bge-multilingual-gemma2"},"context_window":8192,"prices":{"input_mtok":0.01}},{"id":"gpt-oss-120b","match":{"equals":"gpt-oss-120b"},"context_window":131072,"prices":{"input_mtok":0.09,"output_mtok":0.47}},{"id":"gpt-oss-20b","match":{"equals":"gpt-oss-20b"},"context_window":131072,"prices":{"input_mtok":0.05,"output_mtok":0.18}}]},{"id":"perplexity","name":"Perplexity","pricing_urls":["https://docs.perplexity.ai/guides/pricing"],"api_pattern":"https://api\\.perplexity\\.ai","models":[{"id":"llama-3.1-sonar-large-128k-online","match":{"equals":"llama-3.1-sonar-large-128k-online"},"prices":{"input_mtok":1,"output_mtok":1}},{"id":"llama-3.1-sonar-small-128k-online","match":{"equals":"llama-3.1-sonar-small-128k-online"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"r1-1776","match":{"equals":"r1-1776"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sonar","match":{"equals":"sonar"},"prices":{"input_mtok":1,"output_mtok":1,"requests_kcount":12}},{"id":"sonar-deep-research","match":{"equals":"sonar-deep-research"},"prices":{"input_mtok":2,"output_mtok":8}},{"id":"sonar-pro","match":{"equals":"sonar-pro"},"prices":{"input_mtok":3,"output_mtok":15,"requests_kcount":14}},{"id":"sonar-reasoning","match":{"equals":"sonar-reasoning"},"prices":{"input_mtok":1,"output_mtok":5,"requests_kcount":12}},{"id":"sonar-reasoning-pro","match":{"equals":"sonar-reasoning-pro"},"prices":{"input_mtok":2,"output_mtok":8,"requests_kcount":14}}]},{"id":"together","name":"Together AI","pricing_urls":["https://www.together.ai/pricing"],"api_pattern":"https://api\\.together\\.xyz","provider_match":{"or":[{"equals":"together-ai"},{"equals":"together_ai"}]},"models":[{"id":"Austism/chronos-hermes-13b","match":{"equals":"Austism/chronos-hermes-13b"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Gryphe/MythoMax-L2-13b","match":{"equals":"Gryphe/MythoMax-L2-13b"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Nexusflow/NexusRaven-V2-13B","match":{"equals":"Nexusflow/NexusRaven-V2-13B"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"NousResearch/Nous-Capybara-7B-V1p9","match":{"equals":"NousResearch/Nous-Capybara-7B-V1p9"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO","match":{"equals":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-SFT","match":{"equals":"NousResearch/Nous-Hermes-2-Mixtral-8x7B-SFT"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"NousResearch/Nous-Hermes-2-Yi-34B","match":{"equals":"NousResearch/Nous-Hermes-2-Yi-34B"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"NousResearch/Nous-Hermes-Llama2-13b","match":{"equals":"NousResearch/Nous-Hermes-Llama2-13b"},"prices":{"input_mtok":0.225,"output_mtok":0.225}},{"id":"NousResearch/Nous-Hermes-llama-2-7b","match":{"equals":"NousResearch/Nous-Hermes-llama-2-7b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Open-Orca/Mistral-7B-OpenOrca","match":{"equals":"Open-Orca/Mistral-7B-OpenOrca"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Qwen/Qwen1.5-0.5B","match":{"or":[{"equals":"Qwen/Qwen1.5-0.5B"},{"equals":"Qwen/Qwen1.5-0.5B-Chat"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Qwen/Qwen1.5-1.8B","match":{"or":[{"equals":"Qwen/Qwen1.5-1.8B"},{"equals":"Qwen/Qwen1.5-1.8B-Chat"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Qwen/Qwen1.5-14B","match":{"or":[{"equals":"Qwen/Qwen1.5-14B"},{"equals":"Qwen/Qwen1.5-14B-Chat"}]},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Qwen/Qwen1.5-4B","match":{"or":[{"equals":"Qwen/Qwen1.5-4B"},{"equals":"Qwen/Qwen1.5-4B-Chat"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"Qwen/Qwen1.5-72B","match":{"equals":"Qwen/Qwen1.5-72B"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"Qwen/Qwen1.5-7B","match":{"or":[{"equals":"Qwen/Qwen1.5-7B"},{"equals":"Qwen/Qwen1.5-7B-Chat"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"Undi95/ReMM-SLERP-L2-13B","match":{"equals":"Undi95/ReMM-SLERP-L2-13B"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"Undi95/Toppy-M-7B","match":{"equals":"Undi95/Toppy-M-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"WizardLM/WizardLM-13B-V1.2","match":{"equals":"WizardLM/WizardLM-13B-V1.2"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"allenai/OLMo-7B","match":{"or":[{"equals":"allenai/OLMo-7B"},{"equals":"allenai/OLMo-7B-Instruct"},{"equals":"allenai/OLMo-7B-Twin-2T"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"codellama/CodeLlama-13b-Instruct-hf","match":{"equals":"codellama/CodeLlama-13b-Instruct-hf"},"prices":{"input_mtok":0.225,"output_mtok":0.225}},{"id":"codellama/CodeLlama-34b-Instruct-hf","match":{"equals":"codellama/CodeLlama-34b-Instruct-hf"},"prices":{"input_mtok":0.776,"output_mtok":0.776}},{"id":"codellama/CodeLlama-70b-Instruct-hf","match":{"equals":"codellama/CodeLlama-70b-Instruct-hf"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"codellama/CodeLlama-7b-Instruct-hf","match":{"equals":"codellama/CodeLlama-7b-Instruct-hf"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"deepseek-ai/deepseek-coder-33b-instruct","match":{"equals":"deepseek-ai/deepseek-coder-33b-instruct"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"garage-bAInd/Platypus2-70B-instruct","match":{"equals":"garage-bAInd/Platypus2-70B-instruct"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"google/gemma-2b","match":{"or":[{"equals":"google/gemma-2b"},{"equals":"google/gemma-2b-it"}]},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"google/gemma-7b","match":{"or":[{"equals":"google/gemma-7b"},{"equals":"google/gemma-7b-it"}]},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"lmsys/vicuna-13b-v1.5","match":{"equals":"lmsys/vicuna-13b-v1.5"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"lmsys/vicuna-7b-v1.5","match":{"equals":"lmsys/vicuna-7b-v1.5"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/Llama-2-13b-chat-hf","match":{"equals":"meta-llama/Llama-2-13b-chat-hf"},"prices":{"input_mtok":0.225,"output_mtok":0.225}},{"id":"meta-llama/Llama-2-70b-chat-hf","match":{"equals":"meta-llama/Llama-2-70b-chat-hf"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/Llama-2-7b-chat-hf","match":{"equals":"meta-llama/Llama-2-7b-chat-hf"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/Llama-3-70b-chat-hf","match":{"equals":"meta-llama/Llama-3-70b-chat-hf"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"meta-llama/Llama-3-8b-chat-hf","match":{"equals":"meta-llama/Llama-3-8b-chat-hf"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","match":{"equals":"meta-llama/Llama-3.3-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","match":{"equals":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8"},"prices":{"input_mtok":0.27,"output_mtok":0.85}},{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","match":{"equals":"meta-llama/Llama-4-Scout-17B-16E-Instruct"},"prices":{"input_mtok":0.18,"output_mtok":0.59}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct-Lite","match":{"equals":"meta-llama/Meta-Llama-3-70B-Instruct-Lite"},"prices":{"input_mtok":0.54,"output_mtok":0.54}},{"id":"meta-llama/Meta-Llama-3-70B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct-Lite","match":{"equals":"meta-llama/Meta-Llama-3-8B-Instruct-Lite"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"meta-llama/Meta-Llama-3-8B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3-8B-Instruct-Turbo"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo"},"prices":{"input_mtok":3.5,"output_mtok":3.5}},{"id":"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo"},"prices":{"input_mtok":0.18,"output_mtok":0.18}},{"id":"meta-llama/Meta-Llama-3.3-70B-Instruct-Turbo","match":{"equals":"meta-llama/Meta-Llama-3.3-70B-Instruct-Turbo"},"prices":{"input_mtok":0.88,"output_mtok":0.88}},{"id":"microsoft/WizardLM-2-8x22B","match":{"equals":"microsoft/WizardLM-2-8x22B"},"prices":{"input_mtok":1.2,"output_mtok":1.2}},{"id":"microsoft/phi-2","match":{"equals":"microsoft/phi-2"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"mistralai/Mistral-7B-Instruct-v0.1","match":{"equals":"mistralai/Mistral-7B-Instruct-v0.1"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/Mistral-7B-Instruct-v0.2","match":{"equals":"mistralai/Mistral-7B-Instruct-v0.2"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/Mistral-7B-v0.1","match":{"equals":"mistralai/Mistral-7B-v0.1"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"mistralai/Mixtral-8x22B-Instruct-v0.1","match":{"equals":"mistralai/Mixtral-8x22B-Instruct-v0.1"},"prices":{"input_mtok":2.4,"output_mtok":2.4}},{"id":"mistralai/Mixtral-8x7B-Instruct-v0.1","match":{"equals":"mistralai/Mixtral-8x7B-Instruct-v0.1"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"mistralai/Mixtral-8x7B-v0.1","match":{"equals":"mistralai/Mixtral-8x7B-v0.1"},"prices":{"input_mtok":0.9,"output_mtok":0.9}},{"id":"openchat/openchat-3.5-1210","match":{"equals":"openchat/openchat-3.5-1210"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"snorkelai/Snorkel-Mistral-PairRM-DPO","match":{"equals":"snorkelai/Snorkel-Mistral-PairRM-DPO"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"teknium/OpenHermes-2-Mistral-7B","match":{"equals":"teknium/OpenHermes-2-Mistral-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"teknium/OpenHermes-2p5-Mistral-7B","match":{"equals":"teknium/OpenHermes-2p5-Mistral-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/GPT-JT-Moderation-6B","match":{"equals":"togethercomputer/GPT-JT-Moderation-6B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/Llama-2-7B-32K-Instruct","match":{"equals":"togethercomputer/Llama-2-7B-32K-Instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-7B-Base","match":{"equals":"togethercomputer/RedPajama-INCITE-7B-Base"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-7B-Chat","match":{"equals":"togethercomputer/RedPajama-INCITE-7B-Chat"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-7B-Instruct","match":{"equals":"togethercomputer/RedPajama-INCITE-7B-Instruct"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/RedPajama-INCITE-Base-3B-v1","match":{"equals":"togethercomputer/RedPajama-INCITE-Base-3B-v1"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"togethercomputer/RedPajama-INCITE-Chat-3B-v1","match":{"equals":"togethercomputer/RedPajama-INCITE-Chat-3B-v1"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"togethercomputer/RedPajama-INCITE-Instruct-3B-v1","match":{"equals":"togethercomputer/RedPajama-INCITE-Instruct-3B-v1"},"prices":{"input_mtok":0.1,"output_mtok":0.1}},{"id":"togethercomputer/StripedHyena-Hessian-7B","match":{"equals":"togethercomputer/StripedHyena-Hessian-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/StripedHyena-Nous-7B","match":{"equals":"togethercomputer/StripedHyena-Nous-7B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"togethercomputer/alpaca-7b","match":{"equals":"togethercomputer/alpaca-7b"},"prices":{"input_mtok":0.2,"output_mtok":0.2}},{"id":"upstage/SOLAR-10.7B-Instruct-v1.0","match":{"equals":"upstage/SOLAR-10.7B-Instruct-v1.0"},"prices":{"input_mtok":0.3,"output_mtok":0.3}},{"id":"zero-one-ai/Yi-34B","match":{"equals":"zero-one-ai/Yi-34B"},"prices":{"input_mtok":0.8,"output_mtok":0.8}},{"id":"zero-one-ai/Yi-6B","match":{"equals":"zero-one-ai/Yi-6B"},"prices":{"input_mtok":0.2,"output_mtok":0.2}}]},{"id":"x-ai","name":"X AI","pricing_urls":["https://docs.x.ai/docs/models"],"api_pattern":"https://api\\.x\\.ai","model_match":{"contains":"grok"},"provider_match":{"equals":"xai"},"extractors":[{"api_flavor":"default","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":"cached_prompt_text_tokens","dest":"cache_read_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]},{"api_flavor":"chat","root":"usage","model_path":"model","mappings":[{"path":"prompt_tokens","dest":"input_tokens","required":true},{"path":["prompt_tokens_details","cached_tokens"],"dest":"cache_read_tokens","required":false},{"path":["completion_tokens_details","audio_tokens"],"dest":"output_audio_tokens","required":false},{"path":"completion_tokens","dest":"output_tokens","required":true}]}],"models":[{"id":"grok-2-1212","match":{"or":[{"equals":"grok-2-1212"},{"equals":"grok-2"},{"equals":"grok-2-latest"}]},"context_window":32768,"prices":{"input_mtok":2,"output_mtok":10},"deprecated":true},{"id":"grok-2-vision-1212","match":{"or":[{"equals":"grok-2-vision-1212"},{"equals":"grok-2-vision"},{"equals":"grok-2-vision-latest"}]},"context_window":32768,"prices":{"input_mtok":2,"output_mtok":10}},{"id":"grok-3","match":{"or":[{"equals":"grok-3"},{"equals":"grok-3-latest"},{"equals":"grok-3-beta"}]},"context_window":131072,"prices":{"input_mtok":3,"cache_read_mtok":0.75,"output_mtok":15}},{"id":"grok-3-fast","match":{"or":[{"equals":"grok-3-fast"},{"equals":"grok-3-fast-latest"},{"equals":"grok-3-fast-beta"}]},"context_window":131072,"prices":{"input_mtok":5,"cache_read_mtok":1.25,"output_mtok":25}},{"id":"grok-3-mini","match":{"or":[{"equals":"grok-3-mini"},{"equals":"grok-3-mini-beta"},{"equals":"grok-3-mini-latest"}]},"context_window":131072,"prices":{"input_mtok":0.3,"cache_read_mtok":0.075,"output_mtok":0.5}},{"id":"grok-3-mini-fast","match":{"or":[{"equals":"grok-3-mini-fast"},{"equals":"grok-3-mini-fast-beta"},{"equals":"grok-3-mini-fast-latest"}]},"context_window":131072,"prices":{"input_mtok":0.6,"cache_read_mtok":0.15,"output_mtok":4}},{"id":"grok-4-0709","match":{"or":[{"equals":"grok-4-0709"},{"equals":"grok-4"},{"equals":"grok-4-latest"}]},"context_window":256000,"prices":{"input_mtok":3,"cache_read_mtok":0.75,"output_mtok":15}},{"id":"grok-4-1-fast-non-reasoning","match":{"or":[{"equals":"grok-4-1-fast-non-reasoning"},{"equals":"grok-4-1-fast-non-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-4-1-fast-reasoning","match":{"or":[{"equals":"grok-4-1-fast"},{"equals":"grok-4-1-fast-reasoning"},{"equals":"grok-4-1-fast-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-4-fast-non-reasoning","match":{"or":[{"equals":"grok-4-fast-non-reasoning"},{"equals":"grok-4-fast-non-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-4-fast-reasoning","match":{"or":[{"equals":"grok-4-fast"},{"equals":"grok-4-fast-reasoning"},{"equals":"grok-4-fast-reasoning-latest"}]},"context_window":2000000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.05,"output_mtok":0.5}},{"id":"grok-code-fast-1","match":{"or":[{"equals":"grok-code-fast"},{"equals":"grok-code-fast-1"},{"equals":"grok-code-fast-1-0825"}]},"context_window":256000,"prices":{"input_mtok":0.2,"cache_read_mtok":0.02,"output_mtok":1.5}}]}] diff --git a/prices/providers/openai.yml b/prices/providers/openai.yml index 679ffb49..0b01a741 100644 --- a/prices/providers/openai.yml +++ b/prices/providers/openai.yml @@ -371,8 +371,10 @@ models: context_window: 128000 prices_checked: 2025-07-22 prices: + input_mtok: 2.5 input_audio_mtok: 2.5 output_mtok: 10 + price_comments: input_mtok set equal to input_audio_mtok (audio-only input model, catch-all required by ancestor coverage rule) - id: gpt-4o-mini name: gpt 4o mini @@ -409,8 +411,10 @@ models: starts_with: gpt-4o-mini-audio prices_checked: 2025-07-22 prices: + input_mtok: 0.15 input_audio_mtok: 0.15 output_mtok: 0.6 + price_comments: input_mtok set equal to input_audio_mtok (audio-only input model, catch-all required by ancestor coverage rule) - id: gpt-4o-mini-realtime-preview match: @@ -437,7 +441,9 @@ models: equals: gpt-4o-mini-tts prices: input_mtok: 0.6 + output_mtok: 12 output_audio_mtok: 12 + price_comments: output_mtok set equal to output_audio_mtok (audio-only output model, catch-all required by ancestor coverage rule) - id: gpt-4o-realtime-preview match: diff --git a/prices/src/prices/package_data.py b/prices/src/prices/package_data.py index b3019755..d726656b 100644 --- a/prices/src/prices/package_data.py +++ b/prices/src/prices/package_data.py @@ -9,10 +9,51 @@ def package_data(): data_path = this_package_dir / 'data.json' + package_units() package_python_data(data_path) package_ts_data(data_path) +def package_units(): + """Generate units JSON from YAML source of truth for Python and JS packages. + + Writes the canonical JSON to the Python package and copies it to the JS package. + Runs prettier so the file is stable through pre-commit hooks (json.dumps expands + short arrays onto multiple lines, but prettier collapses them). + """ + import yaml + + from genai_prices.units import RawUnitsData + + units_yml = root_dir / 'prices' / 'units.yml' + units_data = yaml.safe_load(units_yml.read_text()) + + # Write JSON schema for YAML editor support + schema_path = root_dir / 'prices' / 'units.schema.json' + schema_path.write_text(json.dumps(RawUnitsData.model_json_schema(), indent=2) + '\n') + print(f'Units schema written to {schema_path.relative_to(root_dir)}') + + units_json = json.dumps(units_data, indent=2) + + py_units_json = root_dir / 'packages' / 'python' / 'genai_prices' / 'units_data.json' + py_units_json.write_text(units_json + '\n') + + # Run prettier so the file is stable through pre-commit hooks + subprocess.run( + ['npx', 'prettier', '--write', str(py_units_json)], + cwd=str(root_dir), + check=True, + stdout=subprocess.PIPE, + ) + + # Copy to JS package (not symlink, to avoid packaging issues) + js_units_json = root_dir / 'packages' / 'js' / 'src' / 'units-data.json' + js_units_json.write_text(py_units_json.read_text()) + + print(f'Units data written to {py_units_json.relative_to(root_dir)}') + print(f'Units data copied to {js_units_json.relative_to(root_dir)}') + + def package_python_data(data_path: Path): """Prep python package data.""" diff --git a/prices/units.schema.json b/prices/units.schema.json new file mode 100644 index 00000000..23186329 --- /dev/null +++ b/prices/units.schema.json @@ -0,0 +1,77 @@ +{ + "$defs": { + "RawUnitDef": { + "description": "JSON shape for a unit definition (no id/family_id \u2014 those come from dict keys).", + "properties": { + "usage_key": { + "title": "Usage Key", + "type": "string" + }, + "dimensions": { + "additionalProperties": { + "type": "string" + }, + "title": "Dimensions", + "type": "object" + } + }, + "required": [ + "usage_key", + "dimensions" + ], + "title": "RawUnitDef", + "type": "object" + }, + "RawUnitFamily": { + "properties": { + "per": { + "title": "Per", + "type": "integer" + }, + "description": { + "title": "Description", + "type": "string" + }, + "dimensions": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": "Dimensions", + "type": "object" + }, + "units": { + "additionalProperties": { + "$ref": "#/$defs/RawUnitDef" + }, + "title": "Units", + "type": "object" + } + }, + "required": [ + "per", + "description", + "dimensions", + "units" + ], + "title": "RawUnitFamily", + "type": "object" + } + }, + "properties": { + "families": { + "additionalProperties": { + "$ref": "#/$defs/RawUnitFamily" + }, + "title": "Families", + "type": "object" + } + }, + "required": [ + "families" + ], + "title": "RawUnitsData", + "type": "object" +} diff --git a/prices/units.yml b/prices/units.yml new file mode 100644 index 00000000..d8b0fff2 --- /dev/null +++ b/prices/units.yml @@ -0,0 +1,75 @@ +# yaml-language-server: $schema=units.schema.json +families: + tokens: + per: 1_000_000 + description: Token counts + dimensions: + direction: [input, output] + modality: [text, audio, image, video] + cache: [read, write] + units: + input_mtok: + usage_key: input_tokens + dimensions: { direction: input } + output_mtok: + usage_key: output_tokens + dimensions: { direction: output } + + cache_read_mtok: + usage_key: cache_read_tokens + dimensions: { direction: input, cache: read } + cache_write_mtok: + usage_key: cache_write_tokens + dimensions: { direction: input, cache: write } + + input_text_mtok: + usage_key: input_text_tokens + dimensions: { direction: input, modality: text } + output_text_mtok: + usage_key: output_text_tokens + dimensions: { direction: output, modality: text } + cache_text_read_mtok: + usage_key: cache_text_read_tokens + dimensions: { direction: input, modality: text, cache: read } + cache_text_write_mtok: + usage_key: cache_text_write_tokens + dimensions: { direction: input, modality: text, cache: write } + + input_audio_mtok: + usage_key: input_audio_tokens + dimensions: { direction: input, modality: audio } + output_audio_mtok: + usage_key: output_audio_tokens + dimensions: { direction: output, modality: audio } + cache_audio_read_mtok: + usage_key: cache_audio_read_tokens + dimensions: { direction: input, modality: audio, cache: read } + cache_audio_write_mtok: + usage_key: cache_audio_write_tokens + dimensions: { direction: input, modality: audio, cache: write } + + input_image_mtok: + usage_key: input_image_tokens + dimensions: { direction: input, modality: image } + output_image_mtok: + usage_key: output_image_tokens + dimensions: { direction: output, modality: image } + cache_image_read_mtok: + usage_key: cache_image_read_tokens + dimensions: { direction: input, modality: image, cache: read } + cache_image_write_mtok: + usage_key: cache_image_write_tokens + dimensions: { direction: input, modality: image, cache: write } + + input_video_mtok: + usage_key: input_video_tokens + dimensions: { direction: input, modality: video } + output_video_mtok: + usage_key: output_video_tokens + dimensions: { direction: output, modality: video } + cache_video_read_mtok: + usage_key: cache_video_read_tokens + dimensions: { direction: input, modality: video, cache: read } + cache_video_write_mtok: + usage_key: cache_video_write_tokens + dimensions: { direction: input, modality: video, cache: write } diff --git a/specs/data-driven-unit-registry/algorithm.md b/specs/data-driven-unit-registry/algorithm.md new file mode 100644 index 00000000..d8d1c6e1 --- /dev/null +++ b/specs/data-driven-unit-registry/algorithm.md @@ -0,0 +1,68 @@ +# Decomposition Algorithm + +## Mobius Inversion on the Containment Poset + +The containment poset is defined by dimension set inclusion: unit A is an ancestor of unit B if A's dimensions are a subset of B's. Only priced units participate — unpriced units are invisible to the algorithm. + +Descendant/ancestor relationships are determined by the full registry poset (dimension set inclusion), not just the priced subset. Only priced units participate in the sum, but the depth of each unit is its total number of dimensions regardless of what else is priced. + +For each priced unit U, the leaf value (exclusive token count) is: + +``` +leaf(U) = sum over all priced descendants V of U (including U itself): + (-1)^(depth(V) - depth(U)) * usage(V) +``` + +where `depth(V)` = number of dimension assignments on V (e.g., `input_mtok` has 1: `{direction: input}`, `cache_audio_read_mtok` has 3: `{direction: input, modality: audio, cache: read}`), and `usage(V)` = the usage value looked up by V's usage_key. In the tokens family, the least-specific units have one dimension (direction) — there is no zero-dimension root unit. Families with no dimensions (e.g., `requests`) have a single unit and no decomposition to perform. + +This is standard Mobius inversion on a product of chains (our dimensions are independent categorical axes). + +## Inference of missing ancestor usage + +Before applying the Mobius formula, missing usage values are resolved: + +1. **Leaf-level priced units** (no more-specific priced descendants): missing usage defaults to 0. +2. **Non-leaf priced units**: missing usage is inferred such that the unit's leaf value is 0 — meaning no remainder beyond what its descendants account for. + +Concretely, if `usage(U)` is missing for a non-leaf unit U, it is set to the inclusion-exclusion sum of its priced descendants' usage values. This is the inverse of the Mobius formula with `leaf(U) = 0`. + +Example: usage is `{input_audio_tokens: 300}`, priced units are `input_mtok` and `input_audio_mtok`. + +- `input_audio_mtok` is a leaf: usage = 300 (provided). +- `input_mtok` is not a leaf: `input_tokens` is missing. Inferred as 300 (sum of descendants). +- `leaf(input_mtok) = 300 - 300 = 0`. `leaf(input_audio_mtok) = 300`. +- Total: 300 tokens priced, all at the audio rate. + +If `input_tokens` were explicitly provided as 1000: `leaf(input_mtok) = 1000 - 300 = 700`. No inference needed — both values are known. + +## Two-way example + +Priced: `input_mtok` (1 dimension), `cache_read_mtok` (2 dimensions). + +``` +leaf(input_mtok) = usage(input_tokens) - usage(cache_read_tokens) +leaf(cache_read_mtok) = usage(cache_read_tokens) +``` + +## Three-way overlap + +Priced: `input_mtok` (1 dim), `cache_read_mtok` (2 dims), `input_audio_mtok` (2 dims), `cache_audio_read_mtok` (3 dims). + +``` +leaf(input_mtok) = input_tokens - cache_read_tokens - input_audio_tokens + cache_audio_read_tokens +leaf(cache_read_mtok) = cache_read_tokens - cache_audio_read_tokens +leaf(input_audio_mtok) = input_audio_tokens - cache_audio_read_tokens +leaf(cache_audio_read_mtok) = cache_audio_read_tokens +``` + +The `+cache_audio_read_tokens` in `leaf(input_mtok)` is the inclusion-exclusion correction: without it, tokens that are both cached and audio would be subtracted twice. + +## Why this works + +The containment poset is a product of flat lattices — one per dimension axis. Each axis contributes a flat lattice: "unspecified" at the bottom, with the axis's values (e.g., `text`, `audio`, `image`, `video` for modality) incomparable above it. The product of these lattices gives the full poset. The Mobius function for a product of flat lattices is `mu(U, V) = (-1)^(depth(V) - depth(U))` when V is a descendant of U (i.e., U's dimensions are a subset of V's), and 0 otherwise. Each step from U toward V adds exactly one dimension assignment, and the signs alternate. This is a standard result in combinatorics — the product formula for Mobius functions. + +The key property: the sum of all leaf values equals the root usage value. Every token is in exactly one leaf bucket. + +## Negative leaf values + +If `leaf(U) < 0`, the explicitly provided usage data is contradictory — a subset's count exceeds its superset's. The algorithm detects this and raises an error with the specific units and values involved. Negative leaves can only arise when both a parent and child usage value are explicitly provided and the child exceeds the parent. Missing ancestor usage is inferred from descendants (the ancestor's leaf value defaults to zero), so incomplete usage never produces negative leaves. diff --git a/specs/data-driven-unit-registry/code-spec.md b/specs/data-driven-unit-registry/code-spec.md new file mode 100644 index 00000000..48101928 --- /dev/null +++ b/specs/data-driven-unit-registry/code-spec.md @@ -0,0 +1,679 @@ +# Code Spec: Data-Driven Unit Registry + +**This implements the prose spec in [spec](spec.md), which is the primary source of truth.** + +--- + +## Data Shapes + +**`prices/units.yml` gains a `requests` family.** _(implements "requests_kcount becomes a unit in a requests family")_ +The existing `tokens` family (20 units) is unchanged. A `requests` family is added: + +```yaml +requests: + per: 1_000 + description: Request counts + dimensions: {} + units: + requests_kcount: + usage_key: requests + dimensions: {} +``` + +**`prices/data.json` becomes `{"unit_families": {...}, "providers": [...]}`** _(implements "data.json becomes a top-level dict")_ +Currently a bare JSON array. After: a dict with `unit_families` (the raw families dict from `units.yml`) and `providers` (the existing array). `data_slim.json` undergoes the same change. + +**`packages/python/genai_prices/data.py` (generated) exports `unit_families_data` alongside `providers`.** _(implements "Unit definitions are generated into language-native code")_ + +```python +# Generated — do not edit +__all__ = ('providers', 'unit_families_data') + +unit_families_data: dict = { ... } # raw families dict for UnitRegistry construction +providers: list[Provider] = [ ... ] +``` + +**`packages/js/src/data.ts` (generated) exports `unitFamiliesData` alongside `data`.** Same structural change as Python. + +```typescript +// Generated — do not edit +export const unitFamiliesData = { ... } +export const data: Provider[] = [ ... ] +``` + +--- + +## Python Package: `packages/python/genai_prices/` + +### `units.py` — rewritten + +Currently contains Pydantic models (`UnitDef`, `RawUnitDef`, `UnitFamily`, `RawUnitFamily`, `RawFamiliesDict`), `_load_families()` reading from `units_data.json`, and module-level dicts (`_FAMILIES`, `TOKENS_FAMILY`, `_ALL_UNITS`). All of these are replaced. + +**Removals:** + +- `RawUnitDef`, `RawUnitFamily`, `RawFamiliesDict` classes and `_validate_dimensions` validator +- `_load_families()` function +- `_FAMILIES`, `TOKENS_FAMILY`, `_ALL_UNITS` module-level state +- `units_data.json` file dependency (file deleted) + +#### `UnitDef` — dataclass _(implements "UnitDef and UnitFamily are plain classes")_ + +Replaces the current Pydantic `UnitDef`. Constructed by `UnitRegistry` — all fields are populated at construction, including back-references. Not intended to be constructed directly by users; use `UnitRegistry.add_unit` or construct via the raw families dict. + +```python +@dataclass +class UnitDef: + id: str # e.g. 'input_mtok' + family_id: str # e.g. 'tokens' + family: UnitFamily # direct reference to the family object + usage_key: str # e.g. 'input_tokens' + dimensions: dict[str, str] # e.g. {'direction': 'input'} +``` + +#### `UnitFamily` — dataclass _(implements "UnitDef and UnitFamily are plain classes")_ + +Constructed by `UnitRegistry`. Not intended to be constructed directly; use `UnitRegistry.add_family` or construct via the raw families dict. + +```python +@dataclass +class UnitFamily: + id: str # e.g. 'tokens' + per: int # e.g. 1_000_000 + description: str # e.g. 'Token counts' + dimensions: dict[str, list[str]] # e.g. {'direction': ['input', 'output'], ...} + units: dict[str, UnitDef] # populated by UnitRegistry +``` + +#### `UnitRegistry` — single class owning all unit state _(implements "UnitRegistry is the runtime representation")_ + +Replaces `_FAMILIES`, `_ALL_UNITS`, `_load_families`, `RawFamiliesDict`, and all structural validation. Constructed from a raw dict (the `unit_families` section of `data.json` or `units.yml`). Parses, validates structural integrity, builds a flat index, fills back-references. Public class — users interact with it for custom unit flows. + +```python +class UnitRegistry: + families: dict[str, UnitFamily] + units: dict[str, UnitDef] # flat: unit_id -> UnitDef across all families + usage_keys: dict[str, str] # usage_key -> unit_id across all families + + def __init__(self, raw_families: dict[str, dict] | None = None) -> None: + """Parse raw families dict, validate, build index, fill back-references. + + Validates on construction: dimension key/value validity, ID uniqueness across + families, usage key uniqueness, dimension-set uniqueness within family, + join-closedness per family. usage_key defaults to unit_id if not specified + in the raw dict. + """ + + def add_family( + self, family_id: str, *, per: int, description: str, + dimensions: dict[str, list[str]], units: dict[str, dict], + ) -> None: + """Add a new family. Validates, creates UnitFamily/UnitDef objects, + updates families/units/usage_keys. + Raises ValueError if family_id already exists or if any validation fails. + """ + + def add_unit( + self, family_id: str, unit_id: str, *, + usage_key: str | None = None, dimensions: dict[str, str], + ) -> None: + """Add a unit to an existing family. Validates incrementally: ID uniqueness, + usage key uniqueness, dimension validity, dimension-set uniqueness, + and re-checks join-closedness for the modified family. + usage_key defaults to unit_id if not provided. + Raises KeyError if family doesn't exist. + Raises ValueError if unit_id or usage_key already exists, or validation fails. + """ + + def copy(self) -> UnitRegistry: + """Return an independent copy. Re-serializes to raw dict and re-parses.""" + + @staticmethod + def are_compatible(a: UnitDef, b: UnitDef) -> bool: + """True if a and b share no dimension axis with conflicting values. + Public — also used by validate_join_coverage in validation.py.""" +``` + +The `families`, `units`, and `usage_keys` dicts are public attributes. They are not frozen — users _can_ mutate them directly, but doing so bypasses validation and may leave the registry in an inconsistent state (e.g., a unit in `families` that isn't in `units`). The `add_family` and `add_unit` methods are the validated path. + +#### Module-level convenience _(implements "convenience functions delegate to get_snapshot().unit_registry")_ + +One helper to get the registry from the global snapshot. Replaces the old `_FAMILIES` / `_ALL_UNITS` module-level dicts. Uses a lazy import of `data_snapshot.get_snapshot()` to avoid circular imports. + +```python +def _get_registry() -> UnitRegistry: + """Get the UnitRegistry from the current global snapshot.""" +``` + +Callers use `_get_registry().units[unit_id]`, `_get_registry().families[family_id]`, etc. directly — no wrapper functions. + +--- + +### `types.py` — modified + +#### `ModelPrice` — rewritten as Pydantic BaseModel _(implements "ModelPrice supports attribute access backed by registry data")_ + +Currently a `@dataclass` with 8 explicit price fields. Becomes a Pydantic `BaseModel` with `extra='allow'` and no explicit price fields. All prices are stored in `__pydantic_extra__`. + +```python +class ModelPrice(pydantic.BaseModel): + model_config = pydantic.ConfigDict(extra='allow') + + __pydantic_extra__: dict[str, Decimal | TieredPrices] + + def calc_price(self, usage: object) -> CalcPrice: + """Wraps usage in Usage.from_raw(usage) if not already a Usage. + Groups price keys by family, decomposes each family via compute_leaf_values, + prices each leaf, buckets costs by direction dimension. + + For the requests family, default_usage=1 (one API call). + Costs from families without a 'direction' dimension go only to total_price. + + total_input_tokens for TieredPrices: simply smart_usage.input_tokens — always + correct because Usage infers ancestor values from descendants. + """ + + def __str__(self) -> str: + """Derives display labels from registry metadata (unit.usage_key, family.per), + not hardcoded string patterns.""" + + def is_free(self) -> bool: + """True if there are no prices, or all price values are zero/None.""" + + # Attribute access: model_price.input_mtok returns + # self.__pydantic_extra__.get('input_mtok') — Pydantic provides this. + # __getattr__ override returns None for missing keys (backward compat). +``` + +**Removals from `ModelPrice`:** + +- `__post_init__` _(implements "ModelPrice construction does not validate against the registry")_ +- All 8 explicit fields (`input_mtok`, `output_mtok`, `cache_read_mtok`, `cache_write_mtok`, `input_audio_mtok`, `cache_audio_read_mtok`, `output_audio_mtok`, `requests_kcount`) + +#### `calc_unit_price` — replaces `calc_mtok_price` _(implements "The system is general across unit families")_ + +```python +def calc_unit_price( + price: Decimal | TieredPrices | None, + count: int | None, + total_input_tokens: int, + per: int, +) -> Decimal: + """Calculate the price for a given usage count, generic over the normalization + factor (family.per). For TieredPrices, tier is determined by total_input_tokens.""" +``` + +**Removal:** `calc_mtok_price` function (subsumed by `calc_unit_price`). + +#### `Usage` — registry-aware class _(implements "Usage is a registry-aware class that infers, decomposes, and serves correct values")_ + +Currently a `@dataclass` with 7 explicit fields. Becomes a registry-aware class that infers ancestor values, provides leaf value decomposition, and serves correct totals for any usage key. Immutable after construction. Uses the global unit registry (`get_snapshot().unit_registry`). + +```python +class Usage: + _values: dict[str, int] # flat dict: provided + inferred, no distinction + + def __init__(self, **kwargs: int | None) -> None: + """Store non-None values, then infer ancestor values from descendants + using the global unit registry. Provided values are never overridden. + Inference uses inclusion-exclusion over the dimension structure.""" + + @classmethod + def from_raw(cls, obj: object) -> Usage: + """Construct from an arbitrary object. If obj is already a Usage, return it. + If Mapping: validate keys against registry.usage_keys, then construct. + Otherwise: extract known usage keys via getattr, then construct.""" + + def __getattr__(self, name: str) -> int: + """Returns stored value (provided or inferred), or 0 for keys not present. + Does NOT return None — zero means 'no data for this key'.""" + + def __setattr__(self, name: str, value: object) -> None: + """Raises AttributeError — Usage is immutable.""" + + def __add__(self, other: Usage) -> Usage: + """Sum all stored values, then re-infer ancestors on the result. + Correct because inferred ancestors are always derivable from descendants.""" + + def __radd__(self, other: Usage) -> Usage: ... + def __eq__(self, other: object) -> bool: ... + def __repr__(self) -> str: ... +``` + +#### `UsageExtractorMapping.dest` — becomes `str` _(implements "dest becomes a plain string")_ + +Currently typed as `UsageField` (a `Literal` union of 7 field names). Becomes plain `str`. + +**Removal:** `UsageField` literal type. + +#### `UsageExtractor.extract()` — modified for immutable `Usage` + +Currently builds `Usage()` then uses `setattr` to populate fields. Changed to collect values in a `dict[str, int]` and construct `Usage(**values)` at the end. Signature unchanged. + +--- + +### `decompose.py` — modified + +The Mobius inversion algorithm stays here. `calc_price` wraps raw usage in `Usage` (which infers ancestors), then passes the smart `Usage` to `compute_leaf_values`. Since `Usage` always has correct ancestor values, the decomposition no longer needs inference logic — negative leaves are always genuine errors. + +#### `compute_leaf_values` + +```python +def compute_leaf_values( + priced_unit_ids: set[str], + usage: Usage, + family: UnitFamily, +) -> dict[str, int]: + """Compute leaf values via Mobius inversion. Usage is a smart Usage object + with correct (provided + inferred) values — no inference logic here. + Negative leaf values are always contradictions: raise ValueError with + human-readable message. No error may mention leaves, Mobius inversion, + posets, depth, coefficients, or dimensions.""" +``` + +Note: `usage` is now typed as `Usage`, not `object` — `calc_price` wraps raw objects before calling. + +**Unchanged:** `is_descendant_or_self` signature and behavior. + +**Removal:** `get_usage_value` (use `getattr(usage, key)` directly — smart `Usage` returns `int`, never `None`). `_has_usage_value` (no longer needed). `default_usage` parameter (the requests default-to-1 is handled by `Usage` construction or by `calc_price` before decomposition). `validate_ancestor_coverage` moves to `validation.py`. `get_priced_descendants` removed (unused). + +--- + +### `validation.py` — new file _(implements "Validation is split between the registry and set_custom_snapshot")_ + +Price-level validation functions. Used by `set_custom_snapshot` (runtime) and the build pipeline (build time). Structural validation lives in `UnitRegistry`, not here. + +**Constraint:** All validation logic operates on dimensions and registry structure. No validation code references `input_mtok` or any other specific unit by name. _(implements "Validation rules are expressed in terms of dimensions, not unit names")_ + +```python +def validate_ancestor_coverage(priced_unit_ids: set[str], family: UnitFamily) -> None: + """Raise ValueError if any priced unit's ancestor in the family is not priced. + Moved from decompose.py — same signature and behavior. + Uses is_descendant_or_self from decompose.py.""" + +def validate_join_coverage(priced_unit_ids: set[str], family: UnitFamily) -> None: + """Raise ValueError if two priced, compatible units have a join in the registry + that is not priced. Uses UnitRegistry.are_compatible for compatibility check.""" + +def validate_price_keys(price_keys: set[str], all_unit_ids: set[str]) -> None: + """Raise ValueError if any price key is not a registered unit ID. + Catches typos like 'inptu_mtok'.""" + +def validate_price_sanity( + prices: dict[str, Decimal | TieredPrices], + family: UnitFamily, +) -> None: + """Raise ValueError on violations of economic inequalities. + Rules expressed in terms of dimensions, not unit names: + - Within same direction+modality: cache=read <= uncached <= cache=write + - Text (catch-all without modality) is the cheapest modality + Starts as errors — investigate and downgrade individual rules if needed. + Build-pipeline only — not run at set_custom_snapshot time.""" +``` + +--- + +### `data_snapshot.py` — modified + +#### `DataSnapshot` — gains `unit_registry` field _(implements "Unit families live in the data snapshot")_ + +```python +@dataclass +class DataSnapshot: + providers: list[types.Provider] + from_auto_update: bool + unit_registry: UnitRegistry | None = None # new + _lookup_cache: ... # unchanged + timestamp: ... # unchanged +``` + +#### `_bundled_snapshot()` — constructs registry from generated code _(implements "the bundled snapshot includes a unit registry")_ + +```python +@cache +def _bundled_snapshot() -> DataSnapshot: + from .data import providers, unit_families_data + return DataSnapshot( + providers=providers, + from_auto_update=False, + unit_registry=UnitRegistry(unit_families_data), + ) +``` + +#### `set_custom_snapshot()` — gains validation _(implements "Validation is split between the registry and set_custom_snapshot")_ + +```python +def set_custom_snapshot(snapshot: DataSnapshot | None) -> None: + """Validate and activate a snapshot, or reset to bundled default (None). + + 1. If snapshot.unit_registry is None, fill from current global snapshot's registry. + 2. Validate every model's prices against the registry: + - validate_price_keys: every price key is a registered unit ID + - validate_ancestor_coverage: per family, per model + - validate_join_coverage: per family, per model + 3. Validate extractor dest values: every dest in every extractor mapping must be + a recognized usage key in the registry (registry.usage_keys). + 4. If validation fails, raise ValueError — previous snapshot remains active. + """ +``` + +#### Global guards on `calc` and `extract_usage` _(implements "calc and extract_usage require it to be the current global")_ + +Both methods raise `RuntimeError` if `self is not get_snapshot()`. `find_provider_model` and `find_provider` are unguarded — they work on any snapshot. _(implements "find_provider_model works on any snapshot")_ + +--- + +### `update_prices.py` — modified + +#### `UpdatePrices.fetch()` — parses new `data.json` format + +```python +def fetch(self) -> DataSnapshot | None: + """Parse the dict-format data.json: extract 'providers' and 'unit_families', + construct UnitRegistry from unit_families, return DataSnapshot with both.""" +``` + +Currently calls `providers_schema.validate_json(r.content)` directly. After: parses JSON to dict, extracts `providers` and `unit_families` separately, constructs `UnitRegistry(raw.get('unit_families'))`. + +--- + +### `_cli_impl.py` — modified + +**`_collect_model_price_fields`**: currently uses `dataclasses.fields(ModelPrice)`. Changed to iterate `result.model_price.__pydantic_extra__` across results, collecting field names in encountered order. + +**`_price_field_label`**: currently a hardcoded dict. Changed to derive labels from registry metadata (`unit.usage_key`, `family.per`). + +**`_format_model_prices`** and **`_format_model_price_value`**: currently use `dataclasses.fields(model_price)`. Changed to iterate `__pydantic_extra__`. + +--- + +### `__init__.py` — unchanged + +Public API is preserved: `Usage, calc_price, UpdatePrices, wait_prices_updated_sync, wait_prices_updated_async, __version__`. `UnitRegistry`, `UnitFamily`, `UnitDef` are public classes importable from `genai_prices.units`. + +--- + +## Build Pipeline: `prices/src/prices/` + +### `prices_types.py` — modified + +#### `ModelPrice` — `extra='allow'` _(implements "Validation replaces what hardcoded fields gave us")_ + +Currently has 8 explicit price fields (`input_mtok`, ..., `requests_kcount`). Changed to `extra='allow'` with no explicit fields: + +```python +class ModelPrice(_Model, extra='allow'): + __pydantic_extra__: dict[str, DollarPrice | TieredPrices] + + def is_free(self) -> bool: ... +``` + +**Removal:** `UsageField` literal type. `UsageExtractorMapping.dest` becomes `str`. + +### `build.py` — modified + +**Registry validation at build time** _(implements "Expensive validation happens once at construction/activation time")_: +After loading providers, construct `UnitRegistry` from `units.yml`. Construction validates structural integrity automatically. Additionally, validate each model's prices: + +```python +def build(): + # ... existing provider loading ... + + # Registry validation (structural — UnitRegistry constructor) + registry = UnitRegistry(unit_families_data) + + # Per-model price validation + for provider in providers: + for model in provider.models: + # Extract price keys from ModelPrice.__pydantic_extra__ + # Call validate_price_keys, validate_ancestor_coverage, validate_join_coverage + # Call validate_price_sanity (warnings only) +``` + +**Dict-format output** _(implements "data.json becomes a top-level dict")_: +`write_prices` wraps providers in `{"unit_families": ..., "providers": [...]}`. The `unit_families` value is the inner dict of family_id -> family_data (not wrapped in a `{"families": ...}` key — that `families` key is a YAML-level artifact stripped at build time). + +**JSON schema generation** _(implements "Generated JSON schemas provide editor autocomplete")_: +The provider YAML JSON schema (`.schema.json`) is updated so that `ModelPrice` fields and extractor `dest` values are derived from the registry. Price keys: all unit IDs from all families. Extractor dest: all usage keys from all families. This replaces the implicit enumeration from hardcoded Pydantic fields. + +### `package_data.py` — modified + +**`package_units()`**: currently generates `units_data.json` for Python and JS. Changed to embed unit families into `data.json` (via `build.py`) and into generated `data.py`/`data.ts` (via `package_python_data`/`package_ts_data`). + +**`package_python_data()`**: reads `unit_families` from `data.json`, includes `unit_families_data` in generated `data.py`. + +**`package_ts_data()`**: reads `unit_families` from `data.json`, includes `unitFamiliesData` in generated `data.ts`. + +**Removal:** `units_data.json` (Python) and `units-data.json` (JS) files. + +--- + +## JS Package: `packages/js/src/` + +### `types.ts` — modified _(implements "Units are data, not code")_ + +```typescript +// Was: interface with 7 fixed fields +export type Usage = Record + +// Was: interface with 8 fixed fields +export type ModelPrice = Record + +// UsageExtractorMapping.dest: was a literal union of 7 usage keys +export interface UsageExtractorMapping { + dest: string // any registry usage key + path: ExtractPath + required: boolean +} + +// StorageFactoryParams gains setUnitFamilies +export interface StorageFactoryParams { + onCalc: (cb: () => void) => void + remoteDataUrl: string + setProviderData: (data: ProviderDataPayload) => void + setUnitFamilies: (data: RawFamiliesDict | null) => void // new +} +``` + +`RawFamiliesDict` is the type for what `data.json` carries in `unit_families` — a flat dict of family_id to family data, no wrapper: + +```typescript +interface RawUnitData { + dimensions: Record + usage_key?: string // defaults to unit id if absent +} + +interface RawFamilyData { + description: string + dimensions: Record + per: number + units: Record +} + +export type RawFamiliesDict = Record +``` + +This matches the Python `UnitRegistry(raw_families: dict[str, dict])` — both receive the flat dict, not the YAML-level `{"families": {...}}` wrapper. + +### `units.ts` — rewritten + +**Removals:** `import unitsData from './units-data.json'`, `TOKENS_FAMILY` export, `ALL_UNITS` module-level dict, `loadFamilies()`. + +The module manages unit family state: bootstrap from generated `data.ts`, allow override via `setUnitFamilies` (auto-update path). + +```typescript +export function parseFamilies(raw: RawFamiliesDict): Record +// Parses raw dict into UnitFamily/UnitDef objects. Fills in id, familyId, usageKey. + +export function setUnitFamilies(raw: RawFamiliesDict | null): void +// Validate (structure + join-closedness), then set as active. null resets to bootstrap. + +export function getFamily(familyId: string): UnitFamily +export function getUnit(unitId: string): UnitDef +export function getAllUsageKeys(): Set +export function getAllUnitIds(): Set +``` + +`UnitDef` interface is unchanged: `id`, `familyId`, `usageKey`, `dimensions`. Note: JS `UnitDef` has `familyId` (string) but no `family` object back-reference (unlike Python). JS code resolves family data via `getFamily(unit.familyId)`. + +`UnitFamily` interface is unchanged: `id`, `per`, `description`, `dimensions`, `units`. + +### `engine.ts` — modified _(implements "calc_price is a hot path")_ + +**Removals:** `import { TOKENS_FAMILY } from './units'`, `calcMtokPrice` function, hardcoded `requests_kcount` special case. + +```typescript +function calcUnitPrice( + price: number | TieredPrices | undefined, + count: number | undefined, + totalInputTokens: number, + per: number, +): number +// Generic over normalization factor. Replaces calcMtokPrice. + +export function calcPrice(usage: Usage, modelPrice: ModelPrice): ModelPriceCalculationResult +// Multi-family: groups price keys by family (via getUnit(unitId).familyId), gets +// family object via getFamily(familyId) for family.per. Decomposes each family +// independently. For 'requests' family, defaultUsage = 1. Costs without 'direction' +// dimension go only to total_price. +// Validates ancestor coverage and join coverage per family (JS has no set_custom_snapshot, +// so price-level validation runs at calc time — O(k²) where k is priced units per model). +``` + +### `decompose.ts` — modified _(JS equivalent of Python's Usage.leaf_value logic)_ + +JS has no smart `Usage` class — it uses plain `Record`. The decomposition logic (inference, Mobius inversion, error messages) lives in `computeLeafValues` as a standalone function, called by `calcPrice` in `engine.ts`. + +```typescript +function getUsageValue(usage: Record, key: string, defaultValue?: number): number + +function hasUsageValue(usage: Record, key: string): boolean + +export function computeLeafValues( + pricedUnitIds: Set, + usage: Record, + family: UnitFamily, + defaultUsage?: number, // defaults to 0 +): Record +// Inference: if leaf < 0 and own usage was NOT provided (hasUsageValue returns false), +// set leaf to 0. If own usage WAS provided, raise error. +// Human-readable error messages. defaultUsage for requests family. +``` + +**Removal:** `TOKENS_FAMILY` usage in tests. + +### `validation.ts` — new file + +Structural validation (used by `setUnitFamilies`) and price-level validation (used by `calcPrice`): + +```typescript +// Structural — called from setUnitFamilies +export function validateRegistryStructure(families: Record): void +// ID uniqueness, usage key uniqueness, dimension-set uniqueness. + +export function validateRegistryJoinClosedness(family: UnitFamily): void +// Compatible pairs must have their join in the family. + +// Price-level — called from calcPrice per family +export function validateAncestorCoverage(pricedUnitIds: Set, family: UnitFamily): void +// Moved from decompose.ts. Every priced unit's ancestors must also be priced. + +export function validateJoinCoverage(pricedUnitIds: Set, family: UnitFamily): void +// Two priced compatible units must have their join priced if it exists in the registry. +``` + +### `api.ts` — modified + +`updatePrices` passes `setUnitFamilies` to the storage factory. Auto-update path parses the new dict-format `data.json` and calls `setUnitFamilies(parsed.unit_families)` alongside `setProviderData(parsed.providers)`. + +### `extractUsage.ts` — modified + +`UsageExtractorMapping.dest` is now `string` (from `types.ts` change). The `extractUsage` function builds a `Usage` (now `Record`) from extracted values — no code change needed beyond the type. + +--- + +## Call Relationships + +### Price calculation hot path (`calc_price`) + +``` +ModelPrice.calc_price(usage) + -> smart_usage = Usage.from_raw(usage) # wrap if not already Usage; infers ancestors + -> registry = get_snapshot().unit_registry + -> if Mapping usage: validate keys against registry.usage_keys (in from_raw) + -> total_input_tokens = smart_usage.input_tokens # always correct (provided or inferred) + -> group price keys by unit.family_id + -> for each family: + compute_leaf_values(priced_ids, smart_usage, family) # Mobius, raises on negative + -> for each unit_id, leaf_count: + cost = calc_unit_price(price, leaf_count, total_input_tokens, unit.family.per) + bucket cost by unit.dimensions.get('direction') + -> return {input_price, output_price, total_price} +``` + +### Snapshot activation (`set_custom_snapshot`) + +``` +set_custom_snapshot(snapshot) + -> if snapshot.unit_registry is None: fill from get_snapshot().unit_registry + -> for each provider, model, model_price: + price_keys = set(model_price.__pydantic_extra__) + validate_price_keys(price_keys, set(registry.units)) + for each family with priced units: + validate_ancestor_coverage(family_priced_ids, family) + validate_join_coverage(family_priced_ids, family) + -> on success: _custom_snapshot = snapshot + -> on failure: raise ValueError, previous snapshot unchanged +``` + +### Registry construction (`UnitRegistry.__init__`) + +``` +UnitRegistry(raw_families_dict) + -> for each family_id, raw_family: + create UnitFamily with empty units dict + for each unit_id, raw_unit: + validate dimension keys/values against family.dimensions + validate unit ID uniqueness (across all families) + validate usage key uniqueness (across all families) + validate dimension-set uniqueness (within family) + create UnitDef with back-reference to family + add to family.units, registry.units, registry.usage_keys + validate join-closedness for family + add to registry.families +``` + +### Build pipeline + +``` +build() + -> load providers from YAML + -> registry = UnitRegistry(unit_families_data) # structural validation + -> for each provider, model: + validate_price_keys / validate_ancestor_coverage / validate_join_coverage + validate_price_sanity (errors — investigate and downgrade if needed) + -> write_prices: {"unit_families": ..., "providers": [...]} # dict format + +package_data() + -> read data.json (dict format) + -> package_python_data: generate data.py with unit_families_data + providers + -> package_ts_data: generate data.ts with unitFamiliesData + data +``` + +### Custom unit flow (user-facing) + +```python +from genai_prices.data_snapshot import get_snapshot, set_custom_snapshot, DataSnapshot +from genai_prices.units import UnitRegistry + +# Copy current registry and add a custom family +registry = get_snapshot().unit_registry.copy() +registry.add_family('characters', per=1, description='Characters', dimensions={}, + units={'char_count': {'usage_key': 'characters', 'dimensions': {}}}) + +# Build snapshot with custom registry +snapshot = DataSnapshot(providers=get_snapshot().providers, from_auto_update=False, + unit_registry=registry) + +# Activate — validates prices against the expanded registry +set_custom_snapshot(snapshot) +``` diff --git a/specs/data-driven-unit-registry/examples.md b/specs/data-driven-unit-registry/examples.md new file mode 100644 index 00000000..1f3a9164 --- /dev/null +++ b/specs/data-driven-unit-registry/examples.md @@ -0,0 +1,118 @@ +# Pricing Examples + +These examples use approximate prices to show how the unit system handles real pricing patterns. + +## Audio Model — OpenAI GPT-4o Realtime + +```yaml +- id: gpt-4o-realtime-preview + prices: + input_mtok: 5 + output_mtok: 20 + cache_read_mtok: 2.5 + input_audio_mtok: 100 + output_audio_mtok: 200 + cache_audio_read_mtok: 2.5 +``` + +Audio tokens are much more expensive than text. The catch-all `input_mtok` is the text price. Decomposition: `input_mtok` leaf = input_tokens - cache_read_tokens - input_audio_tokens + cache_audio_read_tokens. + +## Image Generation — OpenAI gpt-image-1.5 + +```yaml +- id: gpt-image-1-5 + prices: + input_mtok: 5 + input_image_mtok: 8 + output_mtok: 32 + output_image_mtok: 32 +``` + +Catch-all convention: `input_mtok` is text since there's no `input_text_mtok`. `output_mtok` and `output_image_mtok` are the same price because image is the default output modality. If someone sends only `{input_tokens: 1000, output_tokens: 500}` with no breakdown, all output tokens land in the `output_mtok` catch-all at $32/M — the image-rate catch-all. The `output_image_mtok` leaf is 0 (no `output_image_tokens` reported). + +## Multimodal Input — Google Gemini 2.5 Pro + +```yaml +- id: gemini-2.5-pro + prices: + input_mtok: 1.25 + output_mtok: 10 + cache_read_mtok: 0.13 + input_audio_mtok: 0.30 + cache_audio_read_mtok: 0.03 + input_video_mtok: 0.30 + cache_video_read_mtok: 0.03 + input_image_mtok: 0.30 + cache_image_read_mtok: 0.03 +``` + +Separate rates per modality. The catch-all `input_mtok` ($1.25) is the text rate; other modalities are cheaper. Cached variants defined for each. This model also has long-context tiers handled by the existing `TieredPrices` mechanism. + +## Image-Primary — Catch-All Convention + +```yaml +- id: hypothetical-image-model + prices: + input_mtok: 5 + input_image_mtok: 5 + input_text_mtok: 2 + output_mtok: 20 + output_image_mtok: 20 + output_text_mtok: 10 +``` + +Image is the default modality. Someone sending `input_tokens: 1000` with no breakdown pays the image rate ($5). Someone sending `input_tokens: 1000` and `input_text_tokens: 300` gets 300 at text ($2) and 700 at image ($5). + +## Transcription — OpenAI + +```yaml +- id: gpt-4o-transcribe + prices: + input_mtok: 2.5 + input_audio_mtok: 2.5 + output_mtok: 10 +``` + +Audio in (audio tokens), text out (output tokens). `input_mtok` and `input_audio_mtok` are the same price — this model only takes audio input, but the catch-all ancestor is required. + +## Simple Decomposition Walkthrough + +A model prices two input units in a parent-child chain (no sibling overlap, so join coverage is not triggered): + +- `input_mtok` at $3/M (catch-all input) +- `cache_read_mtok` at $0.30/M (cached input) +- `output_mtok` at $15/M + +Usage: `{input_tokens: 1000, cache_read_tokens: 200, output_tokens: 500}` + +Leaf values: + +- `cache_read_mtok`: 200 (no more-specific priced unit) +- `input_mtok`: 1000 - 200 = 800 (remainder) +- `output_mtok`: 500 + +Cost: `(800/1M) x 3 + (200/1M) x 0.30 + (500/1M) x 15 = $0.01006` + +## Decomposition With Overlap (Join Coverage) + +A model prices four input units — including the join required by join coverage: + +- `input_mtok` at $5/M (catch-all input) +- `cache_read_mtok` at $0.50/M (cached input) +- `input_audio_mtok` at $100/M (audio input) +- `cache_audio_read_mtok` at $2.50/M (cached audio input — the join of cache_read and input_audio) +- `output_mtok` at $20/M + +Usage: `{input_tokens: 1000, cache_read_tokens: 200, input_audio_tokens: 300, cache_audio_read_tokens: 50, output_tokens: 500}` + +Leaf values (inclusion-exclusion via Mobius inversion): + +- `cache_audio_read_mtok`: 50 (leaf — no descendants) +- `cache_read_mtok`: 200 - 50 = 150 (subtract cached-audio) +- `input_audio_mtok`: 300 - 50 = 250 (subtract cached-audio) +- `input_mtok`: 1000 - 200 - 300 + 50 = 550 (the +50 corrects for double-subtraction) +- `output_mtok`: 500 + +Sum: 50 + 150 + 250 + 550 + 500 = 1500 = 1000 + 500. Every token in exactly one bucket. + +See [algorithm](algorithm.md) for the general formula. diff --git a/specs/data-driven-unit-registry/spec.md b/specs/data-driven-unit-registry/spec.md new file mode 100644 index 00000000..32724a07 --- /dev/null +++ b/specs/data-driven-unit-registry/spec.md @@ -0,0 +1,192 @@ +# Data-Driven Unit Registry + +**Code-level architecture is in [code-spec](code-spec.md).** + +**The goal is to calculate prices as accurately as possible for a given request.** +This is the reason the system exists. Every design decision traces back to this: maximize pricing accuracy given the information available. + +**Price data must be complete; usage data may be incomplete.** _(from "The goal is to calculate prices as accurately as possible")_ +These are two different kinds of information with different completeness guarantees. Price data is authored by us (in provider YAML files) — we control it and can enforce completeness. If a model prices cached tokens and audio tokens, it must also price cached-audio tokens; anything less is a data quality bug, not an acceptable approximation. Usage data comes from callers at runtime — they provide what they have (sometimes just `input_tokens` and `output_tokens` from OpenTelemetry). We give the best answer possible with incomplete usage, but we don't accept incomplete prices. + +**Every usage value must land in exactly one pricing bucket.** _(from "Price data must be complete")_ +When a model prices overlapping units (e.g., "all input tokens" and "cached input tokens"), the system assigns each token-count to exactly one bucket. No double-counting, no dropped tokens. This is a correctness invariant enforced by price data completeness — it's not something we approximate or hope for. + +**Units are data, not code.** +A pricing unit — the thing you multiply usage by to get a cost — is defined once in a data file. That definition propagates to every language implementation. Adding a new unit requires editing a data file, nothing else. No Python class, no TypeScript interface, no schema update. + +**Derive, don't duplicate.** +If information exists in one place, compute it elsewhere rather than copying it. Field names, validation rules, dimensional relationships — anything that can be derived from the registry should be derived, not restated in code. + +**Backward compatibility is preserved unless clearly impractical.** _(from "Units are data, not code")_ +Existing consumer code must continue to work. `model_price.input_mtok`, `usage.input_tokens`, `calc_price(usage)` — these patterns are the public API. This constrains how we implement data-driven units, not whether. + +**All public API signatures are preserved.** _(from "Backward compatibility")_ +`set_custom_snapshot(DataSnapshot | None)`, `UpdatePrices.fetch() -> DataSnapshot | None`, `calc_price()`, `ModelInfo.calc_price()` — all unchanged. `DataSnapshot` construction gains an optional `unit_families` parameter (defaults to the global snapshot's unit families), preserving backward compatibility. New behavior (validation at activation, global enforcement) is added without changing how these functions are called. + +**No new code generation.** _(from "Backward compatibility", "Units are data, not code")_ +Files that are currently hand-written stay hand-written. Generated code stays in files that are already generated (`data.py` for Python, the equivalent for JavaScript, JSON outputs). We do not introduce generation into `types.py`, `decompose.py`, `data_snapshot.py`, or any other hand-written module. Dynamic behavior (ModelPrice attribute access, Usage attribute access, extractor dest validation) comes from runtime registry lookups, not from generating source code with fields derived from the registry. + +**Existing provider YAML files are mostly unchanged.** _(from "Backward compatibility", "Price data must be complete")_ +Changes are justified only by genuine data gaps — e.g., a model that prices cached tokens and audio tokens but not cached-audio tokens fails a validation rule we're adding for good reason. No mass field renames, no restructuring for its own sake. This goes against "Price data must be complete" only in appearance — adding a missing cached-audio price IS making the data complete; it's not churn. + +**Validation replaces what hardcoded fields gave us implicitly, and adds more.** _(from "Units are data, not code", "Derive, don't duplicate")_ +Hardcoded ModelPrice fields provided implicit validation: a typo like `inptu_mtok` would fail because the field doesn't exist. Moving to data-driven units means explicit validation must replace that safety net and go further. Validation is comprehensive — it's cheaper to reject bad data at build/activation time than to debug wrong prices at runtime. + +**Users can define custom units at runtime.** _(from "Units are data, not code")_ +Without modifying the repository, without making a PR. Custom units are first-class: same mechanisms, same validation, same decomposition as built-in units. Users can add units to existing unit families or create entirely new unit families. The unit registry is mutable — users copy the current registry, add families or units, and the registry validates on mutation (ID uniqueness, dimension validity, join-closedness). There is no "build then validate" — mutation is always safe or it fails immediately. + +**Unit definitions travel with prices, not just with the package.** _(from "Units are data, not code", "Users can define custom units at runtime")_ +Currently, prices are in `data.json` which clients can auto-update at runtime (pulled on merge, before a package release). Unit definitions are in `units.json`, bundled into the Python/JS packages — only updated on package release. This means a new unit's prices could arrive before the client knows the unit exists. Unit definitions must be included in `data.json` (and `data_slim.json`) so they travel together with the prices that depend on them. When a client pulls fresh price data, it gets the units too. + +**`UnitRegistry` is the runtime representation of unit definitions.** _(from "Units are data, not code", "Users can define custom units at runtime")_ +A single class that owns all unit families and their units. Constructed from a raw dict (the `unit_families` section of `data.json` or `units.yml`), it parses, validates structural integrity (ID/key/dimension-set uniqueness, join-closedness), builds a flat index for O(1) unit lookup, and fills in back-references so each unit knows its ID, its family ID, and has a direct reference to its family object. Mutable: `add_family` and `add_unit` validate incrementally and update the index. `UnitDef` and `UnitFamily` are dataclasses (not Pydantic models) — the registry constructs them with all fields populated, including back-references. There is one model class per concept, not a "raw" and "parsed" variant. In the YAML/JSON, IDs are dict keys; the registry promotes them to fields on construction. + +**Unit families live in the data snapshot alongside prices.** _(from "Users can define custom units at runtime", "Unit definitions travel with prices")_ +`DataSnapshot` carries a `UnitRegistry`, just as it carries providers and models. Construction accepts an optional `unit_registry` parameter — when omitted, it defaults to the current global snapshot's unit registry, preserving backward compatibility for existing code that constructs a `DataSnapshot` from a providers list. The bundled snapshot includes a unit registry built from generated code; `data.json` auto-updates include unit families too. Adding a custom unit means copying the unit registry, mutating it (which validates), and passing it to a new snapshot. `UnitRegistry`, `UnitFamily`, and `UnitDef` are public classes. + +**There is one global DataSnapshot.** _(from "Unit families live in the data snapshot")_ +The library has one active snapshot at any time — either the bundled default or a custom one set via `set_custom_snapshot`. This is already the de facto design; we make it explicit. Price calculation and usage extraction read the unit registry from the global snapshot. There is no need to thread the registry through method parameters or store it on individual objects. Global state is the natural model for a pricing database — there is one set of prices, one set of units, one answer to "what does this model cost." + +**Validation is split between the registry and `set_custom_snapshot`.** _(from "There is one global DataSnapshot", "Validation replaces what hardcoded fields gave us")_ +Structural validation — ID uniqueness, usage key uniqueness, dimension-set uniqueness, dimension key/value validity, join-closedness — happens in the `UnitRegistry` on construction and mutation. The registry is always structurally sound; you cannot put it into an inconsistent state. Price-level validation — price keys are registered unit IDs, ancestor coverage, join coverage — happens at `set_custom_snapshot` time, because it requires both the registry and all model prices. If price validation fails, the previous global snapshot remains in place. For auto-updated pipeline data this is redundant but harmless (it runs in a background thread); for user-customized data it's essential. + +**ModelPrice construction does not validate against the registry.** _(from "`set_custom_snapshot` validates the snapshot", "Users can define custom units at runtime")_ +No unit ID lookup, no ancestor/join coverage checks at ModelPrice `__init__` time. This allows constructing ModelPrice objects with custom unit IDs before the snapshot containing those unit definitions is assembled and activated. Validation happens later, at `set_custom_snapshot` time, when the full context is available. `calc_price` looks up unit metadata (family, dimensions, usage keys) from the global snapshot via `get_snapshot()` — if a price key doesn't exist in the registry, the lookup fails naturally, but `calc_price` does not run structural validation (ancestor/join coverage). Standalone ModelPrice objects that bypass `set_custom_snapshot` are not a supported pattern. + +**`calc_price` is a hot path — no heavy computation, only dict lookups and arithmetic.** _(from "ModelPrice construction does not validate against the registry", "Expensive validation happens once at activation time")_ +`calc_price` runs after every LLM call. It must not do work that scales with the registry size or model count — no iteration over unit families, no validation, no searching. Unit ID → unit definition is a direct dict lookup via the registry's flat index; each `UnitDef` carries a direct reference to its `UnitFamily`, so `unit.family.per` requires no second lookup. Grouping price keys by family, computing leaf values (Mobius inversion over the model's priced units), and summing costs are all O(k) or O(k²) in the number of priced units for that model (typically 2–10), not in the size of the registry. The data-driven implementation should be roughly as fast as the old hardcoded field access — if it isn't, that's a bug, not an acceptable tradeoff. + +**`calc` and `extract_usage` on DataSnapshot require it to be the current global.** _(from "There is one global DataSnapshot")_ +These methods raise an error if called on a non-global snapshot. This prevents price calculations and usage extraction against a snapshot whose registry isn't the active one — the unit registry for decomposition and validation always comes from the global snapshot. + +**`find_provider_model` works on any snapshot, global or not.** _(from "There is one global DataSnapshot", "Backward compatibility")_ +`find_provider_model` and `find_provider` are pure lookups — name/pattern matching that does not need the unit registry. They must work on non-global snapshots because the `UpdatePrices.fetch()` customization pattern requires it: construct a snapshot from fetched data, query it to find existing models, copy/modify to add custom models, return the snapshot for the framework to activate. + +**The system is general across unit families.** _(from "Units are data, not code")_ +Any unit with the structure `usage_value x price / normalization_factor` is expressible: tokens (per million), requests (per thousand), characters, duration, etc. Tokens are the first and most complex family (because of overlapping usage), but nothing in the system is token-specific. Future unit families require only a data file edit. + +**A unit family groups units whose usage values can overlap.** _(from "The system is general")_ +Each family has a normalization factor (`per: 1_000_000` for tokens). Within a family, a more-specific unit's usage is a subset of a less-specific one's (`cache_read_tokens` is a subset of `input_tokens`). Between unit families, there is no overlap — request counts don't interact with token counts. + +**`requests_kcount` becomes a unit in a `requests` family.** _(from "The system is general", "A unit family groups units")_ +The existing `requests_kcount` field is a hardcoded special case — a price per thousand requests. It belongs in the registry as a unit in a `requests` family with `per: 1_000`. The `requests` family has no dimensions — it's a single unit with no overlapping subtypes (decomposition is trivial — the formula returns the usage value directly). The unit ID stays `requests_kcount` and the usage key is `requests`. This makes request pricing subject to the same mechanisms as token pricing — validation, schema autocomplete, and the same code path in `calc_price`. Usage for the requests family defaults to 1 per call when not specified — every `calc_price` invocation represents one API call. This preserves backward compatibility with existing code that doesn't pass request counts. + +**Dimensions define unit specificity and overlap.** _(from "A unit family groups units")_ +Each unit carries zero or more categorical dimension assignments: `{direction: input}`, `{direction: input, cache: read}`, `{direction: input, modality: audio, cache: read}`. More dimensions = more specific. The containment relationship — which units are ancestors/descendants of which — is determined by set inclusion on dimensions: if A's dimensions are a subset of B's, A is an ancestor of B. This structure is the basis for decomposition and for all validation rules. + +**Decomposition uses dimensions, not hardcoded subtraction chains.** _(from "Dimensions define unit specificity", "Every usage value must land in exactly one pricing bucket")_ +The current code subtracts specific unit values from general ones in a manually maintained order. The replacement: Mobius inversion on the containment poset defined by dimensions. The algorithm takes the set of priced units, computes each one's "leaf value" (exclusive portion of usage), and guarantees no double-counting. No code names specific units — the algorithm works from the dimension structure alone. See [algorithm](algorithm.md) for the formula and multi-way overlap handling. + +**Only priced units participate in decomposition.** _(from "Decomposition uses dimensions")_ +If a model doesn't price `input_audio_mtok`, audio tokens remain part of the `input_mtok` catch-all — they are not carved out. The decomposition is determined by the set of units that have prices for the current model, not the full registry. This is what makes partial pricing work: a model that only prices `input_mtok` and `output_mtok` still produces correct results. + +**Decomposition operates within a family.** _(from "Decomposition uses dimensions", "A unit family groups units")_ +Token decomposition does not affect request pricing. Each family's decomposition is independent — there is no cross-family overlap to resolve. Price calculation starts from the model's price keys — each is a unit ID, globally unique, so it maps to exactly one family. Group by family, decompose each group, price each leaf. No exhaustive scan of the registry's unit families is needed. + +**Costs are aggregable by dimension filter.** _(from "Decomposition uses dimensions", "Dimensions define unit specificity")_ +After decomposition, the cost for each priced unit is its leaf value times its price. These per-unit costs can be summed by dimension filter: "total cost for {direction: input}" sums the leaf costs of all priced units whose dimensions are a superset of the filter. This is the general mechanism — `input_price` and `output_price` are specific instances of it. + +**`input_price` and `output_price` are backward-compat accessors over direction-filtered costs.** _(from "Costs are aggregable by dimension filter", "Backward compatibility")_ +`calc_price` currently returns `{input_price, output_price, total_price}`. The input/output grouping is a cost aggregate filtered by `{direction: input}` and `{direction: output}` respectively. These names are kept for backward compatibility. Costs from unit families without a `direction` dimension (e.g., requests) appear only in `total_price`, not in `input_price` or `output_price`. + +**Nice-to-have: aggregate usage count queries by dimension filter.** _(from "Decomposition uses dimensions", "Dimensions define unit specificity")_ +Given a usage object and a dimension filter, it should be possible to ask "how many tokens match `{direction: input}`?" — by summing the leaf values of all priced units whose dimensions are a superset of the filter. Unlike cost aggregation, this is a usage-and-dimensions operation that doesn't involve prices. Examples: all input tokens ({direction: input}), all cache read tokens ({cache: read}), all audio tokens ({modality: audio}) regardless of direction, all tokens (empty filter). A filter matching no priced units returns zero. The API is not yet defined — it could be a standalone function that accepts a usage object and a filter. This is not required for the initial implementation but the dimension system makes it natural. + +**TieredPrices is not refactored in this change.** _(from "Backward compatibility")_ +The existing TieredPrices mechanism (threshold-based pricing where crossing a tier applies that rate to all tokens) continues to work as-is. The tier threshold is determined by the total input token count — the inferred or provided usage for the catch-all `input_mtok` unit, which equals the sum of all input leaf values. This is already the correct value whether usage is fully specified or partially inferred. The aggregate query concept generalizes this into a dimension filter ({direction: input}), but TieredPrices is not modified to use it — that's a separate future change. + +**Unspecified dimensions mean catch-all: the unit prices whatever isn't claimed by a more specific unit.** _(from "Dimensions define unit specificity", "Only priced units participate")_ +`input_mtok` has no `modality` dimension — it's the catch-all for all input tokens not claimed by a modality-specific unit. The catch-all implicitly functions as the default modality. For text-primary models (most models), `input_mtok` IS the text price — no `input_text_mtok` needed. For image-primary models, the catch-all should be the image price: set `input_mtok` and `input_image_mtok` to the same value, and define `input_text_mtok` as the exception. See [examples](examples.md) for concrete pricing patterns. + +**Ancestor coverage: pricing a unit requires pricing all its ancestors within the same family.** _(from "Price data must be complete", "Decomposition uses dimensions")_ +If a model prices `cache_read_mtok` ({direction: input, cache: read}), it must also price `input_mtok` ({direction: input}) — both are in the tokens family. Without the ancestor, usage reported at the general level (just `input_tokens`, no breakdown) would have no price. This is a price data completeness requirement — validated, not assumed. + +**Join coverage: pricing two overlapping units within the same family requires pricing their intersection.** _(from "Price data must be complete", "Decomposition uses dimensions")_ +If a model prices both `cache_read_mtok` and `input_audio_mtok` (both in the tokens family), their join — the unit with the union of both dimension sets, `{direction: input, cache: read, modality: audio}` — must also be priced, if it exists in the registry. Without this, Mobius inversion double-counts tokens that belong to both parents. This is not a nice-to-have — it's a direct consequence of requiring accurate prices. Each token in one bucket, not two. + +**Decomposition correctness depends on ancestor and join coverage.** _(from "Only priced units participate", "Ancestor coverage", "Join coverage")_ +The Mobius inversion formula sums only over priced units, using sign `(-1)^(depth(V) - depth(U))` from the full poset. This gives correct leaf values only when the set of priced units has no structural gaps — every ancestor of a priced unit is priced (ancestor coverage), and the join of any two priced units that share a common descendant is also priced (join coverage). Without these guarantees, skipping intermediate unpriced units produces wrong signs in the inclusion-exclusion. The validation rules are not just data quality checks — they are preconditions for the algorithm's correctness. + +**The registry defines units symmetrically across modalities.** _(from "Registry join-closedness")_ +Each modality gets the same four unit patterns: input, output, cache read, and cache write — even where no provider currently uses them. This is not the full Cartesian product of all dimension values (nonsensical combinations like `{direction: output, cache: read}` are excluded since caching is input-side). The symmetry is across modalities: if `cache_audio_read_mtok` exists, so do `cache_text_read_mtok`, `cache_image_read_mtok`, and `cache_video_read_mtok`. Models simply don't define prices for unused units. + +**Registry join-closedness: compatible unit pairs must have their join in the family.** _(from "Decomposition correctness depends on ancestor and join coverage", "Users can define custom units at runtime")_ +Two units are compatible when they share no dimension axis with conflicting values — `{direction: input, cache: read}` and `{direction: input, modality: audio}` are compatible; `{direction: input}` and `{direction: output}` are not. For every compatible pair within a family, the unit with the union of both dimension sets must exist in that family. Without this, Möbius inversion silently misallocates usage between overlapping buckets — the overlap has no unit to land in, so the formula distributes it incorrectly across parents. This is a structural requirement on the registry itself, independent of any model's prices. For built-in unit families, symmetric definitions satisfy it by construction. For custom unit families, it is validated by the `UnitRegistry` on construction and on `add_family`/`add_unit` — you cannot create or mutate a registry into a non-join-closed state. + +**`data.json` becomes a top-level dict, not a bare list.** _(from "Unit definitions travel with prices")_ +Currently `data.json` is a bare JSON array of providers. Adding unit families requires a top-level wrapper: `{"unit_families": {...}, "providers": [...]}`. This is a one-time schema break — old clients that validate the fetched JSON as a list of providers will fail. The top-level should have been a dict from the start; this change enables future extensibility without further breaks. After this, adding new top-level fields (e.g., metadata) won't require another schema change. `data_slim.json` undergoes the same structural change — both files carry unit families. The slim variant continues to omit descriptive fields and free models, as it does today. + +**The registry is a YAML file that defines all built-in units.** _(from "Units are data, not code", "Derive, don't duplicate")_ +One file, checked into the repo (`prices/units.yml`). It defines unit families, their normalization factors, their dimension axes, and their units (each with an ID, a usage key, and dimension assignments). The `tokens` family declares three dimension axes: `direction` (input, output), `modality` (text, audio, image, video), and `cache` (read, write). At build time, this file is compiled into `data.json` alongside prices. At runtime, the registry is loaded from the same data the client already has — no separate file needed. + +**Naming optimizes for writability: people discover names by pattern-matching from existing ones.** _(from "Backward compatibility")_ +Provider YAML files and usage objects are written frequently. People figure out names by looking at what's already there and extrapolating, not by memorizing a convention document. Consistency across unit names matters because inconsistency is how people get tripped up — seeing `cache_audio_read` and guessing `cache_image_read` must work (and it does, because the names are consistent). The convention for cached+modality units follows the pre-existing `cache_audio_read` pattern: `cache_{modality}_{op}`. For non-cached: `{direction}_{modality}`. Usage keys follow the same pattern with `_tokens` suffix. + +**Generated JSON schemas provide editor autocomplete for provider YAML files.** _(from "Naming optimizes for writability", "The registry is a YAML file")_ +The unit registry generates a JSON schema that provider YAML files reference (via the `yaml-language-server` directive). This gives autocomplete and validation in editors for both price keys and extractor destination fields, reducing reliance on memorizing names. The schema is regenerated whenever the registry changes. + +**ModelPrice supports attribute access backed by registry data.** _(from "The registry is a YAML file", "Backward compatibility")_ +ModelPrice is not a plain dict — that would break `model_price.input_mtok`. It's an object that supports attribute access, but the set of valid attributes comes from the registry. New units added to the registry are immediately accessible as attributes. Legacy names like `input_mtok` continue to work. Keeping typed property definitions for existing names is acceptable as a backward-compat shim — but it's a convenience for type checkers, not the source of truth. Future names need no code changes. + +**`Usage` is a registry-aware class that infers, decomposes, and serves correct values.** _(from "The registry is a YAML file", "Derive, don't duplicate")_ +Each unit defines a `usage_key` — the attribute name to look up on the usage object (e.g., `input_tokens` for unit `input_mtok`). The `Usage` class has no hardcoded fields — it accepts any keyword argument and uses the global unit registry to understand the relationship between keys. Construction via keyword arguments (`Usage(input_tokens=1000)`) or from an arbitrary object (`Usage.from_raw(obj)`, extracting values via `getattr`) continues to work. `Usage` supports keys from any family — token counts and request counts coexist on the same object. + +**`Usage` infers ancestor values from descendants.** _(from "Usage is a registry-aware class", "Price data must be complete; usage data may be incomplete")_ +If a caller provides `Usage(input_audio_tokens=300, output_tokens=500)` without `input_tokens`, `usage.input_tokens` returns 300 — inferred from the descendant. If both `cache_read_tokens=200` and `input_audio_tokens=100` are provided without `input_tokens`, it is inferred correctly via inclusion-exclusion over the dimension structure, not naive summation. Explicitly provided values are never overridden by inference. Accessing a usage key that exists in the registry but has no data (provided or inferred) returns zero. Inference happens at construction time; afterward, all values (provided and inferred) are stored in one flat dict with no distinction between them. `Usage.__add__` (streaming accumulation) sums all stored values and re-infers on the result — this is correct because inferred ancestors are always derivable from the stored descendant values. + +**Decomposition stays in `calc_price`, not on `Usage`.** _(from "Usage is a registry-aware class", "Decomposition uses dimensions")_ +Decomposition — computing how much of a usage value is exclusive to each priced unit (Mobius inversion) — depends on the set of priced units, which is pricing data. `Usage` does not expose a leaf-value method. `calc_price` handles the Mobius inversion internally, reading values from the smart `Usage` (which always has correct totals thanks to inference). This keeps `Usage` focused on what it naturally owns: values and inference. `calc_price` owns the price-dependent decomposition. TieredPrices benefits from the smart `Usage` regardless: `usage.input_tokens` always returns the correct total (provided or inferred), so tier determination is a simple attribute access rather than a separate computation. + +**The usage parameter type is `object`, not a library-specific type.** _(from "Usage is a registry-aware class")_ +`calc_price` accepts any object as usage. Callers are not required to use the library's `Usage` class — they can pass their own dataclass, a namespace object, a dict, or anything else. Internally, `calc_price` wraps non-`Usage` objects in `Usage.from_raw(obj)`, which extracts known usage keys via `getattr`/Mapping access and produces a smart `Usage` with inference and decomposition support. All downstream logic goes through the smart `Usage`. This means callers get full inference and correct decomposition regardless of what type they pass — but callers who construct `Usage` directly benefit from it immediately (e.g., `usage.input_tokens` returns the correct inferred value before `calc_price` is even called). `AbstractUsage` remains as a public export (assigned to `object`) solely for backward compatibility. Internally, the library does not use `AbstractUsage` in any signature — it uses `object` directly, because that is what it actually means. + +**The extraction pipeline is data-driven end-to-end.** _(from "Units are data, not code", "Usage is accessed dynamically", "No new code generation")_ +Extractors are already defined in provider YAML — they map paths in API responses to usage fields. Currently the output side is hardcoded: `UsageExtractorMapping.dest` is a `UsageField` literal type, and the `Usage` object has fixed fields. Both constraints are removed. `dest` becomes a plain string referencing any usage key in the registry. The `UsageField` literal type goes away. The generated JSON schema for provider YAML files validates extractor `dest` fields against the registry's usage keys, giving autocomplete when writing extractors. At runtime, extractor `dest` values are validated against the registry. The full chain — provider YAML extractor definition → `Usage` object → `calc_price` — requires no code changes when new units are added to the registry. A new unit with a new usage key is immediately available as an extractor destination, a `Usage` attribute, and a pricing input. + +**Usage key defaults to unit ID if not specified.** _(from "Usage is accessed dynamically")_ +Unit IDs like `input_mtok` encode normalization (per-million). Usage values like `input_tokens` are raw counts. The `usage_key` field bridges the two — the system looks up `input_tokens` on the usage object and applies the `input_mtok` price with the family's `per: 1_000_000`. For the tokens family, every unit has an explicit `usage_key` because of this naming split. For unit families where the unit ID and usage key are the same (e.g., a future `tool_calls` family), the default avoids redundancy. + +**Incomplete usage is handled gracefully, not rejected.** _(from "Price data must be complete; usage data may be incomplete", "Usage is a registry-aware class")_ +A caller with only `{input_tokens: 1000, output_tokens: 500}` gets a valid price at catch-all rates — and if the model prices requests, one request is counted automatically. A caller with only `{input_audio_tokens: 300}` gets a valid price at the audio rate — `Usage` infers `input_tokens=300`, and the leaf value for `input_mtok` is zero (all input tokens are accounted for by the audio descendant). A caller with detailed breakdowns gets a more precise price. If a caller provides a usage key (e.g., `input_video_tokens: 100`) for a model that doesn't price `input_video_mtok`, those tokens silently remain in the catch-all ancestor — the decomposition only considers priced units. Usage for a family with no priced units at all (e.g., `requests: 5` on a model with no request pricing) is silently ignored — there is nothing to decompose or price. + +**Mapping usage keys are validated against the registry.** _(from "Incomplete usage is handled gracefully", "Validation replaces what hardcoded fields gave us")_ +Attribute-bearing usage objects (dataclass, namedtuple, etc.) cannot be validated for keys — they may have extra attributes unrelated to pricing, and that's the existing contract. But Mapping usage (dict) is a new interface with no backward-compat debt. Every key in a Mapping must be a recognized usage key from the registry (any family). A key matching an unpriced unit is fine (ignored during decomposition). A key matching no unit at all is an error — it's a typo, not a data gap. Without this, writing `inptu_tokens` instead of `input_tokens` would silently default to zero and produce the wrong price with no indication. Checked at calc_price time (Python only — no equivalent contract in JavaScript). + +**Inconsistent usage is rejected.** _(from "Every usage value must land in exactly one pricing bucket", "Incomplete usage is handled gracefully")_ +Incomplete and inconsistent are different. Missing usage is handled by inference in `Usage`. But when both a parent and child usage are explicitly provided and the child exceeds the parent — e.g., `{input_tokens: 100, cache_read_tokens: 200}` — that's contradictory: a subset can't exceed its superset. The error surfaces when `calc_price` asks `Usage` for the leaf value: the Mobius inversion yields a negative value and `Usage` raises an error. Because `Usage` infers correct ancestor values when they're missing, negative leaves can only arise from genuinely contradictory provided values, never from inference gaps. This is the right behavior — silently producing a wrong price is worse than failing loudly. + +**Error messages describe the data problem, not the algorithm.** _(from "Inconsistent usage is rejected", "Validation replaces what hardcoded fields gave us")_ +Users see error messages, not source code. No error should mention leaves, Mobius inversion, posets, depth, coefficients, or dimensions. A negative leaf means a subset's count exceeds its superset's — say that: "cache_read_tokens (200) exceeds input_tokens (100) — cached input tokens are a subset of input tokens." The explanation is derived from the registry structure (which units are more/less specific), not hardcoded per unit pair. Validation errors (ancestor coverage, join coverage, invalid keys) follow the same principle: describe what's wrong in terms of the pricing data, not the validation algorithm. + +**Expensive validation happens once at construction/activation time, not on every calc_price call.** _(from "Validation replaces what hardcoded fields gave us", "Unit definitions travel with prices", "Validation is split between the registry and `set_custom_snapshot`")_ +The repo contains thousands of model prices. Registry-level structural validation (ID uniqueness, join-closedness, dimension validity) runs when the `UnitRegistry` is constructed — once per snapshot lifecycle. Price-level validation (ancestor coverage, join coverage, price key validity) is O(n²) over priced units per model; for repo-defined prices, this runs in the build pipeline. The build pipeline produces multiple outputs — `data.json`/`data_slim.json` for runtime updates, and generated code like `data.py` (Python) that embeds the same data as language-native structures. All of these outputs are pre-validated. At runtime, the bundled snapshot (loaded from generated `data.py`) is imported directly — it never passes through `set_custom_snapshot` and pays no validation cost. All other snapshots — auto-updated or user-constructed — go through `set_custom_snapshot`, which validates prices against the registry. For auto-updated data this is redundant (it was pre-validated in the pipeline) but acceptable since it runs in a background thread. + +**Unit definitions are generated into language-native code alongside prices.** _(from "Unit definitions travel with prices", "Expensive validation happens once at activation time")_ +Each language package has a generated file that embeds all price data as language-native structures — `data.py` for Python, the equivalent for JavaScript. This is what loads at startup, not `data.json`. The `data.json` file exists for runtime auto-updates (refreshing prices in a long-running process). All of these must contain unit definitions. The build pipeline generates unit definitions into the language-native files as code, and into `data.json` as data. When `data.json` is fetched at runtime to update prices, the unit definitions it carries are also loaded. The fetched snapshot goes through `set_custom_snapshot`, which validates it — redundant for pipeline-built data, but harmless in a background thread. + +**Price key validation: every key in a model's prices must be a registered unit ID.** _(from "Validation replaces what hardcoded fields gave us")_ +If a provider YAML file has `prices: { inptu_mtok: 3 }`, the build fails. This replaces the implicit validation that hardcoded Pydantic/dataclass fields provided. Checked at build time (data pipeline) and at `set_custom_snapshot` time for runtime-defined prices. + +**Dimension validation: unit dimension keys and values must match their family's declarations.** _(from "Validation replaces what hardcoded fields gave us", "Dimensions define unit specificity")_ +A unit in the `tokens` family can only use dimension keys declared for that family (`direction`, `modality`, `cache`), and only with declared values (`direction: input` is valid; `direction: sideways` is not). Checked by the `UnitRegistry` on construction and mutation. + +**Unit IDs are globally unique across all unit families.** _(from "Validation replaces what hardcoded fields gave us", "ModelPrice supports attribute access")_ +A unit ID identifies a single unit in the entire registry, not just within its family. ModelPrice uses unit IDs as attribute names — if two unit families could share a unit ID, attribute access would be ambiguous. + +**Unit uniqueness: no two units in a family may have identical dimension sets.** _(from "Validation replaces what hardcoded fields gave us", "Dimensions define unit specificity")_ +Dimensions uniquely identify a unit's position in the containment poset. Two units with the same dimensions would be the same slot — that's a data error, not an edge case. + +**Usage key uniqueness: no two units across any family may share the same usage key.** _(from "Validation replaces what hardcoded fields gave us", "Usage is accessed dynamically")_ +A usage key maps one-to-one to a unit globally, not just within a family. If two units read from the same usage field, decomposition can't distinguish their contributions. + +**Ancestor coverage is validated.** _(from "Ancestor coverage: pricing a unit requires pricing all its ancestors", "Expensive validation happens once at activation time")_ +Checked in the build pipeline for repo-defined prices, and at `set_custom_snapshot` time for runtime-defined prices. Not deferred to calc_price. + +**Join coverage is validated.** _(from "Join coverage: pricing two overlapping units requires pricing their intersection", "Expensive validation happens once at activation time")_ +For every pair of priced units within the same family, if their dimension-union corresponds to a unit in the registry, that unit must also be priced. Checked in the build pipeline for repo-defined prices, and at `set_custom_snapshot` time for runtime-defined prices. + +**Price sanity checks warn on violations of common economic inequalities.** _(from "The goal is to calculate prices as accurately as possible", "Validation replaces what hardcoded fields gave us")_ +Some pricing relationships hold across nearly all models: cache reads are cheaper than uncached input, cache writes are more expensive, text is the cheapest modality. These aren't hard constraints — a model might legitimately break them — but violations are worth flagging. Start with these as **errors** in the build pipeline: if a real violation exists, investigate and either fix the data, downgrade to a warning, or remove the rule. It's easier to relax a check than to discover a silent data entry mistake months later ("did you swap cache_read and cache_write prices?"). The inequalities should be expressible in terms of dimensions (e.g., "within the same direction and modality, cache=read ≤ uncached ≤ cache=write") rather than listing specific unit pairs. + +**Validation rules are expressed in terms of dimensions, not unit names.** _(from "Derive, don't duplicate", "Dimensions define unit specificity")_ +All validation logic — ancestor coverage, join coverage, dimension validity, key matching — operates on the dimension structure from the registry. No validation code references `input_mtok` or any other specific unit by name. diff --git a/tests/cassettes/test_update_prices/success.yaml b/tests/cassettes/test_update_prices/success.yaml index 0013010a..4669df06 100644 --- a/tests/cassettes/test_update_prices/success.yaml +++ b/tests/cassettes/test_update_prices/success.yaml @@ -1,543 +1,746 @@ interactions: - - request: - body: "" - headers: - accept: - - "*/*" - accept-encoding: - - gzip, deflate - connection: - - keep-alive - host: - - raw.githubusercontent.com - user-agent: - - python-httpx/0.28.1 - method: GET - uri: https://raw.githubusercontent.com/pydantic/genai-prices/refs/heads/main/prices/data.json - response: - body: - string: !!binary | - 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 - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - "*" - Cache-Control: - - max-age=300 - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Length: - - "26720" - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Sat, 12 Jul 2025 00:25:40 GMT - ETag: - - W/"05dea672c00b965b0e92e195516bd72e9ef741dfeb8bb867b379ff4737c9d45a" - Expires: - - Sat, 12 Jul 2025 00:30:40 GMT - Source-Age: - - "0" - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - "0" - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 930a9518c23819750f10fed68096df79e195e86a - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 8787:1B6690:1D0BF4:2626E0:6871A612 - X-Served-By: - - cache-sjc1000128-SJC - X-Timer: - - S1752279941.501875,VS0,VE112 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - raw.githubusercontent.com + user-agent: + - python-httpx/0.28.1 + method: GET + uri: https://raw.githubusercontent.com/pydantic/genai-prices/refs/heads/main/prices/data.json + response: + body: + string: !!binary | + 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 + 2sVN//TnT3/3P3AVAIs3DwQA + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - '*' + Cache-Control: + - max-age=300 + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '38265' + Content-Security-Policy: + - default-src 'none'; style-src 'unsafe-inline'; sandbox + Content-Type: + - text/plain; charset=utf-8 + Cross-Origin-Resource-Policy: + - cross-origin + Date: + - Sat, 12 Jul 2025 00:25:40 GMT + ETag: + - W/"05dea672c00b965b0e92e195516bd72e9ef741dfeb8bb867b379ff4737c9d45a" + Expires: + - Sat, 12 Jul 2025 00:30:40 GMT + Source-Age: + - '0' + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization,Accept-Encoding + Via: + - 1.1 varnish + X-Cache: + - HIT + X-Cache-Hits: + - '0' + X-Content-Type-Options: + - nosniff + X-Fastly-Request-ID: + - 930a9518c23819750f10fed68096df79e195e86a + X-Frame-Options: + - deny + X-GitHub-Request-Id: + - 8787:1B6690:1D0BF4:2626E0:6871A612 + X-Served-By: + - cache-sjc1000128-SJC + X-Timer: + - S1752279941.501875,VS0,VE112 + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK version: 1 diff --git a/tests/dataset/usages.json b/tests/dataset/usages.json index 04d2c16e..fbc458e8 100644 --- a/tests/dataset/usages.json +++ b/tests/dataset/usages.json @@ -14770,7 +14770,7 @@ "extractors": [ { "api_flavor": "chat", - "input_price": "0.0001725", + "input_price": "0.0002025", "output_price": "0.00072", "provider_id": "azure" }, @@ -14824,7 +14824,7 @@ }, { "api_flavor": "chat", - "input_price": "0.0001725", + "input_price": "0.0002025", "output_price": "0.00072", "provider_id": "openai" }, @@ -14843,13 +14843,13 @@ "extractors": [ { "api_flavor": "embeddings", - "input_price": "0.0", + "input_price": "0.0002025", "output_price": "0", "provider_id": "azure" }, { "api_flavor": "embeddings", - "input_price": "0.0", + "input_price": "0.0002025", "output_price": "0", "provider_id": "openai" } @@ -21061,7 +21061,7 @@ "extractors": [ { "api_flavor": "chat", - "input_price": "0.00011", + "input_price": "0.00016", "output_price": "0.00009", "provider_id": "azure" }, @@ -21115,7 +21115,7 @@ }, { "api_flavor": "chat", - "input_price": "0.00011", + "input_price": "0.00016", "output_price": "0.00009", "provider_id": "openai" }, @@ -21134,13 +21134,13 @@ "extractors": [ { "api_flavor": "embeddings", - "input_price": "0.0", + "input_price": "0.00016", "output_price": "0", "provider_id": "azure" }, { "api_flavor": "embeddings", - "input_price": "0.0", + "input_price": "0.00016", "output_price": "0", "provider_id": "openai" } @@ -32722,7 +32722,7 @@ "extractors": [ { "api_flavor": "default", - "input_price": "0.00082125", + "input_price": "0.00100125", "output_price": "0.00005", "provider_id": "google" } diff --git a/tests/test_decompose.py b/tests/test_decompose.py new file mode 100644 index 00000000..337056d7 --- /dev/null +++ b/tests/test_decompose.py @@ -0,0 +1,308 @@ +from decimal import Decimal + +import pytest + +from genai_prices import Usage +from genai_prices.decompose import ( + compute_leaf_values, + get_priced_descendants, + is_descendant_or_self, + validate_ancestor_coverage, +) +from genai_prices.types import ModelPrice, Tier, TieredPrices +from genai_prices.units import TOKENS_FAMILY, get_unit + + +class TestContainment: + def test_self_is_descendant_or_self(self): + unit = get_unit('input_mtok') + assert is_descendant_or_self(unit, unit) + + def test_child_is_descendant(self): + assert is_descendant_or_self(get_unit('input_mtok'), get_unit('cache_read_mtok')) + + def test_parent_is_not_descendant_of_child(self): + assert not is_descendant_or_self(get_unit('cache_read_mtok'), get_unit('input_mtok')) + + def test_grandchild_is_descendant(self): + assert is_descendant_or_self(get_unit('input_mtok'), get_unit('cache_audio_read_mtok')) + + def test_lattice_both_parents(self): + """cache_read_audio is a descendant of both cache_read and input_audio.""" + cra = get_unit('cache_audio_read_mtok') + assert is_descendant_or_self(get_unit('cache_read_mtok'), cra) + assert is_descendant_or_self(get_unit('input_audio_mtok'), cra) + + def test_sibling_not_descendant(self): + assert not is_descendant_or_self(get_unit('cache_read_mtok'), get_unit('cache_write_mtok')) + + def test_different_direction_not_descendant(self): + assert not is_descendant_or_self(get_unit('input_mtok'), get_unit('output_mtok')) + + def test_wrong_modality_not_descendant(self): + assert not is_descendant_or_self(get_unit('input_audio_mtok'), get_unit('cache_image_read_mtok')) + + def test_cache_write_not_descendant_of_cache_read(self): + assert not is_descendant_or_self(get_unit('cache_read_mtok'), get_unit('cache_audio_write_mtok')) + + +class TestPricedDescendants: + def test_all_priced(self): + priced = {'input_mtok', 'cache_read_mtok', 'input_audio_mtok', 'cache_audio_read_mtok'} + descs = get_priced_descendants('input_mtok', priced, TOKENS_FAMILY) + assert descs == {'cache_read_mtok', 'input_audio_mtok', 'cache_audio_read_mtok'} + + def test_excludes_unpriced(self): + priced = {'input_mtok', 'cache_read_mtok'} + descs = get_priced_descendants('input_mtok', priced, TOKENS_FAMILY) + assert descs == {'cache_read_mtok'} + + def test_leaf_has_no_descendants(self): + priced = {'input_mtok', 'cache_audio_read_mtok'} + descs = get_priced_descendants('cache_audio_read_mtok', priced, TOKENS_FAMILY) + assert descs == set() + + def test_excludes_self(self): + priced = {'input_mtok', 'cache_read_mtok'} + descs = get_priced_descendants('input_mtok', priced, TOKENS_FAMILY) + assert 'input_mtok' not in descs + + +class TestLeafValues: + def test_simple_text_model(self): + """Text-only: no carve-outs.""" + priced = {'input_mtok', 'output_mtok'} + usage = {'input_tokens': 1000, 'output_tokens': 500} + assert compute_leaf_values(priced, usage, TOKENS_FAMILY) == {'input_mtok': 1000, 'output_mtok': 500} + + def test_with_cache(self): + """Cache tokens carved out of input catch-all.""" + priced = {'input_mtok', 'output_mtok', 'cache_read_mtok', 'cache_write_mtok'} + usage = {'input_tokens': 1000, 'cache_read_tokens': 200, 'cache_write_tokens': 100, 'output_tokens': 500} + leaves = compute_leaf_values(priced, usage, TOKENS_FAMILY) + assert leaves == { + 'input_mtok': 700, + 'cache_read_mtok': 200, + 'cache_write_mtok': 100, + 'output_mtok': 500, + } + + def test_with_audio(self): + """Audio tokens carved out of input catch-all.""" + priced = {'input_mtok', 'output_mtok', 'input_audio_mtok'} + usage = {'input_tokens': 1000, 'input_audio_tokens': 300, 'output_tokens': 500} + leaves = compute_leaf_values(priced, usage, TOKENS_FAMILY) + assert leaves == {'input_mtok': 700, 'input_audio_mtok': 300, 'output_mtok': 500} + + def test_spec_example(self): + """Example from Section 4 of the unit registry spec.""" + priced = {'input_mtok', 'cache_read_mtok', 'input_audio_mtok'} + usage = {'input_tokens': 1000, 'cache_read_tokens': 200, 'input_audio_tokens': 300} + leaves = compute_leaf_values(priced, usage, TOKENS_FAMILY) + assert leaves == {'input_mtok': 500, 'cache_read_mtok': 200, 'input_audio_mtok': 300} + + def test_lattice_cache_read_audio(self): + """cache_read_audio carved from both cache_read and input_audio (lattice structure).""" + priced = {'input_mtok', 'cache_read_mtok', 'input_audio_mtok', 'cache_audio_read_mtok'} + usage = { + 'input_tokens': 1000, + 'cache_read_tokens': 200, + 'input_audio_tokens': 300, + 'cache_audio_read_tokens': 50, # current field name + } + leaves = compute_leaf_values(priced, usage, TOKENS_FAMILY) + assert leaves == { + 'input_mtok': 550, # 1000 - 200 - 300 + 50 + 'cache_read_mtok': 150, # 200 - 50 + 'input_audio_mtok': 250, # 300 - 50 + 'cache_audio_read_mtok': 50, # leaf + } + + def test_unpriced_audio_stays_in_catchall(self): + """If input_audio is NOT priced, audio tokens remain in the catch-all.""" + priced = {'input_mtok', 'output_mtok', 'cache_read_mtok'} + usage = { + 'input_tokens': 1000, + 'cache_read_tokens': 200, + 'input_audio_tokens': 300, # not priced — stays in catch-all + 'output_tokens': 500, + } + leaves = compute_leaf_values(priced, usage, TOKENS_FAMILY) + assert leaves == {'input_mtok': 800, 'cache_read_mtok': 200, 'output_mtok': 500} + + def test_missing_usage_is_zero(self): + """Missing usage values default to zero.""" + priced = {'input_mtok', 'output_mtok', 'cache_read_mtok'} + usage = {'input_tokens': 1000, 'output_tokens': 500} + leaves = compute_leaf_values(priced, usage, TOKENS_FAMILY) + assert leaves == {'input_mtok': 1000, 'cache_read_mtok': 0, 'output_mtok': 500} + + def test_negative_leaf_raises_error(self): + """Inconsistent usage (cache > input) raises ValueError with helpful message.""" + priced = {'input_mtok', 'cache_read_mtok'} + usage = {'input_tokens': 100, 'cache_read_tokens': 200} + with pytest.raises(ValueError, match=r'Negative leaf value.*input_mtok'): + compute_leaf_values(priced, usage, TOKENS_FAMILY) + + def test_usage_as_object(self): + """Usage can be an object with attributes (like the Usage dataclass).""" + priced = {'input_mtok', 'output_mtok', 'cache_read_mtok'} + usage = Usage(input_tokens=1000, output_tokens=500, cache_read_tokens=200) + leaves = compute_leaf_values(priced, usage, TOKENS_FAMILY) + assert leaves == {'input_mtok': 800, 'cache_read_mtok': 200, 'output_mtok': 500} + + def test_full_current_model(self): + """All 7 current units priced — matches what the hardcoded chain does.""" + priced = { + 'input_mtok', + 'output_mtok', + 'cache_read_mtok', + 'cache_write_mtok', + 'input_audio_mtok', + 'cache_audio_read_mtok', + 'output_audio_mtok', + } + usage = { + 'input_tokens': 1000, + 'cache_read_tokens': 200, + 'cache_write_tokens': 100, + 'input_audio_tokens': 300, + 'cache_audio_read_tokens': 50, + 'output_tokens': 800, + 'output_audio_tokens': 150, + } + leaves = compute_leaf_values(priced, usage, TOKENS_FAMILY) + assert leaves == { + # input_mtok: 1000 - 200 - 100 - 300 + 50 = 450 + 'input_mtok': 450, + 'cache_read_mtok': 150, # 200 - 50 + 'cache_write_mtok': 100, # leaf + 'input_audio_mtok': 250, # 300 - 50 + 'cache_audio_read_mtok': 50, # leaf + 'output_mtok': 650, # 800 - 150 + 'output_audio_mtok': 150, # leaf + } + + def test_output_audio_carved_from_output(self): + """output_audio carved from output catch-all.""" + priced = {'output_mtok', 'output_audio_mtok'} + usage = {'output_tokens': 800, 'output_audio_tokens': 200} + leaves = compute_leaf_values(priced, usage, TOKENS_FAMILY) + assert leaves == {'output_mtok': 600, 'output_audio_mtok': 200} + + +class TestCalcPriceEquivalence: + """Verify the rewired calc_price produces the same results as the hardcoded chain.""" + + def test_simple_text(self): + mp = ModelPrice(input_mtok=Decimal('3'), output_mtok=Decimal('15')) + result = mp.calc_price(Usage(input_tokens=1_000_000, output_tokens=500_000)) + assert result['input_price'] == Decimal('3') + assert result['output_price'] == Decimal('7.5') + assert result['total_price'] == Decimal('10.5') + + def test_with_cache(self): + mp = ModelPrice( + input_mtok=Decimal('3'), + output_mtok=Decimal('15'), + cache_read_mtok=Decimal('0.3'), + cache_write_mtok=Decimal('3.75'), + ) + usage = Usage(input_tokens=1000, cache_read_tokens=200, cache_write_tokens=100, output_tokens=500) + result = mp.calc_price(usage) + # input leaf: 1000 - 200 - 100 = 700 + expected_input = (Decimal('3') * 700 + Decimal('0.3') * 200 + Decimal('3.75') * 100) / 1_000_000 + assert result['input_price'] == expected_input + + def test_with_audio_and_cache(self): + """All 7 current units priced, with audio and cache.""" + mp = ModelPrice( + input_mtok=Decimal('5'), + output_mtok=Decimal('20'), + cache_read_mtok=Decimal('0.5'), + cache_write_mtok=Decimal('6.25'), + input_audio_mtok=Decimal('100'), + output_audio_mtok=Decimal('200'), + cache_audio_read_mtok=Decimal('2.5'), + ) + usage = Usage( + input_tokens=1000, + cache_read_tokens=200, + cache_write_tokens=100, + input_audio_tokens=300, + cache_audio_read_tokens=50, + output_tokens=800, + output_audio_tokens=150, + ) + result = mp.calc_price(usage) + # Leaf values (see test_full_current_model in TestLeafValues): + # input_mtok: 450, cache_read: 150, cache_write: 100 + # input_audio: 250, cache_read_audio: 50 + # output: 650, output_audio: 150 + expected_input = ( + Decimal('5') * 450 + + Decimal('0.5') * 150 + + Decimal('6.25') * 100 + + Decimal('100') * 250 + + Decimal('2.5') * 50 + ) / 1_000_000 + expected_output = (Decimal('20') * 650 + Decimal('200') * 150) / 1_000_000 + assert result['input_price'] == expected_input + assert result['output_price'] == expected_output + + def test_with_tiered_prices(self): + """TieredPrices still works through the decomposition path.""" + mp = ModelPrice( + input_mtok=TieredPrices(base=Decimal('3'), tiers=[Tier(start=200_000, price=Decimal('6'))]), + output_mtok=TieredPrices(base=Decimal('15'), tiers=[Tier(start=200_000, price=Decimal('30'))]), + cache_read_mtok=Decimal('0.3'), + ) + # Below threshold + usage_low = Usage(input_tokens=100_000, cache_read_tokens=20_000, output_tokens=50_000) + result_low = mp.calc_price(usage_low) + expected_input_low = (Decimal('3') * 80_000 + Decimal('0.3') * 20_000) / 1_000_000 + expected_output_low = Decimal('15') * 50_000 / 1_000_000 + assert result_low['input_price'] == expected_input_low + assert result_low['output_price'] == expected_output_low + + # Above threshold — tier applies to ALL tokens of that type + usage_high = Usage(input_tokens=300_000, cache_read_tokens=50_000, output_tokens=100_000) + result_high = mp.calc_price(usage_high) + expected_input_high = (Decimal('6') * 250_000 + Decimal('0.3') * 50_000) / 1_000_000 + expected_output_high = Decimal('30') * 100_000 / 1_000_000 + assert result_high['input_price'] == expected_input_high + assert result_high['output_price'] == expected_output_high + + def test_with_requests(self): + mp = ModelPrice(input_mtok=Decimal('3'), output_mtok=Decimal('15'), requests_kcount=Decimal('1')) + result = mp.calc_price(Usage(input_tokens=1000, output_tokens=500)) + expected = Decimal('3') * 1000 / 1_000_000 + Decimal('15') * 500 / 1_000_000 + Decimal('1') / 1000 + assert result['total_price'] == expected + + def test_none_usage(self): + mp = ModelPrice(input_mtok=Decimal('3'), output_mtok=Decimal('15')) + result = mp.calc_price(Usage()) + assert result['total_price'] == Decimal('0') + + +class TestAncestorCoverage: + def test_valid_simple(self): + validate_ancestor_coverage({'input_mtok', 'output_mtok'}, TOKENS_FAMILY) + + def test_valid_with_cache(self): + validate_ancestor_coverage({'input_mtok', 'output_mtok', 'cache_read_mtok'}, TOKENS_FAMILY) + + def test_missing_ancestor(self): + with pytest.raises(ValueError, match=r"ancestor 'input_mtok'.*not"): + validate_ancestor_coverage({'cache_read_mtok', 'output_mtok'}, TOKENS_FAMILY) + + def test_missing_intermediate_ancestor(self): + with pytest.raises(ValueError, match=r'ancestor'): + validate_ancestor_coverage( + {'input_mtok', 'cache_audio_read_mtok', 'output_mtok'}, + TOKENS_FAMILY, + ) + + def test_model_price_validates(self): + with pytest.raises(ValueError, match=r'ancestor'): + ModelPrice(cache_read_mtok=Decimal('0.3')) diff --git a/tests/test_extract_usage.py b/tests/test_extract_usage.py index bd0ecf13..b9ef8782 100644 --- a/tests/test_extract_usage.py +++ b/tests/test_extract_usage.py @@ -216,7 +216,7 @@ def test_google_caching(): ), ) assert model is not None - assert calc_price(usage, model).total_price == snapshot(Decimal('0.0012623')) + assert calc_price(usage, model).total_price == snapshot(Decimal('0.0012873')) gemini_response_data_thoughtless = { diff --git a/tests/test_units.py b/tests/test_units.py new file mode 100644 index 00000000..bfe7d789 --- /dev/null +++ b/tests/test_units.py @@ -0,0 +1,95 @@ +import pytest + +from genai_prices.units import UnitDef, get_family, get_unit + + +def test_unit_def_creation(): + unit = UnitDef(id='input_mtok', family_id='tokens', usage_key='input_tokens', dimensions={'direction': 'input'}) + assert unit.id == 'input_mtok' + assert unit.usage_key == 'input_tokens' + assert unit.dimensions == {'direction': 'input'} + + +def test_tokens_family_exists(): + family = get_family('tokens') + assert family.id == 'tokens' + assert family.per == 1_000_000 + + +def test_get_unit(): + unit = get_unit('input_mtok') + assert unit.family_id == 'tokens' + assert unit.usage_key == 'input_tokens' + assert unit.dimensions == {'direction': 'input'} + + +def test_get_unit_not_found(): + with pytest.raises(KeyError): + get_unit('nonexistent') + + +def test_get_family_not_found(): + with pytest.raises(KeyError): + get_family('nonexistent') + + +def test_tokens_family_has_22_units(): + family = get_family('tokens') + # 2 catch-all (input, output) + 2 cache (read, write) + 4 modalities × 4 slots = 20 + assert len(family.units) == 20 + + +def test_tokens_family_has_all_current_units(): + """All 7 currently-used units exist in the registry.""" + family = get_family('tokens') + for unit_id in [ + 'input_mtok', + 'output_mtok', + 'cache_read_mtok', + 'cache_write_mtok', + 'input_audio_mtok', + 'cache_audio_read_mtok', + 'output_audio_mtok', + ]: + assert unit_id in family.units, f'Missing unit: {unit_id}' + + +def test_tokens_family_has_new_modality_units(): + """All new modality units exist in the registry.""" + family = get_family('tokens') + for unit_id in [ + 'input_text_mtok', + 'output_text_mtok', + 'cache_text_read_mtok', + 'cache_text_write_mtok', + 'input_image_mtok', + 'output_image_mtok', + 'cache_image_read_mtok', + 'cache_image_write_mtok', + 'input_video_mtok', + 'output_video_mtok', + 'cache_video_read_mtok', + 'cache_video_write_mtok', + ]: + assert unit_id in family.units, f'Missing unit: {unit_id}' + + +def test_unit_dimensions_are_valid(): + """Every unit's dimension keys/values must be registered in its family.""" + family = get_family('tokens') + for unit in family.units.values(): + for dim_key, dim_val in unit.dimensions.items(): + assert dim_key in family.dimensions, f'{unit.id}: unknown dimension key {dim_key}' + assert dim_val in family.dimensions[dim_key], f'{unit.id}: invalid value {dim_val!r} for {dim_key}' + + +def test_catch_all_units_have_one_dimension(): + """input_mtok and output_mtok should have only the direction dimension.""" + assert get_unit('input_mtok').dimensions == {'direction': 'input'} + assert get_unit('output_mtok').dimensions == {'direction': 'output'} + + +def test_cache_audio_read_usage_key(): + """cache_audio_read_mtok unit maps to cache_audio_read_tokens usage key.""" + unit = get_unit('cache_audio_read_mtok') + assert unit.usage_key == 'cache_audio_read_tokens'