diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index b5592e766..446e7cac6 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: a2c7148dfea3b69c10b8bd3f1c2e6162 + docChecksum: 38b116dcd76ec799eea497e956a66f42 docVersion: 1.0.0 speakeasyVersion: 1.803.2 generationVersion: 2.950.13 - releaseVersion: 1.3.133 - configChecksum: 15120a6d2f0ea88a1482d84220892fc0 + releaseVersion: 1.3.134 + configChecksum: 0e56e7298a9f49166f549c467785dc2a repoURL: https://github.com/OpenRouterTeam/python-sdk.git installationURL: https://github.com/OpenRouterTeam/python-sdk.git published: true persistentEdits: - generation_id: d3085a65-fd81-4205-8819-2a92e22407f2 - pristine_commit_hash: 75d38d4fec85a17eb99012f00f93d206d10fc2a9 - pristine_tree_hash: 51a4f2979f45a390ce302b335b2be1fe9f4e85d7 + generation_id: 3b40450a-e752-4c54-a7ea-fa2b2379e8a5 + pristine_commit_hash: fa88f444fcfab969f83fa311fdbc0b6f854d4732 + pristine_tree_hash: 808ca2b64e771b552d2ab1dbd7e4be848b3b22d0 features: python: acceptHeaders: 3.0.0 @@ -8916,8 +8916,8 @@ trackedFiles: pristine_git_object: ec3df81fe733a4e648afc6c07b2aa00c830a74b3 docs/components/updateprivateendpointrequest.mdx: id: 8a1aa4763af9 - last_write_checksum: sha1:594e8a7a7292ab7e7c2e4c4393fc3b5ec7c3e249 - pristine_git_object: 89ac9f1e2345ed051e1c2b9f3db884bda4e205e4 + last_write_checksum: sha1:92290beb45d2607a2571f8e1ff756be3ee97db2a + pristine_git_object: 4a5c21129bf2c9c04610cc66581bcdb72986bc90 docs/components/updateprivateendpointrequestdeclaredregion.mdx: id: bb4329841f25 last_write_checksum: sha1:b0db12e42df729be3b5ee9557f5426c6a10eebfe @@ -11504,8 +11504,8 @@ trackedFiles: pristine_git_object: 10dbc7da31e08f14827c9bab01ff6997b5837094 docs/sdks/privateendpoints/README.mdx: id: 54dee70b8cc7 - last_write_checksum: sha1:3ac93193ced7cea4d0acceecdc52f8348d035275 - pristine_git_object: 471a5df2d57e9544e20f44c8086b628fc7d28980 + last_write_checksum: sha1:df30945c0fcc9fa7e507ea2dbbfc275946151ebd + pristine_git_object: 7e32658db2e9f416a2ffe5c86e885edf75e47cc2 docs/sdks/privateproviders/README.mdx: id: 517c31195442 last_write_checksum: sha1:69cd8bc9ffad703ca458c861510c201be38f283b @@ -11560,8 +11560,8 @@ trackedFiles: pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:561c6767be55ec00414b083a9770c1019ce9e1b9 - pristine_git_object: 8e0cd00d3bf5043c3834bd1626f2f25318a3997f + last_write_checksum: sha1:6e48b629c4bfafa5dcf8bc93147c57eb8f96cdb5 + pristine_git_object: 5b4e440a737ba8ed964a5cc9b6851bd47c51c849 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54 @@ -11588,8 +11588,8 @@ trackedFiles: pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137 src/openrouter/_version.py: id: d8d15ad6c586 - last_write_checksum: sha1:7b1362315ea0b04dcbc29770d30d9c622d664275 - pristine_git_object: dbc0718671295b361bcebf663f0d8d2e6372db93 + last_write_checksum: sha1:3b5e6293f12225b7d6c19926d454cf4c103c69dd + pristine_git_object: bff9ce30b9bc2b3728d6aa1754711f0e1b5de43f src/openrouter/alpha.py: id: 306c4d93308d last_write_checksum: sha1:80cc0f39649445431cc2247ed0e0765438467766 @@ -15240,8 +15240,8 @@ trackedFiles: pristine_git_object: add97f9dbdd883540c97aaeffb4a9f227097b07e src/openrouter/components/updateprivateendpointrequest.py: id: 51a950d71ff3 - last_write_checksum: sha1:8cce23bc93220d54540778d40d0dcc615f143e8f - pristine_git_object: 8df7de96472560bd34435f2b65e4007b97ba3514 + last_write_checksum: sha1:7d0d90d6a715ecf9f05973da4f0a0b69deb1b91c + pristine_git_object: 781779489a3864583f1bc1fd758797dfb07c08fa src/openrouter/components/updateprivateendpointsettingsrequest.py: id: 5e27265a3151 last_write_checksum: sha1:66c49c54b08c084b95c2d46db1e373c73a116045 @@ -16312,8 +16312,8 @@ trackedFiles: pristine_git_object: 4edc4e886abe1848022ee7931877859e2d809bfb src/openrouter/private_endpoints.py: id: fdbce8846ed0 - last_write_checksum: sha1:c8baf7bd88047e96d693b2d08e37c77fa8607468 - pristine_git_object: a33f9f4f03ba25f7908cdcd47cd056128c734ca2 + last_write_checksum: sha1:3d7385776334bff0c853f956633941c4fe1bc42e + pristine_git_object: 9b93b63dc7368f0eb40fe464e931dff586ac4c62 src/openrouter/private_providers.py: id: d2b888527155 last_write_checksum: sha1:73483e415ea971a08d9d76b2ed55dc164ae3953a @@ -21493,28 +21493,3 @@ examples: "500": application/json: {"error": {"code": 500, "message": "Internal Server Error"}} examplesVersion: 1.0.2 -releaseNotes: | - ## Python SDK Changes: - * `open_router.guardrail_policies.list_account_policies()`: **Added** - * `open_router.guardrail_policies.create_account_policy()`: **Added** - * `open_router.guardrail_policies.delete_account_policy()`: **Added** - * `open_router.guardrail_policies.update_account_policy()`: **Added** - * `open_router.guardrail_policies.get_api_key_policy_assignment()`: **Added** - * `open_router.guardrail_policies.change_api_key_policy_assignment()`: **Added** - * `open_router.guardrail_policies.get_member_policy_assignment()`: **Added** - * `open_router.guardrail_policies.change_member_policy_assignment()`: **Added** - * `open_router.guardrail_policies.list_budget_policies()`: **Added** - * `open_router.guardrail_policies.create_budget_policy()`: **Added** - * `open_router.guardrail_policies.delete_budget_policy()`: **Added** - * `open_router.guardrail_policies.get_budget_policy()`: **Added** - * `open_router.guardrail_policies.update_budget_policy()`: **Added** - * `open_router.guardrail_policies.list_model_availability_policies()`: **Added** - * `open_router.guardrail_policies.create_model_availability_policy()`: **Added** - * `open_router.guardrail_policies.delete_model_availability_policy()`: **Added** - * `open_router.guardrail_policies.get_model_availability_policy()`: **Added** - * `open_router.guardrail_policies.update_model_availability_policy()`: **Added** - * `open_router.guardrail_policies.list_moderation_policies()`: **Added** - * `open_router.guardrail_policies.create_moderation_policy()`: **Added** - * `open_router.guardrail_policies.delete_moderation_policy()`: **Added** - * `open_router.guardrail_policies.get_moderation_policy()`: **Added** - * `open_router.guardrail_policies.update_moderation_policy()`: **Added** diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 6b3bf8b49..1355eb650 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -37,7 +37,7 @@ generation: documentation: mintlify preApplyUnionDiscriminators: true python: - version: 1.3.133 + version: 1.3.134 additionalDependencies: dev: pytest: '>=8.3' diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index 46f6dab7f..0592be982 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -36814,7 +36814,7 @@ components: - 'is_filtered_model_catalog_enabled' type: 'object' UpdatePrivateEndpointRequest: - description: 'Only the fields present change. `base_url`, `upstream_model_id`, `declared_zdr` and `declared_region` are accepted on a draft only; `pricing` and `declared_parameters` replace their value; `settings` is itself a partial update where `null` clears a limit or restores the provider default.' + description: 'Only the fields present change. `base_url` and `upstream_model_id` are accepted on a draft only; `declared_zdr` and `declared_region` on drafts and active endpoints; `pricing` and `declared_parameters` replace their value; `settings` is itself a partial update where `null` clears a limit or restores the provider default.' example: declared_parameters: - 'seed' @@ -54596,7 +54596,7 @@ paths: - 'Private Endpoints' x-speakeasy-name-override: 'get' patch: - description: 'Change any of the endpoint fields you own in one call; only the fields present change, and the response is the whole endpoint. `pricing` and `declared_parameters` replace their stored value, `settings` changes only the fields it names (`null` clears a limit or restores the provider default); routing picks these up for subsequent requests on drafts and active endpoints alike. `upstream_model_id`, `base_url`, `declared_zdr` and `declared_region` re-point a draft: an omitted `upstream_model_id` or `base_url` keeps the stored one, omitted data-policy declarations are kept while the upstream is unchanged and cleared when it changes, and any upstream change clears earlier validation. Naming an upstream field on an active endpoint returns 409 `already_active` and writes nothing; delete and re-create instead. Every group is checked before anything is written: 400 `parameters_invalid` when `tool_choice` is declared without `tools` tested or declared, 400 `settings_invalid` when `max_prompt_tokens` exceeds the context length, both completion APIs are off, or `excluded_parameters` names a tested parameter, 422 `pricing_invalid` for rates the provider strategy cannot represent. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + description: 'Change any of the endpoint fields you own in one call; only the fields present change, and the response is the whole endpoint. `pricing` and `declared_parameters` replace their stored value, `settings` changes only the fields it names (`null` clears a limit or restores the provider default); routing picks these up for subsequent requests on drafts and active endpoints alike. `declared_zdr` and `declared_region` change on drafts and active endpoints alike; on an active endpoint the change keeps its validation and tested parameters, and routing applies it to subsequent requests. `upstream_model_id` and `base_url` re-point a draft: an omitted `upstream_model_id` or `base_url` keeps the stored one, omitted data-policy declarations are kept while the upstream is unchanged and cleared when it changes, and any change to the upstream or declarations of a draft clears earlier validation. Naming `upstream_model_id` or `base_url` on an active endpoint returns 409 `already_active` and writes nothing, even alongside other fields; delete and re-create instead. Every group is checked before anything is written: 400 `parameters_invalid` when `tool_choice` is declared without `tools` tested or declared, 400 `settings_invalid` when `max_prompt_tokens` exceeds the context length, both completion APIs are off, or `excluded_parameters` names a tested parameter, 422 `pricing_invalid` for rates the provider strategy cannot represent. [Management key](/docs/guides/overview/auth/management-api-keys) required.' operationId: 'updatePrivateEndpoint' parameters: - description: 'Stable identifier of the private endpoint.' diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 9fd59f6d5..9d7d95cff 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -2,8 +2,8 @@ speakeasyVersion: 1.803.2 sources: OpenRouter API: sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:32e6f27c711a47de1df4736da8dd46322a23aa3a6ebf4ae72a32365f0eccef54 - sourceBlobDigest: sha256:3f24df2097b4e6ea0a2e78c3a05348003ce35e479fc7fb4f44e477cee935569e + sourceRevisionDigest: sha256:00c04687d464fa96db56087dbd329415297b5bf20d6a937926c2866e51c7c264 + sourceBlobDigest: sha256:84763d7d924a44236c865d42fbe309c658fe5c4fda8a54065640c6d5b52a436d tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: open-router: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:32e6f27c711a47de1df4736da8dd46322a23aa3a6ebf4ae72a32365f0eccef54 - sourceBlobDigest: sha256:3f24df2097b4e6ea0a2e78c3a05348003ce35e479fc7fb4f44e477cee935569e + sourceRevisionDigest: sha256:00c04687d464fa96db56087dbd329415297b5bf20d6a937926c2866e51c7c264 + sourceBlobDigest: sha256:84763d7d924a44236c865d42fbe309c658fe5c4fda8a54065640c6d5b52a436d codeSamplesNamespace: open-router-python-code-samples - codeSamplesRevisionDigest: sha256:c61748d4ef59c9dba3f8d6cc7cbb16c42f24affbf502f307bed9777c87293eaf + codeSamplesRevisionDigest: sha256:74e65c8c21babdd13dd933553f2d35e3c2b3e070ea3b6cc2fb6f578072947372 workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.803.2 diff --git a/RELEASES.md b/RELEASES.md index 583700b05..2baa1fdc2 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -4099,4 +4099,14 @@ Based on: ### Generated - [python v1.3.133] . ### Releases -- [PyPI v1.3.133] https://pypi.org/project/openrouter/1.3.133 - . \ No newline at end of file +- [PyPI v1.3.133] https://pypi.org/project/openrouter/1.3.133 - . + +## 2026-11-06 15:29:22 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.803.2 (2.950.13) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v1.3.134] . +### Releases +- [PyPI v1.3.134] https://pypi.org/project/openrouter/1.3.134 - . \ No newline at end of file diff --git a/docs/components/updateprivateendpointrequest.mdx b/docs/components/updateprivateendpointrequest.mdx index 89ac9f1e2..4a5c21129 100644 --- a/docs/components/updateprivateendpointrequest.mdx +++ b/docs/components/updateprivateendpointrequest.mdx @@ -2,7 +2,7 @@ title: "UpdatePrivateEndpointRequest" --- -Only the fields present change. `base_url`, `upstream_model_id`, `declared_zdr` and `declared_region` are accepted on a draft only; `pricing` and `declared_parameters` replace their value; `settings` is itself a partial update where `null` clears a limit or restores the provider default. +Only the fields present change. `base_url` and `upstream_model_id` are accepted on a draft only; `declared_zdr` and `declared_region` on drafts and active endpoints; `pricing` and `declared_parameters` replace their value; `settings` is itself a partial update where `null` clears a limit or restores the provider default. ## Fields diff --git a/docs/sdks/privateendpoints/README.mdx b/docs/sdks/privateendpoints/README.mdx index 471a5df2d..7e32658db 100644 --- a/docs/sdks/privateendpoints/README.mdx +++ b/docs/sdks/privateendpoints/README.mdx @@ -243,7 +243,7 @@ with OpenRouter( ## update -Change any of the endpoint fields you own in one call; only the fields present change, and the response is the whole endpoint. `pricing` and `declared_parameters` replace their stored value, `settings` changes only the fields it names (`null` clears a limit or restores the provider default); routing picks these up for subsequent requests on drafts and active endpoints alike. `upstream_model_id`, `base_url`, `declared_zdr` and `declared_region` re-point a draft: an omitted `upstream_model_id` or `base_url` keeps the stored one, omitted data-policy declarations are kept while the upstream is unchanged and cleared when it changes, and any upstream change clears earlier validation. Naming an upstream field on an active endpoint returns 409 `already_active` and writes nothing; delete and re-create instead. Every group is checked before anything is written: 400 `parameters_invalid` when `tool_choice` is declared without `tools` tested or declared, 400 `settings_invalid` when `max_prompt_tokens` exceeds the context length, both completion APIs are off, or `excluded_parameters` names a tested parameter, 422 `pricing_invalid` for rates the provider strategy cannot represent. [Management key](/docs/guides/overview/auth/management-api-keys) required. +Change any of the endpoint fields you own in one call; only the fields present change, and the response is the whole endpoint. `pricing` and `declared_parameters` replace their stored value, `settings` changes only the fields it names (`null` clears a limit or restores the provider default); routing picks these up for subsequent requests on drafts and active endpoints alike. `declared_zdr` and `declared_region` change on drafts and active endpoints alike; on an active endpoint the change keeps its validation and tested parameters, and routing applies it to subsequent requests. `upstream_model_id` and `base_url` re-point a draft: an omitted `upstream_model_id` or `base_url` keeps the stored one, omitted data-policy declarations are kept while the upstream is unchanged and cleared when it changes, and any change to the upstream or declarations of a draft clears earlier validation. Naming `upstream_model_id` or `base_url` on an active endpoint returns 409 `already_active` and writes nothing, even alongside other fields; delete and re-create instead. Every group is checked before anything is written: 400 `parameters_invalid` when `tool_choice` is declared without `tools` tested or declared, 400 `settings_invalid` when `max_prompt_tokens` exceeds the context length, both completion APIs are off, or `excluded_parameters` names a tested parameter, 422 `pricing_invalid` for rates the provider strategy cannot represent. [Management key](/docs/guides/overview/auth/management-api-keys) required. ### Example Usage diff --git a/pyproject.toml b/pyproject.toml index 8e0cd00d3..5b4e440a7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openrouter" -version = "1.3.133" +version = "1.3.134" 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 dbc071867..bff9ce30b 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.133" +__version__: str = "1.3.134" __openapi_doc_version__: str = "1.0.0" __gen_version__: str = "2.950.13" -__user_agent__: str = "speakeasy-sdk/python 1.3.133 2.950.13 1.0.0 openrouter" +__user_agent__: str = "speakeasy-sdk/python 1.3.134 2.950.13 1.0.0 openrouter" try: if __package__ is not None: diff --git a/src/openrouter/components/updateprivateendpointrequest.py b/src/openrouter/components/updateprivateendpointrequest.py index 8df7de964..781779489 100644 --- a/src/openrouter/components/updateprivateendpointrequest.py +++ b/src/openrouter/components/updateprivateendpointrequest.py @@ -35,7 +35,7 @@ class UpdatePrivateEndpointRequestTypedDict(TypedDict): - r"""Only the fields present change. `base_url`, `upstream_model_id`, `declared_zdr` and `declared_region` are accepted on a draft only; `pricing` and `declared_parameters` replace their value; `settings` is itself a partial update where `null` clears a limit or restores the provider default.""" + r"""Only the fields present change. `base_url` and `upstream_model_id` are accepted on a draft only; `declared_zdr` and `declared_region` on drafts and active endpoints; `pricing` and `declared_parameters` replace their value; `settings` is itself a partial update where `null` clears a limit or restores the provider default.""" base_url: NotRequired[str] r"""HTTPS base URL of your deployment. Required unless the provider derives its URL from the BYOK credential (Azure, Amazon Bedrock, Google Vertex).""" @@ -52,7 +52,7 @@ class UpdatePrivateEndpointRequestTypedDict(TypedDict): class UpdatePrivateEndpointRequest(BaseModel): - r"""Only the fields present change. `base_url`, `upstream_model_id`, `declared_zdr` and `declared_region` are accepted on a draft only; `pricing` and `declared_parameters` replace their value; `settings` is itself a partial update where `null` clears a limit or restores the provider default.""" + r"""Only the fields present change. `base_url` and `upstream_model_id` are accepted on a draft only; `declared_zdr` and `declared_region` on drafts and active endpoints; `pricing` and `declared_parameters` replace their value; `settings` is itself a partial update where `null` clears a limit or restores the provider default.""" base_url: Optional[str] = None r"""HTTPS base URL of your deployment. Required unless the provider derives its URL from the BYOK credential (Azure, Amazon Bedrock, Google Vertex).""" diff --git a/src/openrouter/private_endpoints.py b/src/openrouter/private_endpoints.py index a33f9f4f0..9b93b63dc 100644 --- a/src/openrouter/private_endpoints.py +++ b/src/openrouter/private_endpoints.py @@ -1355,7 +1355,7 @@ def update( ) -> components.PrivateEndpointResponse: r"""Update a private endpoint - Change any of the endpoint fields you own in one call; only the fields present change, and the response is the whole endpoint. `pricing` and `declared_parameters` replace their stored value, `settings` changes only the fields it names (`null` clears a limit or restores the provider default); routing picks these up for subsequent requests on drafts and active endpoints alike. `upstream_model_id`, `base_url`, `declared_zdr` and `declared_region` re-point a draft: an omitted `upstream_model_id` or `base_url` keeps the stored one, omitted data-policy declarations are kept while the upstream is unchanged and cleared when it changes, and any upstream change clears earlier validation. Naming an upstream field on an active endpoint returns 409 `already_active` and writes nothing; delete and re-create instead. Every group is checked before anything is written: 400 `parameters_invalid` when `tool_choice` is declared without `tools` tested or declared, 400 `settings_invalid` when `max_prompt_tokens` exceeds the context length, both completion APIs are off, or `excluded_parameters` names a tested parameter, 422 `pricing_invalid` for rates the provider strategy cannot represent. [Management key](/docs/guides/overview/auth/management-api-keys) required. + Change any of the endpoint fields you own in one call; only the fields present change, and the response is the whole endpoint. `pricing` and `declared_parameters` replace their stored value, `settings` changes only the fields it names (`null` clears a limit or restores the provider default); routing picks these up for subsequent requests on drafts and active endpoints alike. `declared_zdr` and `declared_region` change on drafts and active endpoints alike; on an active endpoint the change keeps its validation and tested parameters, and routing applies it to subsequent requests. `upstream_model_id` and `base_url` re-point a draft: an omitted `upstream_model_id` or `base_url` keeps the stored one, omitted data-policy declarations are kept while the upstream is unchanged and cleared when it changes, and any change to the upstream or declarations of a draft clears earlier validation. Naming `upstream_model_id` or `base_url` on an active endpoint returns 409 `already_active` and writes nothing, even alongside other fields; delete and re-create instead. Every group is checked before anything is written: 400 `parameters_invalid` when `tool_choice` is declared without `tools` tested or declared, 400 `settings_invalid` when `max_prompt_tokens` exceeds the context length, both completion APIs are off, or `excluded_parameters` names a tested parameter, 422 `pricing_invalid` for rates the provider strategy cannot represent. [Management key](/docs/guides/overview/auth/management-api-keys) required. :param id: Stable identifier of the private endpoint. :param http_referer: The app identifier should be your app's URL and is used as the primary identifier for rankings. @@ -1564,7 +1564,7 @@ async def update_async( ) -> components.PrivateEndpointResponse: r"""Update a private endpoint - Change any of the endpoint fields you own in one call; only the fields present change, and the response is the whole endpoint. `pricing` and `declared_parameters` replace their stored value, `settings` changes only the fields it names (`null` clears a limit or restores the provider default); routing picks these up for subsequent requests on drafts and active endpoints alike. `upstream_model_id`, `base_url`, `declared_zdr` and `declared_region` re-point a draft: an omitted `upstream_model_id` or `base_url` keeps the stored one, omitted data-policy declarations are kept while the upstream is unchanged and cleared when it changes, and any upstream change clears earlier validation. Naming an upstream field on an active endpoint returns 409 `already_active` and writes nothing; delete and re-create instead. Every group is checked before anything is written: 400 `parameters_invalid` when `tool_choice` is declared without `tools` tested or declared, 400 `settings_invalid` when `max_prompt_tokens` exceeds the context length, both completion APIs are off, or `excluded_parameters` names a tested parameter, 422 `pricing_invalid` for rates the provider strategy cannot represent. [Management key](/docs/guides/overview/auth/management-api-keys) required. + Change any of the endpoint fields you own in one call; only the fields present change, and the response is the whole endpoint. `pricing` and `declared_parameters` replace their stored value, `settings` changes only the fields it names (`null` clears a limit or restores the provider default); routing picks these up for subsequent requests on drafts and active endpoints alike. `declared_zdr` and `declared_region` change on drafts and active endpoints alike; on an active endpoint the change keeps its validation and tested parameters, and routing applies it to subsequent requests. `upstream_model_id` and `base_url` re-point a draft: an omitted `upstream_model_id` or `base_url` keeps the stored one, omitted data-policy declarations are kept while the upstream is unchanged and cleared when it changes, and any change to the upstream or declarations of a draft clears earlier validation. Naming `upstream_model_id` or `base_url` on an active endpoint returns 409 `already_active` and writes nothing, even alongside other fields; delete and re-create instead. Every group is checked before anything is written: 400 `parameters_invalid` when `tool_choice` is declared without `tools` tested or declared, 400 `settings_invalid` when `max_prompt_tokens` exceeds the context length, both completion APIs are off, or `excluded_parameters` names a tested parameter, 422 `pricing_invalid` for rates the provider strategy cannot represent. [Management key](/docs/guides/overview/auth/management-api-keys) required. :param id: Stable identifier of the private endpoint. :param http_referer: The app identifier should be your app's URL and is used as the primary identifier for rankings. diff --git a/uv.lock b/uv.lock index 73298bb80..a87b02777 100644 --- a/uv.lock +++ b/uv.lock @@ -231,7 +231,7 @@ wheels = [ [[package]] name = "openrouter" -version = "1.3.133" +version = "1.3.134" source = { editable = "." } dependencies = [ { name = "httpcore" },