llm_cost_tracker 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +82 -0
  3. data/README.md +11 -5
  4. data/app/assets/llm_cost_tracker/application.css +784 -802
  5. data/app/controllers/llm_cost_tracker/application_controller.rb +14 -2
  6. data/app/controllers/llm_cost_tracker/calls_controller.rb +28 -21
  7. data/app/controllers/llm_cost_tracker/dashboard_controller.rb +1 -4
  8. data/app/controllers/llm_cost_tracker/models_controller.rb +3 -1
  9. data/app/controllers/llm_cost_tracker/pricing_controller.rb +16 -0
  10. data/app/controllers/llm_cost_tracker/tags_controller.rb +3 -1
  11. data/app/helpers/llm_cost_tracker/application_helper.rb +19 -16
  12. data/app/helpers/llm_cost_tracker/chart_helper.rb +22 -6
  13. data/app/helpers/llm_cost_tracker/dashboard_filter_options_helper.rb +1 -11
  14. data/app/helpers/llm_cost_tracker/sortable_table_helper.rb +41 -0
  15. data/app/helpers/llm_cost_tracker/token_usage_helper.rb +4 -6
  16. data/app/models/llm_cost_tracker/call.rb +28 -63
  17. data/app/models/llm_cost_tracker/call_line_item.rb +2 -2
  18. data/app/models/llm_cost_tracker/call_rollup.rb +38 -0
  19. data/app/models/llm_cost_tracker/call_tag.rb +0 -2
  20. data/app/models/llm_cost_tracker/ingestion/inbox_entry.rb +2 -0
  21. data/app/services/llm_cost_tracker/dashboard/data_quality.rb +64 -43
  22. data/app/services/llm_cost_tracker/dashboard/filter.rb +5 -0
  23. data/app/services/llm_cost_tracker/dashboard/masking.rb +31 -0
  24. data/app/services/llm_cost_tracker/dashboard/monthly_budget.rb +63 -0
  25. data/app/services/llm_cost_tracker/dashboard/overview_stats.rb +5 -71
  26. data/app/services/llm_cost_tracker/dashboard/pagination.rb +2 -5
  27. data/app/services/llm_cost_tracker/dashboard/pricing_overview.rb +81 -0
  28. data/app/services/llm_cost_tracker/dashboard/setup_state.rb +6 -68
  29. data/app/services/llm_cost_tracker/dashboard/sort.rb +9 -0
  30. data/app/services/llm_cost_tracker/dashboard/tag_breakdown.rb +20 -12
  31. data/app/services/llm_cost_tracker/dashboard/tag_key_explorer.rb +1 -1
  32. data/app/services/llm_cost_tracker/dashboard/top_models.rb +34 -19
  33. data/app/views/layouts/llm_cost_tracker/application.html.erb +74 -17
  34. data/app/views/llm_cost_tracker/calls/index.html.erb +69 -90
  35. data/app/views/llm_cost_tracker/calls/show.html.erb +132 -125
  36. data/app/views/llm_cost_tracker/dashboard/index.html.erb +120 -159
  37. data/app/views/llm_cost_tracker/data_quality/index.html.erb +140 -194
  38. data/app/views/llm_cost_tracker/errors/database.html.erb +2 -2
  39. data/app/views/llm_cost_tracker/models/index.html.erb +39 -59
  40. data/app/views/llm_cost_tracker/pricing/index.html.erb +93 -0
  41. data/app/views/llm_cost_tracker/shared/_filter_pill_date.html.erb +19 -0
  42. data/app/views/llm_cost_tracker/shared/_filter_pill_model.html.erb +22 -0
  43. data/app/views/llm_cost_tracker/shared/_filter_pill_provider.html.erb +22 -0
  44. data/app/views/llm_cost_tracker/shared/_filter_pill_stream.html.erb +23 -0
  45. data/app/views/llm_cost_tracker/shared/_spend_chart.html.erb +3 -13
  46. data/app/views/llm_cost_tracker/shared/_tag_chips.html.erb +1 -1
  47. data/app/views/llm_cost_tracker/shared/setup_required.html.erb +16 -15
  48. data/app/views/llm_cost_tracker/tags/index.html.erb +27 -32
  49. data/app/views/llm_cost_tracker/tags/show.html.erb +85 -104
  50. data/config/routes.rb +3 -3
  51. data/lib/llm_cost_tracker/budget.rb +25 -28
  52. data/lib/llm_cost_tracker/capture/sdk_payload.rb +34 -0
  53. data/lib/llm_cost_tracker/{parsers → capture}/sse.rb +2 -1
  54. data/lib/llm_cost_tracker/capture/stream_collector.rb +30 -52
  55. data/lib/llm_cost_tracker/capture/stream_tracker.rb +18 -33
  56. data/lib/llm_cost_tracker/capture_verifier.rb +59 -0
  57. data/lib/llm_cost_tracker/charges/cost.rb +27 -0
  58. data/lib/llm_cost_tracker/{billing → charges}/cost_status.rb +14 -4
  59. data/lib/llm_cost_tracker/{billing → charges}/line_item.rb +40 -44
  60. data/lib/llm_cost_tracker/check.rb +5 -0
  61. data/lib/llm_cost_tracker/configuration.rb +13 -61
  62. data/lib/llm_cost_tracker/currency.rb +5 -0
  63. data/lib/llm_cost_tracker/doctor/ingestion_check.rb +15 -49
  64. data/lib/llm_cost_tracker/doctor/price_check.rb +1 -1
  65. data/lib/llm_cost_tracker/doctor/probe.rb +3 -4
  66. data/lib/llm_cost_tracker/doctor/schema_check.rb +3 -6
  67. data/lib/llm_cost_tracker/doctor.rb +66 -64
  68. data/lib/llm_cost_tracker/engine.rb +4 -4
  69. data/lib/llm_cost_tracker/event.rb +12 -20
  70. data/lib/llm_cost_tracker/generators/llm_cost_tracker/install_generator.rb +2 -3
  71. data/lib/llm_cost_tracker/generators/llm_cost_tracker/prices_generator.rb +5 -2
  72. data/lib/llm_cost_tracker/generators/llm_cost_tracker/templates/create_llm_cost_tracker_calls.rb.erb +4 -5
  73. data/lib/llm_cost_tracker/generators/llm_cost_tracker/templates/initializer.rb.erb +3 -2
  74. data/lib/llm_cost_tracker/generators/llm_cost_tracker/templates/upgrade_call_rollups_provider.rb.erb +4 -0
  75. data/lib/llm_cost_tracker/ingestion/batch.rb +39 -8
  76. data/lib/llm_cost_tracker/ingestion/inbox.rb +8 -9
  77. data/lib/llm_cost_tracker/ingestion/pool.rb +3 -11
  78. data/lib/llm_cost_tracker/ingestion/worker.rb +7 -17
  79. data/lib/llm_cost_tracker/ingestion.rb +24 -36
  80. data/lib/llm_cost_tracker/integrations/anthropic.rb +94 -116
  81. data/lib/llm_cost_tracker/integrations/base.rb +39 -57
  82. data/lib/llm_cost_tracker/integrations/openai/batch_capture.rb +84 -0
  83. data/lib/llm_cost_tracker/integrations/openai/patches.rb +81 -0
  84. data/lib/llm_cost_tracker/integrations/openai.rb +72 -332
  85. data/lib/llm_cost_tracker/integrations/ruby_llm.rb +89 -145
  86. data/lib/llm_cost_tracker/integrations.rb +32 -25
  87. data/lib/llm_cost_tracker/ledger/period/totals.rb +27 -42
  88. data/lib/llm_cost_tracker/ledger/period.rb +5 -10
  89. data/lib/llm_cost_tracker/ledger/rollups.rb +67 -98
  90. data/lib/llm_cost_tracker/ledger/schema/adapter.rb +12 -13
  91. data/lib/llm_cost_tracker/ledger/schema/base.rb +51 -0
  92. data/lib/llm_cost_tracker/ledger/schema/call_line_items.rb +24 -79
  93. data/lib/llm_cost_tracker/ledger/schema/call_rollups.rb +3 -35
  94. data/lib/llm_cost_tracker/ledger/schema/call_tags.rb +4 -41
  95. data/lib/llm_cost_tracker/ledger/schema/calls.rb +30 -99
  96. data/lib/llm_cost_tracker/ledger/schema/ingestion/inbox_entries.rb +26 -0
  97. data/lib/llm_cost_tracker/ledger/schema/ingestion/leases.rb +17 -0
  98. data/lib/llm_cost_tracker/ledger/schema.rb +26 -0
  99. data/lib/llm_cost_tracker/ledger/store.rb +18 -42
  100. data/lib/llm_cost_tracker/ledger/tags/{sql.rb → breakdown.rb} +1 -1
  101. data/lib/llm_cost_tracker/ledger/tags/encoding.rb +4 -6
  102. data/lib/llm_cost_tracker/ledger.rb +14 -11
  103. data/lib/llm_cost_tracker/logging.rb +4 -21
  104. data/lib/llm_cost_tracker/middleware/faraday.rb +63 -51
  105. data/lib/llm_cost_tracker/parsers.rb +140 -29
  106. data/lib/llm_cost_tracker/prices.json +1707 -1
  107. data/lib/llm_cost_tracker/pricing/backfill.rb +52 -80
  108. data/lib/llm_cost_tracker/pricing/calculation.rb +260 -0
  109. data/lib/llm_cost_tracker/pricing/effective_prices.rb +17 -18
  110. data/lib/llm_cost_tracker/pricing/estimator.rb +2 -2
  111. data/lib/llm_cost_tracker/pricing/matcher.rb +84 -0
  112. data/lib/llm_cost_tracker/pricing/mode.rb +53 -35
  113. data/lib/llm_cost_tracker/pricing/price_key.rb +56 -0
  114. data/lib/llm_cost_tracker/pricing/rate.rb +18 -0
  115. data/lib/llm_cost_tracker/pricing/registry.rb +189 -100
  116. data/lib/llm_cost_tracker/pricing/service_rates.rb +69 -0
  117. data/lib/llm_cost_tracker/pricing/source.rb +7 -0
  118. data/lib/llm_cost_tracker/pricing/sync/fetcher.rb +2 -3
  119. data/lib/llm_cost_tracker/pricing/sync/registry_diff.rb +4 -10
  120. data/lib/llm_cost_tracker/pricing/sync/registry_writer.rb +10 -3
  121. data/lib/llm_cost_tracker/pricing/sync.rb +9 -11
  122. data/lib/llm_cost_tracker/pricing/unknown.rb +1 -5
  123. data/lib/llm_cost_tracker/pricing.rb +10 -295
  124. data/lib/llm_cost_tracker/providers/anthropic/parser.rb +93 -0
  125. data/lib/llm_cost_tracker/providers/anthropic/response_parser.rb +30 -0
  126. data/lib/llm_cost_tracker/providers/anthropic/usage_extractor.rb +76 -0
  127. data/lib/llm_cost_tracker/providers/azure/hosts.rb +1 -4
  128. data/lib/llm_cost_tracker/providers/azure/parser.rb +44 -0
  129. data/lib/llm_cost_tracker/providers/gemini/model_families.rb +1 -4
  130. data/lib/llm_cost_tracker/providers/gemini/parser.rb +177 -0
  131. data/lib/llm_cost_tracker/providers/gemini/usage_extractor.rb +76 -0
  132. data/lib/llm_cost_tracker/providers/openai/hosts.rb +1 -7
  133. data/lib/llm_cost_tracker/providers/openai/model_families.rb +5 -8
  134. data/lib/llm_cost_tracker/providers/openai/parser.rb +39 -0
  135. data/lib/llm_cost_tracker/providers/openai/response_parser.rb +152 -0
  136. data/lib/llm_cost_tracker/providers/openai/service_charges.rb +181 -0
  137. data/lib/llm_cost_tracker/providers/openai/usage_extractor.rb +72 -0
  138. data/lib/llm_cost_tracker/providers/openai_compatible/parser.rb +36 -0
  139. data/lib/llm_cost_tracker/providers.rb +35 -0
  140. data/lib/llm_cost_tracker/railtie.rb +0 -7
  141. data/lib/llm_cost_tracker/report/data.rb +3 -4
  142. data/lib/llm_cost_tracker/report/formatter.rb +33 -20
  143. data/lib/llm_cost_tracker/report.rb +1 -1
  144. data/lib/llm_cost_tracker/retention.rb +6 -19
  145. data/lib/llm_cost_tracker/tags/context.rb +9 -6
  146. data/lib/llm_cost_tracker/tags/sanitizer.rb +10 -0
  147. data/lib/llm_cost_tracker/timing.rb +2 -4
  148. data/lib/llm_cost_tracker/tracker.rb +24 -36
  149. data/lib/llm_cost_tracker/usage/catalog.rb +58 -0
  150. data/lib/llm_cost_tracker/usage/dimension.rb +21 -0
  151. data/lib/llm_cost_tracker/{billing/components.yml → usage/dimensions.yml} +24 -46
  152. data/lib/llm_cost_tracker/usage/source.rb +14 -0
  153. data/lib/llm_cost_tracker/usage/token_usage.rb +100 -0
  154. data/lib/llm_cost_tracker/version.rb +1 -1
  155. data/lib/llm_cost_tracker.rb +43 -52
  156. data/lib/tasks/llm_cost_tracker.rake +14 -73
  157. metadata +92 -58
  158. data/app/controllers/llm_cost_tracker/reconciliation_controller.rb +0 -106
  159. data/app/helpers/llm_cost_tracker/dashboard_filter_helper.rb +0 -28
  160. data/app/helpers/llm_cost_tracker/reconciliation_helper.rb +0 -13
  161. data/app/models/llm_cost_tracker/provider_invoice.rb +0 -13
  162. data/app/models/llm_cost_tracker/provider_invoice_import.rb +0 -29
  163. data/app/views/llm_cost_tracker/reconciliation/index.html.erb +0 -183
  164. data/app/views/llm_cost_tracker/shared/_active_filters.html.erb +0 -16
  165. data/app/views/llm_cost_tracker/shared/_filters.html.erb +0 -66
  166. data/app/views/llm_cost_tracker/shared/_sort.html.erb +0 -13
  167. data/lib/llm_cost_tracker/billing/components.rb +0 -95
  168. data/lib/llm_cost_tracker/capture/stream.rb +0 -9
  169. data/lib/llm_cost_tracker/doctor/capture_verifier.rb +0 -61
  170. data/lib/llm_cost_tracker/doctor/check.rb +0 -7
  171. data/lib/llm_cost_tracker/doctor/cost_drift_check.rb +0 -56
  172. data/lib/llm_cost_tracker/doctor/invoice_reconciliation_check.rb +0 -164
  173. data/lib/llm_cost_tracker/doctor/legacy_audit_check.rb +0 -34
  174. data/lib/llm_cost_tracker/doctor/legacy_billing_status_check.rb +0 -20
  175. data/lib/llm_cost_tracker/doctor/pricing_snapshot_drift_check.rb +0 -85
  176. data/lib/llm_cost_tracker/generators/llm_cost_tracker/reconciliation_generator.rb +0 -34
  177. data/lib/llm_cost_tracker/generators/llm_cost_tracker/templates/create_llm_cost_tracker_reconciliation.rb.erb +0 -60
  178. data/lib/llm_cost_tracker/generators/llm_cost_tracker/templates/upgrade_provider_invoice_imports_provider.rb.erb +0 -32
  179. data/lib/llm_cost_tracker/generators/llm_cost_tracker/templates/upgrade_provider_invoices_metadata_index.rb.erb +0 -25
  180. data/lib/llm_cost_tracker/generators/llm_cost_tracker/upgrade_provider_invoice_imports_provider_generator.rb +0 -31
  181. data/lib/llm_cost_tracker/generators/llm_cost_tracker/upgrade_provider_invoices_metadata_index_generator.rb +0 -31
  182. data/lib/llm_cost_tracker/ledger/rollups/upsert_sql.rb +0 -40
  183. data/lib/llm_cost_tracker/ledger/schema/ingestion_inbox_entries.rb +0 -57
  184. data/lib/llm_cost_tracker/ledger/schema/ingestion_leases.rb +0 -52
  185. data/lib/llm_cost_tracker/ledger/schema/provider_invoice_imports.rb +0 -56
  186. data/lib/llm_cost_tracker/ledger/schema/provider_invoices.rb +0 -72
  187. data/lib/llm_cost_tracker/masking.rb +0 -39
  188. data/lib/llm_cost_tracker/parsers/anthropic.rb +0 -193
  189. data/lib/llm_cost_tracker/parsers/azure.rb +0 -46
  190. data/lib/llm_cost_tracker/parsers/base.rb +0 -131
  191. data/lib/llm_cost_tracker/parsers/gemini.rb +0 -232
  192. data/lib/llm_cost_tracker/parsers/openai.rb +0 -41
  193. data/lib/llm_cost_tracker/parsers/openai_compatible.rb +0 -51
  194. data/lib/llm_cost_tracker/parsers/openai_service_charges.rb +0 -155
  195. data/lib/llm_cost_tracker/parsers/openai_usage.rb +0 -228
  196. data/lib/llm_cost_tracker/pricing/explainer.rb +0 -74
  197. data/lib/llm_cost_tracker/pricing/lookup.rb +0 -236
  198. data/lib/llm_cost_tracker/pricing/service_charges.rb +0 -206
  199. data/lib/llm_cost_tracker/providers/anthropic/tier_classification.rb +0 -22
  200. data/lib/llm_cost_tracker/reconcile_tasks.rb +0 -134
  201. data/lib/llm_cost_tracker/reconciliation/diff.rb +0 -409
  202. data/lib/llm_cost_tracker/reconciliation/diff_result.rb +0 -44
  203. data/lib/llm_cost_tracker/reconciliation/import_result.rb +0 -19
  204. data/lib/llm_cost_tracker/reconciliation/importer.rb +0 -254
  205. data/lib/llm_cost_tracker/reconciliation/sources/anthropic_usage.rb +0 -172
  206. data/lib/llm_cost_tracker/reconciliation/sources/fingerprint.rb +0 -20
  207. data/lib/llm_cost_tracker/reconciliation/sources/openai_usage.rb +0 -142
  208. data/lib/llm_cost_tracker/reconciliation.rb +0 -118
  209. data/lib/llm_cost_tracker/token_usage.rb +0 -93
@@ -13,7 +13,7 @@
13
13
  "https://console.groq.com/docs/service-tiers"
14
14
  ],
15
15
  "unit": "1M tokens",
16
- "updated_at": "2026-05-15"
16
+ "updated_at": "2026-06-03"
17
17
  },
18
18
  "models": {
19
19
  "anthropic/claude-haiku-3": {
@@ -94,6 +94,22 @@
94
94
  "input": 5.0,
95
95
  "output": 25.0
96
96
  },
97
+ "anthropic/claude-opus-4-8": {
98
+ "batch_input": 2.5,
99
+ "batch_output": 12.5,
100
+ "cache_read_input": 0.5,
101
+ "cache_write_extended_input": 10.0,
102
+ "cache_write_input": 6.25,
103
+ "data_residency_batch_input": 2.75,
104
+ "data_residency_batch_output": 13.75,
105
+ "data_residency_cache_read_input": 0.55,
106
+ "data_residency_cache_write_extended_input": 11.0,
107
+ "data_residency_cache_write_input": 6.875,
108
+ "data_residency_input": 5.5,
109
+ "data_residency_output": 27.5,
110
+ "input": 5.0,
111
+ "output": 25.0
112
+ },
97
113
  "anthropic/claude-sonnet-4-5": {
98
114
  "batch_input": 1.5,
99
115
  "batch_output": 7.5,
@@ -153,6 +169,16 @@
153
169
  "priority_input": 0.54,
154
170
  "priority_output": 4.5
155
171
  },
172
+ "gemini/gemini-2.5-flash-image": {
173
+ "batch_image_output": 0.0195,
174
+ "batch_input": 0.15,
175
+ "flex_image_output": 0.0195,
176
+ "flex_input": 0.15,
177
+ "image_output": 0.039,
178
+ "input": 0.3,
179
+ "priority_image_output": 0.0702,
180
+ "priority_input": 0.54
181
+ },
156
182
  "gemini/gemini-2.5-flash-lite": {
157
183
  "audio_input": 0.3,
158
184
  "batch_audio_input": 0.15,
@@ -171,6 +197,16 @@
171
197
  "priority_input": 0.18,
172
198
  "priority_output": 0.72
173
199
  },
200
+ "gemini/gemini-2.5-flash-lite-preview-09-2025": {
201
+ "audio_input": 0.3,
202
+ "batch_audio_input": 0.15,
203
+ "batch_cache_read_input": 0.01,
204
+ "batch_input": 0.05,
205
+ "batch_output": 0.2,
206
+ "cache_read_input": 0.01,
207
+ "input": 0.1,
208
+ "output": 0.4
209
+ },
174
210
  "gemini/gemini-2.5-pro": {
175
211
  "_context_price_threshold_tokens": 200000,
176
212
  "above_context_batch_cache_read_input": 0.25,
@@ -198,6 +234,56 @@
198
234
  "priority_input": 2.25,
199
235
  "priority_output": 18.0
200
236
  },
237
+ "gemini/gemini-3-flash-preview": {
238
+ "audio_input": 1.0,
239
+ "batch_audio_input": 0.5,
240
+ "batch_cache_read_input": 0.05,
241
+ "batch_input": 0.25,
242
+ "batch_output": 1.5,
243
+ "cache_read_input": 0.05,
244
+ "flex_audio_input": 0.5,
245
+ "flex_cache_read_input": 0.05,
246
+ "flex_input": 0.25,
247
+ "flex_output": 1.5,
248
+ "input": 0.5,
249
+ "output": 3.0,
250
+ "priority_audio_input": 1.8,
251
+ "priority_cache_read_input": 0.09,
252
+ "priority_input": 0.9,
253
+ "priority_output": 5.4
254
+ },
255
+ "gemini/gemini-3-pro-image": {
256
+ "batch_image_output": 6.0,
257
+ "batch_input": 1.0,
258
+ "flex_image_output": 6.0,
259
+ "flex_input": 1.0,
260
+ "image_output": 12.0,
261
+ "input": 2.0,
262
+ "priority_image_output": 21.6,
263
+ "priority_input": 3.6
264
+ },
265
+ "gemini/gemini-3-pro-image-preview": {
266
+ "batch_image_output": 6.0,
267
+ "batch_input": 1.0,
268
+ "flex_image_output": 6.0,
269
+ "flex_input": 1.0,
270
+ "image_output": 12.0,
271
+ "input": 2.0,
272
+ "priority_image_output": 21.6,
273
+ "priority_input": 3.6
274
+ },
275
+ "gemini/gemini-3.1-flash-image": {
276
+ "batch_image_output": 1.5,
277
+ "batch_input": 0.25,
278
+ "image_output": 3.0,
279
+ "input": 0.5
280
+ },
281
+ "gemini/gemini-3.1-flash-image-preview": {
282
+ "batch_image_output": 1.5,
283
+ "batch_input": 0.25,
284
+ "image_output": 3.0,
285
+ "input": 0.5
286
+ },
201
287
  "gemini/gemini-3.1-flash-lite": {
202
288
  "audio_input": 0.5,
203
289
  "batch_audio_input": 0.25,
@@ -216,6 +302,65 @@
216
302
  "priority_input": 0.45,
217
303
  "priority_output": 2.7
218
304
  },
305
+ "gemini/gemini-3.1-flash-lite-preview": {
306
+ "audio_input": 0.5,
307
+ "batch_audio_input": 0.25,
308
+ "batch_cache_read_input": 0.0125,
309
+ "batch_input": 0.125,
310
+ "batch_output": 0.75,
311
+ "cache_read_input": 0.025,
312
+ "flex_audio_input": 0.25,
313
+ "flex_cache_read_input": 0.0125,
314
+ "flex_input": 0.125,
315
+ "flex_output": 0.75,
316
+ "input": 0.25,
317
+ "output": 1.5,
318
+ "priority_audio_input": 0.9,
319
+ "priority_cache_read_input": 0.045,
320
+ "priority_input": 0.45,
321
+ "priority_output": 2.7
322
+ },
323
+ "gemini/gemini-3.1-pro-preview": {
324
+ "_context_price_threshold_tokens": 200000,
325
+ "above_context_batch_cache_read_input": 0.4,
326
+ "above_context_batch_input": 2.0,
327
+ "above_context_batch_output": 9.0,
328
+ "above_context_cache_read_input": 0.4,
329
+ "above_context_flex_cache_read_input": 0.4,
330
+ "above_context_flex_input": 2.0,
331
+ "above_context_flex_output": 9.0,
332
+ "above_context_input": 4.0,
333
+ "above_context_output": 18.0,
334
+ "above_context_priority_cache_read_input": 0.72,
335
+ "above_context_priority_input": 7.2,
336
+ "above_context_priority_output": 32.4,
337
+ "batch_cache_read_input": 0.2,
338
+ "batch_input": 1.0,
339
+ "batch_output": 6.0,
340
+ "cache_read_input": 0.2,
341
+ "flex_cache_read_input": 0.2,
342
+ "flex_input": 1.0,
343
+ "flex_output": 6.0,
344
+ "input": 2.0,
345
+ "output": 12.0,
346
+ "priority_cache_read_input": 0.36,
347
+ "priority_input": 3.6,
348
+ "priority_output": 21.6
349
+ },
350
+ "gemini/gemini-3.5-flash": {
351
+ "batch_cache_read_input": 0.075,
352
+ "batch_input": 0.75,
353
+ "batch_output": 4.5,
354
+ "cache_read_input": 0.15,
355
+ "flex_cache_read_input": 0.08,
356
+ "flex_input": 0.75,
357
+ "flex_output": 4.5,
358
+ "input": 1.5,
359
+ "output": 9.0,
360
+ "priority_cache_read_input": 0.27,
361
+ "priority_input": 2.7,
362
+ "priority_output": 16.2
363
+ },
219
364
  "groq/llama-3.1-8b-instant": {
220
365
  "flex_input": 0.05,
221
366
  "flex_output": 0.08,
@@ -871,6 +1016,1567 @@
871
1016
  },
872
1017
  "openai/tts-1-hd": {
873
1018
  "text_to_speech_character": 30.0
1019
+ },
1020
+ "openrouter/ai21/jamba-large-1.7": {
1021
+ "input": 2.0,
1022
+ "output": 8.0
1023
+ },
1024
+ "openrouter/aion-labs/aion-1.0": {
1025
+ "input": 4.0,
1026
+ "output": 8.0
1027
+ },
1028
+ "openrouter/aion-labs/aion-1.0-mini": {
1029
+ "input": 0.7,
1030
+ "output": 1.4
1031
+ },
1032
+ "openrouter/aion-labs/aion-2.0": {
1033
+ "cache_read_input": 0.2,
1034
+ "input": 0.8,
1035
+ "output": 1.6
1036
+ },
1037
+ "openrouter/aion-labs/aion-rp-llama-3.1-8b": {
1038
+ "input": 0.8,
1039
+ "output": 1.6
1040
+ },
1041
+ "openrouter/alfredpros/codellama-7b-instruct-solidity": {
1042
+ "input": 0.8,
1043
+ "output": 1.2
1044
+ },
1045
+ "openrouter/allenai/olmo-3-32b-think": {
1046
+ "input": 0.15,
1047
+ "output": 0.5
1048
+ },
1049
+ "openrouter/amazon/nova-2-lite-v1": {
1050
+ "input": 0.3,
1051
+ "output": 2.5
1052
+ },
1053
+ "openrouter/amazon/nova-lite-v1": {
1054
+ "input": 0.06,
1055
+ "output": 0.24
1056
+ },
1057
+ "openrouter/amazon/nova-micro-v1": {
1058
+ "input": 0.035,
1059
+ "output": 0.14
1060
+ },
1061
+ "openrouter/amazon/nova-premier-v1": {
1062
+ "cache_read_input": 0.625,
1063
+ "input": 2.5,
1064
+ "output": 12.5
1065
+ },
1066
+ "openrouter/amazon/nova-pro-v1": {
1067
+ "input": 0.8,
1068
+ "output": 3.2
1069
+ },
1070
+ "openrouter/anthracite-org/magnum-v4-72b": {
1071
+ "input": 3.0,
1072
+ "output": 5.0
1073
+ },
1074
+ "openrouter/anthropic/claude-3-haiku": {
1075
+ "cache_read_input": 0.03,
1076
+ "cache_write_input": 0.3,
1077
+ "input": 0.25,
1078
+ "output": 1.25
1079
+ },
1080
+ "openrouter/anthropic/claude-3.5-haiku": {
1081
+ "cache_read_input": 0.08,
1082
+ "cache_write_input": 1.0,
1083
+ "input": 0.8,
1084
+ "output": 4.0
1085
+ },
1086
+ "openrouter/anthropic/claude-haiku-4.5": {
1087
+ "cache_read_input": 0.1,
1088
+ "cache_write_input": 1.25,
1089
+ "input": 1.0,
1090
+ "output": 5.0
1091
+ },
1092
+ "openrouter/anthropic/claude-opus-4": {
1093
+ "cache_read_input": 1.5,
1094
+ "cache_write_input": 18.75,
1095
+ "input": 15.0,
1096
+ "output": 75.0
1097
+ },
1098
+ "openrouter/anthropic/claude-opus-4.1": {
1099
+ "cache_read_input": 1.5,
1100
+ "cache_write_input": 18.75,
1101
+ "input": 15.0,
1102
+ "output": 75.0
1103
+ },
1104
+ "openrouter/anthropic/claude-opus-4.5": {
1105
+ "cache_read_input": 0.5,
1106
+ "cache_write_input": 6.25,
1107
+ "input": 5.0,
1108
+ "output": 25.0
1109
+ },
1110
+ "openrouter/anthropic/claude-opus-4.6": {
1111
+ "cache_read_input": 0.5,
1112
+ "cache_write_input": 6.25,
1113
+ "input": 5.0,
1114
+ "output": 25.0
1115
+ },
1116
+ "openrouter/anthropic/claude-opus-4.6-fast": {
1117
+ "cache_read_input": 3.0,
1118
+ "cache_write_input": 37.5,
1119
+ "input": 30.0,
1120
+ "output": 150.0
1121
+ },
1122
+ "openrouter/anthropic/claude-opus-4.7": {
1123
+ "cache_read_input": 0.5,
1124
+ "cache_write_input": 6.25,
1125
+ "input": 5.0,
1126
+ "output": 25.0
1127
+ },
1128
+ "openrouter/anthropic/claude-opus-4.7-fast": {
1129
+ "cache_read_input": 3.0,
1130
+ "cache_write_input": 37.5,
1131
+ "input": 30.0,
1132
+ "output": 150.0
1133
+ },
1134
+ "openrouter/anthropic/claude-opus-4.8": {
1135
+ "cache_read_input": 0.5,
1136
+ "cache_write_input": 6.25,
1137
+ "input": 5.0,
1138
+ "output": 25.0
1139
+ },
1140
+ "openrouter/anthropic/claude-opus-4.8-fast": {
1141
+ "cache_read_input": 1.0,
1142
+ "cache_write_input": 12.5,
1143
+ "input": 10.0,
1144
+ "output": 50.0
1145
+ },
1146
+ "openrouter/anthropic/claude-sonnet-4": {
1147
+ "cache_read_input": 0.3,
1148
+ "cache_write_input": 3.75,
1149
+ "input": 3.0,
1150
+ "output": 15.0
1151
+ },
1152
+ "openrouter/anthropic/claude-sonnet-4.5": {
1153
+ "cache_read_input": 0.3,
1154
+ "cache_write_input": 3.75,
1155
+ "input": 3.0,
1156
+ "output": 15.0
1157
+ },
1158
+ "openrouter/anthropic/claude-sonnet-4.6": {
1159
+ "cache_read_input": 0.3,
1160
+ "cache_write_input": 3.75,
1161
+ "input": 3.0,
1162
+ "output": 15.0
1163
+ },
1164
+ "openrouter/arcee-ai/coder-large": {
1165
+ "input": 0.5,
1166
+ "output": 0.8
1167
+ },
1168
+ "openrouter/arcee-ai/maestro-reasoning": {
1169
+ "input": 0.9,
1170
+ "output": 3.3
1171
+ },
1172
+ "openrouter/arcee-ai/spotlight": {
1173
+ "input": 0.18,
1174
+ "output": 0.18
1175
+ },
1176
+ "openrouter/arcee-ai/trinity-large-thinking": {
1177
+ "cache_read_input": 0.06,
1178
+ "input": 0.22,
1179
+ "output": 0.85
1180
+ },
1181
+ "openrouter/arcee-ai/trinity-mini": {
1182
+ "input": 0.045,
1183
+ "output": 0.15
1184
+ },
1185
+ "openrouter/arcee-ai/virtuoso-large": {
1186
+ "input": 0.75,
1187
+ "output": 1.2
1188
+ },
1189
+ "openrouter/baidu/ernie-4.5-21b-a3b": {
1190
+ "input": 0.07,
1191
+ "output": 0.28
1192
+ },
1193
+ "openrouter/baidu/ernie-4.5-21b-a3b-thinking": {
1194
+ "input": 0.07,
1195
+ "output": 0.28
1196
+ },
1197
+ "openrouter/baidu/ernie-4.5-300b-a47b": {
1198
+ "input": 0.28,
1199
+ "output": 1.1
1200
+ },
1201
+ "openrouter/baidu/ernie-4.5-vl-28b-a3b": {
1202
+ "input": 0.14,
1203
+ "output": 0.56
1204
+ },
1205
+ "openrouter/baidu/ernie-4.5-vl-424b-a47b": {
1206
+ "input": 0.42,
1207
+ "output": 1.25
1208
+ },
1209
+ "openrouter/baidu/qianfan-ocr-fast": {
1210
+ "input": 0.68,
1211
+ "output": 2.81
1212
+ },
1213
+ "openrouter/bytedance-seed/seed-1.6": {
1214
+ "input": 0.25,
1215
+ "output": 2.0
1216
+ },
1217
+ "openrouter/bytedance-seed/seed-1.6-flash": {
1218
+ "input": 0.075,
1219
+ "output": 0.3
1220
+ },
1221
+ "openrouter/bytedance-seed/seed-2.0-lite": {
1222
+ "input": 0.25,
1223
+ "output": 2.0
1224
+ },
1225
+ "openrouter/bytedance-seed/seed-2.0-mini": {
1226
+ "input": 0.1,
1227
+ "output": 0.4
1228
+ },
1229
+ "openrouter/bytedance/ui-tars-1.5-7b": {
1230
+ "cache_read_input": 0.1,
1231
+ "input": 0.1,
1232
+ "output": 0.2
1233
+ },
1234
+ "openrouter/cohere/command-a": {
1235
+ "input": 2.5,
1236
+ "output": 10.0
1237
+ },
1238
+ "openrouter/cohere/command-r-08-2024": {
1239
+ "input": 0.15,
1240
+ "output": 0.6
1241
+ },
1242
+ "openrouter/cohere/command-r-plus-08-2024": {
1243
+ "input": 2.5,
1244
+ "output": 10.0
1245
+ },
1246
+ "openrouter/cohere/command-r7b-12-2024": {
1247
+ "input": 0.0375,
1248
+ "output": 0.15
1249
+ },
1250
+ "openrouter/deepcogito/cogito-v2.1-671b": {
1251
+ "input": 1.25,
1252
+ "output": 1.25
1253
+ },
1254
+ "openrouter/deepseek/deepseek-chat": {
1255
+ "input": 0.2002,
1256
+ "output": 0.8001
1257
+ },
1258
+ "openrouter/deepseek/deepseek-chat-v3-0324": {
1259
+ "cache_read_input": 0.135,
1260
+ "input": 0.2,
1261
+ "output": 0.77
1262
+ },
1263
+ "openrouter/deepseek/deepseek-chat-v3.1": {
1264
+ "cache_read_input": 0.13,
1265
+ "input": 0.21,
1266
+ "output": 0.79
1267
+ },
1268
+ "openrouter/deepseek/deepseek-r1": {
1269
+ "input": 0.7,
1270
+ "output": 2.5
1271
+ },
1272
+ "openrouter/deepseek/deepseek-r1-0528": {
1273
+ "cache_read_input": 0.35,
1274
+ "input": 0.5,
1275
+ "output": 2.15
1276
+ },
1277
+ "openrouter/deepseek/deepseek-r1-distill-llama-70b": {
1278
+ "input": 0.7,
1279
+ "output": 0.8
1280
+ },
1281
+ "openrouter/deepseek/deepseek-r1-distill-qwen-32b": {
1282
+ "input": 0.29,
1283
+ "output": 0.29
1284
+ },
1285
+ "openrouter/deepseek/deepseek-v3.1-terminus": {
1286
+ "cache_read_input": 0.13,
1287
+ "input": 0.27,
1288
+ "output": 0.95
1289
+ },
1290
+ "openrouter/deepseek/deepseek-v3.2": {
1291
+ "input": 0.2288,
1292
+ "output": 0.3432
1293
+ },
1294
+ "openrouter/deepseek/deepseek-v3.2-exp": {
1295
+ "input": 0.27,
1296
+ "output": 0.41
1297
+ },
1298
+ "openrouter/deepseek/deepseek-v3.2-speciale": {
1299
+ "cache_read_input": 0.058,
1300
+ "input": 0.287,
1301
+ "output": 0.431
1302
+ },
1303
+ "openrouter/deepseek/deepseek-v4-flash": {
1304
+ "cache_read_input": 0.0197,
1305
+ "input": 0.0983,
1306
+ "output": 0.1966
1307
+ },
1308
+ "openrouter/deepseek/deepseek-v4-pro": {
1309
+ "cache_read_input": 0.003625,
1310
+ "input": 0.435,
1311
+ "output": 0.87
1312
+ },
1313
+ "openrouter/essentialai/rnj-1-instruct": {
1314
+ "input": 0.15,
1315
+ "output": 0.15
1316
+ },
1317
+ "openrouter/google/gemini-2.0-flash-001": {
1318
+ "audio_input": 0.7,
1319
+ "cache_read_input": 0.025,
1320
+ "cache_write_input": 0.083333,
1321
+ "image_input": 0.1,
1322
+ "input": 0.1,
1323
+ "output": 0.4
1324
+ },
1325
+ "openrouter/google/gemini-2.0-flash-lite-001": {
1326
+ "audio_input": 0.075,
1327
+ "image_input": 0.075,
1328
+ "input": 0.075,
1329
+ "output": 0.3
1330
+ },
1331
+ "openrouter/google/gemini-2.5-flash": {
1332
+ "audio_input": 1.0,
1333
+ "cache_read_input": 0.03,
1334
+ "cache_write_input": 0.083333,
1335
+ "image_input": 0.3,
1336
+ "input": 0.3,
1337
+ "output": 2.5
1338
+ },
1339
+ "openrouter/google/gemini-2.5-flash-image": {
1340
+ "audio_input": 1.0,
1341
+ "cache_read_input": 0.03,
1342
+ "cache_write_input": 0.083333,
1343
+ "image_input": 0.3,
1344
+ "input": 0.3,
1345
+ "output": 2.5
1346
+ },
1347
+ "openrouter/google/gemini-2.5-flash-lite": {
1348
+ "audio_input": 0.3,
1349
+ "cache_read_input": 0.01,
1350
+ "cache_write_input": 0.083333,
1351
+ "image_input": 0.1,
1352
+ "input": 0.1,
1353
+ "output": 0.4
1354
+ },
1355
+ "openrouter/google/gemini-2.5-flash-lite-preview-09-2025": {
1356
+ "audio_input": 0.3,
1357
+ "cache_read_input": 0.01,
1358
+ "cache_write_input": 0.083333,
1359
+ "image_input": 0.1,
1360
+ "input": 0.1,
1361
+ "output": 0.4
1362
+ },
1363
+ "openrouter/google/gemini-2.5-pro": {
1364
+ "audio_input": 1.25,
1365
+ "cache_read_input": 0.125,
1366
+ "cache_write_input": 0.375,
1367
+ "image_input": 1.25,
1368
+ "input": 1.25,
1369
+ "output": 10.0
1370
+ },
1371
+ "openrouter/google/gemini-2.5-pro-preview": {
1372
+ "audio_input": 1.25,
1373
+ "cache_read_input": 0.125,
1374
+ "cache_write_input": 0.375,
1375
+ "image_input": 1.25,
1376
+ "input": 1.25,
1377
+ "output": 10.0
1378
+ },
1379
+ "openrouter/google/gemini-2.5-pro-preview-05-06": {
1380
+ "audio_input": 1.25,
1381
+ "cache_read_input": 0.125,
1382
+ "cache_write_input": 0.375,
1383
+ "image_input": 1.25,
1384
+ "input": 1.25,
1385
+ "output": 10.0
1386
+ },
1387
+ "openrouter/google/gemini-3-flash-preview": {
1388
+ "audio_input": 1.0,
1389
+ "cache_read_input": 0.05,
1390
+ "cache_write_input": 0.083333,
1391
+ "image_input": 0.5,
1392
+ "input": 0.5,
1393
+ "output": 3.0
1394
+ },
1395
+ "openrouter/google/gemini-3-pro-image-preview": {
1396
+ "audio_input": 2.0,
1397
+ "cache_read_input": 0.2,
1398
+ "cache_write_input": 0.375,
1399
+ "image_input": 2.0,
1400
+ "input": 2.0,
1401
+ "output": 12.0
1402
+ },
1403
+ "openrouter/google/gemini-3.1-flash-image-preview": {
1404
+ "input": 0.5,
1405
+ "output": 3.0
1406
+ },
1407
+ "openrouter/google/gemini-3.1-flash-lite": {
1408
+ "audio_input": 0.5,
1409
+ "cache_read_input": 0.025,
1410
+ "cache_write_input": 0.083333,
1411
+ "image_input": 0.25,
1412
+ "input": 0.25,
1413
+ "output": 1.5
1414
+ },
1415
+ "openrouter/google/gemini-3.1-flash-lite-preview": {
1416
+ "audio_input": 0.5,
1417
+ "cache_read_input": 0.025,
1418
+ "cache_write_input": 0.083333,
1419
+ "image_input": 0.25,
1420
+ "input": 0.25,
1421
+ "output": 1.5
1422
+ },
1423
+ "openrouter/google/gemini-3.1-pro-preview": {
1424
+ "audio_input": 2.0,
1425
+ "cache_read_input": 0.2,
1426
+ "cache_write_input": 0.375,
1427
+ "image_input": 2.0,
1428
+ "input": 2.0,
1429
+ "output": 12.0
1430
+ },
1431
+ "openrouter/google/gemini-3.1-pro-preview-customtools": {
1432
+ "audio_input": 2.0,
1433
+ "cache_read_input": 0.2,
1434
+ "cache_write_input": 0.375,
1435
+ "image_input": 2.0,
1436
+ "input": 2.0,
1437
+ "output": 12.0
1438
+ },
1439
+ "openrouter/google/gemini-3.5-flash": {
1440
+ "audio_input": 3.0,
1441
+ "cache_read_input": 0.15,
1442
+ "cache_write_input": 0.083333,
1443
+ "image_input": 1.5,
1444
+ "input": 1.5,
1445
+ "output": 9.0
1446
+ },
1447
+ "openrouter/google/gemma-2-27b-it": {
1448
+ "input": 0.65,
1449
+ "output": 0.65
1450
+ },
1451
+ "openrouter/google/gemma-3-12b-it": {
1452
+ "input": 0.04,
1453
+ "output": 0.13
1454
+ },
1455
+ "openrouter/google/gemma-3-27b-it": {
1456
+ "input": 0.08,
1457
+ "output": 0.16
1458
+ },
1459
+ "openrouter/google/gemma-3-4b-it": {
1460
+ "input": 0.04,
1461
+ "output": 0.08
1462
+ },
1463
+ "openrouter/google/gemma-3n-e4b-it": {
1464
+ "input": 0.06,
1465
+ "output": 0.12
1466
+ },
1467
+ "openrouter/google/gemma-4-26b-a4b-it": {
1468
+ "input": 0.06,
1469
+ "output": 0.33
1470
+ },
1471
+ "openrouter/google/gemma-4-31b-it": {
1472
+ "input": 0.12,
1473
+ "output": 0.37
1474
+ },
1475
+ "openrouter/gryphe/mythomax-l2-13b": {
1476
+ "input": 0.06,
1477
+ "output": 0.06
1478
+ },
1479
+ "openrouter/ibm-granite/granite-4.0-h-micro": {
1480
+ "input": 0.017,
1481
+ "output": 0.112
1482
+ },
1483
+ "openrouter/ibm-granite/granite-4.1-8b": {
1484
+ "cache_read_input": 0.05,
1485
+ "input": 0.05,
1486
+ "output": 0.1
1487
+ },
1488
+ "openrouter/inception/mercury-2": {
1489
+ "cache_read_input": 0.025,
1490
+ "input": 0.25,
1491
+ "output": 0.75
1492
+ },
1493
+ "openrouter/inclusionai/ling-2.6-1t": {
1494
+ "cache_read_input": 0.015,
1495
+ "input": 0.075,
1496
+ "output": 0.625
1497
+ },
1498
+ "openrouter/inclusionai/ling-2.6-flash": {
1499
+ "cache_read_input": 0.002,
1500
+ "input": 0.01,
1501
+ "output": 0.03
1502
+ },
1503
+ "openrouter/inclusionai/ring-2.6-1t": {
1504
+ "cache_read_input": 0.015,
1505
+ "input": 0.075,
1506
+ "output": 0.625
1507
+ },
1508
+ "openrouter/inflection/inflection-3-pi": {
1509
+ "input": 2.5,
1510
+ "output": 10.0
1511
+ },
1512
+ "openrouter/inflection/inflection-3-productivity": {
1513
+ "input": 2.5,
1514
+ "output": 10.0
1515
+ },
1516
+ "openrouter/kwaipilot/kat-coder-pro-v2": {
1517
+ "cache_read_input": 0.06,
1518
+ "input": 0.3,
1519
+ "output": 1.2
1520
+ },
1521
+ "openrouter/liquid/lfm-2-24b-a2b": {
1522
+ "input": 0.03,
1523
+ "output": 0.12
1524
+ },
1525
+ "openrouter/mancer/weaver": {
1526
+ "input": 0.75,
1527
+ "output": 1.0
1528
+ },
1529
+ "openrouter/meta-llama/llama-3-70b-instruct": {
1530
+ "input": 0.51,
1531
+ "output": 0.74
1532
+ },
1533
+ "openrouter/meta-llama/llama-3-8b-instruct": {
1534
+ "input": 0.04,
1535
+ "output": 0.04
1536
+ },
1537
+ "openrouter/meta-llama/llama-3.1-70b-instruct": {
1538
+ "input": 0.4,
1539
+ "output": 0.4
1540
+ },
1541
+ "openrouter/meta-llama/llama-3.1-8b-instruct": {
1542
+ "input": 0.02,
1543
+ "output": 0.05
1544
+ },
1545
+ "openrouter/meta-llama/llama-3.2-11b-vision-instruct": {
1546
+ "input": 0.245,
1547
+ "output": 0.245
1548
+ },
1549
+ "openrouter/meta-llama/llama-3.2-1b-instruct": {
1550
+ "input": 0.027,
1551
+ "output": 0.201
1552
+ },
1553
+ "openrouter/meta-llama/llama-3.2-3b-instruct": {
1554
+ "input": 0.0509,
1555
+ "output": 0.335
1556
+ },
1557
+ "openrouter/meta-llama/llama-3.3-70b-instruct": {
1558
+ "input": 0.1,
1559
+ "output": 0.32
1560
+ },
1561
+ "openrouter/meta-llama/llama-4-maverick": {
1562
+ "input": 0.15,
1563
+ "output": 0.6
1564
+ },
1565
+ "openrouter/meta-llama/llama-4-scout": {
1566
+ "input": 0.08,
1567
+ "output": 0.3
1568
+ },
1569
+ "openrouter/meta-llama/llama-guard-3-8b": {
1570
+ "input": 0.484,
1571
+ "output": 0.03
1572
+ },
1573
+ "openrouter/meta-llama/llama-guard-4-12b": {
1574
+ "input": 0.18,
1575
+ "output": 0.18
1576
+ },
1577
+ "openrouter/microsoft/phi-4": {
1578
+ "input": 0.065,
1579
+ "output": 0.14
1580
+ },
1581
+ "openrouter/microsoft/phi-4-mini-instruct": {
1582
+ "cache_read_input": 0.08,
1583
+ "input": 0.08,
1584
+ "output": 0.35
1585
+ },
1586
+ "openrouter/microsoft/wizardlm-2-8x22b": {
1587
+ "input": 0.62,
1588
+ "output": 0.62
1589
+ },
1590
+ "openrouter/minimax/minimax-01": {
1591
+ "input": 0.2,
1592
+ "output": 1.1
1593
+ },
1594
+ "openrouter/minimax/minimax-m1": {
1595
+ "input": 0.4,
1596
+ "output": 2.2
1597
+ },
1598
+ "openrouter/minimax/minimax-m2": {
1599
+ "cache_read_input": 0.03,
1600
+ "input": 0.255,
1601
+ "output": 1.0
1602
+ },
1603
+ "openrouter/minimax/minimax-m2-her": {
1604
+ "cache_read_input": 0.03,
1605
+ "input": 0.3,
1606
+ "output": 1.2
1607
+ },
1608
+ "openrouter/minimax/minimax-m2.1": {
1609
+ "cache_read_input": 0.03,
1610
+ "input": 0.29,
1611
+ "output": 0.95
1612
+ },
1613
+ "openrouter/minimax/minimax-m2.5": {
1614
+ "input": 0.15,
1615
+ "output": 1.15
1616
+ },
1617
+ "openrouter/minimax/minimax-m2.7": {
1618
+ "input": 0.279,
1619
+ "output": 1.2
1620
+ },
1621
+ "openrouter/minimax/minimax-m3": {
1622
+ "cache_read_input": 0.06,
1623
+ "input": 0.3,
1624
+ "output": 1.2
1625
+ },
1626
+ "openrouter/mistralai/codestral-2508": {
1627
+ "cache_read_input": 0.03,
1628
+ "input": 0.3,
1629
+ "output": 0.9
1630
+ },
1631
+ "openrouter/mistralai/devstral-2512": {
1632
+ "cache_read_input": 0.04,
1633
+ "input": 0.4,
1634
+ "output": 2.0
1635
+ },
1636
+ "openrouter/mistralai/devstral-medium": {
1637
+ "cache_read_input": 0.04,
1638
+ "input": 0.4,
1639
+ "output": 2.0
1640
+ },
1641
+ "openrouter/mistralai/devstral-small": {
1642
+ "cache_read_input": 0.01,
1643
+ "input": 0.1,
1644
+ "output": 0.3
1645
+ },
1646
+ "openrouter/mistralai/ministral-14b-2512": {
1647
+ "cache_read_input": 0.02,
1648
+ "input": 0.2,
1649
+ "output": 0.2
1650
+ },
1651
+ "openrouter/mistralai/ministral-3b-2512": {
1652
+ "cache_read_input": 0.01,
1653
+ "input": 0.1,
1654
+ "output": 0.1
1655
+ },
1656
+ "openrouter/mistralai/ministral-8b-2512": {
1657
+ "cache_read_input": 0.015,
1658
+ "input": 0.15,
1659
+ "output": 0.15
1660
+ },
1661
+ "openrouter/mistralai/mistral-7b-instruct-v0.1": {
1662
+ "input": 0.11,
1663
+ "output": 0.19
1664
+ },
1665
+ "openrouter/mistralai/mistral-large": {
1666
+ "cache_read_input": 0.2,
1667
+ "input": 2.0,
1668
+ "output": 6.0
1669
+ },
1670
+ "openrouter/mistralai/mistral-large-2407": {
1671
+ "cache_read_input": 0.2,
1672
+ "input": 2.0,
1673
+ "output": 6.0
1674
+ },
1675
+ "openrouter/mistralai/mistral-large-2411": {
1676
+ "cache_read_input": 0.2,
1677
+ "input": 2.0,
1678
+ "output": 6.0
1679
+ },
1680
+ "openrouter/mistralai/mistral-large-2512": {
1681
+ "cache_read_input": 0.05,
1682
+ "input": 0.5,
1683
+ "output": 1.5
1684
+ },
1685
+ "openrouter/mistralai/mistral-medium-3": {
1686
+ "cache_read_input": 0.04,
1687
+ "input": 0.4,
1688
+ "output": 2.0
1689
+ },
1690
+ "openrouter/mistralai/mistral-medium-3-5": {
1691
+ "input": 1.5,
1692
+ "output": 7.5
1693
+ },
1694
+ "openrouter/mistralai/mistral-medium-3.1": {
1695
+ "cache_read_input": 0.04,
1696
+ "input": 0.4,
1697
+ "output": 2.0
1698
+ },
1699
+ "openrouter/mistralai/mistral-nemo": {
1700
+ "input": 0.02,
1701
+ "output": 0.03
1702
+ },
1703
+ "openrouter/mistralai/mistral-saba": {
1704
+ "cache_read_input": 0.02,
1705
+ "input": 0.2,
1706
+ "output": 0.6
1707
+ },
1708
+ "openrouter/mistralai/mistral-small-24b-instruct-2501": {
1709
+ "input": 0.05,
1710
+ "output": 0.08
1711
+ },
1712
+ "openrouter/mistralai/mistral-small-2603": {
1713
+ "cache_read_input": 0.015,
1714
+ "input": 0.15,
1715
+ "output": 0.6
1716
+ },
1717
+ "openrouter/mistralai/mistral-small-3.1-24b-instruct": {
1718
+ "input": 0.351,
1719
+ "output": 0.555
1720
+ },
1721
+ "openrouter/mistralai/mistral-small-3.2-24b-instruct": {
1722
+ "input": 0.075,
1723
+ "output": 0.2
1724
+ },
1725
+ "openrouter/mistralai/mixtral-8x22b-instruct": {
1726
+ "cache_read_input": 0.2,
1727
+ "input": 2.0,
1728
+ "output": 6.0
1729
+ },
1730
+ "openrouter/mistralai/pixtral-large-2411": {
1731
+ "cache_read_input": 0.2,
1732
+ "input": 2.0,
1733
+ "output": 6.0
1734
+ },
1735
+ "openrouter/mistralai/voxtral-small-24b-2507": {
1736
+ "audio_input": 100.0,
1737
+ "cache_read_input": 0.01,
1738
+ "input": 0.1,
1739
+ "output": 0.3
1740
+ },
1741
+ "openrouter/moonshotai/kimi-k2": {
1742
+ "input": 0.57,
1743
+ "output": 2.3
1744
+ },
1745
+ "openrouter/moonshotai/kimi-k2-0905": {
1746
+ "input": 0.6,
1747
+ "output": 2.5
1748
+ },
1749
+ "openrouter/moonshotai/kimi-k2-thinking": {
1750
+ "input": 0.6,
1751
+ "output": 2.5
1752
+ },
1753
+ "openrouter/moonshotai/kimi-k2.5": {
1754
+ "cache_read_input": 0.09,
1755
+ "input": 0.4,
1756
+ "output": 1.9
1757
+ },
1758
+ "openrouter/moonshotai/kimi-k2.6": {
1759
+ "cache_read_input": 0.144,
1760
+ "input": 0.684,
1761
+ "output": 3.42
1762
+ },
1763
+ "openrouter/morph/morph-v3-fast": {
1764
+ "input": 0.8,
1765
+ "output": 1.2
1766
+ },
1767
+ "openrouter/morph/morph-v3-large": {
1768
+ "input": 0.9,
1769
+ "output": 1.9
1770
+ },
1771
+ "openrouter/nex-agi/deepseek-v3.1-nex-n1": {
1772
+ "input": 0.135,
1773
+ "output": 0.5
1774
+ },
1775
+ "openrouter/nousresearch/hermes-2-pro-llama-3-8b": {
1776
+ "input": 0.14,
1777
+ "output": 0.14
1778
+ },
1779
+ "openrouter/nousresearch/hermes-3-llama-3.1-405b": {
1780
+ "input": 1.0,
1781
+ "output": 1.0
1782
+ },
1783
+ "openrouter/nousresearch/hermes-3-llama-3.1-70b": {
1784
+ "input": 0.3,
1785
+ "output": 0.3
1786
+ },
1787
+ "openrouter/nousresearch/hermes-4-405b": {
1788
+ "input": 1.0,
1789
+ "output": 3.0
1790
+ },
1791
+ "openrouter/nousresearch/hermes-4-70b": {
1792
+ "input": 0.13,
1793
+ "output": 0.4
1794
+ },
1795
+ "openrouter/nvidia/llama-3.3-nemotron-super-49b-v1.5": {
1796
+ "input": 0.1,
1797
+ "output": 0.4
1798
+ },
1799
+ "openrouter/nvidia/nemotron-3-nano-30b-a3b": {
1800
+ "input": 0.05,
1801
+ "output": 0.2
1802
+ },
1803
+ "openrouter/nvidia/nemotron-3-super-120b-a12b": {
1804
+ "input": 0.09,
1805
+ "output": 0.45
1806
+ },
1807
+ "openrouter/nvidia/nemotron-nano-9b-v2": {
1808
+ "input": 0.04,
1809
+ "output": 0.16
1810
+ },
1811
+ "openrouter/openai/gpt-3.5-turbo": {
1812
+ "input": 0.5,
1813
+ "output": 1.5
1814
+ },
1815
+ "openrouter/openai/gpt-3.5-turbo-0613": {
1816
+ "input": 1.0,
1817
+ "output": 2.0
1818
+ },
1819
+ "openrouter/openai/gpt-3.5-turbo-16k": {
1820
+ "input": 3.0,
1821
+ "output": 4.0
1822
+ },
1823
+ "openrouter/openai/gpt-3.5-turbo-instruct": {
1824
+ "input": 1.5,
1825
+ "output": 2.0
1826
+ },
1827
+ "openrouter/openai/gpt-4": {
1828
+ "input": 30.0,
1829
+ "output": 60.0
1830
+ },
1831
+ "openrouter/openai/gpt-4-0314": {
1832
+ "input": 30.0,
1833
+ "output": 60.0
1834
+ },
1835
+ "openrouter/openai/gpt-4-1106-preview": {
1836
+ "input": 10.0,
1837
+ "output": 30.0
1838
+ },
1839
+ "openrouter/openai/gpt-4-turbo": {
1840
+ "input": 10.0,
1841
+ "output": 30.0
1842
+ },
1843
+ "openrouter/openai/gpt-4-turbo-preview": {
1844
+ "input": 10.0,
1845
+ "output": 30.0
1846
+ },
1847
+ "openrouter/openai/gpt-4.1": {
1848
+ "cache_read_input": 0.5,
1849
+ "input": 2.0,
1850
+ "output": 8.0
1851
+ },
1852
+ "openrouter/openai/gpt-4.1-mini": {
1853
+ "cache_read_input": 0.1,
1854
+ "input": 0.4,
1855
+ "output": 1.6
1856
+ },
1857
+ "openrouter/openai/gpt-4.1-nano": {
1858
+ "cache_read_input": 0.025,
1859
+ "input": 0.1,
1860
+ "output": 0.4
1861
+ },
1862
+ "openrouter/openai/gpt-4o": {
1863
+ "input": 2.5,
1864
+ "output": 10.0
1865
+ },
1866
+ "openrouter/openai/gpt-4o-2024-05-13": {
1867
+ "input": 5.0,
1868
+ "output": 15.0
1869
+ },
1870
+ "openrouter/openai/gpt-4o-2024-08-06": {
1871
+ "cache_read_input": 1.25,
1872
+ "input": 2.5,
1873
+ "output": 10.0
1874
+ },
1875
+ "openrouter/openai/gpt-4o-2024-11-20": {
1876
+ "cache_read_input": 1.25,
1877
+ "input": 2.5,
1878
+ "output": 10.0
1879
+ },
1880
+ "openrouter/openai/gpt-4o-audio-preview": {
1881
+ "audio_input": 40.0,
1882
+ "input": 2.5,
1883
+ "output": 10.0
1884
+ },
1885
+ "openrouter/openai/gpt-4o-mini": {
1886
+ "cache_read_input": 0.075,
1887
+ "input": 0.15,
1888
+ "output": 0.6
1889
+ },
1890
+ "openrouter/openai/gpt-4o-mini-2024-07-18": {
1891
+ "cache_read_input": 0.075,
1892
+ "input": 0.15,
1893
+ "output": 0.6
1894
+ },
1895
+ "openrouter/openai/gpt-4o-mini-search-preview": {
1896
+ "input": 0.15,
1897
+ "output": 0.6
1898
+ },
1899
+ "openrouter/openai/gpt-4o-search-preview": {
1900
+ "input": 2.5,
1901
+ "output": 10.0
1902
+ },
1903
+ "openrouter/openai/gpt-5": {
1904
+ "cache_read_input": 0.125,
1905
+ "input": 1.25,
1906
+ "output": 10.0
1907
+ },
1908
+ "openrouter/openai/gpt-5-chat": {
1909
+ "cache_read_input": 0.125,
1910
+ "input": 1.25,
1911
+ "output": 10.0
1912
+ },
1913
+ "openrouter/openai/gpt-5-codex": {
1914
+ "cache_read_input": 0.125,
1915
+ "input": 1.25,
1916
+ "output": 10.0
1917
+ },
1918
+ "openrouter/openai/gpt-5-image": {
1919
+ "cache_read_input": 1.25,
1920
+ "input": 10.0,
1921
+ "output": 10.0
1922
+ },
1923
+ "openrouter/openai/gpt-5-image-mini": {
1924
+ "cache_read_input": 0.25,
1925
+ "input": 2.5,
1926
+ "output": 2.0
1927
+ },
1928
+ "openrouter/openai/gpt-5-mini": {
1929
+ "cache_read_input": 0.025,
1930
+ "input": 0.25,
1931
+ "output": 2.0
1932
+ },
1933
+ "openrouter/openai/gpt-5-nano": {
1934
+ "cache_read_input": 0.01,
1935
+ "input": 0.05,
1936
+ "output": 0.4
1937
+ },
1938
+ "openrouter/openai/gpt-5-pro": {
1939
+ "input": 15.0,
1940
+ "output": 120.0
1941
+ },
1942
+ "openrouter/openai/gpt-5.1": {
1943
+ "cache_read_input": 0.13,
1944
+ "input": 1.25,
1945
+ "output": 10.0
1946
+ },
1947
+ "openrouter/openai/gpt-5.1-chat": {
1948
+ "cache_read_input": 0.13,
1949
+ "input": 1.25,
1950
+ "output": 10.0
1951
+ },
1952
+ "openrouter/openai/gpt-5.1-codex": {
1953
+ "cache_read_input": 0.13,
1954
+ "input": 1.25,
1955
+ "output": 10.0
1956
+ },
1957
+ "openrouter/openai/gpt-5.1-codex-max": {
1958
+ "cache_read_input": 0.125,
1959
+ "input": 1.25,
1960
+ "output": 10.0
1961
+ },
1962
+ "openrouter/openai/gpt-5.1-codex-mini": {
1963
+ "cache_read_input": 0.025,
1964
+ "input": 0.25,
1965
+ "output": 2.0
1966
+ },
1967
+ "openrouter/openai/gpt-5.2": {
1968
+ "cache_read_input": 0.175,
1969
+ "input": 1.75,
1970
+ "output": 14.0
1971
+ },
1972
+ "openrouter/openai/gpt-5.2-chat": {
1973
+ "cache_read_input": 0.175,
1974
+ "input": 1.75,
1975
+ "output": 14.0
1976
+ },
1977
+ "openrouter/openai/gpt-5.2-codex": {
1978
+ "cache_read_input": 0.175,
1979
+ "input": 1.75,
1980
+ "output": 14.0
1981
+ },
1982
+ "openrouter/openai/gpt-5.2-pro": {
1983
+ "input": 21.0,
1984
+ "output": 168.0
1985
+ },
1986
+ "openrouter/openai/gpt-5.3-chat": {
1987
+ "cache_read_input": 0.175,
1988
+ "input": 1.75,
1989
+ "output": 14.0
1990
+ },
1991
+ "openrouter/openai/gpt-5.3-codex": {
1992
+ "cache_read_input": 0.175,
1993
+ "input": 1.75,
1994
+ "output": 14.0
1995
+ },
1996
+ "openrouter/openai/gpt-5.4": {
1997
+ "cache_read_input": 0.25,
1998
+ "input": 2.5,
1999
+ "output": 15.0
2000
+ },
2001
+ "openrouter/openai/gpt-5.4-image-2": {
2002
+ "cache_read_input": 2.0,
2003
+ "input": 8.0,
2004
+ "output": 15.0
2005
+ },
2006
+ "openrouter/openai/gpt-5.4-mini": {
2007
+ "cache_read_input": 0.075,
2008
+ "input": 0.75,
2009
+ "output": 4.5
2010
+ },
2011
+ "openrouter/openai/gpt-5.4-nano": {
2012
+ "cache_read_input": 0.02,
2013
+ "input": 0.2,
2014
+ "output": 1.25
2015
+ },
2016
+ "openrouter/openai/gpt-5.4-pro": {
2017
+ "input": 30.0,
2018
+ "output": 180.0
2019
+ },
2020
+ "openrouter/openai/gpt-5.5": {
2021
+ "cache_read_input": 0.5,
2022
+ "input": 5.0,
2023
+ "output": 30.0
2024
+ },
2025
+ "openrouter/openai/gpt-5.5-pro": {
2026
+ "input": 30.0,
2027
+ "output": 180.0
2028
+ },
2029
+ "openrouter/openai/gpt-audio": {
2030
+ "audio_input": 32.0,
2031
+ "input": 2.5,
2032
+ "output": 10.0
2033
+ },
2034
+ "openrouter/openai/gpt-audio-mini": {
2035
+ "audio_input": 0.6,
2036
+ "input": 0.6,
2037
+ "output": 2.4
2038
+ },
2039
+ "openrouter/openai/gpt-chat-latest": {
2040
+ "cache_read_input": 0.5,
2041
+ "input": 5.0,
2042
+ "output": 30.0
2043
+ },
2044
+ "openrouter/openai/gpt-oss-120b": {
2045
+ "input": 0.039,
2046
+ "output": 0.18
2047
+ },
2048
+ "openrouter/openai/gpt-oss-20b": {
2049
+ "input": 0.029,
2050
+ "output": 0.14
2051
+ },
2052
+ "openrouter/openai/gpt-oss-safeguard-20b": {
2053
+ "cache_read_input": 0.037,
2054
+ "input": 0.075,
2055
+ "output": 0.3
2056
+ },
2057
+ "openrouter/openai/o1": {
2058
+ "cache_read_input": 7.5,
2059
+ "input": 15.0,
2060
+ "output": 60.0
2061
+ },
2062
+ "openrouter/openai/o1-pro": {
2063
+ "input": 150.0,
2064
+ "output": 600.0
2065
+ },
2066
+ "openrouter/openai/o3": {
2067
+ "cache_read_input": 0.5,
2068
+ "input": 2.0,
2069
+ "output": 8.0
2070
+ },
2071
+ "openrouter/openai/o3-deep-research": {
2072
+ "cache_read_input": 2.5,
2073
+ "input": 10.0,
2074
+ "output": 40.0
2075
+ },
2076
+ "openrouter/openai/o3-mini": {
2077
+ "cache_read_input": 0.55,
2078
+ "input": 1.1,
2079
+ "output": 4.4
2080
+ },
2081
+ "openrouter/openai/o3-mini-high": {
2082
+ "cache_read_input": 0.55,
2083
+ "input": 1.1,
2084
+ "output": 4.4
2085
+ },
2086
+ "openrouter/openai/o3-pro": {
2087
+ "input": 20.0,
2088
+ "output": 80.0
2089
+ },
2090
+ "openrouter/openai/o4-mini": {
2091
+ "cache_read_input": 0.275,
2092
+ "input": 1.1,
2093
+ "output": 4.4
2094
+ },
2095
+ "openrouter/openai/o4-mini-deep-research": {
2096
+ "cache_read_input": 0.5,
2097
+ "input": 2.0,
2098
+ "output": 8.0
2099
+ },
2100
+ "openrouter/openai/o4-mini-high": {
2101
+ "cache_read_input": 0.275,
2102
+ "input": 1.1,
2103
+ "output": 4.4
2104
+ },
2105
+ "openrouter/perceptron/perceptron-mk1": {
2106
+ "input": 0.15,
2107
+ "output": 1.5
2108
+ },
2109
+ "openrouter/perplexity/sonar": {
2110
+ "input": 1.0,
2111
+ "output": 1.0
2112
+ },
2113
+ "openrouter/perplexity/sonar-deep-research": {
2114
+ "input": 2.0,
2115
+ "output": 8.0
2116
+ },
2117
+ "openrouter/perplexity/sonar-pro": {
2118
+ "input": 3.0,
2119
+ "output": 15.0
2120
+ },
2121
+ "openrouter/perplexity/sonar-pro-search": {
2122
+ "input": 3.0,
2123
+ "output": 15.0
2124
+ },
2125
+ "openrouter/perplexity/sonar-reasoning-pro": {
2126
+ "input": 2.0,
2127
+ "output": 8.0
2128
+ },
2129
+ "openrouter/prime-intellect/intellect-3": {
2130
+ "input": 0.2,
2131
+ "output": 1.1
2132
+ },
2133
+ "openrouter/qwen/qwen-2.5-72b-instruct": {
2134
+ "input": 0.36,
2135
+ "output": 0.4
2136
+ },
2137
+ "openrouter/qwen/qwen-2.5-7b-instruct": {
2138
+ "input": 0.04,
2139
+ "output": 0.1
2140
+ },
2141
+ "openrouter/qwen/qwen-2.5-coder-32b-instruct": {
2142
+ "input": 0.66,
2143
+ "output": 1.0
2144
+ },
2145
+ "openrouter/qwen/qwen-plus": {
2146
+ "cache_read_input": 0.052,
2147
+ "cache_write_input": 0.325,
2148
+ "input": 0.26,
2149
+ "output": 0.78
2150
+ },
2151
+ "openrouter/qwen/qwen-plus-2025-07-28": {
2152
+ "input": 0.26,
2153
+ "output": 0.78
2154
+ },
2155
+ "openrouter/qwen/qwen-plus-2025-07-28:thinking": {
2156
+ "cache_write_input": 0.325,
2157
+ "input": 0.26,
2158
+ "output": 0.78
2159
+ },
2160
+ "openrouter/qwen/qwen2.5-vl-72b-instruct": {
2161
+ "input": 0.25,
2162
+ "output": 0.75
2163
+ },
2164
+ "openrouter/qwen/qwen3-14b": {
2165
+ "input": 0.1,
2166
+ "output": 0.24
2167
+ },
2168
+ "openrouter/qwen/qwen3-235b-a22b": {
2169
+ "input": 0.455,
2170
+ "output": 1.82
2171
+ },
2172
+ "openrouter/qwen/qwen3-235b-a22b-2507": {
2173
+ "input": 0.071,
2174
+ "output": 0.1
2175
+ },
2176
+ "openrouter/qwen/qwen3-235b-a22b-thinking-2507": {
2177
+ "cache_read_input": 0.1,
2178
+ "input": 0.1,
2179
+ "output": 0.1
2180
+ },
2181
+ "openrouter/qwen/qwen3-30b-a3b": {
2182
+ "input": 0.09,
2183
+ "output": 0.45
2184
+ },
2185
+ "openrouter/qwen/qwen3-30b-a3b-instruct-2507": {
2186
+ "input": 0.0428,
2187
+ "output": 0.1716
2188
+ },
2189
+ "openrouter/qwen/qwen3-30b-a3b-thinking-2507": {
2190
+ "cache_read_input": 0.08,
2191
+ "input": 0.08,
2192
+ "output": 0.4
2193
+ },
2194
+ "openrouter/qwen/qwen3-32b": {
2195
+ "input": 0.08,
2196
+ "output": 0.28
2197
+ },
2198
+ "openrouter/qwen/qwen3-8b": {
2199
+ "cache_read_input": 0.05,
2200
+ "input": 0.05,
2201
+ "output": 0.4
2202
+ },
2203
+ "openrouter/qwen/qwen3-coder": {
2204
+ "input": 0.22,
2205
+ "output": 1.8
2206
+ },
2207
+ "openrouter/qwen/qwen3-coder-30b-a3b-instruct": {
2208
+ "input": 0.07,
2209
+ "output": 0.27
2210
+ },
2211
+ "openrouter/qwen/qwen3-coder-flash": {
2212
+ "cache_read_input": 0.039,
2213
+ "cache_write_input": 0.24375,
2214
+ "input": 0.195,
2215
+ "output": 0.975
2216
+ },
2217
+ "openrouter/qwen/qwen3-coder-next": {
2218
+ "cache_read_input": 0.07,
2219
+ "input": 0.11,
2220
+ "output": 0.8
2221
+ },
2222
+ "openrouter/qwen/qwen3-coder-plus": {
2223
+ "cache_read_input": 0.13,
2224
+ "cache_write_input": 0.8125,
2225
+ "input": 0.65,
2226
+ "output": 3.25
2227
+ },
2228
+ "openrouter/qwen/qwen3-max": {
2229
+ "cache_read_input": 0.156,
2230
+ "cache_write_input": 0.975,
2231
+ "input": 0.78,
2232
+ "output": 3.9
2233
+ },
2234
+ "openrouter/qwen/qwen3-max-thinking": {
2235
+ "input": 0.78,
2236
+ "output": 3.9
2237
+ },
2238
+ "openrouter/qwen/qwen3-next-80b-a3b-instruct": {
2239
+ "input": 0.09,
2240
+ "output": 1.1
2241
+ },
2242
+ "openrouter/qwen/qwen3-next-80b-a3b-thinking": {
2243
+ "input": 0.0975,
2244
+ "output": 0.78
2245
+ },
2246
+ "openrouter/qwen/qwen3-vl-235b-a22b-instruct": {
2247
+ "cache_read_input": 0.11,
2248
+ "input": 0.2,
2249
+ "output": 0.88
2250
+ },
2251
+ "openrouter/qwen/qwen3-vl-235b-a22b-thinking": {
2252
+ "input": 0.26,
2253
+ "output": 2.6
2254
+ },
2255
+ "openrouter/qwen/qwen3-vl-30b-a3b-instruct": {
2256
+ "input": 0.13,
2257
+ "output": 0.52
2258
+ },
2259
+ "openrouter/qwen/qwen3-vl-30b-a3b-thinking": {
2260
+ "input": 0.13,
2261
+ "output": 1.56
2262
+ },
2263
+ "openrouter/qwen/qwen3-vl-32b-instruct": {
2264
+ "input": 0.104,
2265
+ "output": 0.416
2266
+ },
2267
+ "openrouter/qwen/qwen3-vl-8b-instruct": {
2268
+ "input": 0.08,
2269
+ "output": 0.5
2270
+ },
2271
+ "openrouter/qwen/qwen3-vl-8b-thinking": {
2272
+ "input": 0.117,
2273
+ "output": 1.365
2274
+ },
2275
+ "openrouter/qwen/qwen3.5-122b-a10b": {
2276
+ "input": 0.26,
2277
+ "output": 2.08
2278
+ },
2279
+ "openrouter/qwen/qwen3.5-27b": {
2280
+ "input": 0.195,
2281
+ "output": 1.56
2282
+ },
2283
+ "openrouter/qwen/qwen3.5-35b-a3b": {
2284
+ "cache_read_input": 0.05,
2285
+ "input": 0.14,
2286
+ "output": 1.0
2287
+ },
2288
+ "openrouter/qwen/qwen3.5-397b-a17b": {
2289
+ "input": 0.39,
2290
+ "output": 2.34
2291
+ },
2292
+ "openrouter/qwen/qwen3.5-9b": {
2293
+ "input": 0.04,
2294
+ "output": 0.15
2295
+ },
2296
+ "openrouter/qwen/qwen3.5-flash-02-23": {
2297
+ "input": 0.065,
2298
+ "output": 0.26
2299
+ },
2300
+ "openrouter/qwen/qwen3.5-plus-02-15": {
2301
+ "input": 0.26,
2302
+ "output": 1.56
2303
+ },
2304
+ "openrouter/qwen/qwen3.5-plus-20260420": {
2305
+ "cache_write_input": 0.375,
2306
+ "input": 0.3,
2307
+ "output": 1.8
2308
+ },
2309
+ "openrouter/qwen/qwen3.6-27b": {
2310
+ "input": 0.29,
2311
+ "output": 3.2
2312
+ },
2313
+ "openrouter/qwen/qwen3.6-35b-a3b": {
2314
+ "input": 0.14,
2315
+ "output": 1.0
2316
+ },
2317
+ "openrouter/qwen/qwen3.6-flash": {
2318
+ "cache_write_input": 0.234375,
2319
+ "input": 0.1875,
2320
+ "output": 1.125
2321
+ },
2322
+ "openrouter/qwen/qwen3.6-max-preview": {
2323
+ "cache_write_input": 1.3,
2324
+ "input": 1.04,
2325
+ "output": 6.24
2326
+ },
2327
+ "openrouter/qwen/qwen3.6-plus": {
2328
+ "cache_write_input": 0.40625,
2329
+ "input": 0.325,
2330
+ "output": 1.95
2331
+ },
2332
+ "openrouter/qwen/qwen3.7-max": {
2333
+ "cache_read_input": 0.25,
2334
+ "cache_write_input": 1.5625,
2335
+ "input": 1.25,
2336
+ "output": 3.75
2337
+ },
2338
+ "openrouter/rekaai/reka-edge": {
2339
+ "input": 0.1,
2340
+ "output": 0.1
2341
+ },
2342
+ "openrouter/rekaai/reka-flash-3": {
2343
+ "input": 0.1,
2344
+ "output": 0.2
2345
+ },
2346
+ "openrouter/relace/relace-apply-3": {
2347
+ "input": 0.85,
2348
+ "output": 1.25
2349
+ },
2350
+ "openrouter/relace/relace-search": {
2351
+ "input": 1.0,
2352
+ "output": 3.0
2353
+ },
2354
+ "openrouter/sao10k/l3-euryale-70b": {
2355
+ "input": 1.48,
2356
+ "output": 1.48
2357
+ },
2358
+ "openrouter/sao10k/l3-lunaris-8b": {
2359
+ "input": 0.04,
2360
+ "output": 0.05
2361
+ },
2362
+ "openrouter/sao10k/l3.1-70b-hanami-x1": {
2363
+ "input": 3.0,
2364
+ "output": 3.0
2365
+ },
2366
+ "openrouter/sao10k/l3.1-euryale-70b": {
2367
+ "input": 0.85,
2368
+ "output": 0.85
2369
+ },
2370
+ "openrouter/sao10k/l3.3-euryale-70b": {
2371
+ "input": 0.65,
2372
+ "output": 0.75
2373
+ },
2374
+ "openrouter/stepfun/step-3.5-flash": {
2375
+ "cache_read_input": 0.02,
2376
+ "input": 0.09,
2377
+ "output": 0.3
2378
+ },
2379
+ "openrouter/stepfun/step-3.7-flash": {
2380
+ "cache_read_input": 0.04,
2381
+ "input": 0.2,
2382
+ "output": 1.15
2383
+ },
2384
+ "openrouter/switchpoint/router": {
2385
+ "input": 0.85,
2386
+ "output": 3.4
2387
+ },
2388
+ "openrouter/tencent/hunyuan-a13b-instruct": {
2389
+ "input": 0.14,
2390
+ "output": 0.57
2391
+ },
2392
+ "openrouter/tencent/hy3-preview": {
2393
+ "cache_read_input": 0.021,
2394
+ "input": 0.063,
2395
+ "output": 0.21
2396
+ },
2397
+ "openrouter/thedrummer/cydonia-24b-v4.1": {
2398
+ "cache_read_input": 0.15,
2399
+ "input": 0.3,
2400
+ "output": 0.5
2401
+ },
2402
+ "openrouter/thedrummer/rocinante-12b": {
2403
+ "input": 0.17,
2404
+ "output": 0.43
2405
+ },
2406
+ "openrouter/thedrummer/skyfall-36b-v2": {
2407
+ "cache_read_input": 0.25,
2408
+ "input": 0.55,
2409
+ "output": 0.8
2410
+ },
2411
+ "openrouter/thedrummer/unslopnemo-12b": {
2412
+ "input": 0.4,
2413
+ "output": 0.4
2414
+ },
2415
+ "openrouter/undi95/remm-slerp-l2-13b": {
2416
+ "input": 0.45,
2417
+ "output": 0.65
2418
+ },
2419
+ "openrouter/upstage/solar-pro-3": {
2420
+ "cache_read_input": 0.015,
2421
+ "input": 0.15,
2422
+ "output": 0.6
2423
+ },
2424
+ "openrouter/writer/palmyra-x5": {
2425
+ "input": 0.6,
2426
+ "output": 6.0
2427
+ },
2428
+ "openrouter/x-ai/grok-4.20": {
2429
+ "cache_read_input": 0.2,
2430
+ "input": 1.25,
2431
+ "output": 2.5
2432
+ },
2433
+ "openrouter/x-ai/grok-4.20-multi-agent": {
2434
+ "cache_read_input": 0.2,
2435
+ "input": 2.0,
2436
+ "output": 6.0
2437
+ },
2438
+ "openrouter/x-ai/grok-4.3": {
2439
+ "cache_read_input": 0.2,
2440
+ "input": 1.25,
2441
+ "output": 2.5
2442
+ },
2443
+ "openrouter/x-ai/grok-build-0.1": {
2444
+ "cache_read_input": 0.2,
2445
+ "input": 1.0,
2446
+ "output": 2.0
2447
+ },
2448
+ "openrouter/xiaomi/mimo-v2-flash": {
2449
+ "cache_read_input": 0.01,
2450
+ "input": 0.1,
2451
+ "output": 0.3
2452
+ },
2453
+ "openrouter/xiaomi/mimo-v2-omni": {
2454
+ "cache_read_input": 0.08,
2455
+ "input": 0.4,
2456
+ "output": 2.0
2457
+ },
2458
+ "openrouter/xiaomi/mimo-v2-pro": {
2459
+ "cache_read_input": 0.2,
2460
+ "input": 1.0,
2461
+ "output": 3.0
2462
+ },
2463
+ "openrouter/xiaomi/mimo-v2.5": {
2464
+ "cache_read_input": 0.0028,
2465
+ "input": 0.14,
2466
+ "output": 0.28
2467
+ },
2468
+ "openrouter/xiaomi/mimo-v2.5-pro": {
2469
+ "cache_read_input": 0.0036,
2470
+ "input": 0.435,
2471
+ "output": 0.87
2472
+ },
2473
+ "openrouter/z-ai/glm-4-32b": {
2474
+ "input": 0.1,
2475
+ "output": 0.1
2476
+ },
2477
+ "openrouter/z-ai/glm-4.5": {
2478
+ "cache_read_input": 0.11,
2479
+ "input": 0.6,
2480
+ "output": 2.2
2481
+ },
2482
+ "openrouter/z-ai/glm-4.5-air": {
2483
+ "cache_read_input": 0.06,
2484
+ "input": 0.125,
2485
+ "output": 0.85
2486
+ },
2487
+ "openrouter/z-ai/glm-4.5v": {
2488
+ "cache_read_input": 0.11,
2489
+ "input": 0.6,
2490
+ "output": 1.8
2491
+ },
2492
+ "openrouter/z-ai/glm-4.6": {
2493
+ "cache_read_input": 0.08,
2494
+ "input": 0.43,
2495
+ "output": 1.74
2496
+ },
2497
+ "openrouter/z-ai/glm-4.6v": {
2498
+ "cache_read_input": 0.05,
2499
+ "input": 0.3,
2500
+ "output": 0.9
2501
+ },
2502
+ "openrouter/z-ai/glm-4.7": {
2503
+ "cache_read_input": 0.08,
2504
+ "input": 0.4,
2505
+ "output": 1.75
2506
+ },
2507
+ "openrouter/z-ai/glm-4.7-flash": {
2508
+ "cache_read_input": 0.01,
2509
+ "input": 0.06,
2510
+ "output": 0.4
2511
+ },
2512
+ "openrouter/z-ai/glm-5": {
2513
+ "cache_read_input": 0.12,
2514
+ "input": 0.6,
2515
+ "output": 1.92
2516
+ },
2517
+ "openrouter/z-ai/glm-5-turbo": {
2518
+ "cache_read_input": 0.24,
2519
+ "input": 1.2,
2520
+ "output": 4.0
2521
+ },
2522
+ "openrouter/z-ai/glm-5.1": {
2523
+ "cache_read_input": 0.182,
2524
+ "input": 0.98,
2525
+ "output": 3.08
2526
+ },
2527
+ "openrouter/z-ai/glm-5v-turbo": {
2528
+ "cache_read_input": 0.24,
2529
+ "input": 1.2,
2530
+ "output": 4.0
2531
+ },
2532
+ "openrouter/~anthropic/claude-haiku-latest": {
2533
+ "cache_read_input": 0.1,
2534
+ "cache_write_input": 1.25,
2535
+ "input": 1.0,
2536
+ "output": 5.0
2537
+ },
2538
+ "openrouter/~anthropic/claude-opus-latest": {
2539
+ "cache_read_input": 0.5,
2540
+ "cache_write_input": 6.25,
2541
+ "input": 5.0,
2542
+ "output": 25.0
2543
+ },
2544
+ "openrouter/~anthropic/claude-sonnet-latest": {
2545
+ "cache_read_input": 0.3,
2546
+ "cache_write_input": 3.75,
2547
+ "input": 3.0,
2548
+ "output": 15.0
2549
+ },
2550
+ "openrouter/~google/gemini-flash-latest": {
2551
+ "audio_input": 3.0,
2552
+ "cache_read_input": 0.15,
2553
+ "cache_write_input": 0.083333,
2554
+ "image_input": 1.5,
2555
+ "input": 1.5,
2556
+ "output": 9.0
2557
+ },
2558
+ "openrouter/~google/gemini-pro-latest": {
2559
+ "audio_input": 2.0,
2560
+ "cache_read_input": 0.2,
2561
+ "cache_write_input": 0.375,
2562
+ "image_input": 2.0,
2563
+ "input": 2.0,
2564
+ "output": 12.0
2565
+ },
2566
+ "openrouter/~moonshotai/kimi-latest": {
2567
+ "cache_read_input": 0.144,
2568
+ "input": 0.684,
2569
+ "output": 3.42
2570
+ },
2571
+ "openrouter/~openai/gpt-latest": {
2572
+ "cache_read_input": 0.5,
2573
+ "input": 5.0,
2574
+ "output": 30.0
2575
+ },
2576
+ "openrouter/~openai/gpt-mini-latest": {
2577
+ "cache_read_input": 0.075,
2578
+ "input": 0.75,
2579
+ "output": 4.5
874
2580
  }
875
2581
  },
876
2582
  "service_charges": {