diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 3286f42e..d3f7d5e7 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: c48cf606-fb42-4a45-9c23-8f0555307828 management: - docChecksum: 1e2c7bd771afbed597a3fe7ca5edde65 + docChecksum: d77e3bb5aa157c7c183900d46334db39 docVersion: 1.0.0 speakeasyVersion: 1.787.0 generationVersion: 2.914.0 - releaseVersion: 1.3.32 - configChecksum: afe161db7afe8f8492778f099074d78b + releaseVersion: 1.3.33 + configChecksum: 57ce91757d6eb47d6f3e59cf7aa40895 repoURL: https://github.com/OpenRouterTeam/python-sdk.git installationURL: https://github.com/OpenRouterTeam/python-sdk.git published: true persistentEdits: - generation_id: ed66f8f4-0c57-4953-a2bb-a93ff5a00fc0 - pristine_commit_hash: 91af034be0e5150ade4eb81419dd7c4009a89668 - pristine_tree_hash: 555ed61fb71a03ef7124ea73079b65d08b40b458 + generation_id: b8d58c35-6e5d-4279-a7af-056afe993b31 + pristine_commit_hash: 6fd5565bba0aa3282485aa3c221719b953bae6e1 + pristine_tree_hash: d7bcc2c1cca0e2ef5d65bde3a90bcb8f57dfd2b5 features: python: acceptHeaders: 3.0.0 @@ -6232,8 +6232,8 @@ trackedFiles: pristine_git_object: be1e5af9301ba917704f25fdafed31c152485abf docs/components/publicendpoint.mdx: id: ec4843ef5d86 - last_write_checksum: sha1:1e3b1f96db5774279bd275122d48ef8e89a0dca8 - pristine_git_object: 1f6678254e2dc3289a8ca1894869bcc1a36873b1 + last_write_checksum: sha1:760859f114581ea80bbc874cffcf8729acea1ad6 + pristine_git_object: f4828c02468e8eac1684e3040fc95028e146b34e docs/components/publicpricing.mdx: id: 61fb18b7ff94 last_write_checksum: sha1:e241420249fcbd1bf515b0f5e84934de0b207948 @@ -10068,8 +10068,8 @@ trackedFiles: pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:2195e43e13a58488b3d9d8d221850e3c4c4934d7 - pristine_git_object: 3f7f85f061dc8970a0acec53f61f74a5929eccfc + last_write_checksum: sha1:3b69ad22e1b9999cecd3251223412b4452b37324 + pristine_git_object: 46ac0b69c7fad93bd12c25586271189b21f3bcff scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54 @@ -10096,8 +10096,8 @@ trackedFiles: pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137 src/openrouter/_version.py: id: d8d15ad6c586 - last_write_checksum: sha1:3a55ecf08814769e1ed8f30f174e43d396ed72a9 - pristine_git_object: 19e295e38e86f408aac633826643dbbe1c9156eb + last_write_checksum: sha1:f020020ee7b613d5766e62d37a244f0382192f9b + pristine_git_object: 1882470da9f57f19c995e23bd3d97786140a692a src/openrouter/alpha.py: id: 306c4d93308d last_write_checksum: sha1:30f55a360f41376ab194b9ea725fe4e001a5ae1a @@ -12736,8 +12736,8 @@ trackedFiles: pristine_git_object: 5f4a4186a9c98767217546b6b87d238fbc0155f3 src/openrouter/components/publicendpoint.py: id: 848aa2ef9129 - last_write_checksum: sha1:4081468f3100ac4b9cbf58acf39a358c2006bd3a - pristine_git_object: 533022aa348a1147bab3c02bf5230a021706c260 + last_write_checksum: sha1:8b105842667b99ee35fcb63268012fca05213fa3 + pristine_git_object: 5957a43728b0b4f749dcc01c693797ec6e4b806f src/openrouter/components/publicpricing.py: id: 96d115d83cc5 last_write_checksum: sha1:fd8c320ac83b282eaf2405045329b55076d4311a @@ -18432,9 +18432,3 @@ examples: "500": application/json: {"error": {"code": 404, "message": "Intern not found"}} examplesVersion: 1.0.2 -releaseNotes: | - ## Python SDK Changes: - * `open_router.batch.create_batches()`: `response.results[].response.body.union(OpenResponsesResult).output[].union(tool_search_call)` **Added** - * `open_router.batch.get_batches()`: `response.results[].response.body.union(OpenResponsesResult).output[].union(tool_search_call)` **Added** - * `open_router.responses.send()`: `response` **Changed** - * `open_router.beta.responses.send()`: `response` **Changed** diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 789b3219..a84a6b2f 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -36,7 +36,7 @@ generation: documentation: mintlify preApplyUnionDiscriminators: true python: - version: 1.3.32 + version: 1.3.33 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index c1dce256..2412bd94 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -26916,7 +26916,7 @@ components: - $ref: '#/components/schemas/PercentileStats' - description: 'Throughput percentiles in tokens per second over the last 30 minutes. Throughput measures output token generation speed. Only visible when authenticated with an API key or cookie; returns null for unauthenticated requests.' uptime_last_1d: - description: 'Uptime percentage over the last 1 day, calculated as successful requests / (successful + error requests) * 100. Rate-limited requests are excluded. Returns null if insufficient data.' + description: 'Uptime percentage over the last day: the share of minutes in which at least 80% of provider attempts succeeded, counting only minutes with 10 or more attempts. Rate-limited and caller-caused failures are excluded. Null when no minute had enough traffic.' format: 'double' type: - 'number' @@ -26927,7 +26927,7 @@ components: - 'number' - 'null' uptime_last_5m: - description: 'Uptime percentage over the last 5 minutes, calculated as successful requests / (successful + error requests) * 100. Rate-limited requests are excluded. Returns null if insufficient data.' + description: 'Uptime percentage over the last 5 minutes: the share of minutes in which at least 80% of provider attempts succeeded, counting only minutes with 10 or more attempts. Rate-limited and caller-caused failures are excluded. Null when no minute had enough traffic.' format: 'double' type: - 'number' diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 68e39aba..da4c4129 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -2,8 +2,8 @@ speakeasyVersion: 1.787.0 sources: OpenRouter API: sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:b0338d6777e7aef8794536ab2b01600c532f442eaf31abdb76bfe6f5a111de2f - sourceBlobDigest: sha256:9291ce4fdd172d767eb0753e3661380f632e79978f8b865aff59fa11e07763d9 + sourceRevisionDigest: sha256:6eb860bda7545004155f9d44485fca86ef3d0f7bee88babacba93d37f7ed61bd + sourceBlobDigest: sha256:f5ff78370f3b0150de3532b0c83b7beda92c03528e46fe75adb2f91dabbb20ab tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: open-router: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:b0338d6777e7aef8794536ab2b01600c532f442eaf31abdb76bfe6f5a111de2f - sourceBlobDigest: sha256:9291ce4fdd172d767eb0753e3661380f632e79978f8b865aff59fa11e07763d9 + sourceRevisionDigest: sha256:6eb860bda7545004155f9d44485fca86ef3d0f7bee88babacba93d37f7ed61bd + sourceBlobDigest: sha256:f5ff78370f3b0150de3532b0c83b7beda92c03528e46fe75adb2f91dabbb20ab codeSamplesNamespace: open-router-python-code-samples - codeSamplesRevisionDigest: sha256:3dd6f9a9f90f62ef046378a633f9c56002be05c3cc969eddf3d4a938656c4404 + codeSamplesRevisionDigest: sha256:b8583242f2c9a6ede34ddc9456f5dab49833bc871a3d52860d1e61515a909a38 workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.787.0 diff --git a/RELEASES.md b/RELEASES.md index 25685872..cd010bf1 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -3089,4 +3089,14 @@ Based on: ### Generated - [python v1.3.32] . ### Releases -- [PyPI v1.3.32] https://pypi.org/project/openrouter/1.3.32 - . \ No newline at end of file +- [PyPI v1.3.32] https://pypi.org/project/openrouter/1.3.32 - . + +## 2026-10-08 04:44:10 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v1.3.33] . +### Releases +- [PyPI v1.3.33] https://pypi.org/project/openrouter/1.3.33 - . \ No newline at end of file diff --git a/docs/components/publicendpoint.mdx b/docs/components/publicendpoint.mdx index 201fabeb..3a1c6da9 100644 --- a/docs/components/publicendpoint.mdx +++ b/docs/components/publicendpoint.mdx @@ -30,6 +30,6 @@ Information about a specific model endpoint | `supports_voice_cloning` | *Optional[bool]* | ➖ | Whether this TTS endpoint accepts inline reference audio (`input_references`) for stateless voice cloning. Requests carrying reference audio are only routed to endpoints where this is true. | | | `tag` | *str* | ✅ | N/A | | | `throughput_last_30m` | [Nullable[components.PercentileStats]](../components/percentilestats.mdx) | ✅ | N/A | \{
"p50": 25.5,
"p75": 35.2,
"p90": 48.7,
"p99": 85.3
} | -| `uptime_last_1d` | *Nullable[float]* | ✅ | Uptime percentage over the last 1 day, calculated as successful requests / (successful + error requests) * 100. Rate-limited requests are excluded. Returns null if insufficient data. | | +| `uptime_last_1d` | *Nullable[float]* | ✅ | Uptime percentage over the last day: the share of minutes in which at least 80% of provider attempts succeeded, counting only minutes with 10 or more attempts. Rate-limited and caller-caused failures are excluded. Null when no minute had enough traffic. | | | `uptime_last_30m` | *Nullable[float]* | ✅ | N/A | | -| `uptime_last_5m` | *Nullable[float]* | ✅ | Uptime percentage over the last 5 minutes, calculated as successful requests / (successful + error requests) * 100. Rate-limited requests are excluded. Returns null if insufficient data. | | \ No newline at end of file +| `uptime_last_5m` | *Nullable[float]* | ✅ | Uptime percentage over the last 5 minutes: the share of minutes in which at least 80% of provider attempts succeeded, counting only minutes with 10 or more attempts. Rate-limited and caller-caused failures are excluded. Null when no minute had enough traffic. | | \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 3f7f85f0..46ac0b69 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openrouter" -version = "1.3.32" +version = "1.3.33" description = "Official Python Client SDK for OpenRouter." authors = [{ name = "OpenRouter" },] readme = "README-PYPI.md" diff --git a/src/openrouter/_version.py b/src/openrouter/_version.py index 19e295e3..1882470d 100644 --- a/src/openrouter/_version.py +++ b/src/openrouter/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "openrouter" -__version__: str = "1.3.32" +__version__: str = "1.3.33" __openapi_doc_version__: str = "1.0.0" __gen_version__: str = "2.914.0" -__user_agent__: str = "speakeasy-sdk/python 1.3.32 2.914.0 1.0.0 openrouter" +__user_agent__: str = "speakeasy-sdk/python 1.3.33 2.914.0 1.0.0 openrouter" try: if __package__ is not None: diff --git a/src/openrouter/components/publicendpoint.py b/src/openrouter/components/publicendpoint.py index 533022aa..5957a437 100644 --- a/src/openrouter/components/publicendpoint.py +++ b/src/openrouter/components/publicendpoint.py @@ -501,10 +501,10 @@ class PublicEndpointTypedDict(TypedDict): tag: str throughput_last_30m: Nullable[PercentileStatsTypedDict] uptime_last_1d: Nullable[float] - r"""Uptime percentage over the last 1 day, calculated as successful requests / (successful + error requests) * 100. Rate-limited requests are excluded. Returns null if insufficient data.""" + r"""Uptime percentage over the last day: the share of minutes in which at least 80% of provider attempts succeeded, counting only minutes with 10 or more attempts. Rate-limited and caller-caused failures are excluded. Null when no minute had enough traffic.""" uptime_last_30m: Nullable[float] uptime_last_5m: Nullable[float] - r"""Uptime percentage over the last 5 minutes, calculated as successful requests / (successful + error requests) * 100. Rate-limited requests are excluded. Returns null if insufficient data.""" + r"""Uptime percentage over the last 5 minutes: the share of minutes in which at least 80% of provider attempts succeeded, counting only minutes with 10 or more attempts. Rate-limited and caller-caused failures are excluded. Null when no minute had enough traffic.""" perf_last_30m_by_workload: NotRequired[PerfLast30mByWorkloadTypedDict] r"""Endpoint performance over the last 30 minutes, keyed by the kind of request served (e.g. `text_generation`, `image_generation`). Additive to the legacy singular latency and throughput fields; image and video generation report end-to-end latency. Only visible when authenticated with an API key or cookie.""" status: NotRequired[EndpointStatus] @@ -557,12 +557,12 @@ class PublicEndpoint(BaseModel): throughput_last_30m: Nullable[PercentileStats] uptime_last_1d: Nullable[float] - r"""Uptime percentage over the last 1 day, calculated as successful requests / (successful + error requests) * 100. Rate-limited requests are excluded. Returns null if insufficient data.""" + r"""Uptime percentage over the last day: the share of minutes in which at least 80% of provider attempts succeeded, counting only minutes with 10 or more attempts. Rate-limited and caller-caused failures are excluded. Null when no minute had enough traffic.""" uptime_last_30m: Nullable[float] uptime_last_5m: Nullable[float] - r"""Uptime percentage over the last 5 minutes, calculated as successful requests / (successful + error requests) * 100. Rate-limited requests are excluded. Returns null if insufficient data.""" + r"""Uptime percentage over the last 5 minutes: the share of minutes in which at least 80% of provider attempts succeeded, counting only minutes with 10 or more attempts. Rate-limited and caller-caused failures are excluded. Null when no minute had enough traffic.""" perf_last_30m_by_workload: Optional[PerfLast30mByWorkload] = None r"""Endpoint performance over the last 30 minutes, keyed by the kind of request served (e.g. `text_generation`, `image_generation`). Additive to the legacy singular latency and throughput fields; image and video generation report end-to-end latency. Only visible when authenticated with an API key or cookie.""" diff --git a/uv.lock b/uv.lock index 66e13d96..52f15d88 100644 --- a/uv.lock +++ b/uv.lock @@ -213,7 +213,7 @@ wheels = [ [[package]] name = "openrouter" -version = "1.3.32" +version = "1.3.33" source = { editable = "." } dependencies = [ { name = "httpcore" },