chore: 🐝 Update SDK - Generate (spec change merged) 0.11.7 (#402)

Co-authored-by: speakeasybot <bot@speakeasyapi.dev>
Co-authored-by: speakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
This commit is contained in:
github-actions[bot]
2026-07-07 21:50:31 +00:00
committed by GitHub
co-authored by speakeasybot speakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
parent 2c673c0ca3
commit d81cd563db
41 changed files with 1163 additions and 147 deletions
+105 -52
View File
@@ -1,19 +1,19 @@
lockVersion: 2.0.0
id: c48cf606-fb42-4a45-9c23-8f0555307828
management:
docChecksum: b2ef6dae450677f07521afea7e283080
docChecksum: 22a237d7f82bd54b7962d414a7957cab
docVersion: 1.0.0
speakeasyVersion: 1.787.0
generationVersion: 2.914.0
releaseVersion: 0.11.6
configChecksum: cee05e5b61926388f1b13343d3324556
releaseVersion: 0.11.7
configChecksum: c93a3c0cf8d2ef872726ed600df77d93
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
published: true
persistentEdits:
generation_id: 1b9e2976-5e47-49bf-808c-135c466df479
pristine_commit_hash: 893fb9bbf7f62d287ba9846d1bb62c5d9b977ab2
pristine_tree_hash: 1541b6273a8dd9ad55e99f64a898845c555a84b6
generation_id: 83866999-be04-4ad2-861f-5cffd5108efe
pristine_commit_hash: db0868c88c2da5c28ffb08cad3a18c4693828be5
pristine_tree_hash: 68d039d8cfa62fa2c70a096a924d2cd1823467f2
features:
python:
acceptHeaders: 3.0.0
@@ -4056,10 +4056,6 @@ trackedFiles:
id: 9b8deacad550
last_write_checksum: sha1:2ca93510828412e375f9903be2c92bcefbacd177
pristine_git_object: 29709effcd49176f32b4b99f9a37ed1309231549
docs/components/responseformatenum.mdx:
id: 60f6138df415
last_write_checksum: sha1:b3d58b45db884f8b051be834701ee3166bfb13cc
pristine_git_object: 0b7c4b07a2162050d564e6947d060d1b22241817
docs/components/responsehealingplugin.mdx:
id: 5bf9b8008e95
last_write_checksum: sha1:1aa7dc7146a93a215d275571233ee63902a6e155
@@ -4242,12 +4238,16 @@ trackedFiles:
pristine_git_object: 5d617cac37f7b364f4dd0640246e97c34351d824
docs/components/speechrequest.mdx:
id: 06e81b0433f6
last_write_checksum: sha1:0c8b9aae49356145aa960740cd88e620b511ec6c
pristine_git_object: e984d1fcbbc242679fbd51f142bd9de711833a50
last_write_checksum: sha1:f56d694567b45d6656c3bf4e84a19283d526014c
pristine_git_object: b16289c3fc9ba1db2880a5e3e6de9b747e2acdb8
docs/components/speechrequestprovider.mdx:
id: 4f78ed0394c4
last_write_checksum: sha1:99d94c6b01dbd3e875c213584f97c7dca545a6a9
pristine_git_object: 3a95d19f4a88dbd0c96cec7cf53d9264927a3c0d
docs/components/speechrequestresponseformat.mdx:
id: bd09f77a4a90
last_write_checksum: sha1:1b87242f33c6d22a08dd085d0ef41335ec2e9b0c
pristine_git_object: 9af8a5aa6a7c26f353f552d369b87debb045b7cd
docs/components/speed.mdx:
id: 4fd1f2823924
last_write_checksum: sha1:c6815d115b55b9409052f9d1d1d16bb1d7197763
@@ -4366,20 +4366,36 @@ trackedFiles:
pristine_git_object: 70a2660b7c0bc35aed96124e1faa3852b3117054
docs/components/sttrequest.mdx:
id: 6a5e33cf6dbe
last_write_checksum: sha1:6fefcb5b5dd513388709f62acee929cde6bfb8ee
pristine_git_object: 198ca47de64cf983930c58cc618d3ef8c15d74a8
last_write_checksum: sha1:63f215311d23a63a59b65d2bc8d642005379730e
pristine_git_object: e81d9df15323bda23bdc67ac0703ca24e5a84175
docs/components/sttrequestprovider.mdx:
id: d8b1bac8e745
last_write_checksum: sha1:e15551eddbe4c1f7c4515fa556d4873075512eea
pristine_git_object: 5eebff082dc885ed94ec0e6ceed8446c2ca104ae
docs/components/sttrequestresponseformat.mdx:
id: ab58b1666609
last_write_checksum: sha1:f0cbf9b5b35d8ef8c049a3b84c47f6c43778a00a
pristine_git_object: d016021a79783dfa11b1110edc231f49f45df4d0
docs/components/sttresponse.mdx:
id: a421f69065a0
last_write_checksum: sha1:3bf5f6d14c6e2586808ee5a0db3cd911af03ff7c
pristine_git_object: 9a61014568868a1f08581e5b7580feddaf379f8c
last_write_checksum: sha1:438935b5dcb2fb9cf44c74fff733133937286bff
pristine_git_object: 5868e50f86df62aae9952c94f98ebb33570efff1
docs/components/sttsegment.mdx:
id: 7264ea9cdd57
last_write_checksum: sha1:8a4996d6a483fdeee0899f6656ed6e5d69a4e159
pristine_git_object: d0bcd9afe39262dd4297adb6fc618e984e1c209f
docs/components/stttimestampgranularity.mdx:
id: 2a365c57c3a1
last_write_checksum: sha1:5932b36c214d97201f0cce0d0787203fed2baf4e
pristine_git_object: 3505a518e362a11e06a3c098eb31de2718ee1c04
docs/components/sttusage.mdx:
id: 11bce3b257f6
last_write_checksum: sha1:a777bc390f180c1163612213633f2150a9566313
pristine_git_object: f0b56839c067ce29024888f689d379ed83f86ff4
docs/components/sttword.mdx:
id: 665227ec6052
last_write_checksum: sha1:e39fb80f3b8d02747142ab15631e4788810c366f
pristine_git_object: 994522a52060add3b501680d2be27546ded1dfe2
docs/components/subagentnestedtool.mdx:
id: 12547a9efd5f
last_write_checksum: sha1:9141ce608f42d2c53e89f0e8e108252227a7366f
@@ -5180,6 +5196,10 @@ trackedFiles:
id: 537b5f749941
last_write_checksum: sha1:49c12ecbb5dfd1da81be814c3e70baa9c249d432
pristine_git_object: 08e418f7bcf3cf8142171de78bedd0243bda6854
docs/operations/contextbucket.mdx:
id: 2ab0b419379e
last_write_checksum: sha1:f3bcb4a33fc0d7d868762b459a838d1fdca99d28
pristine_git_object: d24616128ffb2e8a3f1fc639235d8210dbeea107
docs/operations/costdetails.mdx:
id: a5015273e58c
last_write_checksum: sha1:90a330bfa37e208bcee6615af2ee7535c4416a26
@@ -5210,8 +5230,8 @@ trackedFiles:
pristine_git_object: b5031668ec1156a4157609e4812b7a3937b802a2
docs/operations/createaudiotranscriptionsmultipartrequestbody.mdx:
id: 0550cc56c73a
last_write_checksum: sha1:c377fd998af4c7cb2bae44e1a41c3bce02367a18
pristine_git_object: 70f754bbc14e7fe9754309837b419705c622dfb6
last_write_checksum: sha1:c15b1a62c475511e194d9a5b7b2ed240e369a4d1
pristine_git_object: 3054ebe9dc2b1c40dbac7a5b387a57a89c468bdc
docs/operations/createaudiotranscriptionsrequest.mdx:
id: 68a813383936
last_write_checksum: sha1:a3ad7e4691917927539d6c614788da7f4d6b4892
@@ -5708,14 +5728,18 @@ trackedFiles:
id: 970105a3a642
last_write_checksum: sha1:001bb931da274741dca567c87c4149c11c5e67d1
pristine_git_object: c7cf40110dc4a82e2d4abdd06e98d9a28637a016
docs/operations/getrankingsdailycategory.mdx:
id: 37dbd531ea7d
last_write_checksum: sha1:3c4ffc04da2558c3357a8759ba9984ea15b58db4
pristine_git_object: a81ff4b55f28b6a1456eee9665809305a68e7ee1
docs/operations/getrankingsdailyglobals.mdx:
id: 0f9fa155d24e
last_write_checksum: sha1:b3f58d600e4791419b37f4a8ec65869d59424f41
pristine_git_object: 4bc1a2bf9e75dc1eaca4e1531a49dfbbea0dfb72
docs/operations/getrankingsdailyrequest.mdx:
id: a83322d91eea
last_write_checksum: sha1:ee987639475df96010b6a2732ecf9c7b4cfd2472
pristine_git_object: 1788b942b41cb5afa8bebb28c0387c2cc0381d50
last_write_checksum: sha1:fd05c4e755a6ba4f6b41bb37856169ad1b14d927
pristine_git_object: 04784a9f4a05fa7d473b532d4e881a6d45a64a10
docs/operations/gettaskclassificationsglobals.mdx:
id: 14d0010b40f8
last_write_checksum: sha1:6c967e8855540035a6f70fa895ceea0c9caf1cdd
@@ -5772,6 +5796,10 @@ trackedFiles:
id: fa09ca81a05c
last_write_checksum: sha1:6126fc355e98574f157b9b485ac850a0ec6f2a5e
pristine_git_object: 2394952123e253a775bb81426d6ee2d49911e97b
docs/operations/languagetype.mdx:
id: fe52912b0ea7
last_write_checksum: sha1:85897c7620d5c3725f610a496f4ceb485b9f5063
pristine_git_object: 0d94d66d51eee4f9fc8d18fb42a32c91fb9c89ec
docs/operations/listbyokkeysglobals.mdx:
id: b77dfe46caab
last_write_checksum: sha1:203cef2704a0493a98ae74994baf54dd7789b998
@@ -6076,6 +6104,10 @@ trackedFiles:
id: 43ac1599200a
last_write_checksum: sha1:cfb8efa24bc87017aff709963270c9b414bc3483
pristine_git_object: a1b3a3e10a8fc5042c341319692cb2a643cdd9fe
docs/operations/modality.mdx:
id: b6e20b489278
last_write_checksum: sha1:7914d5e12a4b5a623f277722ae09e1e27d7d6a08
pristine_git_object: 63f8e9856e57d9736628dcd45b24b6c5646f4a35
docs/operations/object.mdx:
id: 6fa1fcf5620b
last_write_checksum: sha1:3727111f1223b76f5a9f21c89fba6c59ea31d428
@@ -6096,6 +6128,10 @@ trackedFiles:
id: 5465d93e546d
last_write_checksum: sha1:5f10a8fd8a9a7b55fc023e33bc9250f4d801af35
pristine_git_object: 91c6769e0026aa486c3fb4a6672c3691b2a997aa
docs/operations/period.mdx:
id: 038d66aa4fc1
last_write_checksum: sha1:f65e16f5901c128767ab047aaeb811430c2bce3e
pristine_git_object: a1fdee3160b2294a66e05f59cfd17382364c129c
docs/operations/prompttokensdetails.mdx:
id: 346b38e82e1c
last_write_checksum: sha1:ece0f5c30ccaef159981265b3ac57381289e86b3
@@ -6138,8 +6174,8 @@ trackedFiles:
pristine_git_object: 051bb4d1cdb3bdbcd87b29419a4a408f10bb1555
docs/operations/responseformat.mdx:
id: 363fb8a0ddd6
last_write_checksum: sha1:69ffb401451c435882706846f68465b58324f02f
pristine_git_object: 83b1634e4f243f00c539d436c9defb32eee0f466
last_write_checksum: sha1:ce7d9ba61f903de7446102d09d412e5813d77f1b
pristine_git_object: b7f772318bb3da788acb989aba6067371db53634
docs/operations/result.mdx:
id: b68db2e6b7af
last_write_checksum: sha1:3ca42544567f285e78aa012de25ac52b5d082314
@@ -6176,6 +6212,10 @@ trackedFiles:
id: 03a218211f06
last_write_checksum: sha1:3cdcfbfcdb71dcc17a0c3b4cd5704eac3718fa0f
pristine_git_object: dc194bad92caf2afd0759830559be89a8bafe5a4
docs/operations/timestampgranularities.mdx:
id: 6694d3af2ace
last_write_checksum: sha1:bc7319f009e4133e65cf476c1763b11fb6622ff9
pristine_git_object: c783ad06042f710374b4702b3b63030a32e52180
docs/operations/typeimageurl.mdx:
id: 66578c3ea6a5
last_write_checksum: sha1:e3275995c5351075e0c4082a161891cf710b8fdc
@@ -6322,8 +6362,8 @@ trackedFiles:
pristine_git_object: 414ae2830c58add7ad904cc9ffc5b46ed65058df
docs/sdks/datasets/README.mdx:
id: 15e5ab0183de
last_write_checksum: sha1:91e92cf17fa0a3a1729a8777bad701e69aeed404
pristine_git_object: 9cdcae1f6c83a4b1918d00c221f619978967f490
last_write_checksum: sha1:f716eecbda6e252e092fd559e4c68778b551d5c8
pristine_git_object: ef43241cee60a329848e01772031d3f97e0f0d30
docs/sdks/embeddings/README.mdx:
id: cd71581df291
last_write_checksum: sha1:627e1efaacb2a29cb97e9d184ead987d95008bed
@@ -6382,12 +6422,12 @@ trackedFiles:
pristine_git_object: 03281f8cf709ebb9a81700ade4cf9bc0db665eb6
docs/sdks/stt/README.mdx:
id: 190b0dc9a5d1
last_write_checksum: sha1:b07ff598e0d3cf542021bff66790ce97ceef6686
pristine_git_object: 4ca736501a4c14a79710585ab460ea224f95918d
last_write_checksum: sha1:a8e68ac2b0bb8640e01d962177b42ab47b24898b
pristine_git_object: 003f85994a515547fe80dcc316ccc19d81c5322d
docs/sdks/tts/README.mdx:
id: cd1132543884
last_write_checksum: sha1:8930237642313a1db6fdce5f7ea2b0680dc7c5ac
pristine_git_object: ece7fa92f85b1d8f702ecf2855f7267120d4efac
last_write_checksum: sha1:d28728db90dbab11f336d772b27544bb41ecceee
pristine_git_object: dca713aa3629e162924844de964be74e9b4ed081
docs/sdks/videogeneration/README.mdx:
id: 9a8fa04c3872
last_write_checksum: sha1:7d3c54cf2daa98e25df18bc27cc4ca30b2b1f03f
@@ -6402,8 +6442,8 @@ trackedFiles:
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
pyproject.toml:
id: 5d07e7d72637
last_write_checksum: sha1:3e14cbf5ff3840151bd6c7af58d44d62d4595384
pristine_git_object: 501f0c59631a591f0359664dd63643e9f2f27553
last_write_checksum: sha1:2ebe96d8a4d112652eb43405442cdd305b5527f2
pristine_git_object: 0ab0806b589bf64862fa7b0d06cbf2febee38379
scripts/prepare_readme.py:
id: e0c5957a6035
last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54
@@ -6430,8 +6470,8 @@ trackedFiles:
pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137
src/openrouter/_version.py:
id: d8d15ad6c586
last_write_checksum: sha1:227debe496eb6e581977ca65e0029cc6c638b46d
pristine_git_object: e8f04f546a8475289bce1c52654f0a09402a2dec
last_write_checksum: sha1:7811cd9984f7915aab91893aa048ae2fed9e51ec
pristine_git_object: 56b8833781310b3e7c300631cc0e0a66f97efc4f
src/openrouter/analytics.py:
id: cb406b5aaabb
last_write_checksum: sha1:9e709b71dd0611056dc0cec6150b578defe32841
@@ -6470,8 +6510,8 @@ trackedFiles:
pristine_git_object: ad3d247954547814054c01989a2dff3d12b3e4e1
src/openrouter/components/__init__.py:
id: 81754e97b3f4
last_write_checksum: sha1:fd8a64c71c4edc63a92eec32343fef06f743dd1b
pristine_git_object: 6e6304237012f2f5eaa9d96e5fde8ee13bc7096d
last_write_checksum: sha1:67dca4a903421d2bf39474047c5953b2c4432d70
pristine_git_object: 6fd499892576c4bff0ee51dc59e77b99ff239f7f
src/openrouter/components/aabenchmarkentry.py:
id: e2e0f0b48c82
last_write_checksum: sha1:fab4d9a24d2cea937bb749d46c5f83941e99d65c
@@ -8274,8 +8314,8 @@ trackedFiles:
pristine_git_object: 418953ba7366a6015934bf8795178d79adb03b89
src/openrouter/components/speechrequest.py:
id: 2a9400167112
last_write_checksum: sha1:110111aca3452c99b2c8ae365956737d935ae5ba
pristine_git_object: cb7e1b2a4626b9424b4c4c564a084d1ad2f15b3d
last_write_checksum: sha1:c91c94e2cf165ea7fd12b8001094c537c8858c9c
pristine_git_object: f903339eaa5c31fa00f7aad4150d61dea0737dad
src/openrouter/components/stopservertoolswhencondition.py:
id: 2deeda4209ac
last_write_checksum: sha1:581e0ee62776d42bf598b9f68b998faabfecd3ce
@@ -8342,16 +8382,28 @@ trackedFiles:
pristine_git_object: 76c4b466e22e57b34098b587e95cb358089dd87c
src/openrouter/components/sttrequest.py:
id: 5fb1d469e16e
last_write_checksum: sha1:04621e286373ed7b188a3c171f83c93cb89c67f1
pristine_git_object: d5497b98e6de245a4839b80079bf673be05d70ae
last_write_checksum: sha1:2944becda4acc11da95aff5cfb967544b8b15d0a
pristine_git_object: ce7ba259743cba658a3e23c2ea212d0fcaf34ebf
src/openrouter/components/sttresponse.py:
id: 2dc8eb8daaca
last_write_checksum: sha1:31cb20245662006e6459e662152c80e97778d77f
pristine_git_object: 19ff065a62373dfe9e0c97842d4ee173a175f5b6
last_write_checksum: sha1:36aff8c075a27f036d34f3970031a26aad99f804
pristine_git_object: 61daeb24ef51df79db5fa62329f8d15d81d729d9
src/openrouter/components/sttsegment.py:
id: f3439539736c
last_write_checksum: sha1:be08482dc37814ed812250622b4ecb346b31787a
pristine_git_object: 471a0806203bea27421e0681e4b48cda9ce23220
src/openrouter/components/stttimestampgranularity.py:
id: d6f8b068026d
last_write_checksum: sha1:9d1aff48024b9ab1446a05784f9aeb33aebdcee4
pristine_git_object: 30edd2ffd22cad78e4950c8751b8de3314909250
src/openrouter/components/sttusage.py:
id: abe8329af787
last_write_checksum: sha1:4b7b79be71c2d1e392aef738a37d2d75f0bb29c4
pristine_git_object: 1feb5db4da1422d55744c5a4bb10eabda6c50c4f
src/openrouter/components/sttword.py:
id: b46ff7c5fa20
last_write_checksum: sha1:69fc17c2b943ace9486b782f7250579ba8d454b0
pristine_git_object: 020dd01249eb982b0e94f0c19748badf5287a31a
src/openrouter/components/subagentnestedtool.py:
id: 911a465973a0
last_write_checksum: sha1:beb2209144b032e109c4afe33f440728423d7594
@@ -8614,8 +8666,8 @@ trackedFiles:
pristine_git_object: 791cdeba11d6c5e9e9381760fd8cd8ca86233b22
src/openrouter/datasets.py:
id: 2378f80d1d6a
last_write_checksum: sha1:a2941625198705ff1585bb7e8ae7ba5c110d43e9
pristine_git_object: 04200589b12afe8bf67a158b99c7b9c11e4dab5c
last_write_checksum: sha1:bcbf0eef58b4f26fc01ddd28c568fc361ccf8919
pristine_git_object: 3d9437c8ce1bdc83d3703c4374cf10b1bcae5d71
src/openrouter/embeddings.py:
id: 0374ace39067
last_write_checksum: sha1:bdfaf3f9ffa1e337c0cc62b5a956a53c7863f24d
@@ -8750,8 +8802,8 @@ trackedFiles:
pristine_git_object: a1dea9b45650cc42a6f60447c032fa46b102839a
src/openrouter/operations/__init__.py:
id: 9afcea1e7161
last_write_checksum: sha1:86fa5bd8f963caf8257ef28d618202fdb56e0b8f
pristine_git_object: 737838dfcd39c8a590ca5058aeffb8fe85311665
last_write_checksum: sha1:46a3dfac25ac1c3d774e37ec8df54f9ba9851e46
pristine_git_object: ab9fa9e4793e73671cc752005123a482b51b506f
src/openrouter/operations/bulkaddworkspacemembers.py:
id: e0ed56117619
last_write_checksum: sha1:5c44eb0d40fdece3ac084615f6c6082be4cf1d5a
@@ -8786,8 +8838,8 @@ trackedFiles:
pristine_git_object: 4e8414f223370bff1e4f060919f36f70da6ec40c
src/openrouter/operations/createaudiotranscriptions_multipart.py:
id: da07d463225a
last_write_checksum: sha1:340621e278cff6ac1537e4d7e3b2c116a4193ee8
pristine_git_object: 2697d1e94c6a76e751575bc6f6f626f3e3149f3d
last_write_checksum: sha1:a267131b5e9d8803f51431bbbc96a29484e97f0b
pristine_git_object: ff5459ee49af5fabed9c5e9a68979b923a7c4e9b
src/openrouter/operations/createauthkeyscode.py:
id: 4253a437de22
last_write_checksum: sha1:874492b64266fcdc5a7f3cd988d71326b7796a5c
@@ -8942,8 +8994,8 @@ trackedFiles:
pristine_git_object: cbcc9abe2ab38d7e7bd3cbc79acfda4da6b630e0
src/openrouter/operations/getrankingsdaily.py:
id: 61dd0325de08
last_write_checksum: sha1:a5953f86dfb31e77024412d02cc56b7a485fdb76
pristine_git_object: efa494faf3208ec621c97b156196a27b1c61b018
last_write_checksum: sha1:352d2aeaebf68140c78343f31cc8ba344dc3d9ae
pristine_git_object: fb9267c75f1e40b75ad22f313c3c1028f026f657
src/openrouter/operations/gettaskclassifications.py:
id: ba6156d68acf
last_write_checksum: sha1:c569572d21aa766ac542d5c535208e8b1caae503
@@ -9134,12 +9186,12 @@ trackedFiles:
pristine_git_object: 26433165a0b1c25d7bd3115b9b129b18f2dc9387
src/openrouter/stt.py:
id: fc0c2f669423
last_write_checksum: sha1:d9821e49378f4ceba290fcfd17f7c9b68311fecc
pristine_git_object: b5895f3b688cde2b19bcef498e4992761bbdd58d
last_write_checksum: sha1:22247925e3c44234947eadbd409603292d4f9efe
pristine_git_object: 4bcc6d0314a17f48bc9735e2720e5b0b5f4bca22
src/openrouter/tts.py:
id: 5055d4b95f1d
last_write_checksum: sha1:727a19a0df768153cbe2d8351394a2e254f680ea
pristine_git_object: 68ae54d07c464e69738c16bebf77d06d0d7f2141
last_write_checksum: sha1:1561bf5c436e6912dfde6bfec7516aa85e24db9c
pristine_git_object: 5ccc4b9bad1c3db1c901d7df2d7f8d7e2d12df57
src/openrouter/types/__init__.py:
id: 5eab536205b7
last_write_checksum: sha1:f9ad14217f832e74f594285960125add50324be9
@@ -10706,3 +10758,4 @@ examples:
"500":
application/json: {"error": {"code": 500, "message": "Internal Server Error"}}
examplesVersion: 1.0.2
releaseNotes: "## Python SDK Changes:\n* `open_router.stt.create_transcription()`: \n * `request` **Changed**\n * `response` **Changed**\n* `open_router.stt.create_transcription_multipart()`: \n * `request` **Changed**\n * `response` **Changed**\n* `open_router.datasets.get_rankings_daily()`: `request` **Changed**\n"
+1 -1
View File
@@ -36,7 +36,7 @@ generation:
documentation: mintlify
preApplyUnionDiscriminators: true
python:
version: 0.11.6
version: 0.11.7
additionalDependencies:
dev: {}
main: {}
+248 -1
View File
@@ -20687,11 +20687,28 @@ components:
options:
$ref: '#/components/schemas/ProviderOptions'
type: object
response_format:
description: >-
Output format. "json" (default) returns { text, usage }. "verbose_json" additionally returns task, language, duration, and segment-level timestamps; only supported by OpenAI-compatible providers.
enum:
- json
- verbose_json
example: json
type: string
x-speakeasy-unknown-values: allow
temperature:
description: Sampling temperature for transcription
example: 0
format: double
type: number
timestamp_granularities:
description: >-
Timestamp detail levels to include when response_format is "verbose_json". "segment" returns segment-level timestamps; "word" additionally returns word-level timestamps in the words array. Ignored unless response_format is "verbose_json".
example:
- segment
items:
$ref: '#/components/schemas/STTTimestampGranularity'
type: array
required:
- model
- input_audio
@@ -20707,6 +20724,24 @@ components:
seconds: 9.2
total_tokens: 113
properties:
duration:
description: Duration of the input audio in seconds, present when response_format is verbose_json
example: 9.2
format: double
type: number
language:
description: Detected or forced language, present when response_format is verbose_json
example: english
type: string
segments:
description: Timestamped transcript segments, present when response_format is verbose_json
items:
$ref: '#/components/schemas/STTSegment'
type: array
task:
description: The task performed, present when response_format is verbose_json
example: transcribe
type: string
text:
description: The transcribed text
example: >-
@@ -20714,9 +20749,88 @@ components:
type: string
usage:
$ref: '#/components/schemas/STTUsage'
words:
description: Timestamped words, present when the provider returns word-level timestamps
items:
$ref: '#/components/schemas/STTWord'
type: array
required:
- text
type: object
STTSegment:
description: A timestamped transcript segment, returned when response_format is verbose_json
example:
avg_logprob: -0.28
compression_ratio: 1.13
end: 3.2
id: 0
no_speech_prob: 0.01
seek: 0
start: 0
temperature: 0
text: Hello there.
tokens:
- 50364
- 2425
- 456
properties:
avg_logprob:
description: Average log probability of the segment
format: double
type: number
compression_ratio:
description: Compression ratio of the segment
format: double
type: number
end:
description: Segment end time in seconds
example: 3.2
format: double
type: number
id:
description: Segment index within the transcript
example: 0
type: integer
no_speech_prob:
description: Probability the segment contains no speech
format: double
type: number
seek:
description: Seek offset of the segment
example: 0
type: integer
start:
description: Segment start time in seconds
example: 0
format: double
type: number
temperature:
description: Temperature used for the segment
format: double
type: number
text:
description: Transcribed text of the segment
example: Hello there.
type: string
tokens:
description: Token IDs of the segment
items:
type: integer
type: array
required:
- id
- start
- end
- text
type: object
STTTimestampGranularity:
description: A timestamp detail level for verbose_json transcription responses.
enum:
- word
- segment
example: word
type: string
x-speakeasy-unknown-values: allow
STTUsage:
description: Aggregated usage statistics for the request
example:
@@ -20749,6 +20863,32 @@ components:
example: 113
type: integer
type: object
STTWord:
description: A timestamped word, returned when the provider includes word-level timestamps
example:
end: 0.4
start: 0
word: Hello
properties:
end:
description: Word end time in seconds
example: 0.4
format: double
type: number
start:
description: Word start time in seconds
example: 0
format: double
type: number
word:
description: The transcribed word
example: Hello
type: string
required:
- word
- start
- end
type: object
SubagentNestedTool:
additionalProperties:
nullable: true
@@ -23747,13 +23887,26 @@ paths:
description: The model to use for transcription.
type: string
response_format:
description: The response format. Only "json" is supported.
description: >-
The response format. "json" (default) returns { text, usage }; "verbose_json" additionally returns task, language, duration, and segment-level timestamps (OpenAI-compatible providers only).
enum:
- json
- verbose_json
type: string
x-speakeasy-unknown-values: allow
temperature:
description: The sampling temperature.
type: number
timestamp_granularities[]:
description: >-
Timestamp detail levels to include when response_format is "verbose_json". "word" additionally returns word-level timestamps in the words array.
items:
enum:
- word
- segment
type: string
x-speakeasy-unknown-values: allow
type: array
required:
- file
- model
@@ -25507,6 +25660,13 @@ paths:
reserved permaslug `other` and is always returned last within its date, so callers
can compute `top-50 traffic / total daily traffic` without a second request.
Optional filters slice the dataset. `period` (`day`/`week`/`month`) sets the time
grain. `modality` and `context_bucket` narrow the exact dataset by output/input
modality (or tool-calling activity) and request context length. `category` and
`language_type` instead read a sampled, upsampled dataset whose `total_tokens` are
weekly-grain estimates — they cannot be combined with each other or with the exact
filters, and reject `period=day` with a 400.
Authenticate with any valid OpenRouter API key (same key used for inference).
Rate-limited to 30 requests/minute per key and 500 requests/day per account.
@@ -25541,6 +25701,93 @@ paths:
example: '2026-05-11'
pattern: ^\d{4}-\d{2}-\d{2}$
type: string
- description: >-
Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries.
in: query
name: period
required: false
schema:
description: >-
Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries.
enum:
- day
- week
- month
example: day
type: string
x-speakeasy-unknown-values: allow
- description: >-
Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`.
in: query
name: modality
required: false
schema:
description: >-
Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`.
enum:
- text
- image
- image_output
- audio
- tool_calling
example: text
type: string
x-speakeasy-unknown-values: allow
- description: >-
Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`.
in: query
name: context_bucket
required: false
schema:
description: >-
Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`.
enum:
- 1K
- 10K
- 100K
- 1M
- 10M
example: 100K
type: string
x-speakeasy-unknown-values: allow
- description: >-
Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`.
in: query
name: category
required: false
schema:
description: >-
Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`.
enum:
- programming
- roleplay
- marketing
- marketing/seo
- technology
- science
- translation
- legal
- finance
- health
- trivia
- academia
example: programming
type: string
x-speakeasy-unknown-values: allow
- description: >-
Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`.
in: query
name: language_type
required: false
schema:
description: >-
Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`.
enum:
- natural
- programming
example: natural
type: string
x-speakeasy-unknown-values: allow
responses:
'200':
content:
+5 -5
View File
@@ -2,8 +2,8 @@ speakeasyVersion: 1.787.0
sources:
OpenRouter API:
sourceNamespace: open-router-chat-completions-api
sourceRevisionDigest: sha256:ae3b03ac140c2789ef39eddcb297b78e78540441ed22c9f4854e3fa75a6f391b
sourceBlobDigest: sha256:b6b2fd9a8e068d5e601bb5cae1e24b882a449f5f5147e5970e9dcbb0e47527cf
sourceRevisionDigest: sha256:c76873ed773f59ce59af18cd48af7b5e704346cfea03fa8d2fa7fef96fdfb465
sourceBlobDigest: sha256:e21ec1784f2b7eb1fe3fab59deb0148cc48ecd0f4835ef56502b7e808aab231c
tags:
- latest
- 1.0.0
@@ -11,10 +11,10 @@ targets:
open-router:
source: OpenRouter API
sourceNamespace: open-router-chat-completions-api
sourceRevisionDigest: sha256:ae3b03ac140c2789ef39eddcb297b78e78540441ed22c9f4854e3fa75a6f391b
sourceBlobDigest: sha256:b6b2fd9a8e068d5e601bb5cae1e24b882a449f5f5147e5970e9dcbb0e47527cf
sourceRevisionDigest: sha256:c76873ed773f59ce59af18cd48af7b5e704346cfea03fa8d2fa7fef96fdfb465
sourceBlobDigest: sha256:e21ec1784f2b7eb1fe3fab59deb0148cc48ecd0f4835ef56502b7e808aab231c
codeSamplesNamespace: open-router-python-code-samples
codeSamplesRevisionDigest: sha256:f296de4382641a2b6396f017c634185759e79bf0de91ab45e1b843bd5c609353
codeSamplesRevisionDigest: sha256:ca16452a0a4478ea5a47dc4f2c60de4b9be28eab5156d58c8bf691ceabb6d742
workflow:
workflowVersion: 1.0.0
speakeasyVersion: 1.787.0
+11 -1
View File
@@ -168,4 +168,14 @@ Based on:
### Generated
- [python v0.11.6] .
### Releases
- [PyPI v0.11.6] https://pypi.org/project/openrouter/0.11.6 - .
- [PyPI v0.11.6] https://pypi.org/project/openrouter/0.11.6 - .
## 2026-07-07 21:46:35
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [python v0.11.7] .
### Releases
- [PyPI v0.11.7] https://pypi.org/project/openrouter/0.11.7 - .
+1 -1
View File
@@ -12,6 +12,6 @@ Text-to-speech request input
| `input` | *str* | :heavy_check_mark: | Text to synthesize | Hello world |
| `model` | *str* | :heavy_check_mark: | TTS model identifier | elevenlabs/eleven-turbo-v2 |
| `provider` | [Optional[components.SpeechRequestProvider]](../components/speechrequestprovider.mdx) | :heavy_minus_sign: | Provider-specific passthrough configuration | |
| `response_format` | [Optional[components.ResponseFormatEnum]](../components/responseformatenum.mdx) | :heavy_minus_sign: | Audio output format | pcm |
| `response_format` | [Optional[components.SpeechRequestResponseFormat]](../components/speechrequestresponseformat.mdx) | :heavy_minus_sign: | Audio output format | pcm |
| `speed` | *Optional[float]* | :heavy_minus_sign: | Playback speed multiplier. Only used by models that support it (e.g. OpenAI TTS). Ignored by other providers. | 1 |
| `voice` | *str* | :heavy_check_mark: | Voice identifier (provider-specific). | alloy |
@@ -1,5 +1,5 @@
---
title: "ResponseFormatEnum"
title: "SpeechRequestResponseFormat"
---
Audio output format
@@ -7,10 +7,10 @@ Audio output format
## Example Usage
```python
from openrouter.components import ResponseFormatEnum
from openrouter.components import SpeechRequestResponseFormat
# Open enum: unrecognized values are captured as UnrecognizedStr
value: ResponseFormatEnum = "mp3"
value: SpeechRequestResponseFormat = "mp3"
```
+9 -7
View File
@@ -7,10 +7,12 @@ Speech-to-text request input. Accepts a JSON body with input_audio containing ba
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
| `input_audio` | [components.STTInputAudio](../components/sttinputaudio.mdx) | :heavy_check_mark: | Base64-encoded audio to transcribe | \{<br/>"data": "UklGRiQA...",<br/>"format": "wav"<br/>} |
| `language` | *Optional[str]* | :heavy_minus_sign: | ISO-639-1 language code (e.g., "en", "ja"). Auto-detected if omitted. | en |
| `model` | *str* | :heavy_check_mark: | STT model identifier | openai/whisper-large-v3 |
| `provider` | [Optional[components.STTRequestProvider]](../components/sttrequestprovider.mdx) | :heavy_minus_sign: | Provider-specific passthrough configuration | |
| `temperature` | *Optional[float]* | :heavy_minus_sign: | Sampling temperature for transcription | 0 |
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `input_audio` | [components.STTInputAudio](../components/sttinputaudio.mdx) | :heavy_check_mark: | Base64-encoded audio to transcribe | \{<br/>"data": "UklGRiQA...",<br/>"format": "wav"<br/>} |
| `language` | *Optional[str]* | :heavy_minus_sign: | ISO-639-1 language code (e.g., "en", "ja"). Auto-detected if omitted. | en |
| `model` | *str* | :heavy_check_mark: | STT model identifier | openai/whisper-large-v3 |
| `provider` | [Optional[components.STTRequestProvider]](../components/sttrequestprovider.mdx) | :heavy_minus_sign: | Provider-specific passthrough configuration | |
| `response_format` | [Optional[components.STTRequestResponseFormat]](../components/sttrequestresponseformat.mdx) | :heavy_minus_sign: | Output format. "json" (default) returns \{ text, usage }. "verbose_json" additionally returns task, language, duration, and segment-level timestamps; only supported by OpenAI-compatible providers. | json |
| `temperature` | *Optional[float]* | :heavy_minus_sign: | Sampling temperature for transcription | 0 |
| `timestamp_granularities` | List[[components.STTTimestampGranularity](../components/stttimestampgranularity.mdx)] | :heavy_minus_sign: | Timestamp detail levels to include when response_format is "verbose_json". "segment" returns segment-level timestamps; "word" additionally returns word-level timestamps in the words array. Ignored unless response_format is "verbose_json". | [<br/>"segment"<br/>] |
@@ -0,0 +1,22 @@
---
title: "STTRequestResponseFormat"
---
Output format. "json" (default) returns \{ text, usage }. "verbose_json" additionally returns task, language, duration, and segment-level timestamps; only supported by OpenAI-compatible providers.
## Example Usage
```python
from openrouter.components import STTRequestResponseFormat
# Open enum: unrecognized values are captured as UnrecognizedStr
value: STTRequestResponseFormat = "json"
```
## Values
This is an open enum. Unrecognized values will not fail type checks.
- `"json"`
- `"verbose_json"`
+6 -1
View File
@@ -9,5 +9,10 @@ STT response containing transcribed text and optional usage statistics
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `duration` | *Optional[float]* | :heavy_minus_sign: | Duration of the input audio in seconds, present when response_format is verbose_json | 9.2 |
| `language` | *Optional[str]* | :heavy_minus_sign: | Detected or forced language, present when response_format is verbose_json | english |
| `segments` | List[[components.STTSegment](../components/sttsegment.mdx)] | :heavy_minus_sign: | Timestamped transcript segments, present when response_format is verbose_json | |
| `task` | *Optional[str]* | :heavy_minus_sign: | The task performed, present when response_format is verbose_json | transcribe |
| `text` | *str* | :heavy_check_mark: | The transcribed text | Hello, this is a test of OpenAI speech-to-text transcription. The weather is sunny today and the temperature is around 72 degrees. |
| `usage` | [Optional[components.STTUsage]](../components/sttusage.mdx) | :heavy_minus_sign: | Aggregated usage statistics for the request | \{<br/>"cost": 0.000508,<br/>"input_tokens": 83,<br/>"output_tokens": 30,<br/>"seconds": 9.2,<br/>"total_tokens": 113<br/>} |
| `usage` | [Optional[components.STTUsage]](../components/sttusage.mdx) | :heavy_minus_sign: | Aggregated usage statistics for the request | \{<br/>"cost": 0.000508,<br/>"input_tokens": 83,<br/>"output_tokens": 30,<br/>"seconds": 9.2,<br/>"total_tokens": 113<br/>} |
| `words` | List[[components.STTWord](../components/sttword.mdx)] | :heavy_minus_sign: | Timestamped words, present when the provider returns word-level timestamps | |
+21
View File
@@ -0,0 +1,21 @@
---
title: "STTSegment"
---
A timestamped transcript segment, returned when response_format is verbose_json
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
| `avg_logprob` | *Optional[float]* | :heavy_minus_sign: | Average log probability of the segment | |
| `compression_ratio` | *Optional[float]* | :heavy_minus_sign: | Compression ratio of the segment | |
| `end` | *float* | :heavy_check_mark: | Segment end time in seconds | 3.2 |
| `id` | *int* | :heavy_check_mark: | Segment index within the transcript | 0 |
| `no_speech_prob` | *Optional[float]* | :heavy_minus_sign: | Probability the segment contains no speech | |
| `seek` | *Optional[int]* | :heavy_minus_sign: | Seek offset of the segment | 0 |
| `start` | *float* | :heavy_check_mark: | Segment start time in seconds | 0 |
| `temperature` | *Optional[float]* | :heavy_minus_sign: | Temperature used for the segment | |
| `text` | *str* | :heavy_check_mark: | Transcribed text of the segment | Hello there. |
| `tokens` | List[*int*] | :heavy_minus_sign: | Token IDs of the segment | |
@@ -0,0 +1,22 @@
---
title: "STTTimestampGranularity"
---
A timestamp detail level for verbose_json transcription responses.
## Example Usage
```python
from openrouter.components import STTTimestampGranularity
# Open enum: unrecognized values are captured as UnrecognizedStr
value: STTTimestampGranularity = "word"
```
## Values
This is an open enum. Unrecognized values will not fail type checks.
- `"word"`
- `"segment"`
+14
View File
@@ -0,0 +1,14 @@
---
title: "STTWord"
---
A timestamped word, returned when the provider includes word-level timestamps
## Fields
| Field | Type | Required | Description | Example |
| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -------------------------- |
| `end` | *float* | :heavy_check_mark: | Word end time in seconds | 0.4 |
| `start` | *float* | :heavy_check_mark: | Word start time in seconds | 0 |
| `word` | *str* | :heavy_check_mark: | The transcribed word | Hello |
+25
View File
@@ -0,0 +1,25 @@
---
title: "ContextBucket"
---
Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`.
## Example Usage
```python
from openrouter.operations import ContextBucket
# Open enum: unrecognized values are captured as UnrecognizedStr
value: ContextBucket = "1K"
```
## Values
This is an open enum. Unrecognized values will not fail type checks.
- `"1K"`
- `"10K"`
- `"100K"`
- `"1M"`
- `"10M"`
@@ -4,10 +4,11 @@ title: "CreateAudioTranscriptionsMultipartRequestBody"
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `file` | [operations.CreateAudioTranscriptionsMultipartFile](../operations/createaudiotranscriptionsmultipartfile.mdx) | :heavy_check_mark: | The audio file to transcribe. The format is derived from the filename extension or the file part content type. Max 25 MB; send larger files as base64 JSON via input_audio. |
| `language` | *Optional[str]* | :heavy_minus_sign: | The language of the input audio (ISO-639-1). |
| `model` | *str* | :heavy_check_mark: | The model to use for transcription. |
| `response_format` | [Optional[operations.ResponseFormat]](../operations/responseformat.mdx) | :heavy_minus_sign: | The response format. Only "json" is supported. |
| `temperature` | *Optional[float]* | :heavy_minus_sign: | The sampling temperature. |
| Field | Type | Required | Description |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `file` | [operations.CreateAudioTranscriptionsMultipartFile](../operations/createaudiotranscriptionsmultipartfile.mdx) | :heavy_check_mark: | The audio file to transcribe. The format is derived from the filename extension or the file part content type. Max 25 MB; send larger files as base64 JSON via input_audio. |
| `language` | *Optional[str]* | :heavy_minus_sign: | The language of the input audio (ISO-639-1). |
| `model` | *str* | :heavy_check_mark: | The model to use for transcription. |
| `response_format` | [Optional[operations.ResponseFormat]](../operations/responseformat.mdx) | :heavy_minus_sign: | The response format. "json" (default) returns \{ text, usage }; "verbose_json" additionally returns task, language, duration, and segment-level timestamps (OpenAI-compatible providers only). |
| `temperature` | *Optional[float]* | :heavy_minus_sign: | The sampling temperature. |
| `timestamp_granularities` | List[[operations.TimestampGranularities](../operations/timestampgranularities.mdx)] | :heavy_minus_sign: | Timestamp detail levels to include when response_format is "verbose_json". "word" additionally returns word-level timestamps in the words array. |
@@ -0,0 +1,32 @@
---
title: "GetRankingsDailyCategory"
---
Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`.
## Example Usage
```python
from openrouter.operations import GetRankingsDailyCategory
# Open enum: unrecognized values are captured as UnrecognizedStr
value: GetRankingsDailyCategory = "programming"
```
## Values
This is an open enum. Unrecognized values will not fail type checks.
- `"programming"`
- `"roleplay"`
- `"marketing"`
- `"marketing/seo"`
- `"technology"`
- `"science"`
- `"translation"`
- `"legal"`
- `"finance"`
- `"health"`
- `"trivia"`
- `"academia"`
+12 -7
View File
@@ -4,10 +4,15 @@ title: "GetRankingsDailyRequest"
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.<br/>This is used to track API usage per application.<br/> | |
| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.<br/> | |
| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.<br/> | |
| `start_date` | *Optional[str]* | :heavy_minus_sign: | Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before `end_date`. The dataset begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is echoed in `meta.start_date`. | 2026-04-12 |
| `end_date` | *Optional[str]* | :heavy_minus_sign: | End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must be on or after 2025-01-01; earlier values are rejected with a 400. | 2026-05-11 |
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.<br/>This is used to track API usage per application.<br/> | |
| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.<br/> | |
| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.<br/> | |
| `start_date` | *Optional[str]* | :heavy_minus_sign: | Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before `end_date`. The dataset begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is echoed in `meta.start_date`. | 2026-04-12 |
| `end_date` | *Optional[str]* | :heavy_minus_sign: | End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must be on or after 2025-01-01; earlier values are rejected with a 400. | 2026-05-11 |
| `period` | [Optional[operations.Period]](../operations/period.mdx) | :heavy_minus_sign: | Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries. | day |
| `modality` | [Optional[operations.Modality]](../operations/modality.mdx) | :heavy_minus_sign: | Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`. | text |
| `context_bucket` | [Optional[operations.ContextBucket]](../operations/contextbucket.mdx) | :heavy_minus_sign: | Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`. | 100K |
| `category` | [Optional[operations.GetRankingsDailyCategory]](../operations/getrankingsdailycategory.mdx) | :heavy_minus_sign: | Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`. | programming |
| `language_type` | [Optional[operations.LanguageType]](../operations/languagetype.mdx) | :heavy_minus_sign: | Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`. | natural |
+22
View File
@@ -0,0 +1,22 @@
---
title: "LanguageType"
---
Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`.
## Example Usage
```python
from openrouter.operations import LanguageType
# Open enum: unrecognized values are captured as UnrecognizedStr
value: LanguageType = "natural"
```
## Values
This is an open enum. Unrecognized values will not fail type checks.
- `"natural"`
- `"programming"`
+25
View File
@@ -0,0 +1,25 @@
---
title: "Modality"
---
Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`.
## Example Usage
```python
from openrouter.operations import Modality
# Open enum: unrecognized values are captured as UnrecognizedStr
value: Modality = "text"
```
## Values
This is an open enum. Unrecognized values will not fail type checks.
- `"text"`
- `"image"`
- `"image_output"`
- `"audio"`
- `"tool_calling"`
+23
View File
@@ -0,0 +1,23 @@
---
title: "Period"
---
Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries.
## Example Usage
```python
from openrouter.operations import Period
# Open enum: unrecognized values are captured as UnrecognizedStr
value: Period = "day"
```
## Values
This is an open enum. Unrecognized values will not fail type checks.
- `"day"`
- `"week"`
- `"month"`
+6 -1
View File
@@ -2,16 +2,21 @@
title: "ResponseFormat"
---
The response format. Only "json" is supported.
The response format. "json" (default) returns \{ text, usage }; "verbose_json" additionally returns task, language, duration, and segment-level timestamps (OpenAI-compatible providers only).
## Example Usage
```python
from openrouter.operations import ResponseFormat
# Open enum: unrecognized values are captured as UnrecognizedStr
value: ResponseFormat = "json"
```
## Values
This is an open enum. Unrecognized values will not fail type checks.
- `"json"`
- `"verbose_json"`
@@ -0,0 +1,20 @@
---
title: "TimestampGranularities"
---
## Example Usage
```python
from openrouter.operations import TimestampGranularities
# Open enum: unrecognized values are captured as UnrecognizedStr
value: TimestampGranularities = "word"
```
## Values
This is an open enum. Unrecognized values will not fail type checks.
- `"word"`
- `"segment"`
+20 -8
View File
@@ -102,6 +102,13 @@ Each row is a distinct `(date, model_permaslug)` pair. The `other` row uses the
reserved permaslug `other` and is always returned last within its date, so callers
can compute `top-50 traffic / total daily traffic` without a second request.
Optional filters slice the dataset. `period` (`day`/`week`/`month`) sets the time
grain. `modality` and `context_bucket` narrow the exact dataset by output/input
modality (or tool-calling activity) and request context length. `category` and
`language_type` instead read a sampled, upsampled dataset whose `total_tokens` are
weekly-grain estimates — they cannot be combined with each other or with the exact
filters, and reject `period=day` with a 400.
Authenticate with any valid OpenRouter API key (same key used for inference).
Rate-limited to 30 requests/minute per key and 500 requests/day per account.
@@ -136,14 +143,19 @@ with OpenRouter(
### Parameters
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.<br/>This is used to track API usage per application.<br/> | |
| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.<br/> | |
| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.<br/> | |
| `start_date` | *Optional[str]* | :heavy_minus_sign: | Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before `end_date`. The dataset begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is echoed in `meta.start_date`. | 2026-04-12 |
| `end_date` | *Optional[str]* | :heavy_minus_sign: | End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must be on or after 2025-01-01; earlier values are rejected with a 400. | 2026-05-11 |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
| Parameter | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.<br/>This is used to track API usage per application.<br/> | |
| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.<br/> | |
| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.<br/> | |
| `start_date` | *Optional[str]* | :heavy_minus_sign: | Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before `end_date`. The dataset begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is echoed in `meta.start_date`. | 2026-04-12 |
| `end_date` | *Optional[str]* | :heavy_minus_sign: | End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must be on or after 2025-01-01; earlier values are rejected with a 400. | 2026-05-11 |
| `period` | [Optional[operations.Period]](../../operations/period.mdx) | :heavy_minus_sign: | Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries. | day |
| `modality` | [Optional[operations.Modality]](../../operations/modality.mdx) | :heavy_minus_sign: | Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`. | text |
| `context_bucket` | [Optional[operations.ContextBucket]](../../operations/contextbucket.mdx) | :heavy_minus_sign: | Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`. | 100K |
| `category` | [Optional[operations.GetRankingsDailyCategory]](../../operations/getrankingsdailycategory.mdx) | :heavy_minus_sign: | Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`. | programming |
| `language_type` | [Optional[operations.LanguageType]](../../operations/languagetype.mdx) | :heavy_minus_sign: | Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`. | natural |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
+25 -22
View File
@@ -42,17 +42,19 @@ with OpenRouter(
### Parameters
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `input_audio` | [components.STTInputAudio](../../components/sttinputaudio.mdx) | :heavy_check_mark: | Base64-encoded audio to transcribe | \{<br/>"data": "UklGRiQA...",<br/>"format": "wav"<br/>} |
| `model` | *str* | :heavy_check_mark: | STT model identifier | openai/whisper-large-v3 |
| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.<br/>This is used to track API usage per application.<br/> | |
| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.<br/> | |
| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.<br/> | |
| `language` | *Optional[str]* | :heavy_minus_sign: | ISO-639-1 language code (e.g., "en", "ja"). Auto-detected if omitted. | en |
| `provider` | [Optional[components.STTRequestProvider]](../../components/sttrequestprovider.mdx) | :heavy_minus_sign: | Provider-specific passthrough configuration | |
| `temperature` | *Optional[float]* | :heavy_minus_sign: | Sampling temperature for transcription | 0 |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
| Parameter | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `input_audio` | [components.STTInputAudio](../../components/sttinputaudio.mdx) | :heavy_check_mark: | Base64-encoded audio to transcribe | \{<br/>"data": "UklGRiQA...",<br/>"format": "wav"<br/>} |
| `model` | *str* | :heavy_check_mark: | STT model identifier | openai/whisper-large-v3 |
| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.<br/>This is used to track API usage per application.<br/> | |
| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.<br/> | |
| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.<br/> | |
| `language` | *Optional[str]* | :heavy_minus_sign: | ISO-639-1 language code (e.g., "en", "ja"). Auto-detected if omitted. | en |
| `provider` | [Optional[components.STTRequestProvider]](../../components/sttrequestprovider.mdx) | :heavy_minus_sign: | Provider-specific passthrough configuration | |
| `response_format` | [Optional[components.STTRequestResponseFormat]](../../components/sttrequestresponseformat.mdx) | :heavy_minus_sign: | Output format. "json" (default) returns \{ text, usage }. "verbose_json" additionally returns task, language, duration, and segment-level timestamps; only supported by OpenAI-compatible providers. | json |
| `temperature` | *Optional[float]* | :heavy_minus_sign: | Sampling temperature for transcription | 0 |
| `timestamp_granularities` | List[[components.STTTimestampGranularity](../../components/stttimestampgranularity.mdx)] | :heavy_minus_sign: | Timestamp detail levels to include when response_format is "verbose_json". "segment" returns segment-level timestamps; "word" additionally returns word-level timestamps in the words array. Ignored unless response_format is "verbose_json". | [<br/>"segment"<br/>] |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
@@ -104,17 +106,18 @@ with OpenRouter(
### Parameters
| Parameter | Type | Required | Description |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `file` | [operations.CreateAudioTranscriptionsMultipartFile](../../operations/createaudiotranscriptionsmultipartfile.mdx) | :heavy_check_mark: | The audio file to transcribe. The format is derived from the filename extension or the file part content type. Max 25 MB; send larger files as base64 JSON via input_audio. |
| `model` | *str* | :heavy_check_mark: | The model to use for transcription. |
| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.<br/>This is used to track API usage per application.<br/> |
| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.<br/> |
| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.<br/> |
| `language` | *Optional[str]* | :heavy_minus_sign: | The language of the input audio (ISO-639-1). |
| `response_format` | [Optional[operations.ResponseFormat]](../../operations/responseformat.mdx) | :heavy_minus_sign: | The response format. Only "json" is supported. |
| `temperature` | *Optional[float]* | :heavy_minus_sign: | The sampling temperature. |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. |
| Parameter | Type | Required | Description |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `file` | [operations.CreateAudioTranscriptionsMultipartFile](../../operations/createaudiotranscriptionsmultipartfile.mdx) | :heavy_check_mark: | The audio file to transcribe. The format is derived from the filename extension or the file part content type. Max 25 MB; send larger files as base64 JSON via input_audio. |
| `model` | *str* | :heavy_check_mark: | The model to use for transcription. |
| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.<br/>This is used to track API usage per application.<br/> |
| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.<br/> |
| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.<br/> |
| `language` | *Optional[str]* | :heavy_minus_sign: | The language of the input audio (ISO-639-1). |
| `response_format` | [Optional[operations.ResponseFormat]](../../operations/responseformat.mdx) | :heavy_minus_sign: | The response format. "json" (default) returns \{ text, usage }; "verbose_json" additionally returns task, language, duration, and segment-level timestamps (OpenAI-compatible providers only). |
| `temperature` | *Optional[float]* | :heavy_minus_sign: | The sampling temperature. |
| `timestamp_granularities` | List[[operations.TimestampGranularities](../../operations/timestampgranularities.mdx)] | :heavy_minus_sign: | Timestamp detail levels to include when response_format is "verbose_json". "word" additionally returns word-level timestamps in the words array. |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. |
### Response
+1 -1
View File
@@ -47,7 +47,7 @@ with OpenRouter(
| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.<br/> | |
| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.<br/> | |
| `provider` | [Optional[components.SpeechRequestProvider]](../../components/speechrequestprovider.mdx) | :heavy_minus_sign: | Provider-specific passthrough configuration | |
| `response_format` | [Optional[components.ResponseFormatEnum]](../../components/responseformatenum.mdx) | :heavy_minus_sign: | Audio output format | pcm |
| `response_format` | [Optional[components.SpeechRequestResponseFormat]](../../components/speechrequestresponseformat.mdx) | :heavy_minus_sign: | Audio output format | pcm |
| `speed` | *Optional[float]* | :heavy_minus_sign: | Playback speed multiplier. Only used by models that support it (e.g. OpenAI TTS). Ignored by other providers. | 1 |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
+1 -1
View File
@@ -1,6 +1,6 @@
[project]
name = "openrouter"
version = "0.11.6"
version = "0.11.7"
description = "Official Python Client SDK for OpenRouter."
authors = [{ name = "OpenRouter" },]
readme = "README-PYPI.md"
+2 -2
View File
@@ -3,10 +3,10 @@
import importlib.metadata
__title__: str = "openrouter"
__version__: str = "0.11.6"
__version__: str = "0.11.7"
__openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.914.0"
__user_agent__: str = "speakeasy-sdk/python 0.11.6 2.914.0 1.0.0 openrouter"
__user_agent__: str = "speakeasy-sdk/python 0.11.7 2.914.0 1.0.0 openrouter"
try:
if __package__ is not None:
+19 -3
View File
@@ -2366,10 +2366,10 @@ if TYPE_CHECKING:
ShellServerToolEnvironmentTypedDict,
)
from .speechrequest import (
ResponseFormatEnum,
SpeechRequest,
SpeechRequestProvider,
SpeechRequestProviderTypedDict,
SpeechRequestResponseFormat,
SpeechRequestTypedDict,
)
from .stopservertoolswhencondition import (
@@ -2443,10 +2443,14 @@ if TYPE_CHECKING:
STTRequest,
STTRequestProvider,
STTRequestProviderTypedDict,
STTRequestResponseFormat,
STTRequestTypedDict,
)
from .sttresponse import STTResponse, STTResponseTypedDict
from .sttsegment import STTSegment, STTSegmentTypedDict
from .stttimestampgranularity import STTTimestampGranularity
from .sttusage import STTUsage, STTUsageTypedDict
from .sttword import STTWord, STTWordTypedDict
from .subagentnestedtool import SubagentNestedTool, SubagentNestedToolTypedDict
from .subagentreasoning import (
SubagentReasoning,
@@ -4296,7 +4300,6 @@ __all__ = [
"ResetInterval",
"Response",
"ResponseFormat",
"ResponseFormatEnum",
"ResponseFormatTypedDict",
"ResponseHealingPlugin",
"ResponseHealingPluginID",
@@ -4334,11 +4337,17 @@ __all__ = [
"STTRequest",
"STTRequestProvider",
"STTRequestProviderTypedDict",
"STTRequestResponseFormat",
"STTRequestTypedDict",
"STTResponse",
"STTResponseTypedDict",
"STTSegment",
"STTSegmentTypedDict",
"STTTimestampGranularity",
"STTUsage",
"STTUsageTypedDict",
"STTWord",
"STTWordTypedDict",
"SearchContextSizeEnum",
"SearchModelsServerToolConfig",
"SearchModelsServerToolConfigTypedDict",
@@ -4384,6 +4393,7 @@ __all__ = [
"SpeechRequest",
"SpeechRequestProvider",
"SpeechRequestProviderTypedDict",
"SpeechRequestResponseFormat",
"SpeechRequestTypedDict",
"Speed",
"Stance",
@@ -6471,10 +6481,10 @@ _dynamic_imports: dict[str, str] = {
"ShellServerToolEngine": ".shellservertoolengine",
"ShellServerToolEnvironment": ".shellservertoolenvironment",
"ShellServerToolEnvironmentTypedDict": ".shellservertoolenvironment",
"ResponseFormatEnum": ".speechrequest",
"SpeechRequest": ".speechrequest",
"SpeechRequestProvider": ".speechrequest",
"SpeechRequestProviderTypedDict": ".speechrequest",
"SpeechRequestResponseFormat": ".speechrequest",
"SpeechRequestTypedDict": ".speechrequest",
"StopServerToolsWhenCondition": ".stopservertoolswhencondition",
"StopServerToolsWhenConditionTypedDict": ".stopservertoolswhencondition",
@@ -6524,11 +6534,17 @@ _dynamic_imports: dict[str, str] = {
"STTRequest": ".sttrequest",
"STTRequestProvider": ".sttrequest",
"STTRequestProviderTypedDict": ".sttrequest",
"STTRequestResponseFormat": ".sttrequest",
"STTRequestTypedDict": ".sttrequest",
"STTResponse": ".sttresponse",
"STTResponseTypedDict": ".sttresponse",
"STTSegment": ".sttsegment",
"STTSegmentTypedDict": ".sttsegment",
"STTTimestampGranularity": ".stttimestampgranularity",
"STTUsage": ".sttusage",
"STTUsageTypedDict": ".sttusage",
"STTWord": ".sttword",
"STTWordTypedDict": ".sttword",
"SubagentNestedTool": ".subagentnestedtool",
"SubagentNestedToolTypedDict": ".subagentnestedtool",
"SubagentReasoning": ".subagentreasoning",
+3 -3
View File
@@ -38,7 +38,7 @@ class SpeechRequestProvider(BaseModel):
return m
ResponseFormatEnum = Union[
SpeechRequestResponseFormat = Union[
Literal[
"mp3",
"pcm",
@@ -59,7 +59,7 @@ class SpeechRequestTypedDict(TypedDict):
r"""Voice identifier (provider-specific)."""
provider: NotRequired[SpeechRequestProviderTypedDict]
r"""Provider-specific passthrough configuration"""
response_format: NotRequired[ResponseFormatEnum]
response_format: NotRequired[SpeechRequestResponseFormat]
r"""Audio output format"""
speed: NotRequired[float]
r"""Playback speed multiplier. Only used by models that support it (e.g. OpenAI TTS). Ignored by other providers."""
@@ -80,7 +80,7 @@ class SpeechRequest(BaseModel):
provider: Optional[SpeechRequestProvider] = None
r"""Provider-specific passthrough configuration"""
response_format: Optional[ResponseFormatEnum] = "pcm"
response_format: Optional[SpeechRequestResponseFormat] = "pcm"
r"""Audio output format"""
speed: Optional[float] = None
+32 -3
View File
@@ -3,9 +3,10 @@
from __future__ import annotations
from .provideroptions import ProviderOptions, ProviderOptionsTypedDict
from .sttinputaudio import STTInputAudio, STTInputAudioTypedDict
from openrouter.types import BaseModel, UNSET_SENTINEL
from .stttimestampgranularity import STTTimestampGranularity
from openrouter.types import BaseModel, UNSET_SENTINEL, UnrecognizedStr
from pydantic import model_serializer
from typing import Optional
from typing import List, Literal, Optional, Union
from typing_extensions import NotRequired, TypedDict
@@ -39,6 +40,16 @@ class STTRequestProvider(BaseModel):
return m
STTRequestResponseFormat = Union[
Literal[
"json",
"verbose_json",
],
UnrecognizedStr,
]
r"""Output format. \"json\" (default) returns { text, usage }. \"verbose_json\" additionally returns task, language, duration, and segment-level timestamps; only supported by OpenAI-compatible providers."""
class STTRequestTypedDict(TypedDict):
r"""Speech-to-text request input. Accepts a JSON body with input_audio containing base64-encoded audio."""
@@ -50,8 +61,12 @@ class STTRequestTypedDict(TypedDict):
r"""ISO-639-1 language code (e.g., \"en\", \"ja\"). Auto-detected if omitted."""
provider: NotRequired[STTRequestProviderTypedDict]
r"""Provider-specific passthrough configuration"""
response_format: NotRequired[STTRequestResponseFormat]
r"""Output format. \"json\" (default) returns { text, usage }. \"verbose_json\" additionally returns task, language, duration, and segment-level timestamps; only supported by OpenAI-compatible providers."""
temperature: NotRequired[float]
r"""Sampling temperature for transcription"""
timestamp_granularities: NotRequired[List[STTTimestampGranularity]]
r"""Timestamp detail levels to include when response_format is \"verbose_json\". \"segment\" returns segment-level timestamps; \"word\" additionally returns word-level timestamps in the words array. Ignored unless response_format is \"verbose_json\"."""
class STTRequest(BaseModel):
@@ -69,12 +84,26 @@ class STTRequest(BaseModel):
provider: Optional[STTRequestProvider] = None
r"""Provider-specific passthrough configuration"""
response_format: Optional[STTRequestResponseFormat] = None
r"""Output format. \"json\" (default) returns { text, usage }. \"verbose_json\" additionally returns task, language, duration, and segment-level timestamps; only supported by OpenAI-compatible providers."""
temperature: Optional[float] = None
r"""Sampling temperature for transcription"""
timestamp_granularities: Optional[List[STTTimestampGranularity]] = None
r"""Timestamp detail levels to include when response_format is \"verbose_json\". \"segment\" returns segment-level timestamps; \"word\" additionally returns word-level timestamps in the words array. Ignored unless response_format is \"verbose_json\"."""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(["language", "provider", "temperature"])
optional_fields = set(
[
"language",
"provider",
"response_format",
"temperature",
"timestamp_granularities",
]
)
serialized = handler(self)
m = {}
+31 -2
View File
@@ -1,10 +1,12 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from .sttsegment import STTSegment, STTSegmentTypedDict
from .sttusage import STTUsage, STTUsageTypedDict
from .sttword import STTWord, STTWordTypedDict
from openrouter.types import BaseModel, UNSET_SENTINEL
from pydantic import model_serializer
from typing import Optional
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict
@@ -13,8 +15,18 @@ class STTResponseTypedDict(TypedDict):
text: str
r"""The transcribed text"""
duration: NotRequired[float]
r"""Duration of the input audio in seconds, present when response_format is verbose_json"""
language: NotRequired[str]
r"""Detected or forced language, present when response_format is verbose_json"""
segments: NotRequired[List[STTSegmentTypedDict]]
r"""Timestamped transcript segments, present when response_format is verbose_json"""
task: NotRequired[str]
r"""The task performed, present when response_format is verbose_json"""
usage: NotRequired[STTUsageTypedDict]
r"""Aggregated usage statistics for the request"""
words: NotRequired[List[STTWordTypedDict]]
r"""Timestamped words, present when the provider returns word-level timestamps"""
class STTResponse(BaseModel):
@@ -23,12 +35,29 @@ class STTResponse(BaseModel):
text: str
r"""The transcribed text"""
duration: Optional[float] = None
r"""Duration of the input audio in seconds, present when response_format is verbose_json"""
language: Optional[str] = None
r"""Detected or forced language, present when response_format is verbose_json"""
segments: Optional[List[STTSegment]] = None
r"""Timestamped transcript segments, present when response_format is verbose_json"""
task: Optional[str] = None
r"""The task performed, present when response_format is verbose_json"""
usage: Optional[STTUsage] = None
r"""Aggregated usage statistics for the request"""
words: Optional[List[STTWord]] = None
r"""Timestamped words, present when the provider returns word-level timestamps"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(["usage"])
optional_fields = set(
["duration", "language", "segments", "task", "usage", "words"]
)
serialized = handler(self)
m = {}
+91
View File
@@ -0,0 +1,91 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel, UNSET_SENTINEL
from pydantic import model_serializer
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict
class STTSegmentTypedDict(TypedDict):
r"""A timestamped transcript segment, returned when response_format is verbose_json"""
end: float
r"""Segment end time in seconds"""
id: int
r"""Segment index within the transcript"""
start: float
r"""Segment start time in seconds"""
text: str
r"""Transcribed text of the segment"""
avg_logprob: NotRequired[float]
r"""Average log probability of the segment"""
compression_ratio: NotRequired[float]
r"""Compression ratio of the segment"""
no_speech_prob: NotRequired[float]
r"""Probability the segment contains no speech"""
seek: NotRequired[int]
r"""Seek offset of the segment"""
temperature: NotRequired[float]
r"""Temperature used for the segment"""
tokens: NotRequired[List[int]]
r"""Token IDs of the segment"""
class STTSegment(BaseModel):
r"""A timestamped transcript segment, returned when response_format is verbose_json"""
end: float
r"""Segment end time in seconds"""
id: int
r"""Segment index within the transcript"""
start: float
r"""Segment start time in seconds"""
text: str
r"""Transcribed text of the segment"""
avg_logprob: Optional[float] = None
r"""Average log probability of the segment"""
compression_ratio: Optional[float] = None
r"""Compression ratio of the segment"""
no_speech_prob: Optional[float] = None
r"""Probability the segment contains no speech"""
seek: Optional[int] = None
r"""Seek offset of the segment"""
temperature: Optional[float] = None
r"""Temperature used for the segment"""
tokens: Optional[List[int]] = None
r"""Token IDs of the segment"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
[
"avg_logprob",
"compression_ratio",
"no_speech_prob",
"seek",
"temperature",
"tokens",
]
)
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k, serialized.get(n))
if val != UNSET_SENTINEL:
if val is not None or k not in optional_fields:
m[k] = val
return m
@@ -0,0 +1,15 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import UnrecognizedStr
from typing import Literal, Union
STTTimestampGranularity = Union[
Literal[
"word",
"segment",
],
UnrecognizedStr,
]
r"""A timestamp detail level for verbose_json transcription responses."""
+29
View File
@@ -0,0 +1,29 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel
from typing_extensions import TypedDict
class STTWordTypedDict(TypedDict):
r"""A timestamped word, returned when the provider includes word-level timestamps"""
end: float
r"""Word end time in seconds"""
start: float
r"""Word start time in seconds"""
word: str
r"""The transcribed word"""
class STTWord(BaseModel):
r"""A timestamped word, returned when the provider includes word-level timestamps"""
end: float
r"""Word end time in seconds"""
start: float
r"""Word start time in seconds"""
word: str
r"""The transcribed word"""
+44
View File
@@ -444,6 +444,11 @@ class Datasets(BaseSDK):
x_open_router_categories: Optional[str] = None,
start_date: Optional[str] = None,
end_date: Optional[str] = None,
period: Optional[operations.Period] = None,
modality: Optional[operations.Modality] = None,
context_bucket: Optional[operations.ContextBucket] = None,
category: Optional[operations.GetRankingsDailyCategory] = None,
language_type: Optional[operations.LanguageType] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -460,6 +465,13 @@ class Datasets(BaseSDK):
reserved permaslug `other` and is always returned last within its date, so callers
can compute `top-50 traffic / total daily traffic` without a second request.
Optional filters slice the dataset. `period` (`day`/`week`/`month`) sets the time
grain. `modality` and `context_bucket` narrow the exact dataset by output/input
modality (or tool-calling activity) and request context length. `category` and
`language_type` instead read a sampled, upsampled dataset whose `total_tokens` are
weekly-grain estimates — they cannot be combined with each other or with the exact
filters, and reject `period=day` with a 400.
Authenticate with any valid OpenRouter API key (same key used for inference).
Rate-limited to 30 requests/minute per key and 500 requests/day per account.
@@ -480,6 +492,11 @@ class Datasets(BaseSDK):
:param start_date: Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before `end_date`. The dataset begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is echoed in `meta.start_date`.
:param end_date: End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must be on or after 2025-01-01; earlier values are rejected with a 400.
:param period: Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries.
:param modality: Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`.
:param context_bucket: Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`.
:param category: Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`.
:param language_type: Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`.
:param retries: Override the default retry configuration for this method
:param server_url: Override the default server URL for this method
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -501,6 +518,11 @@ class Datasets(BaseSDK):
x_open_router_categories=x_open_router_categories,
start_date=start_date,
end_date=end_date,
period=period,
modality=modality,
context_bucket=context_bucket,
category=category,
language_type=language_type,
)
req = self._build_request(
@@ -598,6 +620,11 @@ class Datasets(BaseSDK):
x_open_router_categories: Optional[str] = None,
start_date: Optional[str] = None,
end_date: Optional[str] = None,
period: Optional[operations.Period] = None,
modality: Optional[operations.Modality] = None,
context_bucket: Optional[operations.ContextBucket] = None,
category: Optional[operations.GetRankingsDailyCategory] = None,
language_type: Optional[operations.LanguageType] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -614,6 +641,13 @@ class Datasets(BaseSDK):
reserved permaslug `other` and is always returned last within its date, so callers
can compute `top-50 traffic / total daily traffic` without a second request.
Optional filters slice the dataset. `period` (`day`/`week`/`month`) sets the time
grain. `modality` and `context_bucket` narrow the exact dataset by output/input
modality (or tool-calling activity) and request context length. `category` and
`language_type` instead read a sampled, upsampled dataset whose `total_tokens` are
weekly-grain estimates — they cannot be combined with each other or with the exact
filters, and reject `period=day` with a 400.
Authenticate with any valid OpenRouter API key (same key used for inference).
Rate-limited to 30 requests/minute per key and 500 requests/day per account.
@@ -634,6 +668,11 @@ class Datasets(BaseSDK):
:param start_date: Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before `end_date`. The dataset begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is echoed in `meta.start_date`.
:param end_date: End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must be on or after 2025-01-01; earlier values are rejected with a 400.
:param period: Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries.
:param modality: Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`.
:param context_bucket: Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`.
:param category: Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`.
:param language_type: Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`.
:param retries: Override the default retry configuration for this method
:param server_url: Override the default server URL for this method
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -655,6 +694,11 @@ class Datasets(BaseSDK):
x_open_router_categories=x_open_router_categories,
start_date=start_date,
end_date=end_date,
period=period,
modality=modality,
context_bucket=context_bucket,
category=category,
language_type=language_type,
)
req = self._build_request_async(
+18
View File
@@ -63,6 +63,7 @@ if TYPE_CHECKING:
CreateAudioTranscriptionsMultipartRequestBodyTypedDict,
CreateAudioTranscriptionsMultipartRequestTypedDict,
ResponseFormat,
TimestampGranularities,
)
from .createauthkeyscode import (
CreateAuthKeysCodeCodeChallengeMethod,
@@ -411,10 +412,15 @@ if TYPE_CHECKING:
GetPresetVersionRequestTypedDict,
)
from .getrankingsdaily import (
ContextBucket,
GetRankingsDailyCategory,
GetRankingsDailyGlobals,
GetRankingsDailyGlobalsTypedDict,
GetRankingsDailyRequest,
GetRankingsDailyRequestTypedDict,
LanguageType,
Modality,
Period,
)
from .gettaskclassifications import (
GetTaskClassificationsGlobals,
@@ -766,6 +772,7 @@ __all__ = [
"ContentText",
"ContentTextTypedDict",
"ContentTypedDict",
"ContextBucket",
"CostDetails",
"CostDetailsTypedDict",
"CreateAudioSpeechGlobals",
@@ -1018,6 +1025,7 @@ __all__ = [
"GetPresetVersionGlobalsTypedDict",
"GetPresetVersionRequest",
"GetPresetVersionRequestTypedDict",
"GetRankingsDailyCategory",
"GetRankingsDailyGlobals",
"GetRankingsDailyGlobalsTypedDict",
"GetRankingsDailyRequest",
@@ -1048,6 +1056,7 @@ __all__ = [
"InputTypedDict",
"InputUnion",
"InputUnionTypedDict",
"LanguageType",
"ListBYOKKeysGlobals",
"ListBYOKKeysGlobalsTypedDict",
"ListBYOKKeysRequest",
@@ -1200,6 +1209,7 @@ __all__ = [
"MetadataTypedDict",
"Metric",
"MetricTypedDict",
"Modality",
"Object",
"ObjectEmbedding",
"Operator",
@@ -1207,6 +1217,7 @@ __all__ = [
"OperatorTypedDict",
"OrderBy",
"OrderByTypedDict",
"Period",
"PromptTokensDetails",
"PromptTokensDetailsTypedDict",
"Provider",
@@ -1240,6 +1251,7 @@ __all__ = [
"TaskType",
"TimeRange",
"TimeRangeTypedDict",
"TimestampGranularities",
"TypeImageURL",
"TypeText",
"UpdateBYOKKeyGlobals",
@@ -1333,6 +1345,7 @@ _dynamic_imports: dict[str, str] = {
"CreateAudioTranscriptionsMultipartRequestBodyTypedDict": ".createaudiotranscriptions_multipart",
"CreateAudioTranscriptionsMultipartRequestTypedDict": ".createaudiotranscriptions_multipart",
"ResponseFormat": ".createaudiotranscriptions_multipart",
"TimestampGranularities": ".createaudiotranscriptions_multipart",
"CreateAuthKeysCodeCodeChallengeMethod": ".createauthkeyscode",
"CreateAuthKeysCodeData": ".createauthkeyscode",
"CreateAuthKeysCodeDataTypedDict": ".createauthkeyscode",
@@ -1603,10 +1616,15 @@ _dynamic_imports: dict[str, str] = {
"GetPresetVersionGlobalsTypedDict": ".getpresetversion",
"GetPresetVersionRequest": ".getpresetversion",
"GetPresetVersionRequestTypedDict": ".getpresetversion",
"ContextBucket": ".getrankingsdaily",
"GetRankingsDailyCategory": ".getrankingsdaily",
"GetRankingsDailyGlobals": ".getrankingsdaily",
"GetRankingsDailyGlobalsTypedDict": ".getrankingsdaily",
"GetRankingsDailyRequest": ".getrankingsdaily",
"GetRankingsDailyRequestTypedDict": ".getrankingsdaily",
"LanguageType": ".getrankingsdaily",
"Modality": ".getrankingsdaily",
"Period": ".getrankingsdaily",
"GetTaskClassificationsGlobals": ".gettaskclassifications",
"GetTaskClassificationsGlobalsTypedDict": ".gettaskclassifications",
"GetTaskClassificationsRequest": ".gettaskclassifications",
@@ -2,7 +2,7 @@
from __future__ import annotations
import io
from openrouter.types import BaseModel, UNSET_SENTINEL
from openrouter.types import BaseModel, UNSET_SENTINEL, UnrecognizedStr
from openrouter.utils import (
FieldMetadata,
HeaderMetadata,
@@ -11,7 +11,7 @@ from openrouter.utils import (
)
import pydantic
from pydantic import model_serializer
from typing import IO, Literal, Optional, Union
from typing import IO, List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypedDict
@@ -119,8 +119,23 @@ class CreateAudioTranscriptionsMultipartFile(BaseModel):
return m
ResponseFormat = Literal["json",]
r"""The response format. Only \"json\" is supported."""
ResponseFormat = Union[
Literal[
"json",
"verbose_json",
],
UnrecognizedStr,
]
r"""The response format. \"json\" (default) returns { text, usage }; \"verbose_json\" additionally returns task, language, duration, and segment-level timestamps (OpenAI-compatible providers only)."""
TimestampGranularities = Union[
Literal[
"word",
"segment",
],
UnrecognizedStr,
]
class CreateAudioTranscriptionsMultipartRequestBodyTypedDict(TypedDict):
@@ -131,9 +146,11 @@ class CreateAudioTranscriptionsMultipartRequestBodyTypedDict(TypedDict):
language: NotRequired[str]
r"""The language of the input audio (ISO-639-1)."""
response_format: NotRequired[ResponseFormat]
r"""The response format. Only \"json\" is supported."""
r"""The response format. \"json\" (default) returns { text, usage }; \"verbose_json\" additionally returns task, language, duration, and segment-level timestamps (OpenAI-compatible providers only)."""
temperature: NotRequired[float]
r"""The sampling temperature."""
timestamp_granularities: NotRequired[List[TimestampGranularities]]
r"""Timestamp detail levels to include when response_format is \"verbose_json\". \"word\" additionally returns word-level timestamps in the words array."""
class CreateAudioTranscriptionsMultipartRequestBody(BaseModel):
@@ -152,14 +169,23 @@ class CreateAudioTranscriptionsMultipartRequestBody(BaseModel):
response_format: Annotated[
Optional[ResponseFormat], FieldMetadata(multipart=True)
] = None
r"""The response format. Only \"json\" is supported."""
r"""The response format. \"json\" (default) returns { text, usage }; \"verbose_json\" additionally returns task, language, duration, and segment-level timestamps (OpenAI-compatible providers only)."""
temperature: Annotated[Optional[float], FieldMetadata(multipart=True)] = None
r"""The sampling temperature."""
timestamp_granularities: Annotated[
Optional[List[TimestampGranularities]],
pydantic.Field(alias="timestamp_granularities[]"),
FieldMetadata(multipart=True),
] = None
r"""Timestamp detail levels to include when response_format is \"verbose_json\". \"word\" additionally returns word-level timestamps in the words array."""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(["language", "response_format", "temperature"])
optional_fields = set(
["language", "response_format", "temperature", "timestamp_granularities[]"]
)
serialized = handler(self)
m = {}
+114 -2
View File
@@ -1,11 +1,11 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel, UNSET_SENTINEL
from openrouter.types import BaseModel, UNSET_SENTINEL, UnrecognizedStr
from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata
import pydantic
from pydantic import model_serializer
from typing import Optional
from typing import Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypedDict
@@ -73,6 +73,73 @@ class GetRankingsDailyGlobals(BaseModel):
return m
Period = Union[
Literal[
"day",
"week",
"month",
],
UnrecognizedStr,
]
r"""Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries."""
Modality = Union[
Literal[
"text",
"image",
"image_output",
"audio",
"tool_calling",
],
UnrecognizedStr,
]
r"""Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`."""
ContextBucket = Union[
Literal[
"1K",
"10K",
"100K",
"1M",
"10M",
],
UnrecognizedStr,
]
r"""Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`."""
GetRankingsDailyCategory = Union[
Literal[
"programming",
"roleplay",
"marketing",
"marketing/seo",
"technology",
"science",
"translation",
"legal",
"finance",
"health",
"trivia",
"academia",
],
UnrecognizedStr,
]
r"""Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`."""
LanguageType = Union[
Literal[
"natural",
"programming",
],
UnrecognizedStr,
]
r"""Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`."""
class GetRankingsDailyRequestTypedDict(TypedDict):
http_referer: NotRequired[str]
r"""The app identifier should be your app's URL and is used as the primary identifier for rankings.
@@ -91,6 +158,16 @@ class GetRankingsDailyRequestTypedDict(TypedDict):
r"""Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before `end_date`. The dataset begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is echoed in `meta.start_date`."""
end_date: NotRequired[str]
r"""End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must be on or after 2025-01-01; earlier values are rejected with a 400."""
period: NotRequired[Period]
r"""Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries."""
modality: NotRequired[Modality]
r"""Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`."""
context_bucket: NotRequired[ContextBucket]
r"""Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`."""
category: NotRequired[GetRankingsDailyCategory]
r"""Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`."""
language_type: NotRequired[LanguageType]
r"""Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`."""
class GetRankingsDailyRequest(BaseModel):
@@ -134,6 +211,36 @@ class GetRankingsDailyRequest(BaseModel):
] = None
r"""End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must be on or after 2025-01-01; earlier values are rejected with a 400."""
period: Annotated[
Optional[Period],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries."""
modality: Annotated[
Optional[Modality],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`."""
context_bucket: Annotated[
Optional[ContextBucket],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`."""
category: Annotated[
Optional[GetRankingsDailyCategory],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`."""
language_type: Annotated[
Optional[LanguageType],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`."""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
@@ -143,6 +250,11 @@ class GetRankingsDailyRequest(BaseModel):
"X-OpenRouter-Categories",
"start_date",
"end_date",
"period",
"modality",
"context_bucket",
"category",
"language_type",
]
)
serialized = handler(self)
+41 -3
View File
@@ -6,7 +6,7 @@ from openrouter._hooks import HookContext
from openrouter.types import OptionalNullable, UNSET
from openrouter.utils import get_security_from_env
from openrouter.utils.unmarshal_json_response import unmarshal_json_response
from typing import Any, Mapping, Optional, Union
from typing import Any, Iterable, List, Mapping, Optional, Union
class Stt(BaseSDK):
@@ -24,7 +24,11 @@ class Stt(BaseSDK):
provider: Optional[
Union[components.STTRequestProvider, components.STTRequestProviderTypedDict]
] = None,
response_format: Optional[components.STTRequestResponseFormat] = None,
temperature: Optional[float] = None,
timestamp_granularities: Optional[
Iterable[components.STTTimestampGranularity]
] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -45,7 +49,9 @@ class Stt(BaseSDK):
:param language: ISO-639-1 language code (e.g., \"en\", \"ja\"). Auto-detected if omitted.
:param provider: Provider-specific passthrough configuration
:param response_format: Output format. \"json\" (default) returns { text, usage }. \"verbose_json\" additionally returns task, language, duration, and segment-level timestamps; only supported by OpenAI-compatible providers.
:param temperature: Sampling temperature for transcription
:param timestamp_granularities: Timestamp detail levels to include when response_format is \"verbose_json\". \"segment\" returns segment-level timestamps; \"word\" additionally returns word-level timestamps in the words array. Ignored unless response_format is \"verbose_json\".
:param retries: Override the default retry configuration for this method
:param server_url: Override the default server URL for this method
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -74,7 +80,12 @@ class Stt(BaseSDK):
provider=utils.get_pydantic_model(
provider, Optional[components.STTRequestProvider]
),
response_format=response_format,
temperature=temperature,
timestamp_granularities=utils.unmarshal(
timestamp_granularities,
Optional[List[components.STTTimestampGranularity]],
),
),
)
@@ -210,7 +221,11 @@ class Stt(BaseSDK):
provider: Optional[
Union[components.STTRequestProvider, components.STTRequestProviderTypedDict]
] = None,
response_format: Optional[components.STTRequestResponseFormat] = None,
temperature: Optional[float] = None,
timestamp_granularities: Optional[
Iterable[components.STTTimestampGranularity]
] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -231,7 +246,9 @@ class Stt(BaseSDK):
:param language: ISO-639-1 language code (e.g., \"en\", \"ja\"). Auto-detected if omitted.
:param provider: Provider-specific passthrough configuration
:param response_format: Output format. \"json\" (default) returns { text, usage }. \"verbose_json\" additionally returns task, language, duration, and segment-level timestamps; only supported by OpenAI-compatible providers.
:param temperature: Sampling temperature for transcription
:param timestamp_granularities: Timestamp detail levels to include when response_format is \"verbose_json\". \"segment\" returns segment-level timestamps; \"word\" additionally returns word-level timestamps in the words array. Ignored unless response_format is \"verbose_json\".
:param retries: Override the default retry configuration for this method
:param server_url: Override the default server URL for this method
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -260,7 +277,12 @@ class Stt(BaseSDK):
provider=utils.get_pydantic_model(
provider, Optional[components.STTRequestProvider]
),
response_format=response_format,
temperature=temperature,
timestamp_granularities=utils.unmarshal(
timestamp_granularities,
Optional[List[components.STTTimestampGranularity]],
),
),
)
@@ -398,6 +420,9 @@ class Stt(BaseSDK):
language: Optional[str] = None,
response_format: Optional[operations.ResponseFormat] = None,
temperature: Optional[float] = None,
timestamp_granularities: Optional[
Iterable[operations.TimestampGranularities]
] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -417,8 +442,9 @@ class Stt(BaseSDK):
:param x_open_router_categories: Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings.
:param language: The language of the input audio (ISO-639-1).
:param response_format: The response format. Only \"json\" is supported.
:param response_format: The response format. \"json\" (default) returns { text, usage }; \"verbose_json\" additionally returns task, language, duration, and segment-level timestamps (OpenAI-compatible providers only).
:param temperature: The sampling temperature.
:param timestamp_granularities: Timestamp detail levels to include when response_format is \"verbose_json\". \"word\" additionally returns word-level timestamps in the words array.
:param retries: Override the default retry configuration for this method
:param server_url: Override the default server URL for this method
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -446,6 +472,10 @@ class Stt(BaseSDK):
model=model,
response_format=response_format,
temperature=temperature,
timestamp_granularities=utils.unmarshal(
timestamp_granularities,
Optional[List[operations.TimestampGranularities]],
),
),
)
@@ -587,6 +617,9 @@ class Stt(BaseSDK):
language: Optional[str] = None,
response_format: Optional[operations.ResponseFormat] = None,
temperature: Optional[float] = None,
timestamp_granularities: Optional[
Iterable[operations.TimestampGranularities]
] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -606,8 +639,9 @@ class Stt(BaseSDK):
:param x_open_router_categories: Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings.
:param language: The language of the input audio (ISO-639-1).
:param response_format: The response format. Only \"json\" is supported.
:param response_format: The response format. \"json\" (default) returns { text, usage }; \"verbose_json\" additionally returns task, language, duration, and segment-level timestamps (OpenAI-compatible providers only).
:param temperature: The sampling temperature.
:param timestamp_granularities: Timestamp detail levels to include when response_format is \"verbose_json\". \"word\" additionally returns word-level timestamps in the words array.
:param retries: Override the default retry configuration for this method
:param server_url: Override the default server URL for this method
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -635,6 +669,10 @@ class Stt(BaseSDK):
model=model,
response_format=response_format,
temperature=temperature,
timestamp_granularities=utils.unmarshal(
timestamp_granularities,
Optional[List[operations.TimestampGranularities]],
),
),
)
+2 -2
View File
@@ -28,7 +28,7 @@ class Tts(BaseSDK):
components.SpeechRequestProviderTypedDict,
]
] = None,
response_format: Optional[components.ResponseFormatEnum] = "pcm",
response_format: Optional[components.SpeechRequestResponseFormat] = "pcm",
speed: Optional[float] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
@@ -246,7 +246,7 @@ class Tts(BaseSDK):
components.SpeechRequestProviderTypedDict,
]
] = None,
response_format: Optional[components.ResponseFormatEnum] = "pcm",
response_format: Optional[components.SpeechRequestResponseFormat] = "pcm",
speed: Optional[float] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
Generated
+1 -1
View File
@@ -213,7 +213,7 @@ wheels = [
[[package]]
name = "openrouter"
version = "0.11.6"
version = "0.11.7"
source = { editable = "." }
dependencies = [
{ name = "httpcore" },