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