ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.658.1

This commit is contained in:
speakeasybot
2025-11-15 18:17:32 +00:00
parent e824ca8a57
commit 6895d9d45b
22 changed files with 376 additions and 54 deletions
+5
View File
@@ -1,4 +1,9 @@
<div align="center">
<a href="https://codespaces.new/OpenRouterTeam/python-sdk.git/tree/main"><img src="https://github.com/codespaces/badge.svg" /></a>
</div>
<br>
> **Remember to shutdown a GitHub Codespace when it is not in use!** > **Remember to shutdown a GitHub Codespace when it is not in use!**
# Dev Containers Quick Start # Dev Containers Quick Start
+8 -5
View File
@@ -3,17 +3,19 @@ id: cfd52247-6a25-4c6d-bbce-fe6fce0cd69d
management: management:
docChecksum: b1b97e85c6e3464e1fd6e2163c4ebc87 docChecksum: b1b97e85c6e3464e1fd6e2163c4ebc87
docVersion: 1.0.0 docVersion: 1.0.0
speakeasyVersion: 1.656.2 speakeasyVersion: 1.658.1
generationVersion: 2.753.6 generationVersion: 2.755.6
releaseVersion: 0.0.15 releaseVersion: 0.0.16
configChecksum: ef777b42ca5f6690075cb13d061364fd configChecksum: bccceb456c96a46bcbe65fdff6bd5e1f
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
published: true published: true
features: features:
python: python:
acceptHeaders: 3.0.0 acceptHeaders: 3.0.0
additionalDependencies: 1.0.0 additionalDependencies: 1.0.0
constsAndDefaults: 1.0.5 constsAndDefaults: 1.0.5
core: 5.23.6 core: 5.23.8
defaultEnabledRetries: 0.2.0 defaultEnabledRetries: 0.2.0
deprecations: 3.0.2 deprecations: 3.0.2
devContainers: 3.0.0 devContainers: 3.0.0
@@ -523,6 +525,7 @@ generatedFiles:
- docs/sdks/responses/README.md - docs/sdks/responses/README.md
- py.typed - py.typed
- pyproject.toml - pyproject.toml
- scripts/prepare_readme.py
- scripts/publish.sh - scripts/publish.sh
- src/openrouter/__init__.py - src/openrouter/__init__.py
- src/openrouter/_hooks/__init__.py - src/openrouter/_hooks/__init__.py
+2 -1
View File
@@ -30,7 +30,7 @@ generation:
generateNewTests: true generateNewTests: true
skipResponseBodyAssertions: false skipResponseBodyAssertions: false
python: python:
version: 0.0.15 version: 0.0.16
additionalDependencies: additionalDependencies:
dev: {} dev: {}
main: {} main: {}
@@ -64,6 +64,7 @@ python:
webhooks: "" webhooks: ""
inputModelSuffix: input inputModelSuffix: input
legacyPyright: false legacyPyright: false
license: ""
maxMethodParams: 999 maxMethodParams: 999
methodArguments: infer-optional-args methodArguments: infer-optional-args
moduleName: "" moduleName: ""
+2 -1
View File
@@ -1,4 +1,4 @@
speakeasyVersion: 1.656.2 speakeasyVersion: 1.658.1
sources: sources:
-OAS: -OAS:
sourceNamespace: open-router-chat-completions-api sourceNamespace: open-router-chat-completions-api
@@ -6,6 +6,7 @@ sources:
sourceBlobDigest: sha256:53027ec57392d9617cc001ece83c2fe1aa6e5dbfd52d170381c34c33c6042c23 sourceBlobDigest: sha256:53027ec57392d9617cc001ece83c2fe1aa6e5dbfd52d170381c34c33c6042c23
tags: tags:
- latest - latest
- speakeasy-sdk-regen-1763230596
targets: targets:
open-router: open-router:
source: -OAS source: -OAS
+249
View File
@@ -0,0 +1,249 @@
# OpenRouter SDK (Beta)
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.
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).
<!-- No Summary [summary] -->
<!-- No Table of Contents [toc] -->
<!-- Start SDK Installation [installation] -->
## SDK Installation
> [!NOTE]
> **Python version upgrade policy**
>
> 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.
The SDK can be installed with *uv*, *pip*, or *poetry* package managers.
### uv
*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.
```bash
uv add openrouter
```
### PIP
*PIP* is the default package installer for Python, enabling easy installation and management of packages from PyPI via the command line.
```bash
pip install openrouter
```
### Poetry
*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.
```bash
poetry add openrouter
```
### Shell and script usage with `uv`
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:
```shell
uvx --from openrouter python
```
It's also possible to write a standalone Python script without needing to set up a whole project like so:
```python
#!/usr/bin/env -S uv run --script
# /// script
# requires-python = ">=3.9"
# dependencies = [
# "openrouter",
# ]
# ///
from openrouter import OpenRouter
sdk = OpenRouter(
# SDK arguments
)
# Rest of script here...
```
Once that is saved to a file, you can run it with `uv run script.py` where
`script.py` can be replaced with the actual file name.
<!-- End SDK Installation [installation] -->
<!-- Start Requirements [requirements] -->
## Requirements
This SDK requires Python 3.9 or higher. For Python version support policy, see the SDK Installation section above.
<!-- End Requirements [requirements] -->
<!-- Start IDE Support [idesupport] -->
## IDE Support
### PyCharm
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.
- [PyCharm Pydantic Plugin](https://docs.pydantic.dev/latest/integrations/pycharm/)
<!-- End IDE Support [idesupport] -->
<!-- No SDK Example Usage [usage] -->
## SDK Usage
```python
# Synchronous Example
from openrouter import OpenRouter
import os
with OpenRouter(
api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:
res = open_router.chat.send(messages=[
{
"role": "user",
"content": "Hello, how are you?",
},
], model="anthropic/claude-4.5-sonnet", provider={
"zdr": True,
"sort": "price",
}, stream=True)
for event in event_stream:
# handle event
print(event, flush=True)
```
</br>
The same SDK client can also be used to make asynchronous requests by importing asyncio.
```python
# Asynchronous Example
import asyncio
from openrouter import OpenRouter
import os
async def main():
async with OpenRouter(
api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:
res = await open_router.chat.send_async(messages=[
{
"role": "user",
"content": "Hello, how are you?",
},
], model="anthropic/claude-4.5-sonnet", provider={
"zdr": True,
"sort": "price",
}, stream=True)
async for event in event_stream:
# handle event
print(event, flush=True)
asyncio.run(main())
```
<!-- No Authentication [security] -->
<!-- No Available Resources and Operations [operations] -->
<!-- No Standalone functions [standalone-funcs] -->
<!-- No React hooks with TanStack Query [react-query] -->
<!-- No Server-sent event streaming [eventstream] -->
<!-- No Retries [retries] -->
<!-- No Error Handling [errors] -->
<!-- No Server Selection [server] -->
<!-- No Custom HTTP Client [http-client] -->
<!-- Start Resource Management [resource-management] -->
## Resource Management
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.
[context-manager]: https://docs.python.org/3/reference/datamodel.html#context-managers
```python
from openrouter import OpenRouter
import os
def main():
with OpenRouter(
api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:
# Rest of application here...
# Or when using async:
async def amain():
async with OpenRouter(
api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:
# Rest of application here...
```
<!-- End Resource Management [resource-management] -->
<!-- Start Debugging [debug] -->
## Debugging
You can setup your SDK to emit debug logs for SDK requests and responses.
You can pass your own logger class directly into your SDK.
```python
from openrouter import OpenRouter
import logging
logging.basicConfig(level=logging.DEBUG)
s = OpenRouter(debug_logger=logging.getLogger("openrouter"))
```
You can also enable a default debug logger by setting an environment variable `OPENROUTER_DEBUG` to true.
<!-- End Debugging [debug] -->
<!-- Placeholder for Future Speakeasy SDK Sections -->
# Development
## Running Tests
To run the test suite, you'll need to set up your environment with an OpenRouter API key.
### Local Development
1. Copy the example environment file:
```bash
cp .env.example .env
```
2. Edit `.env` and add your OpenRouter API key:
```bash
OPENROUTER_API_KEY=your_api_key_here
```
3. Run the tests:
```bash
pytest
```
## Maturity
This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage
to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally
looking for the latest version.
+11
View File
@@ -0,0 +1,11 @@
## 2025-11-15 18:16:18
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.658.1 (2.755.6) https://github.com/speakeasy-api/speakeasy
### Generated
- [python v0.0.16] .
### Releases
- [PyPI v0.0.16] https://pypi.org/project/openrouter/0.0.16 - .
+3 -2
View File
@@ -1,15 +1,16 @@
[project] [project]
name = "openrouter" name = "openrouter"
version = "0.0.15" version = "0.0.16"
description = "Official Python Client SDK for OpenRouter." description = "Official Python Client SDK for OpenRouter."
authors = [{ name = "OpenRouter" },] authors = [{ name = "OpenRouter" },]
readme = "README.md" readme = "README-PYPI.md"
requires-python = ">=3.9.2" requires-python = ">=3.9.2"
dependencies = [ dependencies = [
"httpcore >=1.0.9", "httpcore >=1.0.9",
"httpx >=0.28.1", "httpx >=0.28.1",
"pydantic >=2.11.2", "pydantic >=2.11.2",
] ]
urls.repository = "https://github.com/OpenRouterTeam/python-sdk.git"
[dependency-groups] [dependency-groups]
dev = [ dev = [
+35
View File
@@ -0,0 +1,35 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
import re
import shutil
try:
with open("README.md", "r", encoding="utf-8") as rh:
readme_contents = rh.read()
GITHUB_URL = "https://github.com/OpenRouterTeam/python-sdk.git"
GITHUB_URL = (
GITHUB_URL[: -len(".git")] if GITHUB_URL.endswith(".git") else GITHUB_URL
)
REPO_SUBDIR = ""
# links on PyPI should have absolute URLs
readme_contents = re.sub(
r"(\[[^\]]+\]\()((?!https?:)[^\)]+)(\))",
lambda m: m.group(1)
+ GITHUB_URL
+ "/blob/master/"
+ REPO_SUBDIR
+ m.group(2)
+ m.group(3),
readme_contents,
)
with open("README-PYPI.md", "w", encoding="utf-8") as wh:
wh.write(readme_contents)
except Exception as e:
try:
print("Failed to rewrite README.md to README-PYPI.md, copying original instead")
print(e)
shutil.copyfile("README.md", "README-PYPI.md")
except Exception as ie:
print("Failed to copy README.md to README-PYPI.md")
print(ie)
+2
View File
@@ -1,4 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
uv run python scripts/prepare_readme.py
uv build uv build
uv publish --token $PYPI_TOKEN uv publish --token $PYPI_TOKEN
+3 -3
View File
@@ -3,10 +3,10 @@
import importlib.metadata import importlib.metadata
__title__: str = "openrouter" __title__: str = "openrouter"
__version__: str = "0.0.15" __version__: str = "0.0.16"
__openapi_doc_version__: str = "1.0.0" __openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.753.6" __gen_version__: str = "2.755.6"
__user_agent__: str = "speakeasy-sdk/python 0.0.15 2.753.6 1.0.0 openrouter" __user_agent__: str = "speakeasy-sdk/python 0.0.16 2.755.6 1.0.0 openrouter"
try: try:
if __package__ is not None: if __package__ is not None:
+3 -3
View File
@@ -6,7 +6,7 @@ from openrouter._hooks import HookContext
from openrouter.types import OptionalNullable, UNSET from openrouter.types import OptionalNullable, UNSET
from openrouter.utils import get_security_from_env from openrouter.utils import get_security_from_env
from openrouter.utils.unmarshal_json_response import unmarshal_json_response from openrouter.utils.unmarshal_json_response import unmarshal_json_response
from typing import Any, List, Mapping, Optional from typing import Any, Mapping, Optional
class Analytics(BaseSDK): class Analytics(BaseSDK):
@@ -20,7 +20,7 @@ class Analytics(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[components.ActivityItem]: ) -> operations.GetUserActivityResponse:
r"""Get user activity grouped by endpoint r"""Get user activity grouped by endpoint
Returns user activity data grouped by endpoint for the last 30 (completed) UTC days Returns user activity data grouped by endpoint for the last 30 (completed) UTC days
@@ -128,7 +128,7 @@ class Analytics(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[components.ActivityItem]: ) -> operations.GetUserActivityResponse:
r"""Get user activity grouped by endpoint r"""Get user activity grouped by endpoint
Returns user activity data grouped by endpoint for the last 30 (completed) UTC days Returns user activity data grouped by endpoint for the last 30 (completed) UTC days
+11 -11
View File
@@ -7,7 +7,7 @@ from openrouter._hooks import HookContext
from openrouter.types import OptionalNullable, UNSET from openrouter.types import OptionalNullable, UNSET
from openrouter.utils import get_security_from_env from openrouter.utils import get_security_from_env
from openrouter.utils.unmarshal_json_response import unmarshal_json_response from openrouter.utils.unmarshal_json_response import unmarshal_json_response
from typing import Any, List, Mapping, Optional from typing import Any, Mapping, Optional
class APIKeys(BaseSDK): class APIKeys(BaseSDK):
@@ -22,7 +22,7 @@ class APIKeys(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[operations.ListData]: ) -> operations.ListResponse:
r"""List API keys r"""List API keys
:param include_disabled: Whether to include disabled API keys in the response :param include_disabled: Whether to include disabled API keys in the response
@@ -126,7 +126,7 @@ class APIKeys(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[operations.ListData]: ) -> operations.ListResponse:
r"""List API keys r"""List API keys
:param include_disabled: Whether to include disabled API keys in the response :param include_disabled: Whether to include disabled API keys in the response
@@ -233,7 +233,7 @@ class APIKeys(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.CreateKeysData: ) -> operations.CreateKeysResponse:
r"""Create a new API key r"""Create a new API key
:param name: Name for the new API key :param name: Name for the new API key
@@ -354,7 +354,7 @@ class APIKeys(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.CreateKeysData: ) -> operations.CreateKeysResponse:
r"""Create a new API key r"""Create a new API key
:param name: Name for the new API key :param name: Name for the new API key
@@ -476,7 +476,7 @@ class APIKeys(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.UpdateKeysData: ) -> operations.UpdateKeysResponse:
r"""Update an API key r"""Update an API key
:param hash: The hash identifier of the API key to update :param hash: The hash identifier of the API key to update
@@ -607,7 +607,7 @@ class APIKeys(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.UpdateKeysData: ) -> operations.UpdateKeysResponse:
r"""Update an API key r"""Update an API key
:param hash: The hash identifier of the API key to update :param hash: The hash identifier of the API key to update
@@ -945,7 +945,7 @@ class APIKeys(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.GetKeyData: ) -> operations.GetKeyResponse:
r"""Get a single API key r"""Get a single API key
:param hash: The hash identifier of the API key to retrieve :param hash: The hash identifier of the API key to retrieve
@@ -1051,7 +1051,7 @@ class APIKeys(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.GetKeyData: ) -> operations.GetKeyResponse:
r"""Get a single API key r"""Get a single API key
:param hash: The hash identifier of the API key to retrieve :param hash: The hash identifier of the API key to retrieve
@@ -1156,7 +1156,7 @@ class APIKeys(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.GetCurrentKeyData: ) -> operations.GetCurrentKeyResponse:
r"""Get current API key r"""Get current API key
Get information on the API key associated with the current authentication session Get information on the API key associated with the current authentication session
@@ -1247,7 +1247,7 @@ class APIKeys(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.GetCurrentKeyData: ) -> operations.GetCurrentKeyResponse:
r"""Get current API key r"""Get current API key
Get information on the API key associated with the current authentication session Get information on the API key associated with the current authentication session
+2 -2
View File
@@ -218,7 +218,7 @@ class Credits(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.CreateCoinbaseChargeData: ) -> operations.CreateCoinbaseChargeResponse:
r"""Create a Coinbase charge for crypto payment r"""Create a Coinbase charge for crypto payment
Create a Coinbase charge for crypto payment Create a Coinbase charge for crypto payment
@@ -342,7 +342,7 @@ class Credits(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.CreateCoinbaseChargeData: ) -> operations.CreateCoinbaseChargeResponse:
r"""Create a Coinbase charge for crypto payment r"""Create a Coinbase charge for crypto payment
Create a Coinbase charge for crypto payment Create a Coinbase charge for crypto payment
+3 -3
View File
@@ -7,7 +7,7 @@ from openrouter._hooks import HookContext
from openrouter.types import OptionalNullable, UNSET from openrouter.types import OptionalNullable, UNSET
from openrouter.utils import get_security_from_env from openrouter.utils import get_security_from_env
from openrouter.utils.unmarshal_json_response import unmarshal_json_response from openrouter.utils.unmarshal_json_response import unmarshal_json_response
from typing import Any, List, Mapping, Optional, Union from typing import Any, Mapping, Optional, Union
class GenerateAcceptEnum(str, Enum): class GenerateAcceptEnum(str, Enum):
@@ -391,7 +391,7 @@ class Embeddings(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[components.Model]: ) -> components.ModelsListResponse:
r"""List all embeddings models r"""List all embeddings models
Returns a list of all available embeddings models and their properties Returns a list of all available embeddings models and their properties
@@ -482,7 +482,7 @@ class Embeddings(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[components.Model]: ) -> components.ModelsListResponse:
r"""List all embeddings models r"""List all embeddings models
Returns a list of all available embeddings models and their properties Returns a list of all available embeddings models and their properties
+5 -5
View File
@@ -6,7 +6,7 @@ from openrouter._hooks import HookContext
from openrouter.types import OptionalNullable, UNSET from openrouter.types import OptionalNullable, UNSET
from openrouter.utils import get_security_from_env from openrouter.utils import get_security_from_env
from openrouter.utils.unmarshal_json_response import unmarshal_json_response from openrouter.utils.unmarshal_json_response import unmarshal_json_response
from typing import Any, List, Mapping, Optional from typing import Any, Mapping, Optional
class Endpoints(BaseSDK): class Endpoints(BaseSDK):
@@ -21,7 +21,7 @@ class Endpoints(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> components.ListEndpointsResponse: ) -> operations.ListEndpointsResponse:
r"""List all endpoints for a model r"""List all endpoints for a model
:param author: :param author:
@@ -120,7 +120,7 @@ class Endpoints(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> components.ListEndpointsResponse: ) -> operations.ListEndpointsResponse:
r"""List all endpoints for a model r"""List all endpoints for a model
:param author: :param author:
@@ -217,7 +217,7 @@ class Endpoints(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[components.PublicEndpoint]: ) -> operations.ListEndpointsZdrResponse:
r"""Preview the impact of ZDR on the available endpoints r"""Preview the impact of ZDR on the available endpoints
:param retries: Override the default retry configuration for this method :param retries: Override the default retry configuration for this method
@@ -303,7 +303,7 @@ class Endpoints(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[components.PublicEndpoint]: ) -> operations.ListEndpointsZdrResponse:
r"""Preview the impact of ZDR on the available endpoints r"""Preview the impact of ZDR on the available endpoints
:param retries: Override the default retry configuration for this method :param retries: Override the default retry configuration for this method
+2 -2
View File
@@ -20,7 +20,7 @@ class Generations(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.GetGenerationData: ) -> operations.GetGenerationResponse:
r"""Get request & usage metadata for a generation r"""Get request & usage metadata for a generation
:param id: :param id:
@@ -157,7 +157,7 @@ class Generations(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.GetGenerationData: ) -> operations.GetGenerationResponse:
r"""Get request & usage metadata for a generation r"""Get request & usage metadata for a generation
:param id: :param id:
+7 -7
View File
@@ -6,7 +6,7 @@ from openrouter._hooks import HookContext
from openrouter.types import OptionalNullable, UNSET from openrouter.types import OptionalNullable, UNSET
from openrouter.utils import get_security_from_env from openrouter.utils import get_security_from_env
from openrouter.utils.unmarshal_json_response import unmarshal_json_response from openrouter.utils.unmarshal_json_response import unmarshal_json_response
from typing import Any, List, Mapping, Optional, Union from typing import Any, Mapping, Optional, Union
class Models(BaseSDK): class Models(BaseSDK):
@@ -19,7 +19,7 @@ class Models(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> components.ModelsCountResponseData: ) -> components.ModelsCountResponse:
r"""Get total count of available models r"""Get total count of available models
:param retries: Override the default retry configuration for this method :param retries: Override the default retry configuration for this method
@@ -103,7 +103,7 @@ class Models(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> components.ModelsCountResponseData: ) -> components.ModelsCountResponse:
r"""Get total count of available models r"""Get total count of available models
:param retries: Override the default retry configuration for this method :param retries: Override the default retry configuration for this method
@@ -189,7 +189,7 @@ class Models(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[components.Model]: ) -> components.ModelsListResponse:
r"""List all models and their properties r"""List all models and their properties
:param category: :param category:
@@ -288,7 +288,7 @@ class Models(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[components.Model]: ) -> components.ModelsListResponse:
r"""List all models and their properties r"""List all models and their properties
:param category: :param category:
@@ -389,7 +389,7 @@ class Models(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[components.Model]: ) -> components.ModelsListResponse:
r"""List models filtered by user provider preferences r"""List models filtered by user provider preferences
:param security: :param security:
@@ -483,7 +483,7 @@ class Models(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[components.Model]: ) -> components.ModelsListResponse:
r"""List models filtered by user provider preferences r"""List models filtered by user provider preferences
:param security: :param security:
+2 -2
View File
@@ -267,7 +267,7 @@ class OAuth(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.CreateAuthKeysCodeData: ) -> operations.CreateAuthKeysCodeResponse:
r"""Create authorization code r"""Create authorization code
Create an authorization code for the PKCE flow to generate a user-controlled API key Create an authorization code for the PKCE flow to generate a user-controlled API key
@@ -389,7 +389,7 @@ class OAuth(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.CreateAuthKeysCodeData: ) -> operations.CreateAuthKeysCodeResponse:
r"""Create authorization code r"""Create authorization code
Create an authorization code for the PKCE flow to generate a user-controlled API key Create an authorization code for the PKCE flow to generate a user-controlled API key
+2 -2
View File
@@ -25,7 +25,7 @@ class Parameters(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.GetParametersData: ) -> operations.GetParametersResponse:
r"""Get a model's supported parameters and data about which are most popular r"""Get a model's supported parameters and data about which are most popular
:param security: :param security:
@@ -136,7 +136,7 @@ class Parameters(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> operations.GetParametersData: ) -> operations.GetParametersResponse:
r"""Get a model's supported parameters and data about which are most popular r"""Get a model's supported parameters and data about which are most popular
:param security: :param security:
+3 -3
View File
@@ -6,7 +6,7 @@ from openrouter._hooks import HookContext
from openrouter.types import OptionalNullable, UNSET from openrouter.types import OptionalNullable, UNSET
from openrouter.utils import get_security_from_env from openrouter.utils import get_security_from_env
from openrouter.utils.unmarshal_json_response import unmarshal_json_response from openrouter.utils.unmarshal_json_response import unmarshal_json_response
from typing import Any, List, Mapping, Optional from typing import Any, Mapping, Optional
class Providers(BaseSDK): class Providers(BaseSDK):
@@ -19,7 +19,7 @@ class Providers(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[operations.ListProvidersData]: ) -> operations.ListProvidersResponse:
r"""List all providers r"""List all providers
:param retries: Override the default retry configuration for this method :param retries: Override the default retry configuration for this method
@@ -103,7 +103,7 @@ class Providers(BaseSDK):
server_url: Optional[str] = None, server_url: Optional[str] = None,
timeout_ms: Optional[int] = None, timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None, http_headers: Optional[Mapping[str, str]] = None,
) -> List[operations.ListProvidersData]: ) -> operations.ListProvidersResponse:
r"""List all providers r"""List all providers
:param retries: Override the default retry configuration for this method :param retries: Override the default retry configuration for this method
@@ -1,12 +1,26 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from typing import Any, Optional from typing import Any, Optional, Type, TypeVar, overload
import httpx import httpx
from .serializers import unmarshal_json from .serializers import unmarshal_json
from openrouter import errors from openrouter import errors
T = TypeVar("T")
@overload
def unmarshal_json_response(
typ: Type[T], http_res: httpx.Response, body: Optional[str] = None
) -> T: ...
@overload
def unmarshal_json_response(
typ: Any, http_res: httpx.Response, body: Optional[str] = None
) -> Any: ...
def unmarshal_json_response( def unmarshal_json_response(
typ: Any, http_res: httpx.Response, body: Optional[str] = None typ: Any, http_res: httpx.Response, body: Optional[str] = None
Generated
+1 -1
View File
@@ -211,7 +211,7 @@ wheels = [
[[package]] [[package]]
name = "openrouter" name = "openrouter"
version = "0.0.15" version = "0.0.16"
source = { editable = "." } source = { editable = "." }
dependencies = [ dependencies = [
{ name = "httpcore" }, { name = "httpcore" },