@pydantic/genai-prices 0.0.36 → 0.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +629 -227
- package/dist/index.cjs +3 -3
- package/dist/index.js +451 -49
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -197,6 +197,12 @@ const x = [
|
|
|
197
197
|
{
|
|
198
198
|
starts_with: "claude-haiku-4-5"
|
|
199
199
|
},
|
|
200
|
+
{
|
|
201
|
+
starts_with: "claude-haiku-4.5"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
starts_with: "claude-4-5-haiku"
|
|
205
|
+
},
|
|
200
206
|
{
|
|
201
207
|
starts_with: "claude-4.5-haiku"
|
|
202
208
|
}
|
|
@@ -210,6 +216,28 @@ const x = [
|
|
|
210
216
|
output_mtok: 5
|
|
211
217
|
}
|
|
212
218
|
},
|
|
219
|
+
{
|
|
220
|
+
id: "claude-instant-1",
|
|
221
|
+
description: "Retired, here to match price sources",
|
|
222
|
+
match: {
|
|
223
|
+
equals: "claude-instant-1"
|
|
224
|
+
},
|
|
225
|
+
prices: {
|
|
226
|
+
input_mtok: 1.63,
|
|
227
|
+
output_mtok: 55.1
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
id: "claude-instant-1.2",
|
|
232
|
+
description: "Retired, here to match price sources",
|
|
233
|
+
match: {
|
|
234
|
+
equals: "claude-instant-1.2"
|
|
235
|
+
},
|
|
236
|
+
prices: {
|
|
237
|
+
input_mtok: 1.63,
|
|
238
|
+
output_mtok: 5.51
|
|
239
|
+
}
|
|
240
|
+
},
|
|
213
241
|
{
|
|
214
242
|
id: "claude-opus-4-0",
|
|
215
243
|
name: "Claude Opus 4",
|
|
@@ -222,6 +250,9 @@ const x = [
|
|
|
222
250
|
{
|
|
223
251
|
starts_with: "claude-4-opus"
|
|
224
252
|
},
|
|
253
|
+
{
|
|
254
|
+
equals: "claude-opus-4"
|
|
255
|
+
},
|
|
225
256
|
{
|
|
226
257
|
equals: "claude-opus-4-20250514"
|
|
227
258
|
}
|
|
@@ -240,7 +271,14 @@ const x = [
|
|
|
240
271
|
name: "Claude Opus 4.1",
|
|
241
272
|
description: "Most intelligent model for complex tasks",
|
|
242
273
|
match: {
|
|
243
|
-
|
|
274
|
+
or: [
|
|
275
|
+
{
|
|
276
|
+
starts_with: "claude-opus-4-1"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
starts_with: "claude-opus-4.1"
|
|
280
|
+
}
|
|
281
|
+
]
|
|
244
282
|
},
|
|
245
283
|
context_window: 2e5,
|
|
246
284
|
prices: {
|
|
@@ -286,7 +324,14 @@ const x = [
|
|
|
286
324
|
name: "Claude Sonnet 4.5",
|
|
287
325
|
description: "Most intelligent model for building agents and coding",
|
|
288
326
|
match: {
|
|
289
|
-
|
|
327
|
+
or: [
|
|
328
|
+
{
|
|
329
|
+
starts_with: "claude-sonnet-4-5"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
starts_with: "claude-sonnet-4.5"
|
|
333
|
+
}
|
|
334
|
+
]
|
|
290
335
|
},
|
|
291
336
|
context_window: 1e6,
|
|
292
337
|
prices: {
|
|
@@ -327,6 +372,17 @@ const x = [
|
|
|
327
372
|
]
|
|
328
373
|
}
|
|
329
374
|
}
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
id: "claude-v1",
|
|
378
|
+
description: "Retired, here to match price sources",
|
|
379
|
+
match: {
|
|
380
|
+
equals: "claude-v1"
|
|
381
|
+
},
|
|
382
|
+
prices: {
|
|
383
|
+
input_mtok: 8,
|
|
384
|
+
output_mtok: 24
|
|
385
|
+
}
|
|
330
386
|
}
|
|
331
387
|
]
|
|
332
388
|
},
|
|
@@ -1986,15 +2042,39 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
1986
2042
|
},
|
|
1987
2043
|
{
|
|
1988
2044
|
equals: "gemini-2.5-flash-latest"
|
|
2045
|
+
},
|
|
2046
|
+
{
|
|
2047
|
+
equals: "gemini-2.5-flash-preview-09-2025"
|
|
1989
2048
|
}
|
|
1990
2049
|
]
|
|
1991
2050
|
},
|
|
1992
2051
|
prices: {
|
|
1993
2052
|
input_mtok: 0.3,
|
|
1994
|
-
cache_read_mtok: 0.
|
|
2053
|
+
cache_read_mtok: 0.03,
|
|
1995
2054
|
output_mtok: 2.5,
|
|
1996
2055
|
input_audio_mtok: 1,
|
|
1997
|
-
cache_audio_read_mtok: 0.
|
|
2056
|
+
cache_audio_read_mtok: 0.1
|
|
2057
|
+
}
|
|
2058
|
+
},
|
|
2059
|
+
{
|
|
2060
|
+
id: "gemini-2.5-flash-image",
|
|
2061
|
+
name: "Gemini 2.5 Flash Image",
|
|
2062
|
+
description: "Google's specialized image generation model optimized for fast, high-quality image generation. Outputs images at 1024x1024 resolution, with each image consuming 1290 output tokens.",
|
|
2063
|
+
match: {
|
|
2064
|
+
or: [
|
|
2065
|
+
{
|
|
2066
|
+
equals: "gemini-2.5-flash-image"
|
|
2067
|
+
},
|
|
2068
|
+
{
|
|
2069
|
+
equals: "gemini-2.5-flash-image-preview"
|
|
2070
|
+
}
|
|
2071
|
+
]
|
|
2072
|
+
},
|
|
2073
|
+
context_window: 1e6,
|
|
2074
|
+
price_comments: "See https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-flash-image. Image output is priced at $30 per 1M tokens, with each 1024x1024 image = 1290 tokens = $0.039/image. Cache pricing is not available for this model.",
|
|
2075
|
+
prices: {
|
|
2076
|
+
input_mtok: 0.3,
|
|
2077
|
+
output_mtok: 30
|
|
1998
2078
|
}
|
|
1999
2079
|
},
|
|
2000
2080
|
{
|
|
@@ -2014,10 +2094,10 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
2014
2094
|
context_window: 1e6,
|
|
2015
2095
|
prices: {
|
|
2016
2096
|
input_mtok: 0.1,
|
|
2017
|
-
cache_read_mtok: 0.
|
|
2097
|
+
cache_read_mtok: 0.01,
|
|
2018
2098
|
output_mtok: 0.4,
|
|
2019
|
-
input_audio_mtok: 0.
|
|
2020
|
-
cache_audio_read_mtok: 0.
|
|
2099
|
+
input_audio_mtok: 0.3,
|
|
2100
|
+
cache_audio_read_mtok: 0.03
|
|
2021
2101
|
}
|
|
2022
2102
|
},
|
|
2023
2103
|
{
|
|
@@ -2027,10 +2107,10 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
2027
2107
|
match: {
|
|
2028
2108
|
or: [
|
|
2029
2109
|
{
|
|
2030
|
-
contains: "gemini-2.5-flash-preview"
|
|
2110
|
+
contains: "gemini-2.5-flash-preview-05-20"
|
|
2031
2111
|
},
|
|
2032
2112
|
{
|
|
2033
|
-
|
|
2113
|
+
contains: "gemini-2.5-flash-preview-04-17"
|
|
2034
2114
|
},
|
|
2035
2115
|
{
|
|
2036
2116
|
equals: "gemini-2.5-flash-preview-05-20:thinking"
|
|
@@ -2068,11 +2148,11 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
2068
2148
|
]
|
|
2069
2149
|
},
|
|
2070
2150
|
cache_read_mtok: {
|
|
2071
|
-
base: 0.
|
|
2151
|
+
base: 0.125,
|
|
2072
2152
|
tiers: [
|
|
2073
2153
|
{
|
|
2074
2154
|
start: 2e5,
|
|
2075
|
-
price: 0.
|
|
2155
|
+
price: 0.25
|
|
2076
2156
|
}
|
|
2077
2157
|
]
|
|
2078
2158
|
},
|
|
@@ -2087,6 +2167,15 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
2087
2167
|
}
|
|
2088
2168
|
}
|
|
2089
2169
|
},
|
|
2170
|
+
{
|
|
2171
|
+
id: "gemini-embedding-001",
|
|
2172
|
+
match: {
|
|
2173
|
+
equals: "gemini-embedding-001"
|
|
2174
|
+
},
|
|
2175
|
+
prices: {
|
|
2176
|
+
input_mtok: 0.15
|
|
2177
|
+
}
|
|
2178
|
+
},
|
|
2090
2179
|
{
|
|
2091
2180
|
id: "gemini-flash-1.5",
|
|
2092
2181
|
name: "Gemini 1.5 Flash",
|
|
@@ -2164,6 +2253,25 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
2164
2253
|
}
|
|
2165
2254
|
}
|
|
2166
2255
|
},
|
|
2256
|
+
{
|
|
2257
|
+
id: "gemini-live-2.5-flash-preview",
|
|
2258
|
+
match: {
|
|
2259
|
+
or: [
|
|
2260
|
+
{
|
|
2261
|
+
starts_with: "gemini-live-2.5-flash-preview"
|
|
2262
|
+
},
|
|
2263
|
+
{
|
|
2264
|
+
starts_with: "gemini-2.5-flash-native-audio-preview"
|
|
2265
|
+
}
|
|
2266
|
+
]
|
|
2267
|
+
},
|
|
2268
|
+
prices: {
|
|
2269
|
+
input_mtok: 0.5,
|
|
2270
|
+
output_mtok: 2,
|
|
2271
|
+
input_audio_mtok: 3,
|
|
2272
|
+
output_audio_mtok: 12
|
|
2273
|
+
}
|
|
2274
|
+
},
|
|
2167
2275
|
{
|
|
2168
2276
|
id: "gemini-pro",
|
|
2169
2277
|
name: "gemini 1.0 pro",
|
|
@@ -3315,7 +3423,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3315
3423
|
name: "Codex Mini",
|
|
3316
3424
|
description: "codex-mini-latest is a fine-tuned version of o4-mini specifically for use in Codex CLI. For direct use in the API, we recommend starting with gpt-4.1.",
|
|
3317
3425
|
match: {
|
|
3318
|
-
|
|
3426
|
+
or: [
|
|
3427
|
+
{
|
|
3428
|
+
equals: "codex-mini"
|
|
3429
|
+
},
|
|
3430
|
+
{
|
|
3431
|
+
equals: "codex-mini-latest"
|
|
3432
|
+
}
|
|
3433
|
+
]
|
|
3319
3434
|
},
|
|
3320
3435
|
prices: {
|
|
3321
3436
|
input_mtok: 1.5,
|
|
@@ -3361,7 +3476,7 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3361
3476
|
id: "ft:gpt-3.5-turbo-",
|
|
3362
3477
|
description: "GPT-3.5 Turbo fine tuned.",
|
|
3363
3478
|
match: {
|
|
3364
|
-
starts_with: "ft:gpt-3.5-turbo
|
|
3479
|
+
starts_with: "ft:gpt-3.5-turbo"
|
|
3365
3480
|
},
|
|
3366
3481
|
prices: {
|
|
3367
3482
|
input_mtok: 3,
|
|
@@ -3369,10 +3484,10 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3369
3484
|
}
|
|
3370
3485
|
},
|
|
3371
3486
|
{
|
|
3372
|
-
id: "ft:gpt-4o
|
|
3487
|
+
id: "ft:gpt-4o",
|
|
3373
3488
|
description: "GPT-4o fine tuned.",
|
|
3374
3489
|
match: {
|
|
3375
|
-
starts_with: "ft:gpt-4o-2024-
|
|
3490
|
+
starts_with: "ft:gpt-4o-2024-"
|
|
3376
3491
|
},
|
|
3377
3492
|
prices: {
|
|
3378
3493
|
input_mtok: 3.75,
|
|
@@ -3380,16 +3495,33 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3380
3495
|
}
|
|
3381
3496
|
},
|
|
3382
3497
|
{
|
|
3383
|
-
id: "ft:gpt-4o-mini
|
|
3498
|
+
id: "ft:gpt-4o-mini",
|
|
3384
3499
|
description: "GPT-4o Mini fine tuned.",
|
|
3385
3500
|
match: {
|
|
3386
|
-
starts_with: "ft:gpt-4o-mini-2024-
|
|
3501
|
+
starts_with: "ft:gpt-4o-mini-2024-"
|
|
3387
3502
|
},
|
|
3388
3503
|
prices: {
|
|
3389
3504
|
input_mtok: 0.3,
|
|
3390
3505
|
output_mtok: 1.2
|
|
3391
3506
|
}
|
|
3392
3507
|
},
|
|
3508
|
+
{
|
|
3509
|
+
id: "gpt-3.5-0301",
|
|
3510
|
+
match: {
|
|
3511
|
+
or: [
|
|
3512
|
+
{
|
|
3513
|
+
equals: "gpt-3.5-turbo-0301"
|
|
3514
|
+
},
|
|
3515
|
+
{
|
|
3516
|
+
equals: "gpt-3.5-0301"
|
|
3517
|
+
}
|
|
3518
|
+
]
|
|
3519
|
+
},
|
|
3520
|
+
prices: {
|
|
3521
|
+
input_mtok: 1.5,
|
|
3522
|
+
output_mtok: 2
|
|
3523
|
+
}
|
|
3524
|
+
},
|
|
3393
3525
|
{
|
|
3394
3526
|
id: "gpt-3.5-turbo",
|
|
3395
3527
|
name: "gpt 3.5 turbo",
|
|
@@ -3404,9 +3536,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3404
3536
|
},
|
|
3405
3537
|
{
|
|
3406
3538
|
equals: "gpt-3.5-turbo-0125"
|
|
3407
|
-
},
|
|
3408
|
-
{
|
|
3409
|
-
equals: "gpt-3.5-turbo-1106"
|
|
3410
3539
|
}
|
|
3411
3540
|
]
|
|
3412
3541
|
},
|
|
@@ -3416,6 +3545,28 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3416
3545
|
output_mtok: 1.5
|
|
3417
3546
|
}
|
|
3418
3547
|
},
|
|
3548
|
+
{
|
|
3549
|
+
id: "gpt-3.5-turbo-0613",
|
|
3550
|
+
match: {
|
|
3551
|
+
equals: "gpt-3.5-turbo-0613"
|
|
3552
|
+
},
|
|
3553
|
+
context_window: 16385,
|
|
3554
|
+
prices: {
|
|
3555
|
+
input_mtok: 1.5,
|
|
3556
|
+
output_mtok: 2
|
|
3557
|
+
}
|
|
3558
|
+
},
|
|
3559
|
+
{
|
|
3560
|
+
id: "gpt-3.5-turbo-1106",
|
|
3561
|
+
match: {
|
|
3562
|
+
equals: "gpt-3.5-turbo-1106"
|
|
3563
|
+
},
|
|
3564
|
+
context_window: 16385,
|
|
3565
|
+
prices: {
|
|
3566
|
+
input_mtok: 1,
|
|
3567
|
+
output_mtok: 2
|
|
3568
|
+
}
|
|
3569
|
+
},
|
|
3419
3570
|
{
|
|
3420
3571
|
id: "gpt-3.5-turbo-16k",
|
|
3421
3572
|
name: "GPT-3.5 Turbo 16k",
|
|
@@ -3430,6 +3581,9 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3430
3581
|
},
|
|
3431
3582
|
{
|
|
3432
3583
|
equals: "gpt-35-turbo-16k-0613"
|
|
3584
|
+
},
|
|
3585
|
+
{
|
|
3586
|
+
equals: "gpt-35-turbo-16k"
|
|
3433
3587
|
}
|
|
3434
3588
|
]
|
|
3435
3589
|
},
|
|
@@ -3473,6 +3627,9 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3473
3627
|
},
|
|
3474
3628
|
{
|
|
3475
3629
|
equals: "gpt-4-0613"
|
|
3630
|
+
},
|
|
3631
|
+
{
|
|
3632
|
+
starts_with: "ft:gpt-4-0"
|
|
3476
3633
|
}
|
|
3477
3634
|
]
|
|
3478
3635
|
},
|
|
@@ -3688,6 +3845,9 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3688
3845
|
},
|
|
3689
3846
|
{
|
|
3690
3847
|
equals: "gpt-4o-mini-search-preview"
|
|
3848
|
+
},
|
|
3849
|
+
{
|
|
3850
|
+
equals: "gpt-4o-mini-search-preview-2025-03-11"
|
|
3691
3851
|
}
|
|
3692
3852
|
]
|
|
3693
3853
|
},
|
|
@@ -3729,7 +3889,31 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3729
3889
|
prices: {
|
|
3730
3890
|
input_mtok: 0.6,
|
|
3731
3891
|
cache_read_mtok: 0.3,
|
|
3732
|
-
output_mtok: 2.4
|
|
3892
|
+
output_mtok: 2.4,
|
|
3893
|
+
input_audio_mtok: 10,
|
|
3894
|
+
cache_audio_read_mtok: 0.3,
|
|
3895
|
+
output_audio_mtok: 20
|
|
3896
|
+
}
|
|
3897
|
+
},
|
|
3898
|
+
{
|
|
3899
|
+
id: "gpt-4o-mini-transcribe",
|
|
3900
|
+
match: {
|
|
3901
|
+
equals: "gpt-4o-mini-transcribe"
|
|
3902
|
+
},
|
|
3903
|
+
prices: {
|
|
3904
|
+
input_mtok: 1.25,
|
|
3905
|
+
output_mtok: 5,
|
|
3906
|
+
input_audio_mtok: 3
|
|
3907
|
+
}
|
|
3908
|
+
},
|
|
3909
|
+
{
|
|
3910
|
+
id: "gpt-4o-mini-tts",
|
|
3911
|
+
match: {
|
|
3912
|
+
equals: "gpt-4o-mini-tts"
|
|
3913
|
+
},
|
|
3914
|
+
prices: {
|
|
3915
|
+
input_mtok: 0.6,
|
|
3916
|
+
output_audio_mtok: 12
|
|
3733
3917
|
}
|
|
3734
3918
|
},
|
|
3735
3919
|
{
|
|
@@ -3751,13 +3935,38 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3751
3935
|
name: "GPT-4o Search Preview",
|
|
3752
3936
|
description: "GPT-4o Search Previewis a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.",
|
|
3753
3937
|
match: {
|
|
3754
|
-
|
|
3938
|
+
or: [
|
|
3939
|
+
{
|
|
3940
|
+
equals: "gpt-4o-search-preview"
|
|
3941
|
+
},
|
|
3942
|
+
{
|
|
3943
|
+
equals: "gpt-4o-search-preview-2025-03-11"
|
|
3944
|
+
}
|
|
3945
|
+
]
|
|
3755
3946
|
},
|
|
3756
3947
|
prices: {
|
|
3757
3948
|
input_mtok: 2.5,
|
|
3758
3949
|
output_mtok: 10
|
|
3759
3950
|
}
|
|
3760
3951
|
},
|
|
3952
|
+
{
|
|
3953
|
+
id: "gpt-4o-transcribe",
|
|
3954
|
+
match: {
|
|
3955
|
+
or: [
|
|
3956
|
+
{
|
|
3957
|
+
equals: "gpt-4o-transcribe"
|
|
3958
|
+
},
|
|
3959
|
+
{
|
|
3960
|
+
equals: "gpt-4o-transcribe-diarize"
|
|
3961
|
+
}
|
|
3962
|
+
]
|
|
3963
|
+
},
|
|
3964
|
+
prices: {
|
|
3965
|
+
input_mtok: 2.5,
|
|
3966
|
+
output_mtok: 10,
|
|
3967
|
+
input_audio_mtok: 6
|
|
3968
|
+
}
|
|
3969
|
+
},
|
|
3761
3970
|
{
|
|
3762
3971
|
id: "gpt-4o:extended",
|
|
3763
3972
|
name: "GPT-4o (extended)",
|
|
@@ -3787,6 +3996,9 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3787
3996
|
},
|
|
3788
3997
|
{
|
|
3789
3998
|
equals: "gpt-5-chat-latest"
|
|
3999
|
+
},
|
|
4000
|
+
{
|
|
4001
|
+
equals: "gpt-5-codex"
|
|
3790
4002
|
}
|
|
3791
4003
|
]
|
|
3792
4004
|
},
|
|
@@ -3797,6 +4009,30 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3797
4009
|
output_mtok: 10
|
|
3798
4010
|
}
|
|
3799
4011
|
},
|
|
4012
|
+
{
|
|
4013
|
+
id: "gpt-5-image",
|
|
4014
|
+
match: {
|
|
4015
|
+
equals: "gpt-5-image"
|
|
4016
|
+
},
|
|
4017
|
+
price_comments: "Seen on OpenRouter before OpenAI",
|
|
4018
|
+
prices: {
|
|
4019
|
+
input_mtok: 10,
|
|
4020
|
+
cache_read_mtok: 1.25,
|
|
4021
|
+
output_mtok: 10
|
|
4022
|
+
}
|
|
4023
|
+
},
|
|
4024
|
+
{
|
|
4025
|
+
id: "gpt-5-image-mini",
|
|
4026
|
+
match: {
|
|
4027
|
+
equals: "gpt-5-image-mini"
|
|
4028
|
+
},
|
|
4029
|
+
price_comments: "Seen on OpenRouter before OpenAI",
|
|
4030
|
+
prices: {
|
|
4031
|
+
input_mtok: 2.5,
|
|
4032
|
+
cache_read_mtok: 0.25,
|
|
4033
|
+
output_mtok: 2
|
|
4034
|
+
}
|
|
4035
|
+
},
|
|
3800
4036
|
{
|
|
3801
4037
|
id: "gpt-5-mini",
|
|
3802
4038
|
name: "GPT-5 mini",
|
|
@@ -3839,6 +4075,68 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3839
4075
|
output_mtok: 0.4
|
|
3840
4076
|
}
|
|
3841
4077
|
},
|
|
4078
|
+
{
|
|
4079
|
+
id: "gpt-5-pro",
|
|
4080
|
+
match: {
|
|
4081
|
+
or: [
|
|
4082
|
+
{
|
|
4083
|
+
equals: "gpt-5-pro"
|
|
4084
|
+
},
|
|
4085
|
+
{
|
|
4086
|
+
equals: "gpt-5-pro-2025-10-06"
|
|
4087
|
+
}
|
|
4088
|
+
]
|
|
4089
|
+
},
|
|
4090
|
+
prices: {
|
|
4091
|
+
input_mtok: 15,
|
|
4092
|
+
output_mtok: 120
|
|
4093
|
+
}
|
|
4094
|
+
},
|
|
4095
|
+
{
|
|
4096
|
+
id: "gpt-realtime",
|
|
4097
|
+
match: {
|
|
4098
|
+
or: [
|
|
4099
|
+
{
|
|
4100
|
+
equals: "gpt-realtime"
|
|
4101
|
+
},
|
|
4102
|
+
{
|
|
4103
|
+
equals: "gpt-realtime-2025-08-28"
|
|
4104
|
+
}
|
|
4105
|
+
]
|
|
4106
|
+
},
|
|
4107
|
+
price_comments: "Missing image token prices which we don't support yet",
|
|
4108
|
+
prices: {
|
|
4109
|
+
input_mtok: 4,
|
|
4110
|
+
cache_read_mtok: 0.4,
|
|
4111
|
+
output_mtok: 16,
|
|
4112
|
+
input_audio_mtok: 32,
|
|
4113
|
+
cache_audio_read_mtok: 0.4,
|
|
4114
|
+
output_audio_mtok: 64
|
|
4115
|
+
}
|
|
4116
|
+
},
|
|
4117
|
+
{
|
|
4118
|
+
id: "gpt-realtime-mini",
|
|
4119
|
+
match: {
|
|
4120
|
+
equals: "gpt-realtime-mini"
|
|
4121
|
+
},
|
|
4122
|
+
price_comments: "Missing image token prices which we don't support yet",
|
|
4123
|
+
prices: {
|
|
4124
|
+
input_mtok: 0.6,
|
|
4125
|
+
cache_read_mtok: 0.06,
|
|
4126
|
+
output_mtok: 2.4,
|
|
4127
|
+
input_audio_mtok: 10,
|
|
4128
|
+
cache_audio_read_mtok: 0.3,
|
|
4129
|
+
output_audio_mtok: 20
|
|
4130
|
+
}
|
|
4131
|
+
},
|
|
4132
|
+
{
|
|
4133
|
+
id: "moderation",
|
|
4134
|
+
description: "All OpenAI moderation models and endpoints are free of charge",
|
|
4135
|
+
match: {
|
|
4136
|
+
contains: "moderation"
|
|
4137
|
+
},
|
|
4138
|
+
prices: {}
|
|
4139
|
+
},
|
|
3842
4140
|
{
|
|
3843
4141
|
id: "o1",
|
|
3844
4142
|
name: "o1",
|
|
@@ -3892,7 +4190,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3892
4190
|
name: "o1-pro",
|
|
3893
4191
|
description: "The o1 series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o1-pro model uses more compute to think harder and provide consistently better answers.",
|
|
3894
4192
|
match: {
|
|
3895
|
-
|
|
4193
|
+
or: [
|
|
4194
|
+
{
|
|
4195
|
+
equals: "o1-pro"
|
|
4196
|
+
},
|
|
4197
|
+
{
|
|
4198
|
+
equals: "o1-pro-2025-03-19"
|
|
4199
|
+
}
|
|
4200
|
+
]
|
|
3896
4201
|
},
|
|
3897
4202
|
prices: {
|
|
3898
4203
|
input_mtok: 150,
|
|
@@ -3934,6 +4239,24 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3934
4239
|
}
|
|
3935
4240
|
]
|
|
3936
4241
|
},
|
|
4242
|
+
{
|
|
4243
|
+
id: "o3-deep-research",
|
|
4244
|
+
match: {
|
|
4245
|
+
or: [
|
|
4246
|
+
{
|
|
4247
|
+
equals: "o3-deep-research"
|
|
4248
|
+
},
|
|
4249
|
+
{
|
|
4250
|
+
equals: "o3-deep-research-2025-06-26"
|
|
4251
|
+
}
|
|
4252
|
+
]
|
|
4253
|
+
},
|
|
4254
|
+
prices: {
|
|
4255
|
+
input_mtok: 10,
|
|
4256
|
+
cache_read_mtok: 2.5,
|
|
4257
|
+
output_mtok: 40
|
|
4258
|
+
}
|
|
4259
|
+
},
|
|
3937
4260
|
{
|
|
3938
4261
|
id: "o3-mini",
|
|
3939
4262
|
name: "o3 Mini",
|
|
@@ -3962,7 +4285,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3962
4285
|
name: "o3 Pro",
|
|
3963
4286
|
description: "The o-series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o3-pro model uses more compute to think harder and provide consistently better answers.",
|
|
3964
4287
|
match: {
|
|
3965
|
-
|
|
4288
|
+
or: [
|
|
4289
|
+
{
|
|
4290
|
+
equals: "o3-pro"
|
|
4291
|
+
},
|
|
4292
|
+
{
|
|
4293
|
+
equals: "o3-pro-2025-06-10"
|
|
4294
|
+
}
|
|
4295
|
+
]
|
|
3966
4296
|
},
|
|
3967
4297
|
prices: {
|
|
3968
4298
|
input_mtok: 20,
|
|
@@ -3975,9 +4305,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3975
4305
|
description: "OpenAI o4-mini-high is the same model as o4-mini with reasoning_effort set to high.",
|
|
3976
4306
|
match: {
|
|
3977
4307
|
or: [
|
|
3978
|
-
{
|
|
3979
|
-
starts_with: "o4-mini"
|
|
3980
|
-
},
|
|
3981
4308
|
{
|
|
3982
4309
|
equals: "o4-mini-2025-04-16"
|
|
3983
4310
|
},
|
|
@@ -3995,6 +4322,24 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3995
4322
|
output_mtok: 4.4
|
|
3996
4323
|
}
|
|
3997
4324
|
},
|
|
4325
|
+
{
|
|
4326
|
+
id: "o4-mini-deep-research",
|
|
4327
|
+
match: {
|
|
4328
|
+
or: [
|
|
4329
|
+
{
|
|
4330
|
+
equals: "o4-mini-deep-research"
|
|
4331
|
+
},
|
|
4332
|
+
{
|
|
4333
|
+
equals: "o4-mini-deep-research-2025-06-26"
|
|
4334
|
+
}
|
|
4335
|
+
]
|
|
4336
|
+
},
|
|
4337
|
+
prices: {
|
|
4338
|
+
input_mtok: 2,
|
|
4339
|
+
cache_read_mtok: 0.5,
|
|
4340
|
+
output_mtok: 8
|
|
4341
|
+
}
|
|
4342
|
+
},
|
|
3998
4343
|
{
|
|
3999
4344
|
id: "text-davinci-002",
|
|
4000
4345
|
match: {
|
|
@@ -5183,6 +5528,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
5183
5528
|
},
|
|
5184
5529
|
prices: {}
|
|
5185
5530
|
},
|
|
5531
|
+
{
|
|
5532
|
+
id: "deepseek-v3.1-terminus",
|
|
5533
|
+
name: "DeepSeek V3.1 Terminus",
|
|
5534
|
+
match: {
|
|
5535
|
+
equals: "deepseek-v3.1-terminus"
|
|
5536
|
+
},
|
|
5537
|
+
context_window: 163840,
|
|
5538
|
+
prices: {
|
|
5539
|
+
input_mtok: 0.23,
|
|
5540
|
+
output_mtok: 0.9
|
|
5541
|
+
}
|
|
5542
|
+
},
|
|
5186
5543
|
{
|
|
5187
5544
|
id: "deepseek/deepseek-chat",
|
|
5188
5545
|
match: {
|
|
@@ -5210,6 +5567,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
5210
5567
|
},
|
|
5211
5568
|
prices: {}
|
|
5212
5569
|
},
|
|
5570
|
+
{
|
|
5571
|
+
id: "deepseek/deepseek-chat-v3.1",
|
|
5572
|
+
name: "DeepSeek Chat V3.1",
|
|
5573
|
+
match: {
|
|
5574
|
+
equals: "deepseek/deepseek-chat-v3.1"
|
|
5575
|
+
},
|
|
5576
|
+
context_window: 163840,
|
|
5577
|
+
prices: {
|
|
5578
|
+
input_mtok: 0.2,
|
|
5579
|
+
output_mtok: 0.8
|
|
5580
|
+
}
|
|
5581
|
+
},
|
|
5213
5582
|
{
|
|
5214
5583
|
id: "deepseek/deepseek-chat:free",
|
|
5215
5584
|
match: {
|
|
@@ -5319,6 +5688,17 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
5319
5688
|
},
|
|
5320
5689
|
prices: {}
|
|
5321
5690
|
},
|
|
5691
|
+
{
|
|
5692
|
+
id: "deepseek/deepseek-v3.2-exp",
|
|
5693
|
+
name: "DeepSeek V3.2 Experimental",
|
|
5694
|
+
match: {
|
|
5695
|
+
equals: "deepseek/deepseek-v3.2-exp"
|
|
5696
|
+
},
|
|
5697
|
+
prices: {
|
|
5698
|
+
input_mtok: 0.27,
|
|
5699
|
+
output_mtok: 0.4
|
|
5700
|
+
}
|
|
5701
|
+
},
|
|
5322
5702
|
{
|
|
5323
5703
|
id: "devstral-small",
|
|
5324
5704
|
name: "Devstral Small",
|
|
@@ -10013,6 +10393,28 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
10013
10393
|
input_mtok: 3,
|
|
10014
10394
|
output_mtok: 3
|
|
10015
10395
|
}
|
|
10396
|
+
},
|
|
10397
|
+
{
|
|
10398
|
+
id: "z-ai/glm-4.5",
|
|
10399
|
+
match: {
|
|
10400
|
+
equals: "z-ai/glm-4.5"
|
|
10401
|
+
},
|
|
10402
|
+
context_window: 131072,
|
|
10403
|
+
prices: {
|
|
10404
|
+
input_mtok: 0.35,
|
|
10405
|
+
output_mtok: 1.55
|
|
10406
|
+
}
|
|
10407
|
+
},
|
|
10408
|
+
{
|
|
10409
|
+
id: "z-ai/glm-4.6",
|
|
10410
|
+
match: {
|
|
10411
|
+
equals: "z-ai/glm-4.6"
|
|
10412
|
+
},
|
|
10413
|
+
context_window: 202752,
|
|
10414
|
+
prices: {
|
|
10415
|
+
input_mtok: 0.4,
|
|
10416
|
+
output_mtok: 1.75
|
|
10417
|
+
}
|
|
10016
10418
|
}
|
|
10017
10419
|
]
|
|
10018
10420
|
},
|
|
@@ -11143,7 +11545,7 @@ function M(t, e) {
|
|
|
11143
11545
|
}
|
|
11144
11546
|
return a;
|
|
11145
11547
|
}
|
|
11146
|
-
function
|
|
11548
|
+
function l(t, e, a) {
|
|
11147
11549
|
return t === void 0 || e === void 0 ? 0 : typeof t == "number" ? t * e / 1e6 : M(t, e);
|
|
11148
11550
|
}
|
|
11149
11551
|
function I(t, e) {
|
|
@@ -11155,14 +11557,14 @@ function I(t, e) {
|
|
|
11155
11557
|
let u = t.input_tokens ?? 0;
|
|
11156
11558
|
if (u -= o, u -= m, u -= n, u < 0)
|
|
11157
11559
|
throw new Error("Uncached text input tokens cannot be negative");
|
|
11158
|
-
let
|
|
11159
|
-
if (
|
|
11560
|
+
let p = o;
|
|
11561
|
+
if (p -= r, p < 0)
|
|
11160
11562
|
throw new Error("cache_audio_read_tokens cannot be greater than cache_read_tokens");
|
|
11161
|
-
a +=
|
|
11563
|
+
a += l(e.input_mtok, u), a += l(e.cache_read_mtok, p), a += l(e.cache_write_mtok, m), a += l(e.input_audio_mtok, n), a += l(e.cache_audio_read_mtok, r);
|
|
11162
11564
|
let k = t.output_tokens ?? 0;
|
|
11163
11565
|
if (k -= s, k < 0)
|
|
11164
11566
|
throw new Error("output_audio_tokens cannot be greater than output_tokens");
|
|
11165
|
-
i +=
|
|
11567
|
+
i += l(e.output_mtok, k), i += l(e.output_audio_mtok, t.output_audio_tokens);
|
|
11166
11568
|
let w = a + i;
|
|
11167
11569
|
return e.requests_kcount !== void 0 && (w += e.requests_kcount / 1e3), {
|
|
11168
11570
|
input_price: a,
|
|
@@ -11198,7 +11600,7 @@ function L(t, e) {
|
|
|
11198
11600
|
const a = e.toLowerCase().trim(), i = t.find((o) => o.id === a);
|
|
11199
11601
|
return i || t.find((o) => o.provider_match && h(o.provider_match, a));
|
|
11200
11602
|
}
|
|
11201
|
-
function
|
|
11603
|
+
function y(t, { modelId: e, providerApiUrl: a, providerId: i }) {
|
|
11202
11604
|
if (i)
|
|
11203
11605
|
return L(t, i);
|
|
11204
11606
|
if (a)
|
|
@@ -11229,9 +11631,9 @@ function N(t) {
|
|
|
11229
11631
|
function Q() {
|
|
11230
11632
|
return b;
|
|
11231
11633
|
}
|
|
11232
|
-
function
|
|
11634
|
+
function O(t, e, a) {
|
|
11233
11635
|
f?.();
|
|
11234
|
-
const i = e.toLowerCase().trim(), o = a?.provider ??
|
|
11636
|
+
const i = e.toLowerCase().trim(), o = a?.provider ?? y(g, { modelId: i, providerApiUrl: a?.providerApiUrl, providerId: a?.providerId });
|
|
11235
11637
|
if (!o) return null;
|
|
11236
11638
|
const m = T(o.models, i);
|
|
11237
11639
|
if (!m) return null;
|
|
@@ -11244,8 +11646,8 @@ function E(t, e, a) {
|
|
|
11244
11646
|
...n
|
|
11245
11647
|
};
|
|
11246
11648
|
}
|
|
11247
|
-
function
|
|
11248
|
-
return f?.(),
|
|
11649
|
+
function E(t) {
|
|
11650
|
+
return f?.(), y(g, t);
|
|
11249
11651
|
}
|
|
11250
11652
|
function D(t, e, a) {
|
|
11251
11653
|
if (a = a ?? "default", !t.extractors)
|
|
@@ -11257,12 +11659,12 @@ function D(t, e, a) {
|
|
|
11257
11659
|
}
|
|
11258
11660
|
if (!_.guard(e))
|
|
11259
11661
|
throw new Error(`Expected response data to be a mapping object, got ${c(e)}`);
|
|
11260
|
-
const o = q(i.model_path, e, C, !1, []), m =
|
|
11662
|
+
const o = q(i.model_path, e, C, !1, []), m = B(i.root), r = q(m, e, _, !0, []), s = {};
|
|
11261
11663
|
for (const n of i.mappings) {
|
|
11262
11664
|
const u = q(n.path, r, z, n.required, m);
|
|
11263
11665
|
if (u !== null) {
|
|
11264
|
-
const
|
|
11265
|
-
s[n.dest] =
|
|
11666
|
+
const p = s[n.dest] ?? 0;
|
|
11667
|
+
s[n.dest] = p + u;
|
|
11266
11668
|
}
|
|
11267
11669
|
}
|
|
11268
11670
|
if (!Object.keys(s).length)
|
|
@@ -11270,23 +11672,23 @@ function D(t, e, a) {
|
|
|
11270
11672
|
return { model: o, usage: s };
|
|
11271
11673
|
}
|
|
11272
11674
|
function q(t, e, a, i, o) {
|
|
11273
|
-
const [m, ...r] =
|
|
11675
|
+
const [m, ...r] = B(t).reverse();
|
|
11274
11676
|
if (typeof m != "string")
|
|
11275
11677
|
throw new Error(`Expected last step of path to be a string, got ${c(m)}`);
|
|
11276
11678
|
r.reverse();
|
|
11277
11679
|
let s = e;
|
|
11278
11680
|
const n = [];
|
|
11279
|
-
for (const
|
|
11280
|
-
if (n.push(
|
|
11681
|
+
for (const p of r) {
|
|
11682
|
+
if (n.push(p), typeof p == "object")
|
|
11281
11683
|
if (Array.isArray(s))
|
|
11282
|
-
s = R(
|
|
11684
|
+
s = R(p, s);
|
|
11283
11685
|
else {
|
|
11284
11686
|
if (i)
|
|
11285
11687
|
throw new Error(`Expected \`${d(o, n)}\` value to be a mapping, got ${c(s)}`);
|
|
11286
11688
|
return null;
|
|
11287
11689
|
}
|
|
11288
11690
|
else if (_.guard(s))
|
|
11289
|
-
s = s[
|
|
11691
|
+
s = s[p];
|
|
11290
11692
|
else {
|
|
11291
11693
|
if (i)
|
|
11292
11694
|
throw new Error(`Expected \`${d(o, n)}\` value to be a mapping, got ${c(s)}`);
|
|
@@ -11294,7 +11696,7 @@ function q(t, e, a, i, o) {
|
|
|
11294
11696
|
}
|
|
11295
11697
|
if (typeof s > "u")
|
|
11296
11698
|
if (i) {
|
|
11297
|
-
const k = typeof
|
|
11699
|
+
const k = typeof p == "object" ? "Unable to find item" : "Missing value";
|
|
11298
11700
|
throw new Error(`${k} at \`${d(o, n)}\``);
|
|
11299
11701
|
} else
|
|
11300
11702
|
return null;
|
|
@@ -11324,7 +11726,7 @@ function R(t, e) {
|
|
|
11324
11726
|
return a;
|
|
11325
11727
|
}
|
|
11326
11728
|
}
|
|
11327
|
-
function
|
|
11729
|
+
function B(t) {
|
|
11328
11730
|
return Array.isArray(t) ? [...t] : [t];
|
|
11329
11731
|
}
|
|
11330
11732
|
function c(t) {
|
|
@@ -11342,9 +11744,9 @@ const _ = {
|
|
|
11342
11744
|
}, d = (t, e) => [...t.map(v), ...e.map(v)].join("."), v = (t) => typeof t == "string" ? t : JSON.stringify(t);
|
|
11343
11745
|
export {
|
|
11344
11746
|
G as REMOTE_DATA_JSON_URL,
|
|
11345
|
-
|
|
11747
|
+
O as calcPrice,
|
|
11346
11748
|
D as extractUsage,
|
|
11347
|
-
|
|
11749
|
+
E as findProvider,
|
|
11348
11750
|
N as updatePrices,
|
|
11349
11751
|
Q as waitForUpdate
|
|
11350
11752
|
};
|