@openrouter/sdk 0.12.79 → 0.13.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/README.md +43 -9
  2. package/esm/funcs/benchmarksGetBenchmarks.d.ts +19 -0
  3. package/esm/funcs/benchmarksGetBenchmarks.js +105 -0
  4. package/esm/funcs/betaAnalyticsGetAnalyticsMeta.d.ts +18 -0
  5. package/esm/funcs/betaAnalyticsGetAnalyticsMeta.js +96 -0
  6. package/esm/funcs/betaAnalyticsQueryAnalytics.d.ts +18 -0
  7. package/esm/funcs/betaAnalyticsQueryAnalytics.js +97 -0
  8. package/esm/funcs/betaResponsesSend.js +1 -1
  9. package/esm/funcs/chatSend.js +1 -1
  10. package/esm/funcs/classificationsGetTaskClassifications.d.ts +37 -0
  11. package/esm/funcs/classificationsGetTaskClassifications.js +119 -0
  12. package/esm/funcs/datasetsGetAppRankings.d.ts +43 -0
  13. package/esm/funcs/datasetsGetAppRankings.js +161 -0
  14. package/esm/funcs/filesDelete.d.ts +19 -0
  15. package/esm/funcs/filesDelete.js +107 -0
  16. package/esm/funcs/filesDownload.d.ts +18 -0
  17. package/esm/funcs/filesDownload.js +107 -0
  18. package/esm/funcs/filesList.d.ts +21 -0
  19. package/esm/funcs/filesList.js +131 -0
  20. package/esm/funcs/filesRetrieve.d.ts +19 -0
  21. package/esm/funcs/filesRetrieve.js +107 -0
  22. package/esm/funcs/filesUpload.d.ts +19 -0
  23. package/esm/funcs/filesUpload.js +121 -0
  24. package/esm/funcs/imagesGenerate.d.ts +30 -0
  25. package/esm/funcs/imagesGenerate.js +95 -0
  26. package/esm/funcs/imagesListModelEndpoints.d.ts +19 -0
  27. package/esm/funcs/imagesListModelEndpoints.js +107 -0
  28. package/esm/funcs/imagesListModels.d.ts +19 -0
  29. package/esm/funcs/imagesListModels.js +97 -0
  30. package/esm/funcs/modelsGet.d.ts +19 -0
  31. package/esm/funcs/modelsGet.js +107 -0
  32. package/esm/funcs/modelsList.js +12 -0
  33. package/esm/funcs/oAuthCreateAuthCode.d.ts +1 -1
  34. package/esm/funcs/oAuthCreateAuthCode.js +1 -1
  35. package/esm/funcs/presetsGet.d.ts +21 -0
  36. package/esm/funcs/presetsGet.js +105 -0
  37. package/esm/funcs/presetsGetVersion.d.ts +21 -0
  38. package/esm/funcs/presetsGetVersion.js +109 -0
  39. package/esm/funcs/presetsList.d.ts +23 -0
  40. package/esm/funcs/presetsList.js +136 -0
  41. package/esm/funcs/presetsListVersions.d.ts +23 -0
  42. package/esm/funcs/presetsListVersions.js +142 -0
  43. package/esm/funcs/workspacesDeleteBudget.d.ts +19 -0
  44. package/esm/funcs/workspacesDeleteBudget.js +107 -0
  45. package/esm/funcs/workspacesListBudgets.d.ts +19 -0
  46. package/esm/funcs/workspacesListBudgets.js +103 -0
  47. package/esm/funcs/workspacesSetBudget.d.ts +19 -0
  48. package/esm/funcs/workspacesSetBudget.js +110 -0
  49. package/esm/lib/config.d.ts +2 -2
  50. package/esm/lib/config.js +2 -2
  51. package/esm/models/aabenchmarkentry.d.ts +24 -0
  52. package/esm/models/aabenchmarkentry.js +23 -0
  53. package/esm/models/advisornestedtool.d.ts +25 -0
  54. package/esm/models/advisornestedtool.js +23 -0
  55. package/esm/models/advisorreasoning.d.ts +42 -0
  56. package/esm/models/advisorreasoning.js +34 -0
  57. package/esm/models/advisorservertoolconfig.d.ts +65 -0
  58. package/esm/models/advisorservertoolconfig.js +31 -0
  59. package/esm/models/advisorservertoolopenrouter.d.ts +28 -0
  60. package/esm/models/advisorservertoolopenrouter.js +20 -0
  61. package/esm/models/anthropicadvisormessageusageiteration.d.ts +24 -0
  62. package/esm/models/anthropicadvisormessageusageiteration.js +36 -0
  63. package/esm/models/anthropiccompactionusageiteration.d.ts +23 -0
  64. package/esm/models/anthropiccompactionusageiteration.js +35 -0
  65. package/esm/models/anthropicdocumentblockparam.d.ts +5 -4
  66. package/esm/models/anthropicdocumentblockparam.js +3 -0
  67. package/esm/models/anthropicfiledocumentsource.d.ts +14 -0
  68. package/esm/models/anthropicfiledocumentsource.js +19 -0
  69. package/esm/models/anthropiciterationcachecreation.d.ts +11 -0
  70. package/esm/models/anthropiciterationcachecreation.js +21 -0
  71. package/esm/models/anthropicmessageusageiteration.d.ts +24 -0
  72. package/esm/models/anthropicmessageusageiteration.js +36 -0
  73. package/esm/models/anthropicspeed.d.ts +10 -0
  74. package/esm/models/anthropicspeed.js +12 -0
  75. package/esm/models/anthropicunknownusageiteration.d.ts +16 -0
  76. package/esm/models/anthropicunknownusageiteration.js +30 -0
  77. package/esm/models/anthropicusageiteration.d.ts +12 -0
  78. package/esm/models/anthropicusageiteration.js +21 -0
  79. package/esm/models/apierrortype.d.ts +41 -0
  80. package/esm/models/apierrortype.js +40 -0
  81. package/esm/models/apprankingsitem.d.ts +29 -0
  82. package/esm/models/apprankingsitem.js +26 -0
  83. package/esm/models/apprankingsresponse.d.ts +16 -0
  84. package/esm/models/apprankingsresponse.js +17 -0
  85. package/esm/models/bashservertool.d.ts +28 -0
  86. package/esm/models/bashservertool.js +20 -0
  87. package/esm/models/bashservertoolconfig.d.ts +30 -0
  88. package/esm/models/bashservertoolconfig.js +22 -0
  89. package/esm/models/bashservertoolengine.d.ts +17 -0
  90. package/esm/models/bashservertoolengine.js +16 -0
  91. package/esm/models/bashservertoolenvironment.d.ts +13 -0
  92. package/esm/models/bashservertoolenvironment.js +16 -0
  93. package/esm/models/booleancapability.d.ts +13 -0
  94. package/esm/models/booleancapability.js +14 -0
  95. package/esm/models/byokproviderslug.d.ts +5 -1
  96. package/esm/models/byokproviderslug.js +5 -1
  97. package/esm/models/capabilitydescriptor.d.ts +15 -0
  98. package/esm/models/capabilitydescriptor.js +19 -0
  99. package/esm/models/chatfunctiontool.d.ts +5 -2
  100. package/esm/models/chatfunctiontool.js +6 -0
  101. package/esm/models/chatrequest.d.ts +44 -0
  102. package/esm/models/chatrequest.js +26 -0
  103. package/esm/models/chatstreamchunk.d.ts +25 -4
  104. package/esm/models/chatstreamchunk.js +19 -4
  105. package/esm/models/chatusage.d.ts +32 -8
  106. package/esm/models/chatusage.js +25 -8
  107. package/esm/models/chatwebsearchshorthand.d.ts +10 -5
  108. package/esm/models/chatwebsearchshorthand.js +2 -0
  109. package/esm/models/containerautoenvironment.d.ts +15 -0
  110. package/esm/models/containerautoenvironment.js +13 -0
  111. package/esm/models/containerreferenceenvironment.d.ts +20 -0
  112. package/esm/models/containerreferenceenvironment.js +19 -0
  113. package/esm/models/contentfilterbuiltinentry.d.ts +5 -0
  114. package/esm/models/contentfilterbuiltinentry.js +7 -0
  115. package/esm/models/contentfilterbuiltinentryinput.d.ts +6 -0
  116. package/esm/models/contentfilterbuiltinentryinput.js +7 -0
  117. package/esm/models/contentpartaudio.d.ts +24 -0
  118. package/esm/models/contentpartaudio.js +27 -0
  119. package/esm/models/contentpartvideo.d.ts +24 -0
  120. package/esm/models/contentpartvideo.js +27 -0
  121. package/esm/models/createobservabilitydestinationrequest.d.ts +1 -1
  122. package/esm/models/dabenchmarkentry.d.ts +32 -0
  123. package/esm/models/dabenchmarkentry.js +23 -0
  124. package/esm/models/debugevent.d.ts +42 -0
  125. package/esm/models/debugevent.js +58 -0
  126. package/esm/models/deleteworkspacebudgetresponse.d.ts +13 -0
  127. package/esm/models/deleteworkspacebudgetresponse.js +14 -0
  128. package/esm/models/enumcapability.d.ts +14 -0
  129. package/esm/models/enumcapability.js +15 -0
  130. package/esm/models/filedeleteresponse.d.ts +21 -0
  131. package/esm/models/filedeleteresponse.js +20 -0
  132. package/esm/models/filelistresponse.d.ts +21 -0
  133. package/esm/models/filelistresponse.js +26 -0
  134. package/esm/models/filemetadata.d.ts +26 -0
  135. package/esm/models/filemetadata.js +33 -0
  136. package/esm/models/fusionanalysisresult.d.ts +88 -0
  137. package/esm/models/fusionanalysisresult.js +109 -0
  138. package/esm/models/fusioncallanalysiscompletedevent.d.ts +21 -0
  139. package/esm/models/fusioncallanalysiscompletedevent.js +26 -0
  140. package/esm/models/fusioncallanalysisinprogressevent.d.ts +17 -0
  141. package/esm/models/fusioncallanalysisinprogressevent.js +26 -0
  142. package/esm/models/fusioncallcompletedevent.d.ts +16 -0
  143. package/esm/models/fusioncallcompletedevent.js +24 -0
  144. package/esm/models/fusioncallinprogressevent.d.ts +16 -0
  145. package/esm/models/fusioncallinprogressevent.js +24 -0
  146. package/esm/models/fusioncallpaneladdedevent.d.ts +17 -0
  147. package/esm/models/fusioncallpaneladdedevent.js +25 -0
  148. package/esm/models/fusioncallpanelcompletedevent.d.ts +18 -0
  149. package/esm/models/fusioncallpanelcompletedevent.js +26 -0
  150. package/esm/models/fusioncallpaneldeltaevent.d.ts +18 -0
  151. package/esm/models/fusioncallpaneldeltaevent.js +26 -0
  152. package/esm/models/fusioncallpanelfailedevent.d.ts +19 -0
  153. package/esm/models/fusioncallpanelfailedevent.js +28 -0
  154. package/esm/models/fusioncallpanelreasoningdeltaevent.d.ts +18 -0
  155. package/esm/models/fusioncallpanelreasoningdeltaevent.js +26 -0
  156. package/esm/models/fusionplugin.d.ts +47 -0
  157. package/esm/models/fusionplugin.js +21 -0
  158. package/esm/models/fusionservertoolconfig.d.ts +35 -1
  159. package/esm/models/fusionservertoolconfig.js +14 -0
  160. package/esm/models/generationresponse.d.ts +22 -0
  161. package/esm/models/generationresponse.js +14 -0
  162. package/esm/models/getpresetresponse.d.ts +17 -0
  163. package/esm/models/getpresetresponse.js +15 -0
  164. package/esm/models/getpresetversionresponse.d.ts +17 -0
  165. package/esm/models/getpresetversionresponse.js +15 -0
  166. package/esm/models/imageendpoint.d.ts +41 -0
  167. package/esm/models/imageendpoint.js +33 -0
  168. package/esm/models/imagegencompletedevent.d.ts +29 -0
  169. package/esm/models/imagegencompletedevent.js +23 -0
  170. package/esm/models/imagegenerationrequest.d.ts +908 -0
  171. package/esm/models/imagegenerationrequest.js +266 -0
  172. package/esm/models/imagegenerationresponse.d.ts +34 -0
  173. package/esm/models/imagegenerationresponse.js +29 -0
  174. package/esm/models/imagegenerationservertool.d.ts +15 -15
  175. package/esm/models/imagegenerationservertool.js +15 -17
  176. package/esm/models/imagegenerationusage.d.ts +119 -0
  177. package/esm/models/imagegenerationusage.js +93 -0
  178. package/esm/models/imagegenpartialimageevent.d.ts +24 -0
  179. package/esm/models/imagegenpartialimageevent.js +22 -0
  180. package/esm/models/imagegenstreamerrorevent.d.ts +44 -0
  181. package/esm/models/imagegenstreamerrorevent.js +25 -0
  182. package/esm/models/imagemodelarchitecture.d.ts +19 -0
  183. package/esm/models/imagemodelarchitecture.js +23 -0
  184. package/esm/models/imagemodelendpointsresponse.d.ts +18 -0
  185. package/esm/models/imagemodelendpointsresponse.js +16 -0
  186. package/esm/models/imagemodellistitem.d.ts +42 -0
  187. package/esm/models/imagemodellistitem.js +29 -0
  188. package/esm/models/imagemodelslistresponse.d.ts +14 -0
  189. package/esm/models/imagemodelslistresponse.js +15 -0
  190. package/esm/models/imageoutputmodality.d.ts +16 -0
  191. package/esm/models/imageoutputmodality.js +18 -0
  192. package/esm/models/imagepricingentry.d.ts +35 -0
  193. package/esm/models/imagepricingentry.js +41 -0
  194. package/esm/models/imagestreamingresponse.d.ts +18 -0
  195. package/esm/models/imagestreamingresponse.js +43 -0
  196. package/esm/models/index.d.ts +97 -0
  197. package/esm/models/index.js +97 -0
  198. package/esm/models/inputreference.d.ts +18 -0
  199. package/esm/models/inputreference.js +18 -0
  200. package/esm/models/inputsunion.d.ts +7 -4
  201. package/esm/models/inputsunion.js +11 -2
  202. package/esm/models/legacywebsearchservertool.d.ts +2 -2
  203. package/esm/models/listpresetsresponse.d.ts +15 -0
  204. package/esm/models/listpresetsresponse.js +21 -0
  205. package/esm/models/listpresetversionsresponse.d.ts +15 -0
  206. package/esm/models/listpresetversionsresponse.js +21 -0
  207. package/esm/models/listworkspacebudgetsresponse.d.ts +14 -0
  208. package/esm/models/listworkspacebudgetsresponse.js +15 -0
  209. package/esm/models/messagesfallbackparam.d.ts +19 -0
  210. package/esm/models/messagesfallbackparam.js +22 -0
  211. package/esm/models/messagesrequest.d.ts +17 -10
  212. package/esm/models/messagesrequest.js +10 -5
  213. package/esm/models/model.d.ts +10 -0
  214. package/esm/models/model.js +4 -0
  215. package/esm/models/modelbenchmarks.d.ts +22 -0
  216. package/esm/models/modelbenchmarks.js +23 -0
  217. package/esm/models/modelreasoning.d.ts +49 -0
  218. package/esm/models/modelreasoning.js +42 -0
  219. package/esm/models/modelresponse.d.ts +17 -0
  220. package/esm/models/modelresponse.js +16 -0
  221. package/esm/models/observabilityarizedestination.d.ts +4 -1
  222. package/esm/models/observabilitybraintrustdestination.d.ts +1 -1
  223. package/esm/models/observabilityclickhousedestination.d.ts +1 -1
  224. package/esm/models/observabilitydatadogdestination.d.ts +1 -1
  225. package/esm/models/observabilitygrafanadestination.d.ts +1 -1
  226. package/esm/models/observabilitylangfusedestination.d.ts +1 -1
  227. package/esm/models/observabilitylangsmithdestination.d.ts +1 -1
  228. package/esm/models/observabilitynewrelicdestination.d.ts +1 -1
  229. package/esm/models/observabilityopikdestination.d.ts +1 -1
  230. package/esm/models/observabilityotelcollectordestination.d.ts +1 -1
  231. package/esm/models/observabilityposthogdestination.d.ts +1 -1
  232. package/esm/models/observabilityrampdestination.d.ts +1 -1
  233. package/esm/models/observabilitys3destination.d.ts +1 -1
  234. package/esm/models/observabilitysentrydestination.d.ts +1 -1
  235. package/esm/models/observabilitysnowflakedestination.d.ts +1 -1
  236. package/esm/models/observabilityweavedestination.d.ts +1 -1
  237. package/esm/models/observabilitywebhookdestination.d.ts +1 -1
  238. package/esm/models/openresponsesresult.d.ts +5 -0
  239. package/esm/models/openresponsesresult.js +3 -0
  240. package/esm/models/operations/createauthkeyscode.d.ts +6 -1
  241. package/esm/models/operations/createauthkeyscode.js +2 -0
  242. package/esm/models/operations/createembeddings.d.ts +19 -0
  243. package/esm/models/operations/createembeddings.js +20 -0
  244. package/esm/models/operations/createimages.d.ts +63 -0
  245. package/esm/models/operations/createimages.js +44 -0
  246. package/esm/models/operations/creatererank.d.ts +44 -10
  247. package/esm/models/operations/creatererank.js +21 -6
  248. package/esm/models/operations/createresponses.d.ts +3 -3
  249. package/esm/models/operations/createresponses.js +2 -3
  250. package/esm/models/operations/deletefile.d.ts +60 -0
  251. package/esm/models/operations/deletefile.js +24 -0
  252. package/esm/models/operations/deleteworkspacebudget.d.ts +64 -0
  253. package/esm/models/operations/deleteworkspacebudget.js +23 -0
  254. package/esm/models/operations/downloadfilecontent.d.ts +60 -0
  255. package/esm/models/operations/downloadfilecontent.js +24 -0
  256. package/esm/models/operations/getanalyticsmeta.d.ts +198 -0
  257. package/esm/models/operations/getanalyticsmeta.js +141 -0
  258. package/esm/models/operations/getapprankings.d.ts +152 -0
  259. package/esm/models/operations/getapprankings.js +85 -0
  260. package/esm/models/operations/getbenchmarks.d.ts +120 -0
  261. package/esm/models/operations/getbenchmarks.js +60 -0
  262. package/esm/models/operations/getfilemetadata.d.ts +60 -0
  263. package/esm/models/operations/getfilemetadata.js +24 -0
  264. package/esm/models/operations/getmodel.d.ts +63 -0
  265. package/esm/models/operations/getmodel.js +22 -0
  266. package/esm/models/operations/getmodels.d.ts +123 -5
  267. package/esm/models/operations/getmodels.js +61 -4
  268. package/esm/models/operations/getpreset.d.ts +58 -0
  269. package/esm/models/operations/getpreset.js +21 -0
  270. package/esm/models/operations/getpresetversion.d.ts +63 -0
  271. package/esm/models/operations/getpresetversion.js +22 -0
  272. package/esm/models/operations/gettaskclassifications.d.ts +71 -0
  273. package/esm/models/operations/gettaskclassifications.js +29 -0
  274. package/esm/models/operations/index.d.ts +21 -0
  275. package/esm/models/operations/index.js +21 -0
  276. package/esm/models/operations/listbyokkeys.d.ts +5 -1
  277. package/esm/models/operations/listbyokkeys.js +5 -1
  278. package/esm/models/operations/listfiles.d.ts +77 -0
  279. package/esm/models/operations/listfiles.js +37 -0
  280. package/esm/models/operations/listimagemodelendpoints.d.ts +63 -0
  281. package/esm/models/operations/listimagemodelendpoints.js +22 -0
  282. package/esm/models/operations/listimagemodels.d.ts +53 -0
  283. package/esm/models/operations/listimagemodels.js +20 -0
  284. package/esm/models/operations/listpresets.d.ts +72 -0
  285. package/esm/models/operations/listpresets.js +35 -0
  286. package/esm/models/operations/listpresetversions.d.ts +77 -0
  287. package/esm/models/operations/listpresetversions.js +36 -0
  288. package/esm/models/operations/listworkspacebudgets.d.ts +58 -0
  289. package/esm/models/operations/listworkspacebudgets.js +21 -0
  290. package/esm/models/operations/queryanalytics.d.ts +199 -0
  291. package/esm/models/operations/queryanalytics.js +130 -0
  292. package/esm/models/operations/sendchatcompletionrequest.d.ts +3 -3
  293. package/esm/models/operations/sendchatcompletionrequest.js +2 -3
  294. package/esm/models/operations/uploadfile.d.ts +82 -0
  295. package/esm/models/operations/uploadfile.js +45 -0
  296. package/esm/models/operations/upsertworkspacebudget.d.ts +66 -0
  297. package/esm/models/operations/upsertworkspacebudget.js +25 -0
  298. package/esm/models/outputadvisorservertoolitem.d.ts +59 -0
  299. package/esm/models/outputadvisorservertoolitem.js +52 -0
  300. package/esm/models/outputfusionservertoolitem.d.ts +44 -43
  301. package/esm/models/outputfusionservertoolitem.js +49 -51
  302. package/esm/models/outputitems.d.ts +13 -3
  303. package/esm/models/outputitems.js +9 -1
  304. package/esm/models/outputshellcallitem.d.ts +29 -0
  305. package/esm/models/outputshellcallitem.js +38 -0
  306. package/esm/models/outputshellcalloutputitem.d.ts +48 -0
  307. package/esm/models/outputshellcalloutputitem.js +67 -0
  308. package/esm/models/outputsubagentservertoolitem.d.ts +59 -0
  309. package/esm/models/outputsubagentservertoolitem.js +54 -0
  310. package/esm/models/outputwebsearchcallitem.d.ts +2 -2
  311. package/esm/models/outputwebsearchcallitem.js +2 -2
  312. package/esm/models/preset.d.ts +27 -0
  313. package/esm/models/preset.js +35 -0
  314. package/esm/models/presetstatus.d.ts +17 -0
  315. package/esm/models/presetstatus.js +16 -0
  316. package/esm/models/presetwithdesignatedversion.d.ts +9 -14
  317. package/esm/models/presetwithdesignatedversion.js +4 -11
  318. package/esm/models/preview20250311websearchservertool.d.ts +2 -2
  319. package/esm/models/previewwebsearchservertool.d.ts +2 -2
  320. package/esm/models/promptinjectionscanscope.d.ts +18 -0
  321. package/esm/models/promptinjectionscanscope.js +17 -0
  322. package/esm/models/providername.d.ts +5 -1
  323. package/esm/models/providername.js +5 -1
  324. package/esm/models/provideroptions.d.ts +31 -1
  325. package/esm/models/provideroptions.js +7 -0
  326. package/esm/models/providerresponse.d.ts +6 -1
  327. package/esm/models/providerresponse.js +7 -2
  328. package/esm/models/rangecapability.d.ts +15 -0
  329. package/esm/models/rangecapability.js +16 -0
  330. package/esm/models/rankingsdailymeta.d.ts +4 -4
  331. package/esm/models/rankingsdailymeta.js +3 -3
  332. package/esm/models/reasoningeffort.d.ts +1 -0
  333. package/esm/models/reasoningeffort.js +1 -0
  334. package/esm/models/responsesrequest.d.ts +42 -8
  335. package/esm/models/responsesrequest.js +14 -0
  336. package/esm/models/searchqualitylevel.d.ts +2 -2
  337. package/esm/models/searchqualitylevel.js +1 -1
  338. package/esm/models/shellcallstatus.d.ts +17 -0
  339. package/esm/models/shellcallstatus.js +16 -0
  340. package/esm/models/shellservertoolconfig.d.ts +30 -0
  341. package/esm/models/shellservertoolconfig.js +22 -0
  342. package/esm/models/shellservertoolengine.d.ts +16 -0
  343. package/esm/models/shellservertoolengine.js +15 -0
  344. package/esm/models/shellservertoolenvironment.d.ts +13 -0
  345. package/esm/models/shellservertoolenvironment.js +16 -0
  346. package/esm/models/shellservertoolopenrouter.d.ts +21 -0
  347. package/esm/models/shellservertoolopenrouter.js +15 -0
  348. package/esm/models/speechrequest.d.ts +1 -1
  349. package/esm/models/streamevents.d.ts +11 -1
  350. package/esm/models/streamevents.js +20 -0
  351. package/esm/models/sttrequest.d.ts +1 -1
  352. package/esm/models/subagentnestedtool.d.ts +25 -0
  353. package/esm/models/subagentnestedtool.js +23 -0
  354. package/esm/models/subagentreasoning.d.ts +42 -0
  355. package/esm/models/subagentreasoning.js +34 -0
  356. package/esm/models/subagentservertoolconfig.d.ts +50 -0
  357. package/esm/models/subagentservertoolconfig.js +27 -0
  358. package/esm/models/subagentservertoolopenrouter.d.ts +28 -0
  359. package/esm/models/subagentservertoolopenrouter.js +20 -0
  360. package/esm/models/taskclassificationitem.d.ts +42 -0
  361. package/esm/models/taskclassificationitem.js +32 -0
  362. package/esm/models/taskclassificationmacrocategory.d.ts +25 -0
  363. package/esm/models/taskclassificationmacrocategory.js +23 -0
  364. package/esm/models/taskclassificationmodel.d.ts +21 -0
  365. package/esm/models/taskclassificationmodel.js +22 -0
  366. package/esm/models/taskclassificationresponse.d.ts +33 -0
  367. package/esm/models/taskclassificationresponse.js +33 -0
  368. package/esm/models/unifiedbenchmarkpricing.d.ts +20 -0
  369. package/esm/models/unifiedbenchmarkpricing.js +15 -0
  370. package/esm/models/unifiedbenchmarksaaitem.d.ts +38 -0
  371. package/esm/models/unifiedbenchmarksaaitem.js +30 -0
  372. package/esm/models/unifiedbenchmarksdaitem.d.ts +63 -0
  373. package/esm/models/unifiedbenchmarksdaitem.js +51 -0
  374. package/esm/models/unifiedbenchmarksmeta.d.ts +63 -0
  375. package/esm/models/unifiedbenchmarksmeta.js +46 -0
  376. package/esm/models/unifiedbenchmarksresponse.d.ts +19 -0
  377. package/esm/models/unifiedbenchmarksresponse.js +30 -0
  378. package/esm/models/updateobservabilitydestinationrequest.d.ts +1 -1
  379. package/esm/models/upsertworkspacebudgetrequest.d.ts +15 -0
  380. package/esm/models/upsertworkspacebudgetrequest.js +18 -0
  381. package/esm/models/upsertworkspacebudgetresponse.d.ts +11 -0
  382. package/esm/models/upsertworkspacebudgetresponse.js +15 -0
  383. package/esm/models/urlcitation.d.ts +2 -0
  384. package/esm/models/urlcitation.js +2 -0
  385. package/esm/models/videogenerationrequest.d.ts +49 -19
  386. package/esm/models/videogenerationrequest.js +20 -13
  387. package/esm/models/websearchconfig.d.ts +10 -5
  388. package/esm/models/websearchconfig.js +2 -0
  389. package/esm/models/websearchengine.d.ts +1 -0
  390. package/esm/models/websearchengine.js +1 -0
  391. package/esm/models/websearchengineenum.d.ts +4 -3
  392. package/esm/models/websearchengineenum.js +3 -2
  393. package/esm/models/websearchservertool.d.ts +2 -2
  394. package/esm/models/websearchservertoolconfig.d.ts +10 -5
  395. package/esm/models/websearchservertoolconfig.js +2 -0
  396. package/esm/models/workspacebudget.d.ts +48 -0
  397. package/esm/models/workspacebudget.js +39 -0
  398. package/esm/models/workspacebudgetinterval.d.ts +18 -0
  399. package/esm/models/workspacebudgetinterval.js +17 -0
  400. package/esm/sdk/benchmarks.d.ts +13 -0
  401. package/esm/sdk/benchmarks.js +19 -0
  402. package/esm/sdk/beta.d.ts +3 -0
  403. package/esm/sdk/beta.js +4 -0
  404. package/esm/sdk/betaanalytics.d.ts +19 -0
  405. package/esm/sdk/betaanalytics.js +29 -0
  406. package/esm/sdk/classifications.d.ts +31 -0
  407. package/esm/sdk/classifications.js +37 -0
  408. package/esm/sdk/datasets.d.ts +32 -0
  409. package/esm/sdk/datasets.js +33 -0
  410. package/esm/sdk/files.d.ts +44 -0
  411. package/esm/sdk/files.js +60 -0
  412. package/esm/sdk/images.d.ts +38 -0
  413. package/esm/sdk/images.js +33 -0
  414. package/esm/sdk/models.d.ts +7 -0
  415. package/esm/sdk/models.js +10 -0
  416. package/esm/sdk/presets.d.ts +33 -0
  417. package/esm/sdk/presets.js +41 -0
  418. package/esm/sdk/sdk.d.ts +14 -2
  419. package/esm/sdk/sdk.js +19 -3
  420. package/esm/sdk/workspaces.d.ts +21 -0
  421. package/esm/sdk/workspaces.js +30 -0
  422. package/jsr.json +1 -1
  423. package/package.json +6 -6
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  ![hero illustration](./assets/banner.png)
2
2
 
3
- # OpenRouter SDK (Beta)
3
+ # OpenRouter SDK
4
4
 
5
- The [OpenRouter SDK](https://openrouter.ai/docs/sdks/typescript) is a TypeScript toolkit designed to help you build AI-powered features and solutions in any JS or TS based runtime. Giving you easy access to over 300 models across providers in an easy and type-safe way.
5
+ The [OpenRouter SDK](https://openrouter.ai/docs/sdks/typescript) is a TypeScript toolkit designed to help you build AI-powered features and solutions in any JS or TS based runtime. Giving you easy access to 400+ models across providers in an easy and type-safe way.
6
6
 
7
7
  To learn more about how to use the OpenRouter SDK, check out our [API Reference](https://openrouter.ai/docs/sdks/typescript/reference) and [Documentation](https://openrouter.ai/docs/sdks/typescript).
8
8
 
@@ -143,6 +143,46 @@ run();
143
143
  ```
144
144
  <!-- End Pagination [pagination] -->
145
145
 
146
+ <!-- Start File uploads [file-upload] -->
147
+ ## File uploads
148
+
149
+ Certain SDK methods accept files as part of a multi-part request. It is possible and typically recommended to upload files as a stream rather than reading the entire contents into memory. This avoids excessive memory consumption and potentially crashing with out-of-memory errors when working with very large files. The following example demonstrates how to attach a file stream to a request.
150
+
151
+ > [!TIP]
152
+ >
153
+ > Depending on your JavaScript runtime, there are convenient utilities that return a handle to a file without reading the entire contents into memory:
154
+ >
155
+ > - **Node.js v20+:** Since v20, Node.js comes with a native `openAsBlob` function in [`node:fs`](https://nodejs.org/docs/latest-v20.x/api/fs.html#fsopenasblobpath-options).
156
+ > - **Bun:** The native [`Bun.file`](https://bun.sh/docs/api/file-io#reading-files-bun-file) function produces a file handle that can be used for streaming file uploads.
157
+ > - **Browsers:** All supported browsers return an instance to a [`File`](https://developer.mozilla.org/en-US/docs/Web/API/File) when reading the value from an `<input type="file">` element.
158
+ > - **Node.js v18:** A file stream can be created using the `fileFrom` helper from [`fetch-blob/from.js`](https://www.npmjs.com/package/fetch-blob).
159
+
160
+ ```typescript
161
+ import { OpenRouter } from "@openrouter/sdk";
162
+ import { openAsBlob } from "node:fs";
163
+
164
+ const openRouter = new OpenRouter({
165
+ httpReferer: "<value>",
166
+ appTitle: "<value>",
167
+ appCategories: "<value>",
168
+ apiKey: process.env["OPENROUTER_API_KEY"] ?? "",
169
+ });
170
+
171
+ async function run() {
172
+ const result = await openRouter.files.upload({
173
+ requestBody: {
174
+ file: await openAsBlob("example.file"),
175
+ },
176
+ });
177
+
178
+ console.log(result);
179
+ }
180
+
181
+ run();
182
+
183
+ ```
184
+ <!-- End File uploads [file-upload] -->
185
+
146
186
  <!-- Start Debugging [debug] -->
147
187
  ## Debugging
148
188
 
@@ -188,10 +228,4 @@ To run the test suite, you'll need to set up your environment with an OpenRouter
188
228
 
189
229
  ```bash
190
230
  npx vitest
191
- ```
192
-
193
- ## Maturity
194
-
195
- This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage
196
- to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally
197
- looking for the latest version.
231
+ ```
@@ -0,0 +1,19 @@
1
+ import { OpenRouterCore } from "../core.js";
2
+ import { RequestOptions } from "../lib/sdks.js";
3
+ import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
4
+ import * as errors from "../models/errors/index.js";
5
+ import { OpenRouterError } from "../models/errors/openroutererror.js";
6
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
7
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
8
+ import * as models from "../models/index.js";
9
+ import * as operations from "../models/operations/index.js";
10
+ import { APIPromise } from "../types/async.js";
11
+ import { Result } from "../types/fp.js";
12
+ /**
13
+ * List Benchmarks
14
+ *
15
+ * @remarks
16
+ * Unified benchmark endpoint that aggregates scores from multiple benchmark sources (Artificial Analysis, Design Arena). Filter by source to reproduce the exact shapes from the legacy per-source endpoints, or use task_type to find models suited for specific workloads. Authenticate with any valid OpenRouter API key. Rate-limited to 30 requests/minute per key and 500 requests/day per account.
17
+ */
18
+ export declare function benchmarksGetBenchmarks(client: OpenRouterCore, request?: operations.GetBenchmarksRequest | undefined, options?: RequestOptions): APIPromise<Result<models.UnifiedBenchmarksResponse, errors.BadRequestResponseError | errors.UnauthorizedResponseError | errors.TooManyRequestsResponseError | errors.InternalServerResponseError | OpenRouterError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
19
+ //# sourceMappingURL=benchmarksGetBenchmarks.d.ts.map
@@ -0,0 +1,105 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 1b5fbe93cea7
4
+ */
5
+ import { encodeFormQuery, encodeSimple } from "../lib/encodings.js";
6
+ import { matchStatusCode } from "../lib/http.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
11
+ import { pathToFunc } from "../lib/url.js";
12
+ import * as errors from "../models/errors/index.js";
13
+ import * as models from "../models/index.js";
14
+ import * as operations from "../models/operations/index.js";
15
+ import { APIPromise } from "../types/async.js";
16
+ /**
17
+ * List Benchmarks
18
+ *
19
+ * @remarks
20
+ * Unified benchmark endpoint that aggregates scores from multiple benchmark sources (Artificial Analysis, Design Arena). Filter by source to reproduce the exact shapes from the legacy per-source endpoints, or use task_type to find models suited for specific workloads. Authenticate with any valid OpenRouter API key. Rate-limited to 30 requests/minute per key and 500 requests/day per account.
21
+ */
22
+ export function benchmarksGetBenchmarks(client, request, options) {
23
+ return new APIPromise($do(client, request, options));
24
+ }
25
+ async function $do(client, request, options) {
26
+ const parsed = safeParse(request, (value) => operations.GetBenchmarksRequest$outboundSchema.optional().parse(value), "Input validation failed");
27
+ if (!parsed.ok) {
28
+ return [parsed, { status: "invalid" }];
29
+ }
30
+ const payload = parsed.value;
31
+ const body = null;
32
+ const path = pathToFunc("/benchmarks")();
33
+ const query = encodeFormQuery({
34
+ "arena": payload?.arena,
35
+ "category": payload?.category,
36
+ "max_results": payload?.max_results,
37
+ "source": payload?.source,
38
+ "task_type": payload?.task_type,
39
+ });
40
+ const headers = new Headers(compactMap({
41
+ Accept: "application/json",
42
+ "HTTP-Referer": encodeSimple("HTTP-Referer", payload?.["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
43
+ "X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload?.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
44
+ "X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload?.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
45
+ }));
46
+ const secConfig = await extractSecurity(client._options.apiKey);
47
+ const securityInput = secConfig == null ? {} : { apiKey: secConfig };
48
+ const requestSecurity = resolveGlobalSecurity(securityInput);
49
+ const context = {
50
+ options: client._options,
51
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
52
+ operationID: "getBenchmarks",
53
+ oAuth2Scopes: null,
54
+ resolvedSecurity: requestSecurity,
55
+ securitySource: client._options.apiKey,
56
+ retryConfig: options?.retries
57
+ || client._options.retryConfig
58
+ || {
59
+ strategy: "backoff",
60
+ backoff: {
61
+ initialInterval: 500,
62
+ maxInterval: 60000,
63
+ exponent: 1.5,
64
+ maxElapsedTime: 3600000,
65
+ },
66
+ retryConnectionErrors: true,
67
+ }
68
+ || { strategy: "none" },
69
+ retryCodes: options?.retryCodes || ["5XX"],
70
+ };
71
+ const requestRes = client._createRequest(context, {
72
+ security: requestSecurity,
73
+ method: "GET",
74
+ baseURL: options?.serverURL,
75
+ path: path,
76
+ headers: headers,
77
+ query: query,
78
+ body: body,
79
+ userAgent: client._options.userAgent,
80
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
81
+ }, options);
82
+ if (!requestRes.ok) {
83
+ return [requestRes, { status: "invalid" }];
84
+ }
85
+ const req = requestRes.value;
86
+ const doResult = await client._do(req, {
87
+ context,
88
+ isErrorStatusCode: (statusCode) => matchStatusCode({ status: statusCode }, ["4XX", "5XX"]),
89
+ retryConfig: context.retryConfig,
90
+ retryCodes: context.retryCodes,
91
+ });
92
+ if (!doResult.ok) {
93
+ return [doResult, { status: "request-error", request: req }];
94
+ }
95
+ const response = doResult.value;
96
+ const responseFields = {
97
+ HttpMeta: { Response: response, Request: req },
98
+ };
99
+ const [result] = await M.match(M.json(200, models.UnifiedBenchmarksResponse$inboundSchema), M.jsonErr(400, errors.BadRequestResponseError$inboundSchema), M.jsonErr(401, errors.UnauthorizedResponseError$inboundSchema), M.jsonErr(429, errors.TooManyRequestsResponseError$inboundSchema), M.jsonErr(500, errors.InternalServerResponseError$inboundSchema), M.fail("4XX"), M.fail("5XX"))(response, req, { extraFields: responseFields });
100
+ if (!result.ok) {
101
+ return [result, { status: "complete", request: req, response }];
102
+ }
103
+ return [result, { status: "complete", request: req, response }];
104
+ }
105
+ //# sourceMappingURL=benchmarksGetBenchmarks.js.map
@@ -0,0 +1,18 @@
1
+ import { OpenRouterCore } from "../core.js";
2
+ import { RequestOptions } from "../lib/sdks.js";
3
+ import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
4
+ import * as errors from "../models/errors/index.js";
5
+ import { OpenRouterError } from "../models/errors/openroutererror.js";
6
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
7
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
8
+ import * as operations from "../models/operations/index.js";
9
+ import { APIPromise } from "../types/async.js";
10
+ import { Result } from "../types/fp.js";
11
+ /**
12
+ * Get available analytics metrics and dimensions
13
+ *
14
+ * @remarks
15
+ * Returns the available metrics, dimensions, filter operators, and granularities for the analytics query endpoint. [Management key](/docs/guides/overview/auth/management-api-keys) required.
16
+ */
17
+ export declare function betaAnalyticsGetAnalyticsMeta(client: OpenRouterCore, request?: operations.GetAnalyticsMetaRequest | undefined, options?: RequestOptions): APIPromise<Result<operations.GetAnalyticsMetaResponse, errors.UnauthorizedResponseError | errors.ForbiddenResponseError | errors.InternalServerResponseError | OpenRouterError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
18
+ //# sourceMappingURL=betaAnalyticsGetAnalyticsMeta.d.ts.map
@@ -0,0 +1,96 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: fd48bb0a54a8
4
+ */
5
+ import { encodeSimple } from "../lib/encodings.js";
6
+ import { matchStatusCode } from "../lib/http.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
11
+ import { pathToFunc } from "../lib/url.js";
12
+ import * as errors from "../models/errors/index.js";
13
+ import * as operations from "../models/operations/index.js";
14
+ import { APIPromise } from "../types/async.js";
15
+ /**
16
+ * Get available analytics metrics and dimensions
17
+ *
18
+ * @remarks
19
+ * Returns the available metrics, dimensions, filter operators, and granularities for the analytics query endpoint. [Management key](/docs/guides/overview/auth/management-api-keys) required.
20
+ */
21
+ export function betaAnalyticsGetAnalyticsMeta(client, request, options) {
22
+ return new APIPromise($do(client, request, options));
23
+ }
24
+ async function $do(client, request, options) {
25
+ const parsed = safeParse(request, (value) => operations.GetAnalyticsMetaRequest$outboundSchema.optional().parse(value), "Input validation failed");
26
+ if (!parsed.ok) {
27
+ return [parsed, { status: "invalid" }];
28
+ }
29
+ const payload = parsed.value;
30
+ const body = null;
31
+ const path = pathToFunc("/analytics/meta")();
32
+ const headers = new Headers(compactMap({
33
+ Accept: "application/json",
34
+ "HTTP-Referer": encodeSimple("HTTP-Referer", payload?.["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
35
+ "X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload?.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
36
+ "X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload?.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
37
+ }));
38
+ const secConfig = await extractSecurity(client._options.apiKey);
39
+ const securityInput = secConfig == null ? {} : { apiKey: secConfig };
40
+ const requestSecurity = resolveGlobalSecurity(securityInput);
41
+ const context = {
42
+ options: client._options,
43
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
44
+ operationID: "getAnalyticsMeta",
45
+ oAuth2Scopes: null,
46
+ resolvedSecurity: requestSecurity,
47
+ securitySource: client._options.apiKey,
48
+ retryConfig: options?.retries
49
+ || client._options.retryConfig
50
+ || {
51
+ strategy: "backoff",
52
+ backoff: {
53
+ initialInterval: 500,
54
+ maxInterval: 60000,
55
+ exponent: 1.5,
56
+ maxElapsedTime: 3600000,
57
+ },
58
+ retryConnectionErrors: true,
59
+ }
60
+ || { strategy: "none" },
61
+ retryCodes: options?.retryCodes || ["5XX"],
62
+ };
63
+ const requestRes = client._createRequest(context, {
64
+ security: requestSecurity,
65
+ method: "GET",
66
+ baseURL: options?.serverURL,
67
+ path: path,
68
+ headers: headers,
69
+ body: body,
70
+ userAgent: client._options.userAgent,
71
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
72
+ }, options);
73
+ if (!requestRes.ok) {
74
+ return [requestRes, { status: "invalid" }];
75
+ }
76
+ const req = requestRes.value;
77
+ const doResult = await client._do(req, {
78
+ context,
79
+ isErrorStatusCode: (statusCode) => matchStatusCode({ status: statusCode }, ["4XX", "5XX"]),
80
+ retryConfig: context.retryConfig,
81
+ retryCodes: context.retryCodes,
82
+ });
83
+ if (!doResult.ok) {
84
+ return [doResult, { status: "request-error", request: req }];
85
+ }
86
+ const response = doResult.value;
87
+ const responseFields = {
88
+ HttpMeta: { Response: response, Request: req },
89
+ };
90
+ const [result] = await M.match(M.json(200, operations.GetAnalyticsMetaResponse$inboundSchema), M.jsonErr(401, errors.UnauthorizedResponseError$inboundSchema), M.jsonErr(403, errors.ForbiddenResponseError$inboundSchema), M.jsonErr(500, errors.InternalServerResponseError$inboundSchema), M.fail("4XX"), M.fail("5XX"))(response, req, { extraFields: responseFields });
91
+ if (!result.ok) {
92
+ return [result, { status: "complete", request: req, response }];
93
+ }
94
+ return [result, { status: "complete", request: req, response }];
95
+ }
96
+ //# sourceMappingURL=betaAnalyticsGetAnalyticsMeta.js.map
@@ -0,0 +1,18 @@
1
+ import { OpenRouterCore } from "../core.js";
2
+ import { RequestOptions } from "../lib/sdks.js";
3
+ import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
4
+ import * as errors from "../models/errors/index.js";
5
+ import { OpenRouterError } from "../models/errors/openroutererror.js";
6
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
7
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
8
+ import * as operations from "../models/operations/index.js";
9
+ import { APIPromise } from "../types/async.js";
10
+ import { Result } from "../types/fp.js";
11
+ /**
12
+ * Query analytics data
13
+ *
14
+ * @remarks
15
+ * Execute an analytics query with specified metrics, dimensions, filters, and time range. [Management key](/docs/guides/overview/auth/management-api-keys) required.
16
+ */
17
+ export declare function betaAnalyticsQueryAnalytics(client: OpenRouterCore, request: operations.QueryAnalyticsRequest, options?: RequestOptions): APIPromise<Result<operations.QueryAnalyticsResponse, errors.BadRequestResponseError | errors.UnauthorizedResponseError | errors.ForbiddenResponseError | errors.RequestTimeoutResponseError | errors.InternalServerResponseError | OpenRouterError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
18
+ //# sourceMappingURL=betaAnalyticsQueryAnalytics.d.ts.map
@@ -0,0 +1,97 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 979cbc58b672
4
+ */
5
+ import { encodeJSON, encodeSimple } from "../lib/encodings.js";
6
+ import { matchStatusCode } from "../lib/http.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
11
+ import { pathToFunc } from "../lib/url.js";
12
+ import * as errors from "../models/errors/index.js";
13
+ import * as operations from "../models/operations/index.js";
14
+ import { APIPromise } from "../types/async.js";
15
+ /**
16
+ * Query analytics data
17
+ *
18
+ * @remarks
19
+ * Execute an analytics query with specified metrics, dimensions, filters, and time range. [Management key](/docs/guides/overview/auth/management-api-keys) required.
20
+ */
21
+ export function betaAnalyticsQueryAnalytics(client, request, options) {
22
+ return new APIPromise($do(client, request, options));
23
+ }
24
+ async function $do(client, request, options) {
25
+ const parsed = safeParse(request, (value) => operations.QueryAnalyticsRequest$outboundSchema.parse(value), "Input validation failed");
26
+ if (!parsed.ok) {
27
+ return [parsed, { status: "invalid" }];
28
+ }
29
+ const payload = parsed.value;
30
+ const body = encodeJSON("body", payload.RequestBody, { explode: true });
31
+ const path = pathToFunc("/analytics/query")();
32
+ const headers = new Headers(compactMap({
33
+ "Content-Type": "application/json",
34
+ Accept: "application/json",
35
+ "HTTP-Referer": encodeSimple("HTTP-Referer", payload["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
36
+ "X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
37
+ "X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
38
+ }));
39
+ const secConfig = await extractSecurity(client._options.apiKey);
40
+ const securityInput = secConfig == null ? {} : { apiKey: secConfig };
41
+ const requestSecurity = resolveGlobalSecurity(securityInput);
42
+ const context = {
43
+ options: client._options,
44
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
45
+ operationID: "queryAnalytics",
46
+ oAuth2Scopes: null,
47
+ resolvedSecurity: requestSecurity,
48
+ securitySource: client._options.apiKey,
49
+ retryConfig: options?.retries
50
+ || client._options.retryConfig
51
+ || {
52
+ strategy: "backoff",
53
+ backoff: {
54
+ initialInterval: 500,
55
+ maxInterval: 60000,
56
+ exponent: 1.5,
57
+ maxElapsedTime: 3600000,
58
+ },
59
+ retryConnectionErrors: true,
60
+ }
61
+ || { strategy: "none" },
62
+ retryCodes: options?.retryCodes || ["5XX"],
63
+ };
64
+ const requestRes = client._createRequest(context, {
65
+ security: requestSecurity,
66
+ method: "POST",
67
+ baseURL: options?.serverURL,
68
+ path: path,
69
+ headers: headers,
70
+ body: body,
71
+ userAgent: client._options.userAgent,
72
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
73
+ }, options);
74
+ if (!requestRes.ok) {
75
+ return [requestRes, { status: "invalid" }];
76
+ }
77
+ const req = requestRes.value;
78
+ const doResult = await client._do(req, {
79
+ context,
80
+ isErrorStatusCode: (statusCode) => matchStatusCode({ status: statusCode }, ["4XX", "5XX"]),
81
+ retryConfig: context.retryConfig,
82
+ retryCodes: context.retryCodes,
83
+ });
84
+ if (!doResult.ok) {
85
+ return [doResult, { status: "request-error", request: req }];
86
+ }
87
+ const response = doResult.value;
88
+ const responseFields = {
89
+ HttpMeta: { Response: response, Request: req },
90
+ };
91
+ const [result] = await M.match(M.json(200, operations.QueryAnalyticsResponse$inboundSchema), M.jsonErr(400, errors.BadRequestResponseError$inboundSchema), M.jsonErr(401, errors.UnauthorizedResponseError$inboundSchema), M.jsonErr(403, errors.ForbiddenResponseError$inboundSchema), M.jsonErr(408, errors.RequestTimeoutResponseError$inboundSchema), M.jsonErr(500, errors.InternalServerResponseError$inboundSchema), M.fail("4XX"), M.fail("5XX"))(response, req, { extraFields: responseFields });
92
+ if (!result.ok) {
93
+ return [result, { status: "complete", request: req, response }];
94
+ }
95
+ return [result, { status: "complete", request: req, response }];
96
+ }
97
+ //# sourceMappingURL=betaAnalyticsQueryAnalytics.js.map
@@ -29,7 +29,7 @@ async function $do(client, request, options) {
29
29
  ? "text/event-stream"
30
30
  : "application/json",
31
31
  "HTTP-Referer": encodeSimple("HTTP-Referer", payload["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
32
- "X-OpenRouter-Experimental-Metadata": encodeSimple("X-OpenRouter-Experimental-Metadata", payload["X-OpenRouter-Experimental-Metadata"], { explode: false, charEncoding: "none" }),
32
+ "X-OpenRouter-Metadata": encodeSimple("X-OpenRouter-Metadata", payload["X-OpenRouter-Metadata"], { explode: false, charEncoding: "none" }),
33
33
  "X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
34
34
  "X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
35
35
  }));
@@ -29,7 +29,7 @@ async function $do(client, request, options) {
29
29
  ? "text/event-stream"
30
30
  : "application/json",
31
31
  "HTTP-Referer": encodeSimple("HTTP-Referer", payload["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
32
- "X-OpenRouter-Experimental-Metadata": encodeSimple("X-OpenRouter-Experimental-Metadata", payload["X-OpenRouter-Experimental-Metadata"], { explode: false, charEncoding: "none" }),
32
+ "X-OpenRouter-Metadata": encodeSimple("X-OpenRouter-Metadata", payload["X-OpenRouter-Metadata"], { explode: false, charEncoding: "none" }),
33
33
  "X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
34
34
  "X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
35
35
  }));
@@ -0,0 +1,37 @@
1
+ import { OpenRouterCore } from "../core.js";
2
+ import { RequestOptions } from "../lib/sdks.js";
3
+ import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
4
+ import * as errors from "../models/errors/index.js";
5
+ import { OpenRouterError } from "../models/errors/openroutererror.js";
6
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
7
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
8
+ import * as models from "../models/index.js";
9
+ import * as operations from "../models/operations/index.js";
10
+ import { APIPromise } from "../types/async.js";
11
+ import { Result } from "../types/fp.js";
12
+ /**
13
+ * Task classification market share
14
+ *
15
+ * @remarks
16
+ * Returns the market-share breakdown of OpenRouter traffic by task classification
17
+ * (e.g. code generation, web search, summarization) over a trailing time window.
18
+ *
19
+ * Each classification reports its share of classified sampled requests (`usage_share`)
20
+ * and classified sampled token volume (`token_share`) as fractions between 0 and 1.
21
+ * The unclassified `other` bucket is excluded. Absolute volumes are not exposed
22
+ * because the underlying data is sampled.
23
+ *
24
+ * Each classification also includes a `models` array listing the top models by
25
+ * request volume within that classification, with their within-tag usage and token shares.
26
+ *
27
+ * Classifications are grouped into macro-categories (Code, Data, Agent, General)
28
+ * with aggregate shares provided for each.
29
+ *
30
+ * Authenticate with any valid OpenRouter API key (same key used for inference).
31
+ * Rate-limited to 30 requests/minute per key and 500 requests/day per account.
32
+ *
33
+ * When republishing or quoting this data, cite as:
34
+ * "Source: OpenRouter (openrouter.ai/rankings), as of {as_of}."
35
+ */
36
+ export declare function classificationsGetTaskClassifications(client: OpenRouterCore, request?: operations.GetTaskClassificationsRequest | undefined, options?: RequestOptions): APIPromise<Result<models.TaskClassificationResponse, errors.BadRequestResponseError | errors.UnauthorizedResponseError | errors.TooManyRequestsResponseError | errors.InternalServerResponseError | OpenRouterError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
37
+ //# sourceMappingURL=classificationsGetTaskClassifications.d.ts.map
@@ -0,0 +1,119 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 6f25b0c4e7a9
4
+ */
5
+ import { encodeFormQuery, encodeSimple } from "../lib/encodings.js";
6
+ import { matchStatusCode } from "../lib/http.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
11
+ import { pathToFunc } from "../lib/url.js";
12
+ import * as errors from "../models/errors/index.js";
13
+ import * as models from "../models/index.js";
14
+ import * as operations from "../models/operations/index.js";
15
+ import { APIPromise } from "../types/async.js";
16
+ /**
17
+ * Task classification market share
18
+ *
19
+ * @remarks
20
+ * Returns the market-share breakdown of OpenRouter traffic by task classification
21
+ * (e.g. code generation, web search, summarization) over a trailing time window.
22
+ *
23
+ * Each classification reports its share of classified sampled requests (`usage_share`)
24
+ * and classified sampled token volume (`token_share`) as fractions between 0 and 1.
25
+ * The unclassified `other` bucket is excluded. Absolute volumes are not exposed
26
+ * because the underlying data is sampled.
27
+ *
28
+ * Each classification also includes a `models` array listing the top models by
29
+ * request volume within that classification, with their within-tag usage and token shares.
30
+ *
31
+ * Classifications are grouped into macro-categories (Code, Data, Agent, General)
32
+ * with aggregate shares provided for each.
33
+ *
34
+ * Authenticate with any valid OpenRouter API key (same key used for inference).
35
+ * Rate-limited to 30 requests/minute per key and 500 requests/day per account.
36
+ *
37
+ * When republishing or quoting this data, cite as:
38
+ * "Source: OpenRouter (openrouter.ai/rankings), as of {as_of}."
39
+ */
40
+ export function classificationsGetTaskClassifications(client, request, options) {
41
+ return new APIPromise($do(client, request, options));
42
+ }
43
+ async function $do(client, request, options) {
44
+ const parsed = safeParse(request, (value) => operations.GetTaskClassificationsRequest$outboundSchema.optional().parse(value), "Input validation failed");
45
+ if (!parsed.ok) {
46
+ return [parsed, { status: "invalid" }];
47
+ }
48
+ const payload = parsed.value;
49
+ const body = null;
50
+ const path = pathToFunc("/classifications/task")();
51
+ const query = encodeFormQuery({
52
+ "window": payload?.window,
53
+ });
54
+ const headers = new Headers(compactMap({
55
+ Accept: "application/json",
56
+ "HTTP-Referer": encodeSimple("HTTP-Referer", payload?.["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
57
+ "X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload?.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
58
+ "X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload?.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
59
+ }));
60
+ const secConfig = await extractSecurity(client._options.apiKey);
61
+ const securityInput = secConfig == null ? {} : { apiKey: secConfig };
62
+ const requestSecurity = resolveGlobalSecurity(securityInput);
63
+ const context = {
64
+ options: client._options,
65
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
66
+ operationID: "getTaskClassifications",
67
+ oAuth2Scopes: null,
68
+ resolvedSecurity: requestSecurity,
69
+ securitySource: client._options.apiKey,
70
+ retryConfig: options?.retries
71
+ || client._options.retryConfig
72
+ || {
73
+ strategy: "backoff",
74
+ backoff: {
75
+ initialInterval: 500,
76
+ maxInterval: 60000,
77
+ exponent: 1.5,
78
+ maxElapsedTime: 3600000,
79
+ },
80
+ retryConnectionErrors: true,
81
+ }
82
+ || { strategy: "none" },
83
+ retryCodes: options?.retryCodes || ["5XX"],
84
+ };
85
+ const requestRes = client._createRequest(context, {
86
+ security: requestSecurity,
87
+ method: "GET",
88
+ baseURL: options?.serverURL,
89
+ path: path,
90
+ headers: headers,
91
+ query: query,
92
+ body: body,
93
+ userAgent: client._options.userAgent,
94
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
95
+ }, options);
96
+ if (!requestRes.ok) {
97
+ return [requestRes, { status: "invalid" }];
98
+ }
99
+ const req = requestRes.value;
100
+ const doResult = await client._do(req, {
101
+ context,
102
+ isErrorStatusCode: (statusCode) => matchStatusCode({ status: statusCode }, ["4XX", "5XX"]),
103
+ retryConfig: context.retryConfig,
104
+ retryCodes: context.retryCodes,
105
+ });
106
+ if (!doResult.ok) {
107
+ return [doResult, { status: "request-error", request: req }];
108
+ }
109
+ const response = doResult.value;
110
+ const responseFields = {
111
+ HttpMeta: { Response: response, Request: req },
112
+ };
113
+ const [result] = await M.match(M.json(200, models.TaskClassificationResponse$inboundSchema), M.jsonErr(400, errors.BadRequestResponseError$inboundSchema), M.jsonErr(401, errors.UnauthorizedResponseError$inboundSchema), M.jsonErr(429, errors.TooManyRequestsResponseError$inboundSchema), M.jsonErr(500, errors.InternalServerResponseError$inboundSchema), M.fail("4XX"), M.fail("5XX"))(response, req, { extraFields: responseFields });
114
+ if (!result.ok) {
115
+ return [result, { status: "complete", request: req, response }];
116
+ }
117
+ return [result, { status: "complete", request: req, response }];
118
+ }
119
+ //# sourceMappingURL=classificationsGetTaskClassifications.js.map
@@ -0,0 +1,43 @@
1
+ import { OpenRouterCore } from "../core.js";
2
+ import { RequestOptions } from "../lib/sdks.js";
3
+ import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
4
+ import * as errors from "../models/errors/index.js";
5
+ import { OpenRouterError } from "../models/errors/openroutererror.js";
6
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
7
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
8
+ import * as operations from "../models/operations/index.js";
9
+ import { APIPromise } from "../types/async.js";
10
+ import { Result } from "../types/fp.js";
11
+ import { PageIterator } from "../types/operations.js";
12
+ /**
13
+ * Top apps by token usage
14
+ *
15
+ * @remarks
16
+ * Returns the top public apps on OpenRouter ranked by token usage inside the requested
17
+ * date window, matching the public apps marketplace on openrouter.ai/apps. Token totals
18
+ * are `prompt_tokens + completion_tokens`; hidden and private apps are excluded and
19
+ * traffic from related app aliases is merged into the canonical visible app.
20
+ *
21
+ * `sort=popular` (default) ranks by total token volume inside the window.
22
+ * `sort=trending` ranks by absolute excess token growth: window volume minus the average
23
+ * volume of the three equal-length periods immediately preceding the window. Apps with
24
+ * no excess growth are omitted, so `trending` may return fewer than `limit` rows.
25
+ *
26
+ * Filter with `category` (marketplace category group, e.g. `coding`) or `subcategory`
27
+ * (e.g. `cli-agent`). Ranks are re-numbered 1..N after filtering. Page with `offset` —
28
+ * `rank` stays absolute, so the first row of `offset=50` is `rank: 51`.
29
+ *
30
+ * Authenticate with any valid OpenRouter API key (same key used for inference).
31
+ * Rate-limited to 30 requests/minute per key and 500 requests/day per account.
32
+ *
33
+ * When republishing or quoting this dataset, OpenRouter must be cited as:
34
+ * "Source: OpenRouter (openrouter.ai/apps), as of {as_of}."
35
+ *
36
+ * Token counts come from each upstream provider's own tokenizer, so a token attributed
37
+ * to one app is not directly comparable to a token attributed to another app whose
38
+ * traffic flows through a different provider.
39
+ */
40
+ export declare function datasetsGetAppRankings(client: OpenRouterCore, request?: operations.GetAppRankingsRequest | undefined, options?: RequestOptions): APIPromise<PageIterator<Result<operations.GetAppRankingsResponse, errors.BadRequestResponseError | errors.UnauthorizedResponseError | errors.TooManyRequestsResponseError | errors.InternalServerResponseError | OpenRouterError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>, {
41
+ offset: number;
42
+ }>>;
43
+ //# sourceMappingURL=datasetsGetAppRankings.d.ts.map