diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock
index f11b6c79..fcce8cf0 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: df3ca46aca5d14666fd33de83747f801
+ docChecksum: 815a8ec5b2e1ee82c82c5095d3adb74a
docVersion: 1.0.0
speakeasyVersion: 1.787.0
generationVersion: 2.914.0
- releaseVersion: 1.2.24
- configChecksum: d02772c9403da27f5eb41cff25d529b1
+ releaseVersion: 1.2.25
+ configChecksum: 0060e4db5bf932035842b1a4ecf600e2
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
published: true
persistentEdits:
- generation_id: 54a3574d-1558-40f7-874c-16f1ae802ac5
- pristine_commit_hash: 4789f649ebdd3f148d33513703a94b992d93c522
- pristine_tree_hash: 862a783b0199eeb5d4508209f14851bb4e81dc28
+ generation_id: fa70824f-34c4-492b-9c18-fe0507530bd8
+ pristine_commit_hash: ae8884c39a7fe749a387b18ec98945600c5c6788
+ pristine_tree_hash: 3a8e6172d95b9e0742b02c8c8a5b7d84c83fe84f
features:
python:
acceptHeaders: 3.0.0
@@ -7739,8 +7739,8 @@ trackedFiles:
pristine_git_object: 5294ada2ed869243414124ab5c76e8a2b35f4512
docs/operations/listscimgroupsrequest.mdx:
id: df7ed9b0f3b3
- last_write_checksum: sha1:26602f5d6904cdfe0d9bda06cf51f30eba59bb8d
- pristine_git_object: 559e6e18a2281c2d63c6a7fdfa58658daa89cdd9
+ last_write_checksum: sha1:49d7c2b9ba09f2e9cd6b96f5924be7c29748ff86
+ pristine_git_object: d08e86e012e2dee5180fc66653f5f40c3195490a
docs/operations/listscimgroupsresponse.mdx:
id: b763a3eaa70b
last_write_checksum: sha1:2421768f7c35319a79083c02017056bd40f21c4e
@@ -8223,8 +8223,8 @@ trackedFiles:
pristine_git_object: eec7232321e300a7e5c2232ec0a6754d6cac11d1
docs/sdks/scim/README.mdx:
id: fd6d8a91a053
- last_write_checksum: sha1:4a44eb3431bd9590ff15e3d944309dcfbbcd551c
- pristine_git_object: c7435646cf280b7b2fbb2805b2cde15b4c570896
+ last_write_checksum: sha1:0a28f030bf42146fde86887c2b79831af07f1d4f
+ pristine_git_object: 240f5da9d86fc9dbbaa7efe345da740768c773b3
docs/sdks/stt/README.mdx:
id: 190b0dc9a5d1
last_write_checksum: sha1:9a13f8f1e26550bccf3935a36e9c3426febc6fcb
@@ -8255,8 +8255,8 @@ trackedFiles:
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
pyproject.toml:
id: 5d07e7d72637
- last_write_checksum: sha1:71fd2dfd99167132206446e21915b3a14726faad
- pristine_git_object: 9d14083354029769ccc4ab1da4adf94fd6dfc1eb
+ last_write_checksum: sha1:27aeee89e2c898ea60e1475abd2f9d5e0103a4ae
+ pristine_git_object: 95f6a529d770d06e77a08344b47e041071a6cbcf
scripts/prepare_readme.py:
id: e0c5957a6035
last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54
@@ -8283,8 +8283,8 @@ trackedFiles:
pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137
src/openrouter/_version.py:
id: d8d15ad6c586
- last_write_checksum: sha1:882a6f542393d7fd9dc4943bf2f7a5372a57c831
- pristine_git_object: d7a17ff85772ba6c4ceff97c65e0ea6eab17e1d3
+ last_write_checksum: sha1:093be2bc67de726f618f6e324aa1163e20aee980
+ pristine_git_object: a3006f6b2785908f66d9c46b766df9a0ddde4373
src/openrouter/alpha.py:
id: 306c4d93308d
last_write_checksum: sha1:30f55a360f41376ab194b9ea725fe4e001a5ae1a
@@ -11683,8 +11683,8 @@ trackedFiles:
pristine_git_object: a913e2774bfb2a74def1a707076fad6cb49b6496
src/openrouter/operations/listscimgroups.py:
id: 9f32309bb157
- last_write_checksum: sha1:530b9e465c38b29c313a2c3a4bc596055825fd81
- pristine_git_object: 8d3d678ade3ba25aa65c4ff0bc3cb0783d87106a
+ last_write_checksum: sha1:2319b023e5e8bd308df04a66e535edc2ffaa289d
+ pristine_git_object: ac0de5426e797ff26d835fd88c0a4d7cb86844d3
src/openrouter/operations/listvaultsecrets.py:
id: 460dacce49ab
last_write_checksum: sha1:c6fcb7a5e7f2f587888a3b087142a2c4c1f23cf9
@@ -11803,8 +11803,8 @@ trackedFiles:
pristine_git_object: a40be38d4cbf460ecf921723841b1a414d638dee
src/openrouter/scim.py:
id: 351afd6b616e
- last_write_checksum: sha1:7018e78ab1826c13e7b87bbc31890c7a4c272c44
- pristine_git_object: 1bea5be2496b283307c037f131a45a25bcca3c6c
+ last_write_checksum: sha1:2f58c4cf29650549257e79c476de0a9500a33772
+ pristine_git_object: a28df9a26e2dd834e5bc8974c3a61d18609c79c0
src/openrouter/sdk.py:
id: ee9846c4c9c5
last_write_checksum: sha1:524fce02fc013302916d4e533dc358c739f0cbb4
@@ -15164,4 +15164,4 @@ examples:
examplesVersion: 1.0.2
releaseNotes: |
## Python SDK Changes:
- * `open_router.interns.get_intern_daemon_access()`: **Added**
+ * `open_router.scim.list_groups()`: `request` **Changed**
diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml
index 263fba66..3a67490f 100644
--- a/.speakeasy/gen.yaml
+++ b/.speakeasy/gen.yaml
@@ -36,7 +36,7 @@ generation:
documentation: mintlify
preApplyUnionDiscriminators: true
python:
- version: 1.2.24
+ version: 1.2.25
additionalDependencies:
dev: {}
main: {}
diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml
index 3c21daff..8b982f4f 100644
--- a/.speakeasy/out.openapi.yaml
+++ b/.speakeasy/out.openapi.yaml
@@ -44196,6 +44196,22 @@ paths:
maximum: 100
minimum: 1
type: 'integer'
+ - description: 'Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match.'
+ in: 'query'
+ name: 'display_name'
+ required: false
+ schema:
+ description: 'Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match.'
+ example: 'Engineering'
+ type: 'string'
+ - description: 'Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match.'
+ in: 'query'
+ name: 'external_id'
+ required: false
+ schema:
+ description: 'Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match.'
+ example: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
+ type: 'string'
responses:
'200':
content:
diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock
index 0933578e..9fc7cf24 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:02e1b7dd73a10f12b18a7600dc7a48ffdc3f4fcf79945fb84cf82561b114f3fa
- sourceBlobDigest: sha256:0843485e905beb46e95e5c85e6181dd887ffe03c3e90ae46b2e8c2960413b4ff
+ sourceRevisionDigest: sha256:9422a7b44bcd649b19c441316f5f8d6b628b3cff232435a3316c399508acdfe2
+ sourceBlobDigest: sha256:b8b6b4ddcb49c55a668dc303b875cb756ff974f6678b5ca1dcd507c1beee28d4
tags:
- latest
- 1.0.0
@@ -11,10 +11,10 @@ targets:
open-router:
source: OpenRouter API
sourceNamespace: open-router-chat-completions-api
- sourceRevisionDigest: sha256:02e1b7dd73a10f12b18a7600dc7a48ffdc3f4fcf79945fb84cf82561b114f3fa
- sourceBlobDigest: sha256:0843485e905beb46e95e5c85e6181dd887ffe03c3e90ae46b2e8c2960413b4ff
+ sourceRevisionDigest: sha256:9422a7b44bcd649b19c441316f5f8d6b628b3cff232435a3316c399508acdfe2
+ sourceBlobDigest: sha256:b8b6b4ddcb49c55a668dc303b875cb756ff974f6678b5ca1dcd507c1beee28d4
codeSamplesNamespace: open-router-python-code-samples
- codeSamplesRevisionDigest: sha256:dca481e6032b170115375eac63b653a98f2e8bf08ccf70be38125d31cf96c0d8
+ codeSamplesRevisionDigest: sha256:774545e78e42cb0426f209c0b0a7ff9375aa4fae805761900884feb128ac53c9
workflow:
workflowVersion: 1.0.0
speakeasyVersion: 1.787.0
diff --git a/RELEASES.md b/RELEASES.md
index 83f7a490..b51bfbf5 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -2649,4 +2649,14 @@ Based on:
### Generated
- [python v1.2.24] .
### Releases
-- [PyPI v1.2.24] https://pypi.org/project/openrouter/1.2.24 - .
\ No newline at end of file
+- [PyPI v1.2.24] https://pypi.org/project/openrouter/1.2.24 - .
+
+## 2026-09-24 19:58:40
+### Changes
+Based on:
+- OpenAPI Doc
+- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [python v1.2.25] .
+### Releases
+- [PyPI v1.2.25] https://pypi.org/project/openrouter/1.2.25 - .
\ No newline at end of file
diff --git a/docs/operations/listscimgroupsrequest.mdx b/docs/operations/listscimgroupsrequest.mdx
index 559e6e18..d08e86e0 100644
--- a/docs/operations/listscimgroupsrequest.mdx
+++ b/docs/operations/listscimgroupsrequest.mdx
@@ -4,10 +4,12 @@ title: "ListScimGroupsRequest"
## Fields
-| Field | Type | Required | Description | Example |
-| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| |
-| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| |
-| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| |
-| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 |
-| `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 |
\ No newline at end of file
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| |
+| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| |
+| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| |
+| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 |
+| `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 |
+| `display_name` | *Optional[str]* | :heavy_minus_sign: | Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match. | Engineering |
+| `external_id` | *Optional[str]* | :heavy_minus_sign: | Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match. | a1b2c3d4-e5f6-7890-abcd-ef1234567890 |
\ No newline at end of file
diff --git a/docs/sdks/scim/README.mdx b/docs/sdks/scim/README.mdx
index c7435646..240f5da9 100644
--- a/docs/sdks/scim/README.mdx
+++ b/docs/sdks/scim/README.mdx
@@ -298,14 +298,16 @@ with OpenRouter(
### Parameters
-| Parameter | Type | Required | Description | Example |
-| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| |
-| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| |
-| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| |
-| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 |
-| `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 |
-| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
+| Parameter | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| |
+| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| |
+| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| |
+| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 |
+| `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 |
+| `display_name` | *Optional[str]* | :heavy_minus_sign: | Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match. | Engineering |
+| `external_id` | *Optional[str]* | :heavy_minus_sign: | Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match. | a1b2c3d4-e5f6-7890-abcd-ef1234567890 |
+| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
diff --git a/pyproject.toml b/pyproject.toml
index 9d140833..95f6a529 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "openrouter"
-version = "1.2.24"
+version = "1.2.25"
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 d7a17ff8..a3006f6b 100644
--- a/src/openrouter/_version.py
+++ b/src/openrouter/_version.py
@@ -3,10 +3,10 @@
import importlib.metadata
__title__: str = "openrouter"
-__version__: str = "1.2.24"
+__version__: str = "1.2.25"
__openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.914.0"
-__user_agent__: str = "speakeasy-sdk/python 1.2.24 2.914.0 1.0.0 openrouter"
+__user_agent__: str = "speakeasy-sdk/python 1.2.25 2.914.0 1.0.0 openrouter"
try:
if __package__ is not None:
diff --git a/src/openrouter/operations/listscimgroups.py b/src/openrouter/operations/listscimgroups.py
index 8d3d678a..ac0de542 100644
--- a/src/openrouter/operations/listscimgroups.py
+++ b/src/openrouter/operations/listscimgroups.py
@@ -94,6 +94,10 @@ class ListScimGroupsRequestTypedDict(TypedDict):
r"""Number of records to skip for pagination"""
limit: NotRequired[int]
r"""Maximum number of records to return (max 100)"""
+ display_name: NotRequired[str]
+ r"""Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match."""
+ external_id: NotRequired[str]
+ r"""Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match."""
class ListScimGroupsRequest(BaseModel):
@@ -137,6 +141,18 @@ class ListScimGroupsRequest(BaseModel):
] = 50
r"""Maximum number of records to return (max 100)"""
+ display_name: Annotated[
+ Optional[str],
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
+ ] = None
+ r"""Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match."""
+
+ external_id: Annotated[
+ Optional[str],
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
+ ] = None
+ r"""Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match."""
+
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
@@ -146,6 +162,8 @@ def serialize_model(self, handler):
"X-OpenRouter-Categories",
"offset",
"limit",
+ "display_name",
+ "external_id",
]
)
nullable_fields = set(["offset"])
diff --git a/src/openrouter/scim.py b/src/openrouter/scim.py
index 1bea5be2..a28df9a2 100644
--- a/src/openrouter/scim.py
+++ b/src/openrouter/scim.py
@@ -1492,6 +1492,8 @@ def list_groups(
x_open_router_categories: Optional[str] = None,
offset: OptionalNullable[int] = 0,
limit: Optional[int] = 50,
+ display_name: Optional[str] = None,
+ external_id: Optional[str] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -1510,6 +1512,8 @@ def list_groups(
:param offset: Number of records to skip for pagination
:param limit: Maximum number of records to return (max 100)
+ :param display_name: Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match.
+ :param external_id: Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match.
:param retries: Override the default retry configuration for this method
:param server_url: Override the default server URL for this method
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -1531,6 +1535,8 @@ def list_groups(
x_open_router_categories=x_open_router_categories,
offset=offset,
limit=limit,
+ display_name=display_name,
+ external_id=external_id,
)
req = self._build_request(
@@ -1605,6 +1611,8 @@ def next_func() -> Optional[operations.ListScimGroupsResponse]:
x_open_router_categories=x_open_router_categories,
offset=next_offset,
limit=limit,
+ display_name=display_name,
+ external_id=external_id,
retries=retries,
server_url=server_url,
timeout_ms=timeout_ms,
@@ -1655,6 +1663,8 @@ async def list_groups_async(
x_open_router_categories: Optional[str] = None,
offset: OptionalNullable[int] = 0,
limit: Optional[int] = 50,
+ display_name: Optional[str] = None,
+ external_id: Optional[str] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -1673,6 +1683,8 @@ async def list_groups_async(
:param offset: Number of records to skip for pagination
:param limit: Maximum number of records to return (max 100)
+ :param display_name: Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match.
+ :param external_id: Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match.
:param retries: Override the default retry configuration for this method
:param server_url: Override the default server URL for this method
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -1694,6 +1706,8 @@ async def list_groups_async(
x_open_router_categories=x_open_router_categories,
offset=offset,
limit=limit,
+ display_name=display_name,
+ external_id=external_id,
)
req = self._build_request_async(
@@ -1771,6 +1785,8 @@ async def empty_result():
x_open_router_categories=x_open_router_categories,
offset=next_offset,
limit=limit,
+ display_name=display_name,
+ external_id=external_id,
retries=retries,
server_url=server_url,
timeout_ms=timeout_ms,
diff --git a/uv.lock b/uv.lock
index 50d434fd..b6cfcc45 100644
--- a/uv.lock
+++ b/uv.lock
@@ -213,7 +213,7 @@ wheels = [
[[package]]
name = "openrouter"
-version = "1.2.24"
+version = "1.2.25"
source = { editable = "." }
dependencies = [
{ name = "httpcore" },