openrouter 0.0.15__tar.gz → 0.0.16__tar.gz

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 (241) hide show
  1. {openrouter-0.0.15 → openrouter-0.0.16}/PKG-INFO +2 -1
  2. openrouter-0.0.16/README.md +249 -0
  3. {openrouter-0.0.15 → openrouter-0.0.16}/pyproject.toml +3 -2
  4. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/_version.py +3 -3
  5. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/analytics.py +3 -3
  6. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/api_keys.py +11 -11
  7. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/credits.py +2 -2
  8. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/embeddings.py +3 -3
  9. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/endpoints.py +5 -5
  10. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/generations.py +2 -2
  11. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/models_.py +7 -7
  12. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/oauth.py +2 -2
  13. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/parameters.py +2 -2
  14. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/providers.py +3 -3
  15. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/unmarshal_json_response.py +15 -1
  16. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter.egg-info/PKG-INFO +2 -1
  17. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter.egg-info/SOURCES.txt +1 -0
  18. {openrouter-0.0.15 → openrouter-0.0.16}/LICENSE +0 -0
  19. /openrouter-0.0.15/README.md → /openrouter-0.0.16/README-PYPI.md +0 -0
  20. {openrouter-0.0.15 → openrouter-0.0.16}/setup.cfg +0 -0
  21. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/__init__.py +0 -0
  22. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/_hooks/__init__.py +0 -0
  23. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/_hooks/registration.py +0 -0
  24. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/_hooks/sdkhooks.py +0 -0
  25. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/_hooks/types.py +0 -0
  26. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/basesdk.py +0 -0
  27. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/beta.py +0 -0
  28. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/chat.py +0 -0
  29. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/completions.py +0 -0
  30. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/__init__.py +0 -0
  31. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/activityitem.py +0 -0
  32. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/assistantmessage.py +0 -0
  33. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/badgatewayresponseerrordata.py +0 -0
  34. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/badrequestresponseerrordata.py +0 -0
  35. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatcompletionfinishreason.py +0 -0
  36. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chaterror.py +0 -0
  37. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatgenerationparams.py +0 -0
  38. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatgenerationtokenusage.py +0 -0
  39. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatmessagecontentitem.py +0 -0
  40. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatmessagecontentitemaudio.py +0 -0
  41. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatmessagecontentitemimage.py +0 -0
  42. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatmessagecontentitemtext.py +0 -0
  43. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatmessagecontentitemvideo.py +0 -0
  44. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatmessagetokenlogprob.py +0 -0
  45. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatmessagetokenlogprobs.py +0 -0
  46. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatmessagetoolcall.py +0 -0
  47. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatresponse.py +0 -0
  48. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatresponsechoice.py +0 -0
  49. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatstreamingchoice.py +0 -0
  50. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatstreamingmessagechunk.py +0 -0
  51. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatstreamingmessagetoolcall.py +0 -0
  52. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatstreamingresponsechunk.py +0 -0
  53. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/chatstreamoptions.py +0 -0
  54. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/completionchoice.py +0 -0
  55. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/completioncreateparams.py +0 -0
  56. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/completionlogprobs.py +0 -0
  57. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/completionresponse.py +0 -0
  58. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/completionusage.py +0 -0
  59. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/createchargerequest.py +0 -0
  60. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/defaultparameters.py +0 -0
  61. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/edgenetworktimeoutresponseerrordata.py +0 -0
  62. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/endpointstatus.py +0 -0
  63. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/filecitation.py +0 -0
  64. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/filepath.py +0 -0
  65. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/forbiddenresponseerrordata.py +0 -0
  66. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/imagegenerationstatus.py +0 -0
  67. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/inputmodality.py +0 -0
  68. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/instructtype.py +0 -0
  69. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/internalserverresponseerrordata.py +0 -0
  70. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/jsonschemaconfig.py +0 -0
  71. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/listendpointsresponse.py +0 -0
  72. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/message.py +0 -0
  73. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/model.py +0 -0
  74. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/modelarchitecture.py +0 -0
  75. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/modelgroup.py +0 -0
  76. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/modelscountresponse.py +0 -0
  77. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/modelslistresponse.py +0 -0
  78. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/namedtoolchoice.py +0 -0
  79. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/notfoundresponseerrordata.py +0 -0
  80. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openairesponsesannotation.py +0 -0
  81. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openairesponsesincludable.py +0 -0
  82. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openairesponsesincompletedetails.py +0 -0
  83. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openairesponsesinput_union.py +0 -0
  84. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openairesponsesprompt.py +0 -0
  85. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openairesponsesreasoningconfig.py +0 -0
  86. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openairesponsesreasoningeffort.py +0 -0
  87. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openairesponsesrefusalcontent.py +0 -0
  88. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openairesponsesresponsestatus.py +0 -0
  89. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openairesponsesservicetier.py +0 -0
  90. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openairesponsestoolchoice_union.py +0 -0
  91. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openairesponsestruncation.py +0 -0
  92. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponseseasyinputmessage.py +0 -0
  93. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponseserrorevent.py +0 -0
  94. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesfunctioncalloutput.py +0 -0
  95. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesfunctiontoolcall.py +0 -0
  96. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesimagegencallcompleted.py +0 -0
  97. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesimagegencallgenerating.py +0 -0
  98. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesimagegencallinprogress.py +0 -0
  99. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesimagegencallpartialimage.py +0 -0
  100. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesinput.py +0 -0
  101. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesinputmessageitem.py +0 -0
  102. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponseslogprobs.py +0 -0
  103. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesnonstreamingresponse.py +0 -0
  104. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesreasoning.py +0 -0
  105. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesreasoningconfig.py +0 -0
  106. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesreasoningdeltaevent.py +0 -0
  107. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesreasoningdoneevent.py +0 -0
  108. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesreasoningsummarypartaddedevent.py +0 -0
  109. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesreasoningsummarytextdeltaevent.py +0 -0
  110. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesreasoningsummarytextdoneevent.py +0 -0
  111. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesrequest.py +0 -0
  112. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesresponsetext.py +0 -0
  113. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesstreamevent.py +0 -0
  114. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsestoplogprobs.py +0 -0
  115. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponsesusage.py +0 -0
  116. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponseswebsearch20250826tool.py +0 -0
  117. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponseswebsearchpreview20250311tool.py +0 -0
  118. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponseswebsearchpreviewtool.py +0 -0
  119. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/openresponseswebsearchtool.py +0 -0
  120. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/outputitemimagegenerationcall.py +0 -0
  121. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/outputmessage.py +0 -0
  122. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/outputmodality.py +0 -0
  123. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/parameter.py +0 -0
  124. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/payloadtoolargeresponseerrordata.py +0 -0
  125. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/paymentrequiredresponseerrordata.py +0 -0
  126. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/perrequestlimits.py +0 -0
  127. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/providername.py +0 -0
  128. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/provideroverloadedresponseerrordata.py +0 -0
  129. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/publicendpoint.py +0 -0
  130. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/publicpricing.py +0 -0
  131. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/quantization.py +0 -0
  132. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/reasoningsummarytext.py +0 -0
  133. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/reasoningsummaryverbosity.py +0 -0
  134. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/reasoningtextcontent.py +0 -0
  135. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/requesttimeoutresponseerrordata.py +0 -0
  136. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responseformatjsonschema.py +0 -0
  137. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responseformattextconfig.py +0 -0
  138. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responseformattextgrammar.py +0 -0
  139. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responseinputaudio.py +0 -0
  140. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responseinputfile.py +0 -0
  141. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responseinputimage.py +0 -0
  142. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responseinputtext.py +0 -0
  143. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responseoutputtext.py +0 -0
  144. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responseserrorfield.py +0 -0
  145. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responsesformatjsonobject.py +0 -0
  146. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responsesformattext.py +0 -0
  147. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responsesformattextjsonschemaconfig.py +0 -0
  148. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responsesimagegenerationcall.py +0 -0
  149. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responsesoutputitem.py +0 -0
  150. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responsesoutputitemfilesearchcall.py +0 -0
  151. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responsesoutputitemfunctioncall.py +0 -0
  152. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responsesoutputitemreasoning.py +0 -0
  153. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responsesoutputmessage.py +0 -0
  154. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responsessearchcontextsize.py +0 -0
  155. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responseswebsearchcalloutput.py +0 -0
  156. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responseswebsearchuserlocation.py +0 -0
  157. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/responsetextconfig.py +0 -0
  158. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/security.py +0 -0
  159. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/serviceunavailableresponseerrordata.py +0 -0
  160. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/systemmessage.py +0 -0
  161. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/toolcallstatus.py +0 -0
  162. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/tooldefinitionjson.py +0 -0
  163. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/toolresponsemessage.py +0 -0
  164. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/toomanyrequestsresponseerrordata.py +0 -0
  165. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/topproviderinfo.py +0 -0
  166. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/unauthorizedresponseerrordata.py +0 -0
  167. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/unprocessableentityresponseerrordata.py +0 -0
  168. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/urlcitation.py +0 -0
  169. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/usermessage.py +0 -0
  170. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/websearchpreviewtooluserlocation.py +0 -0
  171. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/components/websearchstatus.py +0 -0
  172. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/__init__.py +0 -0
  173. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/badgatewayresponse_error.py +0 -0
  174. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/badrequestresponse_error.py +0 -0
  175. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/chaterror.py +0 -0
  176. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/edgenetworktimeoutresponse_error.py +0 -0
  177. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/forbiddenresponse_error.py +0 -0
  178. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/internalserverresponse_error.py +0 -0
  179. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/no_response_error.py +0 -0
  180. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/notfoundresponse_error.py +0 -0
  181. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/openrouterdefaulterror.py +0 -0
  182. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/openroutererror.py +0 -0
  183. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/payloadtoolargeresponse_error.py +0 -0
  184. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/paymentrequiredresponse_error.py +0 -0
  185. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/provideroverloadedresponse_error.py +0 -0
  186. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/requesttimeoutresponse_error.py +0 -0
  187. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/responsevalidationerror.py +0 -0
  188. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/serviceunavailableresponse_error.py +0 -0
  189. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/toomanyrequestsresponse_error.py +0 -0
  190. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/unauthorizedresponse_error.py +0 -0
  191. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/errors/unprocessableentityresponse_error.py +0 -0
  192. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/httpclient.py +0 -0
  193. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/__init__.py +0 -0
  194. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/createauthkeyscode.py +0 -0
  195. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/createcoinbasecharge.py +0 -0
  196. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/createembeddings.py +0 -0
  197. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/createkeys.py +0 -0
  198. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/createresponses.py +0 -0
  199. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/deletekeys.py +0 -0
  200. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/exchangeauthcodeforapikey.py +0 -0
  201. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/getcredits.py +0 -0
  202. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/getcurrentkey.py +0 -0
  203. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/getgeneration.py +0 -0
  204. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/getkey.py +0 -0
  205. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/getmodels.py +0 -0
  206. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/getparameters.py +0 -0
  207. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/getuseractivity.py +0 -0
  208. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/list.py +0 -0
  209. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/listendpoints.py +0 -0
  210. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/listendpointszdr.py +0 -0
  211. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/listmodelsuser.py +0 -0
  212. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/listproviders.py +0 -0
  213. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/sendchatcompletionrequest.py +0 -0
  214. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/operations/updatekeys.py +0 -0
  215. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/py.typed +0 -0
  216. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/responses.py +0 -0
  217. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/sdk.py +0 -0
  218. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/sdkconfiguration.py +0 -0
  219. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/types/__init__.py +0 -0
  220. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/types/basemodel.py +0 -0
  221. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/__init__.py +0 -0
  222. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/annotations.py +0 -0
  223. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/datetimes.py +0 -0
  224. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/enums.py +0 -0
  225. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/eventstreaming.py +0 -0
  226. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/forms.py +0 -0
  227. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/headers.py +0 -0
  228. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/logger.py +0 -0
  229. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/metadata.py +0 -0
  230. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/oauth_create_authorization_url.py +0 -0
  231. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/oauth_create_sha256_code_challenge.py +0 -0
  232. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/queryparams.py +0 -0
  233. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/requestbodies.py +0 -0
  234. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/retries.py +0 -0
  235. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/security.py +0 -0
  236. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/serializers.py +0 -0
  237. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/url.py +0 -0
  238. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter/utils/values.py +0 -0
  239. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter.egg-info/dependency_links.txt +0 -0
  240. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter.egg-info/requires.txt +0 -0
  241. {openrouter-0.0.15 → openrouter-0.0.16}/src/openrouter.egg-info/top_level.txt +0 -0
@@ -1,8 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openrouter
3
- Version: 0.0.15
3
+ Version: 0.0.16
4
4
  Summary: Official Python Client SDK for OpenRouter.
5
5
  Author: OpenRouter
6
+ Project-URL: repository, https://github.com/OpenRouterTeam/python-sdk.git
6
7
  Requires-Python: >=3.9.2
7
8
  Description-Content-Type: text/markdown
8
9
  License-File: LICENSE
@@ -0,0 +1,249 @@
1
+ # OpenRouter SDK (Beta)
2
+
3
+ The [OpenRouter SDK](https://openrouter.ai/docs/sdks/python) is a Python toolkit designed to help you build AI-powered features and solutions. Giving you easy access to over 300 models across providers in an easy and type-safe way.
4
+
5
+ To learn more about how to use the OpenRouter SDK, check out our [API Reference](https://openrouter.ai/docs/sdks/python/reference) and [Documentation](https://openrouter.ai/docs/sdks/python).
6
+
7
+ <!-- No Summary [summary] -->
8
+
9
+ <!-- No Table of Contents [toc] -->
10
+
11
+ <!-- Start SDK Installation [installation] -->
12
+ ## SDK Installation
13
+
14
+ > [!NOTE]
15
+ > **Python version upgrade policy**
16
+ >
17
+ > Once a Python version reaches its [official end of life date](https://devguide.python.org/versions/), a 3-month grace period is provided for users to upgrade. Following this grace period, the minimum python version supported in the SDK will be updated.
18
+
19
+ The SDK can be installed with *uv*, *pip*, or *poetry* package managers.
20
+
21
+ ### uv
22
+
23
+ *uv* is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities.
24
+
25
+ ```bash
26
+ uv add openrouter
27
+ ```
28
+
29
+ ### PIP
30
+
31
+ *PIP* is the default package installer for Python, enabling easy installation and management of packages from PyPI via the command line.
32
+
33
+ ```bash
34
+ pip install openrouter
35
+ ```
36
+
37
+ ### Poetry
38
+
39
+ *Poetry* is a modern tool that simplifies dependency management and package publishing by using a single `pyproject.toml` file to handle project metadata and dependencies.
40
+
41
+ ```bash
42
+ poetry add openrouter
43
+ ```
44
+
45
+ ### Shell and script usage with `uv`
46
+
47
+ You can use this SDK in a Python shell with [uv](https://docs.astral.sh/uv/) and the `uvx` command that comes with it like so:
48
+
49
+ ```shell
50
+ uvx --from openrouter python
51
+ ```
52
+
53
+ It's also possible to write a standalone Python script without needing to set up a whole project like so:
54
+
55
+ ```python
56
+ #!/usr/bin/env -S uv run --script
57
+ # /// script
58
+ # requires-python = ">=3.9"
59
+ # dependencies = [
60
+ # "openrouter",
61
+ # ]
62
+ # ///
63
+
64
+ from openrouter import OpenRouter
65
+
66
+ sdk = OpenRouter(
67
+ # SDK arguments
68
+ )
69
+
70
+ # Rest of script here...
71
+ ```
72
+
73
+ Once that is saved to a file, you can run it with `uv run script.py` where
74
+ `script.py` can be replaced with the actual file name.
75
+ <!-- End SDK Installation [installation] -->
76
+
77
+ <!-- Start Requirements [requirements] -->
78
+ ## Requirements
79
+
80
+ This SDK requires Python 3.9 or higher. For Python version support policy, see the SDK Installation section above.
81
+ <!-- End Requirements [requirements] -->
82
+
83
+ <!-- Start IDE Support [idesupport] -->
84
+ ## IDE Support
85
+
86
+ ### PyCharm
87
+
88
+ Generally, the SDK will work well with most IDEs out of the box. However, when using PyCharm, you can enjoy much better integration with Pydantic by installing an additional plugin.
89
+
90
+ - [PyCharm Pydantic Plugin](https://docs.pydantic.dev/latest/integrations/pycharm/)
91
+ <!-- End IDE Support [idesupport] -->
92
+
93
+ <!-- No SDK Example Usage [usage] -->
94
+ ## SDK Usage
95
+
96
+ ```python
97
+ # Synchronous Example
98
+ from openrouter import OpenRouter
99
+ import os
100
+
101
+
102
+ with OpenRouter(
103
+ api_key=os.getenv("OPENROUTER_API_KEY", ""),
104
+ ) as open_router:
105
+
106
+ res = open_router.chat.send(messages=[
107
+ {
108
+ "role": "user",
109
+ "content": "Hello, how are you?",
110
+ },
111
+ ], model="anthropic/claude-4.5-sonnet", provider={
112
+ "zdr": True,
113
+ "sort": "price",
114
+ }, stream=True)
115
+
116
+ for event in event_stream:
117
+ # handle event
118
+ print(event, flush=True)
119
+ ```
120
+
121
+ </br>
122
+
123
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
124
+
125
+ ```python
126
+ # Asynchronous Example
127
+ import asyncio
128
+ from openrouter import OpenRouter
129
+ import os
130
+
131
+ async def main():
132
+
133
+ async with OpenRouter(
134
+ api_key=os.getenv("OPENROUTER_API_KEY", ""),
135
+ ) as open_router:
136
+
137
+ res = await open_router.chat.send_async(messages=[
138
+ {
139
+ "role": "user",
140
+ "content": "Hello, how are you?",
141
+ },
142
+ ], model="anthropic/claude-4.5-sonnet", provider={
143
+ "zdr": True,
144
+ "sort": "price",
145
+ }, stream=True)
146
+
147
+ async for event in event_stream:
148
+ # handle event
149
+ print(event, flush=True)
150
+
151
+ asyncio.run(main())
152
+ ```
153
+
154
+ <!-- No Authentication [security] -->
155
+
156
+ <!-- No Available Resources and Operations [operations] -->
157
+
158
+ <!-- No Standalone functions [standalone-funcs] -->
159
+
160
+ <!-- No React hooks with TanStack Query [react-query] -->
161
+
162
+ <!-- No Server-sent event streaming [eventstream] -->
163
+
164
+ <!-- No Retries [retries] -->
165
+
166
+ <!-- No Error Handling [errors] -->
167
+
168
+ <!-- No Server Selection [server] -->
169
+
170
+ <!-- No Custom HTTP Client [http-client] -->
171
+
172
+ <!-- Start Resource Management [resource-management] -->
173
+ ## Resource Management
174
+
175
+ The `OpenRouter` class implements the context manager protocol and registers a finalizer function to close the underlying sync and async HTTPX clients it uses under the hood. This will close HTTP connections, release memory and free up other resources held by the SDK. In short-lived Python programs and notebooks that make a few SDK method calls, resource management may not be a concern. However, in longer-lived programs, it is beneficial to create a single SDK instance via a [context manager][context-manager] and reuse it across the application.
176
+
177
+ [context-manager]: https://docs.python.org/3/reference/datamodel.html#context-managers
178
+
179
+ ```python
180
+ from openrouter import OpenRouter
181
+ import os
182
+ def main():
183
+
184
+ with OpenRouter(
185
+ api_key=os.getenv("OPENROUTER_API_KEY", ""),
186
+ ) as open_router:
187
+ # Rest of application here...
188
+
189
+
190
+ # Or when using async:
191
+ async def amain():
192
+
193
+ async with OpenRouter(
194
+ api_key=os.getenv("OPENROUTER_API_KEY", ""),
195
+ ) as open_router:
196
+ # Rest of application here...
197
+ ```
198
+ <!-- End Resource Management [resource-management] -->
199
+
200
+ <!-- Start Debugging [debug] -->
201
+ ## Debugging
202
+
203
+ You can setup your SDK to emit debug logs for SDK requests and responses.
204
+
205
+ You can pass your own logger class directly into your SDK.
206
+ ```python
207
+ from openrouter import OpenRouter
208
+ import logging
209
+
210
+ logging.basicConfig(level=logging.DEBUG)
211
+ s = OpenRouter(debug_logger=logging.getLogger("openrouter"))
212
+ ```
213
+
214
+ You can also enable a default debug logger by setting an environment variable `OPENROUTER_DEBUG` to true.
215
+ <!-- End Debugging [debug] -->
216
+
217
+ <!-- Placeholder for Future Speakeasy SDK Sections -->
218
+
219
+ # Development
220
+
221
+ ## Running Tests
222
+
223
+ To run the test suite, you'll need to set up your environment with an OpenRouter API key.
224
+
225
+ ### Local Development
226
+
227
+ 1. Copy the example environment file:
228
+
229
+ ```bash
230
+ cp .env.example .env
231
+ ```
232
+
233
+ 2. Edit `.env` and add your OpenRouter API key:
234
+
235
+ ```bash
236
+ OPENROUTER_API_KEY=your_api_key_here
237
+ ```
238
+
239
+ 3. Run the tests:
240
+
241
+ ```bash
242
+ pytest
243
+ ```
244
+
245
+ ## Maturity
246
+
247
+ This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage
248
+ to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally
249
+ looking for the latest version.
@@ -1,15 +1,16 @@
1
1
  [project]
2
2
  name = "openrouter"
3
- version = "0.0.15"
3
+ version = "0.0.16"
4
4
  description = "Official Python Client SDK for OpenRouter."
5
5
  authors = [{ name = "OpenRouter" },]
6
- readme = "README.md"
6
+ readme = "README-PYPI.md"
7
7
  requires-python = ">=3.9.2"
8
8
  dependencies = [
9
9
  "httpcore >=1.0.9",
10
10
  "httpx >=0.28.1",
11
11
  "pydantic >=2.11.2",
12
12
  ]
13
+ urls.repository = "https://github.com/OpenRouterTeam/python-sdk.git"
13
14
 
14
15
  [dependency-groups]
15
16
  dev = [
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "openrouter"
6
- __version__: str = "0.0.15"
6
+ __version__: str = "0.0.16"
7
7
  __openapi_doc_version__: str = "1.0.0"
8
- __gen_version__: str = "2.753.6"
9
- __user_agent__: str = "speakeasy-sdk/python 0.0.15 2.753.6 1.0.0 openrouter"
8
+ __gen_version__: str = "2.755.6"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.0.16 2.755.6 1.0.0 openrouter"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
@@ -6,7 +6,7 @@ from openrouter._hooks import HookContext
6
6
  from openrouter.types import OptionalNullable, UNSET
7
7
  from openrouter.utils import get_security_from_env
8
8
  from openrouter.utils.unmarshal_json_response import unmarshal_json_response
9
- from typing import Any, List, Mapping, Optional
9
+ from typing import Any, Mapping, Optional
10
10
 
11
11
 
12
12
  class Analytics(BaseSDK):
@@ -20,7 +20,7 @@ class Analytics(BaseSDK):
20
20
  server_url: Optional[str] = None,
21
21
  timeout_ms: Optional[int] = None,
22
22
  http_headers: Optional[Mapping[str, str]] = None,
23
- ) -> List[components.ActivityItem]:
23
+ ) -> operations.GetUserActivityResponse:
24
24
  r"""Get user activity grouped by endpoint
25
25
 
26
26
  Returns user activity data grouped by endpoint for the last 30 (completed) UTC days
@@ -128,7 +128,7 @@ class Analytics(BaseSDK):
128
128
  server_url: Optional[str] = None,
129
129
  timeout_ms: Optional[int] = None,
130
130
  http_headers: Optional[Mapping[str, str]] = None,
131
- ) -> List[components.ActivityItem]:
131
+ ) -> operations.GetUserActivityResponse:
132
132
  r"""Get user activity grouped by endpoint
133
133
 
134
134
  Returns user activity data grouped by endpoint for the last 30 (completed) UTC days
@@ -7,7 +7,7 @@ from openrouter._hooks import HookContext
7
7
  from openrouter.types import OptionalNullable, UNSET
8
8
  from openrouter.utils import get_security_from_env
9
9
  from openrouter.utils.unmarshal_json_response import unmarshal_json_response
10
- from typing import Any, List, Mapping, Optional
10
+ from typing import Any, Mapping, Optional
11
11
 
12
12
 
13
13
  class APIKeys(BaseSDK):
@@ -22,7 +22,7 @@ class APIKeys(BaseSDK):
22
22
  server_url: Optional[str] = None,
23
23
  timeout_ms: Optional[int] = None,
24
24
  http_headers: Optional[Mapping[str, str]] = None,
25
- ) -> List[operations.ListData]:
25
+ ) -> operations.ListResponse:
26
26
  r"""List API keys
27
27
 
28
28
  :param include_disabled: Whether to include disabled API keys in the response
@@ -126,7 +126,7 @@ class APIKeys(BaseSDK):
126
126
  server_url: Optional[str] = None,
127
127
  timeout_ms: Optional[int] = None,
128
128
  http_headers: Optional[Mapping[str, str]] = None,
129
- ) -> List[operations.ListData]:
129
+ ) -> operations.ListResponse:
130
130
  r"""List API keys
131
131
 
132
132
  :param include_disabled: Whether to include disabled API keys in the response
@@ -233,7 +233,7 @@ class APIKeys(BaseSDK):
233
233
  server_url: Optional[str] = None,
234
234
  timeout_ms: Optional[int] = None,
235
235
  http_headers: Optional[Mapping[str, str]] = None,
236
- ) -> operations.CreateKeysData:
236
+ ) -> operations.CreateKeysResponse:
237
237
  r"""Create a new API key
238
238
 
239
239
  :param name: Name for the new API key
@@ -354,7 +354,7 @@ class APIKeys(BaseSDK):
354
354
  server_url: Optional[str] = None,
355
355
  timeout_ms: Optional[int] = None,
356
356
  http_headers: Optional[Mapping[str, str]] = None,
357
- ) -> operations.CreateKeysData:
357
+ ) -> operations.CreateKeysResponse:
358
358
  r"""Create a new API key
359
359
 
360
360
  :param name: Name for the new API key
@@ -476,7 +476,7 @@ class APIKeys(BaseSDK):
476
476
  server_url: Optional[str] = None,
477
477
  timeout_ms: Optional[int] = None,
478
478
  http_headers: Optional[Mapping[str, str]] = None,
479
- ) -> operations.UpdateKeysData:
479
+ ) -> operations.UpdateKeysResponse:
480
480
  r"""Update an API key
481
481
 
482
482
  :param hash: The hash identifier of the API key to update
@@ -607,7 +607,7 @@ class APIKeys(BaseSDK):
607
607
  server_url: Optional[str] = None,
608
608
  timeout_ms: Optional[int] = None,
609
609
  http_headers: Optional[Mapping[str, str]] = None,
610
- ) -> operations.UpdateKeysData:
610
+ ) -> operations.UpdateKeysResponse:
611
611
  r"""Update an API key
612
612
 
613
613
  :param hash: The hash identifier of the API key to update
@@ -945,7 +945,7 @@ class APIKeys(BaseSDK):
945
945
  server_url: Optional[str] = None,
946
946
  timeout_ms: Optional[int] = None,
947
947
  http_headers: Optional[Mapping[str, str]] = None,
948
- ) -> operations.GetKeyData:
948
+ ) -> operations.GetKeyResponse:
949
949
  r"""Get a single API key
950
950
 
951
951
  :param hash: The hash identifier of the API key to retrieve
@@ -1051,7 +1051,7 @@ class APIKeys(BaseSDK):
1051
1051
  server_url: Optional[str] = None,
1052
1052
  timeout_ms: Optional[int] = None,
1053
1053
  http_headers: Optional[Mapping[str, str]] = None,
1054
- ) -> operations.GetKeyData:
1054
+ ) -> operations.GetKeyResponse:
1055
1055
  r"""Get a single API key
1056
1056
 
1057
1057
  :param hash: The hash identifier of the API key to retrieve
@@ -1156,7 +1156,7 @@ class APIKeys(BaseSDK):
1156
1156
  server_url: Optional[str] = None,
1157
1157
  timeout_ms: Optional[int] = None,
1158
1158
  http_headers: Optional[Mapping[str, str]] = None,
1159
- ) -> operations.GetCurrentKeyData:
1159
+ ) -> operations.GetCurrentKeyResponse:
1160
1160
  r"""Get current API key
1161
1161
 
1162
1162
  Get information on the API key associated with the current authentication session
@@ -1247,7 +1247,7 @@ class APIKeys(BaseSDK):
1247
1247
  server_url: Optional[str] = None,
1248
1248
  timeout_ms: Optional[int] = None,
1249
1249
  http_headers: Optional[Mapping[str, str]] = None,
1250
- ) -> operations.GetCurrentKeyData:
1250
+ ) -> operations.GetCurrentKeyResponse:
1251
1251
  r"""Get current API key
1252
1252
 
1253
1253
  Get information on the API key associated with the current authentication session
@@ -218,7 +218,7 @@ class Credits(BaseSDK):
218
218
  server_url: Optional[str] = None,
219
219
  timeout_ms: Optional[int] = None,
220
220
  http_headers: Optional[Mapping[str, str]] = None,
221
- ) -> operations.CreateCoinbaseChargeData:
221
+ ) -> operations.CreateCoinbaseChargeResponse:
222
222
  r"""Create a Coinbase charge for crypto payment
223
223
 
224
224
  Create a Coinbase charge for crypto payment
@@ -342,7 +342,7 @@ class Credits(BaseSDK):
342
342
  server_url: Optional[str] = None,
343
343
  timeout_ms: Optional[int] = None,
344
344
  http_headers: Optional[Mapping[str, str]] = None,
345
- ) -> operations.CreateCoinbaseChargeData:
345
+ ) -> operations.CreateCoinbaseChargeResponse:
346
346
  r"""Create a Coinbase charge for crypto payment
347
347
 
348
348
  Create a Coinbase charge for crypto payment
@@ -7,7 +7,7 @@ from openrouter._hooks import HookContext
7
7
  from openrouter.types import OptionalNullable, UNSET
8
8
  from openrouter.utils import get_security_from_env
9
9
  from openrouter.utils.unmarshal_json_response import unmarshal_json_response
10
- from typing import Any, List, Mapping, Optional, Union
10
+ from typing import Any, Mapping, Optional, Union
11
11
 
12
12
 
13
13
  class GenerateAcceptEnum(str, Enum):
@@ -391,7 +391,7 @@ class Embeddings(BaseSDK):
391
391
  server_url: Optional[str] = None,
392
392
  timeout_ms: Optional[int] = None,
393
393
  http_headers: Optional[Mapping[str, str]] = None,
394
- ) -> List[components.Model]:
394
+ ) -> components.ModelsListResponse:
395
395
  r"""List all embeddings models
396
396
 
397
397
  Returns a list of all available embeddings models and their properties
@@ -482,7 +482,7 @@ class Embeddings(BaseSDK):
482
482
  server_url: Optional[str] = None,
483
483
  timeout_ms: Optional[int] = None,
484
484
  http_headers: Optional[Mapping[str, str]] = None,
485
- ) -> List[components.Model]:
485
+ ) -> components.ModelsListResponse:
486
486
  r"""List all embeddings models
487
487
 
488
488
  Returns a list of all available embeddings models and their properties
@@ -6,7 +6,7 @@ from openrouter._hooks import HookContext
6
6
  from openrouter.types import OptionalNullable, UNSET
7
7
  from openrouter.utils import get_security_from_env
8
8
  from openrouter.utils.unmarshal_json_response import unmarshal_json_response
9
- from typing import Any, List, Mapping, Optional
9
+ from typing import Any, Mapping, Optional
10
10
 
11
11
 
12
12
  class Endpoints(BaseSDK):
@@ -21,7 +21,7 @@ class Endpoints(BaseSDK):
21
21
  server_url: Optional[str] = None,
22
22
  timeout_ms: Optional[int] = None,
23
23
  http_headers: Optional[Mapping[str, str]] = None,
24
- ) -> components.ListEndpointsResponse:
24
+ ) -> operations.ListEndpointsResponse:
25
25
  r"""List all endpoints for a model
26
26
 
27
27
  :param author:
@@ -120,7 +120,7 @@ class Endpoints(BaseSDK):
120
120
  server_url: Optional[str] = None,
121
121
  timeout_ms: Optional[int] = None,
122
122
  http_headers: Optional[Mapping[str, str]] = None,
123
- ) -> components.ListEndpointsResponse:
123
+ ) -> operations.ListEndpointsResponse:
124
124
  r"""List all endpoints for a model
125
125
 
126
126
  :param author:
@@ -217,7 +217,7 @@ class Endpoints(BaseSDK):
217
217
  server_url: Optional[str] = None,
218
218
  timeout_ms: Optional[int] = None,
219
219
  http_headers: Optional[Mapping[str, str]] = None,
220
- ) -> List[components.PublicEndpoint]:
220
+ ) -> operations.ListEndpointsZdrResponse:
221
221
  r"""Preview the impact of ZDR on the available endpoints
222
222
 
223
223
  :param retries: Override the default retry configuration for this method
@@ -303,7 +303,7 @@ class Endpoints(BaseSDK):
303
303
  server_url: Optional[str] = None,
304
304
  timeout_ms: Optional[int] = None,
305
305
  http_headers: Optional[Mapping[str, str]] = None,
306
- ) -> List[components.PublicEndpoint]:
306
+ ) -> operations.ListEndpointsZdrResponse:
307
307
  r"""Preview the impact of ZDR on the available endpoints
308
308
 
309
309
  :param retries: Override the default retry configuration for this method
@@ -20,7 +20,7 @@ class Generations(BaseSDK):
20
20
  server_url: Optional[str] = None,
21
21
  timeout_ms: Optional[int] = None,
22
22
  http_headers: Optional[Mapping[str, str]] = None,
23
- ) -> operations.GetGenerationData:
23
+ ) -> operations.GetGenerationResponse:
24
24
  r"""Get request & usage metadata for a generation
25
25
 
26
26
  :param id:
@@ -157,7 +157,7 @@ class Generations(BaseSDK):
157
157
  server_url: Optional[str] = None,
158
158
  timeout_ms: Optional[int] = None,
159
159
  http_headers: Optional[Mapping[str, str]] = None,
160
- ) -> operations.GetGenerationData:
160
+ ) -> operations.GetGenerationResponse:
161
161
  r"""Get request & usage metadata for a generation
162
162
 
163
163
  :param id:
@@ -6,7 +6,7 @@ from openrouter._hooks import HookContext
6
6
  from openrouter.types import OptionalNullable, UNSET
7
7
  from openrouter.utils import get_security_from_env
8
8
  from openrouter.utils.unmarshal_json_response import unmarshal_json_response
9
- from typing import Any, List, Mapping, Optional, Union
9
+ from typing import Any, Mapping, Optional, Union
10
10
 
11
11
 
12
12
  class Models(BaseSDK):
@@ -19,7 +19,7 @@ class Models(BaseSDK):
19
19
  server_url: Optional[str] = None,
20
20
  timeout_ms: Optional[int] = None,
21
21
  http_headers: Optional[Mapping[str, str]] = None,
22
- ) -> components.ModelsCountResponseData:
22
+ ) -> components.ModelsCountResponse:
23
23
  r"""Get total count of available models
24
24
 
25
25
  :param retries: Override the default retry configuration for this method
@@ -103,7 +103,7 @@ class Models(BaseSDK):
103
103
  server_url: Optional[str] = None,
104
104
  timeout_ms: Optional[int] = None,
105
105
  http_headers: Optional[Mapping[str, str]] = None,
106
- ) -> components.ModelsCountResponseData:
106
+ ) -> components.ModelsCountResponse:
107
107
  r"""Get total count of available models
108
108
 
109
109
  :param retries: Override the default retry configuration for this method
@@ -189,7 +189,7 @@ class Models(BaseSDK):
189
189
  server_url: Optional[str] = None,
190
190
  timeout_ms: Optional[int] = None,
191
191
  http_headers: Optional[Mapping[str, str]] = None,
192
- ) -> List[components.Model]:
192
+ ) -> components.ModelsListResponse:
193
193
  r"""List all models and their properties
194
194
 
195
195
  :param category:
@@ -288,7 +288,7 @@ class Models(BaseSDK):
288
288
  server_url: Optional[str] = None,
289
289
  timeout_ms: Optional[int] = None,
290
290
  http_headers: Optional[Mapping[str, str]] = None,
291
- ) -> List[components.Model]:
291
+ ) -> components.ModelsListResponse:
292
292
  r"""List all models and their properties
293
293
 
294
294
  :param category:
@@ -389,7 +389,7 @@ class Models(BaseSDK):
389
389
  server_url: Optional[str] = None,
390
390
  timeout_ms: Optional[int] = None,
391
391
  http_headers: Optional[Mapping[str, str]] = None,
392
- ) -> List[components.Model]:
392
+ ) -> components.ModelsListResponse:
393
393
  r"""List models filtered by user provider preferences
394
394
 
395
395
  :param security:
@@ -483,7 +483,7 @@ class Models(BaseSDK):
483
483
  server_url: Optional[str] = None,
484
484
  timeout_ms: Optional[int] = None,
485
485
  http_headers: Optional[Mapping[str, str]] = None,
486
- ) -> List[components.Model]:
486
+ ) -> components.ModelsListResponse:
487
487
  r"""List models filtered by user provider preferences
488
488
 
489
489
  :param security:
@@ -267,7 +267,7 @@ class OAuth(BaseSDK):
267
267
  server_url: Optional[str] = None,
268
268
  timeout_ms: Optional[int] = None,
269
269
  http_headers: Optional[Mapping[str, str]] = None,
270
- ) -> operations.CreateAuthKeysCodeData:
270
+ ) -> operations.CreateAuthKeysCodeResponse:
271
271
  r"""Create authorization code
272
272
 
273
273
  Create an authorization code for the PKCE flow to generate a user-controlled API key
@@ -389,7 +389,7 @@ class OAuth(BaseSDK):
389
389
  server_url: Optional[str] = None,
390
390
  timeout_ms: Optional[int] = None,
391
391
  http_headers: Optional[Mapping[str, str]] = None,
392
- ) -> operations.CreateAuthKeysCodeData:
392
+ ) -> operations.CreateAuthKeysCodeResponse:
393
393
  r"""Create authorization code
394
394
 
395
395
  Create an authorization code for the PKCE flow to generate a user-controlled API key
@@ -25,7 +25,7 @@ class Parameters(BaseSDK):
25
25
  server_url: Optional[str] = None,
26
26
  timeout_ms: Optional[int] = None,
27
27
  http_headers: Optional[Mapping[str, str]] = None,
28
- ) -> operations.GetParametersData:
28
+ ) -> operations.GetParametersResponse:
29
29
  r"""Get a model's supported parameters and data about which are most popular
30
30
 
31
31
  :param security:
@@ -136,7 +136,7 @@ class Parameters(BaseSDK):
136
136
  server_url: Optional[str] = None,
137
137
  timeout_ms: Optional[int] = None,
138
138
  http_headers: Optional[Mapping[str, str]] = None,
139
- ) -> operations.GetParametersData:
139
+ ) -> operations.GetParametersResponse:
140
140
  r"""Get a model's supported parameters and data about which are most popular
141
141
 
142
142
  :param security:
@@ -6,7 +6,7 @@ from openrouter._hooks import HookContext
6
6
  from openrouter.types import OptionalNullable, UNSET
7
7
  from openrouter.utils import get_security_from_env
8
8
  from openrouter.utils.unmarshal_json_response import unmarshal_json_response
9
- from typing import Any, List, Mapping, Optional
9
+ from typing import Any, Mapping, Optional
10
10
 
11
11
 
12
12
  class Providers(BaseSDK):
@@ -19,7 +19,7 @@ class Providers(BaseSDK):
19
19
  server_url: Optional[str] = None,
20
20
  timeout_ms: Optional[int] = None,
21
21
  http_headers: Optional[Mapping[str, str]] = None,
22
- ) -> List[operations.ListProvidersData]:
22
+ ) -> operations.ListProvidersResponse:
23
23
  r"""List all providers
24
24
 
25
25
  :param retries: Override the default retry configuration for this method
@@ -103,7 +103,7 @@ class Providers(BaseSDK):
103
103
  server_url: Optional[str] = None,
104
104
  timeout_ms: Optional[int] = None,
105
105
  http_headers: Optional[Mapping[str, str]] = None,
106
- ) -> List[operations.ListProvidersData]:
106
+ ) -> operations.ListProvidersResponse:
107
107
  r"""List all providers
108
108
 
109
109
  :param retries: Override the default retry configuration for this method
@@ -1,12 +1,26 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
- from typing import Any, Optional
3
+ from typing import Any, Optional, Type, TypeVar, overload
4
4
 
5
5
  import httpx
6
6
 
7
7
  from .serializers import unmarshal_json
8
8
  from openrouter import errors
9
9
 
10
+ T = TypeVar("T")
11
+
12
+
13
+ @overload
14
+ def unmarshal_json_response(
15
+ typ: Type[T], http_res: httpx.Response, body: Optional[str] = None
16
+ ) -> T: ...
17
+
18
+
19
+ @overload
20
+ def unmarshal_json_response(
21
+ typ: Any, http_res: httpx.Response, body: Optional[str] = None
22
+ ) -> Any: ...
23
+
10
24
 
11
25
  def unmarshal_json_response(
12
26
  typ: Any, http_res: httpx.Response, body: Optional[str] = None