Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 17 additions & 20 deletions .speakeasy/gen.lock
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
lockVersion: 2.0.0
id: c48cf606-fb42-4a45-9c23-8f0555307828
management:
docChecksum: 5cc03395176525639b93df58432991ac
docChecksum: ce3af718d344bede5e7fbac65667a273
docVersion: 1.0.0
speakeasyVersion: 1.787.0
generationVersion: 2.914.0
releaseVersion: 1.3.78
configChecksum: 598d8bf8b09aa3ac6bffaa9d084e2317
releaseVersion: 1.3.79
configChecksum: d99c715292056c8059a4139c19a573ee
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
published: true
persistentEdits:
generation_id: 0b26bb11-a7b2-4b3e-9126-e92580dfdfd9
pristine_commit_hash: cb4f2dd35b4511b41f535e133046337fa8b43a9e
pristine_tree_hash: 220f89b0ba732bb603d5aa06c9c78e9c1ad4bd4c
generation_id: f7c67753-a18c-46d6-a112-335ed42a5e2c
pristine_commit_hash: b54f5cca62404501cf53ec1a3c7c5fe779a1d0e7
pristine_tree_hash: 44866872ac3fe1447c9f7bc2a20bfbe35a2e3e98
features:
python:
acceptHeaders: 3.0.0
Expand Down Expand Up @@ -10316,8 +10316,8 @@ trackedFiles:
pristine_git_object: 6a18aef850a89e56f8f7b0c507c24ab1eed0022c
docs/sdks/generations/README.mdx:
id: a754fecc8514
last_write_checksum: sha1:0a7baa6b26938066352a5d4d668d19e17776643a
pristine_git_object: b22a992e0447d12837d88f04133ef911aafcfaaf
last_write_checksum: sha1:52a07507500bccb98ea65fc194125c04cfab48b5
pristine_git_object: c6d40a9a40b8da86373f089e6ff0de19756a7778
docs/sdks/guardrails/README.mdx:
id: a0cd4218b8fa
last_write_checksum: sha1:8a7bd8b43337d429726ac461e248aca8100b54cf
Expand Down Expand Up @@ -10404,8 +10404,8 @@ trackedFiles:
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
pyproject.toml:
id: 5d07e7d72637
last_write_checksum: sha1:4dc6c05df0db78fd7e4b6baca88b1123a20ae48e
pristine_git_object: 839273f22231c0f43ef06f39f8fcfd190131c73c
last_write_checksum: sha1:00f20970dece430a33488ce3867718cd4f015f39
pristine_git_object: 17d5ed6683e134c83e15e85f376ccf0b0c249ccb
scripts/prepare_readme.py:
id: e0c5957a6035
last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54
Expand All @@ -10432,8 +10432,8 @@ trackedFiles:
pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137
src/openrouter/_version.py:
id: d8d15ad6c586
last_write_checksum: sha1:232f6f64d63e368762e63838b9aeabf2fec61a3b
pristine_git_object: 0075123dce6f9852aecce4c11d656a1a1ee66b96
last_write_checksum: sha1:e0963466ebe43f7eb6cd3d9ef0bc62defccf32e0
pristine_git_object: 758593058001815e80283d53d902cd20c9b7e87a
src/openrouter/alpha.py:
id: 306c4d93308d
last_write_checksum: sha1:30f55a360f41376ab194b9ea725fe4e001a5ae1a
Expand Down Expand Up @@ -14108,8 +14108,8 @@ trackedFiles:
pristine_git_object: 5702b46b8a0ac74ee34216b31154b0c3928a2e7f
src/openrouter/generations.py:
id: 70e1c21042bc
last_write_checksum: sha1:26521fe0a5a034c9a3c4ce763410daf99e839860
pristine_git_object: b899aac81fa41d1a3e6b3fee13a2cab2176e65cb
last_write_checksum: sha1:abed878a994631f16536b57d0ff402db99862041
pristine_git_object: f476af3df4132bef8812d9e925feb0dea7654fa9
src/openrouter/guardrails.py:
id: 705839f34e66
last_write_checksum: sha1:156c955e4e751a229100a3261e297d2898b5d089
Expand Down Expand Up @@ -15125,6 +15125,8 @@ examples:
application/json: {"error": {"code": 529, "message": "Provider returned error"}}
"400":
application/json: {"error": {"code": 400, "message": "Invalid request parameters"}}
"403":
application/json: {"error": {"code": 403, "message": "Only management keys can perform this operation"}}
listModelsCount:
speakeasy-default-list-models-count:
responses:
Expand Down Expand Up @@ -19253,9 +19255,4 @@ examples:
examplesVersion: 1.0.2
releaseNotes: |
## Python SDK Changes:
* `open_router.external_users.list()`: `error.status[403]` **Added**
* `open_router.external_users.get()`: `error.status[403]` **Added**
* `open_router.presets.list()`: `error.status[403]` **Added**
* `open_router.presets.get()`: `error.status[403]` **Added**
* `open_router.presets.list_versions()`: `error.status[403]` **Added**
* `open_router.presets.get_version()`: `error.status[403]` **Added**
* `open_router.generations.get_generation()`: `error.status[403]` **Added**
2 changes: 1 addition & 1 deletion .speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ generation:
documentation: mintlify
preApplyUnionDiscriminators: true
python:
version: 1.3.78
version: 1.3.79
additionalDependencies:
dev:
pytest: '>=8.3'
Expand Down
10 changes: 10 additions & 0 deletions .speakeasy/out.openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40868,6 +40868,16 @@ paths:
schema:
$ref: '#/components/schemas/PaymentRequiredResponse'
description: 'Payment Required - Insufficient credits or quota to complete request'
'403':
content:
application/json:
example:
error:
code: 403
message: 'Management key does not have permission for this request'
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: 'Forbidden - The management key does not have permission for this request'
'404':
content:
application/json:
Expand Down
10 changes: 5 additions & 5 deletions .speakeasy/workflow.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@ speakeasyVersion: 1.787.0
sources:
OpenRouter API:
sourceNamespace: open-router-chat-completions-api
sourceRevisionDigest: sha256:c3724a1140e4b28f737cb9c6b03ea935e84f74c5f3ff86b4dffd6d3bbcb52bb5
sourceBlobDigest: sha256:733b792d7d76bb15c4da2f4fa4fccf81b831129232e697b48fe3099e962d9369
sourceRevisionDigest: sha256:679a55eb70e93e30b91b6cede2d02b2145791d6ba380c264e04477cb45c167df
sourceBlobDigest: sha256:86762b4810b691bf9bcdf8c189b62e1ae708a224ee217c2cf2c61ce6a9578475
tags:
- latest
- 1.0.0
targets:
open-router:
source: OpenRouter API
sourceNamespace: open-router-chat-completions-api
sourceRevisionDigest: sha256:c3724a1140e4b28f737cb9c6b03ea935e84f74c5f3ff86b4dffd6d3bbcb52bb5
sourceBlobDigest: sha256:733b792d7d76bb15c4da2f4fa4fccf81b831129232e697b48fe3099e962d9369
sourceRevisionDigest: sha256:679a55eb70e93e30b91b6cede2d02b2145791d6ba380c264e04477cb45c167df
sourceBlobDigest: sha256:86762b4810b691bf9bcdf8c189b62e1ae708a224ee217c2cf2c61ce6a9578475
codeSamplesNamespace: open-router-python-code-samples
codeSamplesRevisionDigest: sha256:bea2c112970b8a22fcfa2674d8505631b6fff6615f440b9dd927c85b330a2d6d
codeSamplesRevisionDigest: sha256:5b0b13856cc8e46088ecc07e40a86ef13ec0da39d5c8038263d12019552370e6
workflow:
workflowVersion: 1.0.0
speakeasyVersion: 1.787.0
Expand Down
12 changes: 11 additions & 1 deletion RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3549,4 +3549,14 @@ Based on:
### Generated
- [python v1.3.78] .
### Releases
- [PyPI v1.3.78] https://pypi.org/project/openrouter/1.3.78 - .
- [PyPI v1.3.78] https://pypi.org/project/openrouter/1.3.78 - .

## 2026-10-23 02:25:04
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [python v1.3.79] .
### Releases
- [PyPI v1.3.79] https://pypi.org/project/openrouter/1.3.79 - .
1 change: 1 addition & 0 deletions docs/sdks/generations/README.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ with OpenRouter(
| errors.BadRequestResponseError | 400 | application/json |
| errors.UnauthorizedResponseError | 401 | application/json |
| errors.PaymentRequiredResponseError | 402 | application/json |
| errors.ForbiddenResponseError | 403 | application/json |
| errors.NotFoundResponseError | 404 | application/json |
| errors.TooManyRequestsResponseError | 429 | application/json |
| errors.InternalServerResponseError | 500 | application/json |
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "openrouter"
version = "1.3.78"
version = "1.3.79"
description = "Official Python Client SDK for OpenRouter."
authors = [{ name = "OpenRouter" },]
readme = "README-PYPI.md"
Expand Down
4 changes: 2 additions & 2 deletions src/openrouter/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
import importlib.metadata

__title__: str = "openrouter"
__version__: str = "1.3.78"
__version__: str = "1.3.79"
__openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.914.0"
__user_agent__: str = "speakeasy-sdk/python 1.3.78 2.914.0 1.0.0 openrouter"
__user_agent__: str = "speakeasy-sdk/python 1.3.79 2.914.0 1.0.0 openrouter"

try:
if __package__ is not None:
Expand Down
10 changes: 10 additions & 0 deletions src/openrouter/generations.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,11 @@ def get_generation(
errors.PaymentRequiredResponseErrorData, http_res
)
raise errors.PaymentRequiredResponseError(response_data, http_res)
if utils.match_response(http_res, "403", "application/json"):
response_data = unmarshal_json_response(
errors.ForbiddenResponseErrorData, http_res
)
raise errors.ForbiddenResponseError(response_data, http_res)
if utils.match_response(http_res, "404", "application/json"):
response_data = unmarshal_json_response(
errors.NotFoundResponseErrorData, http_res
Expand Down Expand Up @@ -281,6 +286,11 @@ async def get_generation_async(
errors.PaymentRequiredResponseErrorData, http_res
)
raise errors.PaymentRequiredResponseError(response_data, http_res)
if utils.match_response(http_res, "403", "application/json"):
response_data = unmarshal_json_response(
errors.ForbiddenResponseErrorData, http_res
)
raise errors.ForbiddenResponseError(response_data, http_res)
if utils.match_response(http_res, "404", "application/json"):
response_data = unmarshal_json_response(
errors.NotFoundResponseErrorData, http_res
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.