diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock
index 0432e4ff..5f90c9d8 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: 7e944d58dceb766b5a0de16f03810538
+ docChecksum: 047dae6f1c573fb83b039c6d3a3d5c4a
docVersion: 1.0.0
speakeasyVersion: 1.787.0
generationVersion: 2.914.0
- releaseVersion: 1.3.1
- configChecksum: e97c566d120d474c3640ed6e9a0d4c49
+ releaseVersion: 1.3.2
+ configChecksum: f443ed579ef3ee9e79562960bfa48a2d
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
published: true
persistentEdits:
- generation_id: dc537827-c52f-4965-ab88-b176ba87b595
- pristine_commit_hash: 977a46a9ef7eb44a1a05f8f3d7a6b350d3a196e3
- pristine_tree_hash: 6b4c89128f7f0ab0947a228d7e643e68f68b8783
+ generation_id: 513a22ea-a2f4-4c3f-9972-110621b2ead5
+ pristine_commit_hash: 969a580aa0d7b078db1982a7b999c02fff3da019
+ pristine_tree_hash: 2ed5d2c1104ccba9039c1ef21fa788c7863d4945
features:
python:
acceptHeaders: 3.0.0
@@ -5296,8 +5296,8 @@ trackedFiles:
pristine_git_object: 700af387aa2f0f827ef4775f69fbb3900b075899
docs/components/outputfusionservertoolitem.mdx:
id: bc7c73cc3100
- last_write_checksum: sha1:9b88e62a0ba25f9b363bb6c5c3af0694e99cecfb
- pristine_git_object: dfc07a5cb78407601b08853e3fcd20cb0f54850e
+ last_write_checksum: sha1:1daf41d1602f4c294d2f6bf52c0cc72dd59051e3
+ pristine_git_object: 90a048bd9616a8ca5a66bd401efb7c3ab79be7b0
docs/components/outputfusionservertoolitemresponse.mdx:
id: 14601c3ba47d
last_write_checksum: sha1:22e35b0495f01161f7a44aa7117bdb8f80924bfd
@@ -9456,8 +9456,8 @@ trackedFiles:
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
pyproject.toml:
id: 5d07e7d72637
- last_write_checksum: sha1:5059bb383c2e5a8f4529c1fcd474627aaf4f5b83
- pristine_git_object: 2abc2e9eb9f9620c40b9b8002147f9e73e91f71f
+ last_write_checksum: sha1:3735ae6e432910838fe29341bcf4d13a8ed5809c
+ pristine_git_object: 25e10a347e4def78247790d9ad3b0c7814048354
scripts/prepare_readme.py:
id: e0c5957a6035
last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54
@@ -9484,8 +9484,8 @@ trackedFiles:
pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137
src/openrouter/_version.py:
id: d8d15ad6c586
- last_write_checksum: sha1:c7e97a6fb6852c4f8ea4dfc6e98d2b912a6ded78
- pristine_git_object: ebd042a882653d04969096e6600ac771b0a4a066
+ last_write_checksum: sha1:fd4faa6b41e83fcacb9404545a36ba3ce59cd982
+ pristine_git_object: be3f2250d911815dbe1dfc52712dc385f9c8ca45
src/openrouter/alpha.py:
id: 306c4d93308d
last_write_checksum: sha1:30f55a360f41376ab194b9ea725fe4e001a5ae1a
@@ -11720,8 +11720,8 @@ trackedFiles:
pristine_git_object: 988cda9991d9eee1742ad4287124dd15e2553267
src/openrouter/components/outputfusionservertoolitem.py:
id: 1d798a2bb7ae
- last_write_checksum: sha1:16ae5c67228c5ded8d3c2c826a2dfcc4d9ae3c96
- pristine_git_object: 6fceee3768e84762e2779347a3f4fa7767d82bae
+ last_write_checksum: sha1:d98ca3a87e7bae94cc4a81df1a97f25b795b857e
+ pristine_git_object: 6d66e64ef249ad08a1e26b03a1aba350a1a46ccf
src/openrouter/components/outputimagegenerationcallitem.py:
id: 48d20dc00e1c
last_write_checksum: sha1:339b1256fd865d8ddb8b3be54a4203ccb6498c3f
@@ -17366,6 +17366,3 @@ examples:
"504":
application/json: {"error": {"code": 504, "message": "Vault request timed out"}}
examplesVersion: 1.0.2
-releaseNotes: |
- ## Python SDK Changes:
- * `open_router.vault.list_intern_effective_vault_secrets()`: **Added**
diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml
index 823b07e7..593073a0 100644
--- a/.speakeasy/gen.yaml
+++ b/.speakeasy/gen.yaml
@@ -36,7 +36,7 @@ generation:
documentation: mintlify
preApplyUnionDiscriminators: true
python:
- version: 1.3.1
+ version: 1.3.2
additionalDependencies:
dev: {}
main: {}
diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml
index bbd41194..66aa3a88 100644
--- a/.speakeasy/out.openapi.yaml
+++ b/.speakeasy/out.openapi.yaml
@@ -22640,7 +22640,7 @@ components:
description: 'Error message when the fusion run did not produce an analysis result.'
type: 'string'
failed_models:
- description: 'Models that were requested as part of the analysis panel but did not produce a response. Present when at least one requested analysis model failed. The fusion result is still usable but was produced from a degraded panel.'
+ description: 'Models that were requested as part of the analysis panel but did not produce a response. Present when at least one requested analysis model failed. On a completed item the fusion result is still usable but was produced from a degraded panel; on a failed item it lists the panels that failed before the run stopped, so the caller can see which models were attempted even though no analysis was produced.'
items:
properties:
error:
diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock
index 5b103763..760f9184 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:7a83f0762c40aac3bb8e78a9c590061c91b3be862db4d3d9cad87f45580c5fa2
- sourceBlobDigest: sha256:9d55afd08572430be4aef479952e830a3c49344748fbd32cf8b8f62e45f34243
+ sourceRevisionDigest: sha256:536bd4756c0b43f4dbd90dbf81f0e2fec5ec4fbc97da3fa15f7cd03c134f8b78
+ sourceBlobDigest: sha256:b362d4d614e6baa23c19c53c90e95c0e280eedb5bfa39c6d2fa4cfcb3155e418
tags:
- latest
- 1.0.0
@@ -11,10 +11,10 @@ targets:
open-router:
source: OpenRouter API
sourceNamespace: open-router-chat-completions-api
- sourceRevisionDigest: sha256:7a83f0762c40aac3bb8e78a9c590061c91b3be862db4d3d9cad87f45580c5fa2
- sourceBlobDigest: sha256:9d55afd08572430be4aef479952e830a3c49344748fbd32cf8b8f62e45f34243
+ sourceRevisionDigest: sha256:536bd4756c0b43f4dbd90dbf81f0e2fec5ec4fbc97da3fa15f7cd03c134f8b78
+ sourceBlobDigest: sha256:b362d4d614e6baa23c19c53c90e95c0e280eedb5bfa39c6d2fa4cfcb3155e418
codeSamplesNamespace: open-router-python-code-samples
- codeSamplesRevisionDigest: sha256:2ec8c3cee3d23279e25cb1e3c6f85569c68842fe4e80f2cd7ae43f09e3032041
+ codeSamplesRevisionDigest: sha256:9e678282d9af33c41bd64ee327d5d34d9a1e38a4609e5a335b930d254765ab22
workflow:
workflowVersion: 1.0.0
speakeasyVersion: 1.787.0
diff --git a/RELEASES.md b/RELEASES.md
index 03c1a147..f90676c9 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -2779,4 +2779,14 @@ Based on:
### Generated
- [python v1.3.1] .
### Releases
-- [PyPI v1.3.1] https://pypi.org/project/openrouter/1.3.1 - .
\ No newline at end of file
+- [PyPI v1.3.1] https://pypi.org/project/openrouter/1.3.1 - .
+
+## 2026-09-29 03:56:17
+### Changes
+Based on:
+- OpenAPI Doc
+- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [python v1.3.2] .
+### Releases
+- [PyPI v1.3.2] https://pypi.org/project/openrouter/1.3.2 - .
\ No newline at end of file
diff --git a/docs/components/outputfusionservertoolitem.mdx b/docs/components/outputfusionservertoolitem.mdx
index dfc07a5c..90a048bd 100644
--- a/docs/components/outputfusionservertoolitem.mdx
+++ b/docs/components/outputfusionservertoolitem.mdx
@@ -11,7 +11,7 @@ An openrouter:fusion server tool output item
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `analysis` | [Optional[components.FusionAnalysisResult]](../components/fusionanalysisresult.mdx) | :heavy_minus_sign: | Structured analysis produced by the fusion analyst model. | \{
"blind_spots": [
"No model considered the impact on existing API consumers."
],
"consensus": [
"All panel models agree the request is asking for a concise summary."
],
"contradictions": [
\{
"stances": [
\{
"model": "openai/gpt-5",
"stance": "Favors an incremental rollout."
},
\{
"model": "anthropic/claude-sonnet-4.5",
"stance": "Favors a single coordinated migration."
}
],
"topic": "Recommended approach"
}
],
"partial_coverage": [
\{
"models": [
"openai/gpt-5"
],
"point": "Only one model addressed the rollback strategy."
}
],
"unique_insights": [
\{
"insight": "Highlighted a backwards-compatibility risk the other models missed.",
"model": "anthropic/claude-sonnet-4.5"
}
]
} |
| `error` | *Optional[str]* | :heavy_minus_sign: | Error message when the fusion run did not produce an analysis result. | |
-| `failed_models` | List[[components.FailedModel](../components/failedmodel.mdx)] | :heavy_minus_sign: | Models that were requested as part of the analysis panel but did not produce a response. Present when at least one requested analysis model failed. The fusion result is still usable but was produced from a degraded panel. | |
+| `failed_models` | List[[components.FailedModel](../components/failedmodel.mdx)] | :heavy_minus_sign: | Models that were requested as part of the analysis panel but did not produce a response. Present when at least one requested analysis model failed. On a completed item the fusion result is still usable but was produced from a degraded panel; on a failed item it lists the panels that failed before the run stopped, so the caller can see which models were attempted even though no analysis was produced. | |
| `failure_reason` | *Optional[str]* | :heavy_minus_sign: | Typed failure reason when the fusion run failed. Possible values include: all_panels_failed, insufficient_credits, rate_limited, invalid_model, judge_not_valid_json, judge_schema_mismatch, judge_upstream_error, judge_empty_completion. The four analysis-stage codes keep their pre-rename `judge_` spelling so existing consumers keep matching. The consumer-cancellation code is `cancelled`. | |
| `id` | *Optional[str]* | :heavy_minus_sign: | N/A | |
| `responses` | List[[components.OutputFusionServerToolItemResponse](../components/outputfusionservertoolitemresponse.mdx)] | :heavy_minus_sign: | Analysis models that produced a response in this fusion run, with each model's full panel content. | |
diff --git a/pyproject.toml b/pyproject.toml
index 2abc2e9e..25e10a34 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "openrouter"
-version = "1.3.1"
+version = "1.3.2"
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 ebd042a8..be3f2250 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.1"
+__version__: str = "1.3.2"
__openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.914.0"
-__user_agent__: str = "speakeasy-sdk/python 1.3.1 2.914.0 1.0.0 openrouter"
+__user_agent__: str = "speakeasy-sdk/python 1.3.2 2.914.0 1.0.0 openrouter"
try:
if __package__ is not None:
diff --git a/src/openrouter/components/outputfusionservertoolitem.py b/src/openrouter/components/outputfusionservertoolitem.py
index 6fceee37..6d66e64e 100644
--- a/src/openrouter/components/outputfusionservertoolitem.py
+++ b/src/openrouter/components/outputfusionservertoolitem.py
@@ -86,7 +86,7 @@ class OutputFusionServerToolItemTypedDict(TypedDict):
error: NotRequired[str]
r"""Error message when the fusion run did not produce an analysis result."""
failed_models: NotRequired[List[FailedModelTypedDict]]
- r"""Models that were requested as part of the analysis panel but did not produce a response. Present when at least one requested analysis model failed. The fusion result is still usable but was produced from a degraded panel."""
+ r"""Models that were requested as part of the analysis panel but did not produce a response. Present when at least one requested analysis model failed. On a completed item the fusion result is still usable but was produced from a degraded panel; on a failed item it lists the panels that failed before the run stopped, so the caller can see which models were attempted even though no analysis was produced."""
failure_reason: NotRequired[str]
r"""Typed failure reason when the fusion run failed. Possible values include: all_panels_failed, insufficient_credits, rate_limited, invalid_model, judge_not_valid_json, judge_schema_mismatch, judge_upstream_error, judge_empty_completion. The four analysis-stage codes keep their pre-rename `judge_` spelling so existing consumers keep matching. The consumer-cancellation code is `cancelled`."""
id: NotRequired[str]
@@ -110,7 +110,7 @@ class OutputFusionServerToolItem(BaseModel):
r"""Error message when the fusion run did not produce an analysis result."""
failed_models: Optional[List[FailedModel]] = None
- r"""Models that were requested as part of the analysis panel but did not produce a response. Present when at least one requested analysis model failed. The fusion result is still usable but was produced from a degraded panel."""
+ r"""Models that were requested as part of the analysis panel but did not produce a response. Present when at least one requested analysis model failed. On a completed item the fusion result is still usable but was produced from a degraded panel; on a failed item it lists the panels that failed before the run stopped, so the caller can see which models were attempted even though no analysis was produced."""
failure_reason: Optional[str] = None
r"""Typed failure reason when the fusion run failed. Possible values include: all_panels_failed, insufficient_credits, rate_limited, invalid_model, judge_not_valid_json, judge_schema_mismatch, judge_upstream_error, judge_empty_completion. The four analysis-stage codes keep their pre-rename `judge_` spelling so existing consumers keep matching. The consumer-cancellation code is `cancelled`."""
diff --git a/uv.lock b/uv.lock
index bce5910e..4fd0e4f3 100644
--- a/uv.lock
+++ b/uv.lock
@@ -213,7 +213,7 @@ wheels = [
[[package]]
name = "openrouter"
-version = "1.3.1"
+version = "1.3.2"
source = { editable = "." }
dependencies = [
{ name = "httpcore" },