{
"schema": 1,
"comment": "yoagent's built-in model prices, USD per million tokens, keyed by ModelConfig::provider then ModelConfig::id (decision models: by their price provider key, e.g. 'typesafe', then the model id the API reports). A cache rate of 0 (or omitted) bills at the band's input rate. Rates are a snapshot checked against each 'source' on its 'verified' date, not an authority; tests/price_audit.rs diffs every entry against models.dev. See docs/concepts/pricing.md.",
"providers": {
"anthropic": {
"claude-fable-5": {
"input": 10.0,
"output": 50.0,
"cache_read": 1.0,
"cache_write": 12.5,
"source": "https://platform.claude.com/docs/en/about-claude/pricing",
"verified": "2026-08-19"
},
"claude-fable-5-1": {
"input": 10.0,
"output": 50.0,
"cache_read": 0.25,
"cache_write": 12.5,
"note": "Cache hits bill at 0.025x input ($0.25), not Fable 5's 0.1x. cache_write is the 5-minute rate; the 1-hour rate ($20) is not modelled because yoagent places only 5-minute breakpoints. Verified against the raw page markup.",
"source": "https://platform.claude.com/docs/en/about-claude/pricing",
"verified": "2026-09-24"
},
"claude-haiku-4-5": {
"input": 1.0,
"output": 5.0,
"cache_read": 0.1,
"cache_write": 1.25,
"note": "Flat: the 200K window is below any long-context band.",
"source": "https://platform.claude.com/docs/en/about-claude/pricing",
"verified": "2026-08-19"
},
"claude-opus-4-8": {
"input": 5.0,
"output": 25.0,
"cache_read": 0.5,
"cache_write": 6.25,
"source": "https://platform.claude.com/docs/en/about-claude/pricing",
"verified": "2026-08-19"
},
"claude-opus-5": {
"input": 5.0,
"output": 25.0,
"cache_read": 0.5,
"cache_write": 6.25,
"source": "https://platform.claude.com/docs/en/about-claude/pricing",
"verified": "2026-08-19"
},
"claude-opus-5-5": {
"input": 4.0,
"output": 20.0,
"cache_read": 0.2,
"cache_write": 5.0,
"note": "Cache hits bill at 0.05x input ($0.20), not the usual 0.1x. cache_write is the 5-minute rate; the 1-hour rate ($8) is not modelled because yoagent places only 5-minute breakpoints. Verified against the raw page markup.",
"source": "https://platform.claude.com/docs/en/about-claude/pricing",
"verified": "2026-09-25"
},
"claude-sonnet-5": {
"input": 2.0,
"output": 10.0,
"cache_read": 0.2,
"cache_write": 2.5,
"note": "Shipped Sonnet 4.6's $3/$15 from v0.9.0 through v0.16.5; these are Sonnet 5's own rates.",
"source": "https://platform.claude.com/docs/en/about-claude/pricing",
"verified": "2026-08-19"
}
},
"meta": {
"muse-spark-1.1": {
"input": 1.25,
"output": 4.25,
"cache_read": 0.15,
"cache_write": 1.25,
"cache_write_at_input": true,
"note": "Meta charges no cache-write premium, so writes bill at the $1.25 input rate; models.dev omits cache_write for Muse Spark. No long-context premium. The contributor tier (muse-spark-*-contributor) is priced far lower and is deliberately not listed here.",
"source": "https://dev.meta.ai/docs/pricing-rate-limits",
"verified": "2026-08-19"
},
"muse-spark-1.2": {
"input": 1.25,
"output": 4.25,
"cache_read": 0.15,
"cache_write": 1.25,
"cache_write_at_input": true,
"note": "Meta charges no cache-write premium, so writes bill at the $1.25 input rate; models.dev omits cache_write for Muse Spark. No long-context premium. The contributor tier (muse-spark-*-contributor) is priced far lower and is deliberately not listed here.",
"source": "https://dev.meta.ai/docs/pricing-rate-limits",
"verified": "2026-08-19"
}
},
"openai": {
"gpt-5.5": {
"input": 5.0,
"output": 30.0,
"cache_read": 0.5,
"cache_write": 5.0,
"tiers": [
{
"above_prompt_tokens": 272000,
"input": 10.0,
"output": 45.0,
"cache_read": 1.0,
"cache_write": 10.0
}
],
"cache_write_at_input": true,
"note": "The >272K cache_read ($1.00) is UNVERIFIED. The model page says only that \"prompts with >272K input tokens are priced at 2x input and 1.5x output for the full session\" - it names no cache rate, and the pricing page no longer lists gpt-5.5. $1.00 (2x, as the GPT-6 pages state for their cache rates) matches models.dev; the literal reading would keep $0.50. Input $10 and output $45 are stated. OpenAI charges no cache-write premium before GPT-5.6, so cache writes bill at the input rate ($5, $10 above 272K); models.dev omits cache_write for it.",
"source": "https://developers.openai.com/api/docs/models/gpt-5.5",
"verified": "2026-09-25"
},
"gpt-6-astra": {
"input": 10.0,
"output": 50.0,
"cache_read": 1.0,
"cache_write": 12.5,
"tiers": [
{
"above_prompt_tokens": 272000,
"input": 20.0,
"output": 75.0,
"cache_read": 2.0,
"cache_write": 25.0
}
],
"source": "https://developers.openai.com/api/docs/pricing",
"verified": "2026-09-25"
},
"gpt-6-luna": {
"input": 0.1,
"output": 0.5,
"cache_read": 0.01,
"cache_write": 0.125,
"tiers": [
{
"above_prompt_tokens": 272000,
"input": 0.2,
"output": 0.75,
"cache_read": 0.02,
"cache_write": 0.25
}
],
"source": "https://developers.openai.com/api/docs/pricing",
"verified": "2026-09-25"
},
"gpt-6-sol": {
"input": 2.0,
"output": 10.0,
"cache_read": 0.2,
"cache_write": 2.5,
"tiers": [
{
"above_prompt_tokens": 272000,
"input": 4.0,
"output": 15.0,
"cache_read": 0.4,
"cache_write": 5.0
}
],
"source": "https://developers.openai.com/api/docs/pricing",
"verified": "2026-09-25"
}
},
"cloudflare": {
"clef": {
"input": 0.24,
"output": 0.0,
"note": "A decision model (feature `decision`), not a ModelConfig: DecisionModel::clef() prices each evaluation by its model id while requests go to Cloudflare's REST API (yoagent-workers' binding presets use the same rate). Workers AI lists a unit price for input tokens only; output is not listed and is recorded as 0.",
"source": "https://developers.cloudflare.com/workers-ai/models/clef/",
"verified": "2026-10-03",
"absent_upstream": "models.dev lists no Clef model; checked 2026-10-03"
},
"clef-flash": {
"input": 0.09,
"output": 0.0,
"note": "A decision model (feature `decision`): DecisionModel::clef_flash(). Workers AI lists a unit price for input tokens only; output is not listed and is recorded as 0.",
"source": "https://developers.cloudflare.com/workers-ai/models/clef-flash/",
"verified": "2026-10-03",
"absent_upstream": "models.dev lists no Clef model; checked 2026-10-03"
}
},
"openai-decisions": {
"gpt-6-luna": {
"input": 0.1,
"output": 0.0,
"note": "A decision model (feature `decision`), not a ModelConfig: DecisionModel::gpt_6_luna() prices each evaluation on OpenAI's Decisions API (POST /v1/decisions) by the model id the response reports, while requests go to api.openai.com. Distinct from chat gpt-6-luna pricing (provider `openai`). Billed per input token, cached input included; no cache-read, cache-write or output charges. Regional-processing and long-context multipliers are not modelled.",
"source": "https://developers.openai.com/api/docs/guides/decisions",
"verified": "2026-10-07",
"absent_upstream": "models.dev lists no Decisions API pricing (its openai entries are chat rates); checked 2026-10-07"
}
},
"typesafe": {
"jev-1.13.0": {
"input": 0.042,
"output": 0.0,
"note": "A decision model (feature `decision`), not a ModelConfig: DecisionModel::jev() prices each evaluation by the versioned id the API reports. Billed per input token; output tokens are free ($42 per billion input tokens).",
"source": "https://docs.typesafe.ai/models",
"verified": "2026-09-26",
"absent_upstream": "models.dev lists no TypeSafe provider and no Jev model; checked 2026-09-26"
}
}
}
}