diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock
index 73c53618..254abce1 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: af1963044af75cc1a40f12bed7cc929d
+ docChecksum: 7736f88acb13852e0a81cca0a59ed8ba
docVersion: 1.0.0
speakeasyVersion: 1.787.0
generationVersion: 2.914.0
- releaseVersion: 1.1.41
- configChecksum: ccb9fb7032936a28292923a7de915153
+ releaseVersion: 1.1.42
+ configChecksum: a0bb8d0afd288b3273bb5982439428dd
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
published: true
persistentEdits:
- generation_id: 312cf1ac-32ba-4bd4-af66-1432e88a39dd
- pristine_commit_hash: 2aa272d8539b68fda1c2e88a9ea7abdfed28bec3
- pristine_tree_hash: 5133f3ed0b45900655a58af5b31303d6700ccf57
+ generation_id: 8d74b327-5b9a-4f4e-ab59-2253c019af27
+ pristine_commit_hash: 2858e2165631fe69d18e2296ec1014e26b68090d
+ pristine_tree_hash: e1ca8da4573e5380523e26359793dd59f964aeb5
features:
python:
acceptHeaders: 3.0.0
@@ -1222,8 +1222,8 @@ trackedFiles:
pristine_git_object: 11d6c22059efcf4e3b0d6b15b39a67678adc7a4b
docs/components/chatwebsearchshorthand.mdx:
id: 40f0c0a47ef4
- last_write_checksum: sha1:0bd92fae69f31834bb69788c63522f1684854d75
- pristine_git_object: 22b6dbe0b38b17f832e9d5eda222f83f768409c9
+ last_write_checksum: sha1:225d243249948ef85c7786e814a91e2aedf8faec
+ pristine_git_object: 3321c18ffc01588c393e1b3515d759ac17063894
docs/components/chatwebsearchshorthandtype.mdx:
id: ce16c0139963
last_write_checksum: sha1:1637ce5dac9fc9c87df3793d46a4eff33282e0a3
@@ -2726,8 +2726,8 @@ trackedFiles:
pristine_git_object: 63991d9ba8aedd15e34bdc73c8f99fbdcda2d037
docs/components/legacywebsearchservertool.mdx:
id: 0b47ff5dd0c4
- last_write_checksum: sha1:e867239b76a44e6407489dfd29e5f763466d5eab
- pristine_git_object: e73a1ade5ca3dec621e108e61351c2bbde325937
+ last_write_checksum: sha1:065f7b4b60819f8110fa09c3136c01cd57b2fe55
+ pristine_git_object: 1db3c8572e32518588c5cc680e5732c8f6685624
docs/components/legacywebsearchservertooltype.mdx:
id: 192fa7358f3b
last_write_checksum: sha1:c82facbab1f9b4f53e06a6e3986b886f2a9b9b00
@@ -4226,16 +4226,16 @@ trackedFiles:
pristine_git_object: 56d189d99021af45f7fa6fb143af33d7d08cedcb
docs/components/preview20250311websearchservertool.mdx:
id: aeecb65a50e0
- last_write_checksum: sha1:a982f9d1b6ae3f91636a5a8e5a63cbb89f14cff7
- pristine_git_object: f7104c881cf8d9a6d1308497c2057f8f132f198f
+ last_write_checksum: sha1:5ec0b2800c361990733edd126d107480b3743516
+ pristine_git_object: 9bf9466f07360cf2566c335df6c5a00ad58daed3
docs/components/preview20250311websearchservertooltype.mdx:
id: cedcfeda38d6
last_write_checksum: sha1:f7ac2913cc8c24d851c06d02c06742f9fe435084
pristine_git_object: 3669d05ce38327fa9b3d9a8c66c1de208a5f30e2
docs/components/previewwebsearchservertool.mdx:
id: 2695e6e2fdfb
- last_write_checksum: sha1:b7ad4bc6edeaa07199e47e84e1994172b7958155
- pristine_git_object: 1fa43dd16ff0300773ecf771d92604e455e33269
+ last_write_checksum: sha1:d6aad5ee1e14fcb680ee677385e350c51eb82cc7
+ pristine_git_object: e7cc75dca6edc8c3507466b16c6deebd2ebb2b8f
docs/components/previewwebsearchservertooltype.mdx:
id: 4b6373295164
last_write_checksum: sha1:b28bae247d5a91d62f9be9877cd6f437628be49e
@@ -5558,8 +5558,8 @@ trackedFiles:
pristine_git_object: 6453f10f1843521ab57609e00cea4459984d565b
docs/components/websearchconfig.mdx:
id: 6d343d63543d
- last_write_checksum: sha1:ef2c7b2f668f5086101d28c126cb2938a800c389
- pristine_git_object: b15fce664f27e78a6c42085185db0296591ace97
+ last_write_checksum: sha1:d2454c684c63ed8a6cf61ce56db01c75710cfa43
+ pristine_git_object: 2b399b96a3e07bd1931beb1afd573c849258e781
docs/components/websearchdomainfilter.mdx:
id: e6aef0d8853a
last_write_checksum: sha1:3f5103c40e44f2a6d9d11052e6f5dc88284c4fca
@@ -5574,12 +5574,12 @@ trackedFiles:
pristine_git_object: d0c7f8329d3c98def79ee10dadd5c63b0cb6863e
docs/components/websearchmode.mdx:
id: da4dbe8706a0
- last_write_checksum: sha1:8ec757de8b4fcefdad348f661f0326a06c3c1088
- pristine_git_object: b37c721f52063fea006ae27617f1d4f1e6313ac4
+ last_write_checksum: sha1:f9e1d69bc1cfdf2b94fcc7351451231d6deaa530
+ pristine_git_object: 928a895090e79502e73ae4db46741e5554c2d751
docs/components/websearchplugin.mdx:
id: 5cb313bf543c
- last_write_checksum: sha1:6ff77d70cd6e3e13b2ad140a56d95db91a641cf6
- pristine_git_object: 27273fc5d39be99a4266ab49bbe3fb744cc6c178
+ last_write_checksum: sha1:4c91a9b6554d8faea63ba7eb14507bebb72e8bf9
+ pristine_git_object: 3b8919a50b2b5e6d9caa2ce1160507eade77bbb0
docs/components/websearchpluginid.mdx:
id: d033d5ea2573
last_write_checksum: sha1:11622d868a103d09aa6a02ad5253f8fae2e90004
@@ -5590,12 +5590,12 @@ trackedFiles:
pristine_git_object: 35edaa6c73e1f7c3731d7d5005897f72ca4ed496
docs/components/websearchservertool.mdx:
id: cf9994f5aba9
- last_write_checksum: sha1:efc7da27182f48e02507d6009e35ea7ac20ccfff
- pristine_git_object: a7c716788f3b076ded969dcfcfc5b80f67654550
+ last_write_checksum: sha1:f8661fd47b6d65c059c663cf0641550bb64a3e05
+ pristine_git_object: 9c256f6f3ded3f7bd9876670dd6c6f5ab86be1ba
docs/components/websearchservertoolconfig.mdx:
id: bb335e5d49e5
- last_write_checksum: sha1:1fe0cd616bf9cc99d33d066db3a2e3842ca913d9
- pristine_git_object: 1b148667733907f4de98c7235213330166058a92
+ last_write_checksum: sha1:45f3c04eb8f8d55c0fedc5ff61d2e02fa603e60e
+ pristine_git_object: 969b67e5012be92472c98779ff4674072547445a
docs/components/websearchservertoolopenrouter.mdx:
id: d1e3cf613d26
last_write_checksum: sha1:014a351e3ba7d11d72eeb622e088215abdf7d4eb
@@ -7158,8 +7158,8 @@ trackedFiles:
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
pyproject.toml:
id: 5d07e7d72637
- last_write_checksum: sha1:9dbcaf905d3b3d520eab58df50885c4d5492940b
- pristine_git_object: ac3bde63f8981ce20d5fa7b8e2028a612e93bcbd
+ last_write_checksum: sha1:4b1ee8752cacb8d525efc530f705108df1affd81
+ pristine_git_object: 81543794987e603733eff6c04afb4c77b1369228
scripts/prepare_readme.py:
id: e0c5957a6035
last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54
@@ -7186,8 +7186,8 @@ trackedFiles:
pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137
src/openrouter/_version.py:
id: d8d15ad6c586
- last_write_checksum: sha1:e586483de1c667b402bb29c27bb1e933c34e96cf
- pristine_git_object: eef308ebf311ec5d77fb56f5cdcdaf4957584bf0
+ last_write_checksum: sha1:e0322b57a5ea6819c471f30a8ddf9465f69ebd56
+ pristine_git_object: 0e48f5db8b54ea0aa94afc2653b1d44b3c53928f
src/openrouter/analytics.py:
id: cb406b5aaabb
last_write_checksum: sha1:3ea0f1c73fb9c101b7bc5719da4dd7bf62ff469a
@@ -7774,8 +7774,8 @@ trackedFiles:
pristine_git_object: d5ebd465c8d843f4bc1f0763d136d31960ab2efa
src/openrouter/components/chatwebsearchshorthand.py:
id: 13091b97a3f6
- last_write_checksum: sha1:175467dd12af52db74931fff622ec8862298e47b
- pristine_git_object: 48a494268294c8640d05d6397f1ae6ba9b49bf67
+ last_write_checksum: sha1:11e1d4a2ec7a708ee1b3ed19f29f870a097350c3
+ pristine_git_object: 64857b828ca341da26e6a67d7f802bfb07145d4a
src/openrouter/components/codeinterpretercallcodedeltaevent.py:
id: 57cd88fa2bbd
last_write_checksum: sha1:494b5f489144b2b2e30203bd4cdf43df102508f6
@@ -8410,8 +8410,8 @@ trackedFiles:
pristine_git_object: 0fe43c16758210b0b304f3f31cc88ba2df5e46a0
src/openrouter/components/legacy_websearchservertool.py:
id: 8b28b05b8756
- last_write_checksum: sha1:753c03a9469c7c7d4e6f39db5ed6c7210931a2db
- pristine_git_object: f0fae341837a390484f2c50b62f2158fde13e3ec
+ last_write_checksum: sha1:7c8c4369d99fc38660873ba78e680513ba109fa2
+ pristine_git_object: 3097160a9727a45f088635d371b982db7bee1d44
src/openrouter/components/listbyokkeysresponse.py:
id: d5f63cba5dd9
last_write_checksum: sha1:97cd54e94ba4996ebb43252ac31aa70511e0328c
@@ -8990,12 +8990,12 @@ trackedFiles:
pristine_git_object: 6828e9dd037e51ac1409380429e4aa86f8446211
src/openrouter/components/preview_20250311_websearchservertool.py:
id: ecfe1a37c34f
- last_write_checksum: sha1:e2bffc41b1eb44bde5fa8ac9bccb9e7692744a69
- pristine_git_object: 77eb038d3211f7f624d9fe5c7e7f1f00c5cd8cbc
+ last_write_checksum: sha1:292ff1119d0e9564211d5084993cbf00c9c322f2
+ pristine_git_object: 39530a45a6b6575fe69561dfe82cacb7fa63f76a
src/openrouter/components/preview_websearchservertool.py:
id: 9c02777285ce
- last_write_checksum: sha1:0213d875b418d16281fb035d0d6f93f3b503d4fd
- pristine_git_object: 0e4fd5ef86610bd6ac5fdd8d2d17c52690f90b90
+ last_write_checksum: sha1:b3046f7829a4f30ac48ae7449982c3afae59d5d4
+ pristine_git_object: c7edf6c6f6f922224cf3ae7098e12456ef696463
src/openrouter/components/preview_websearchuserlocation.py:
id: 40414eada27a
last_write_checksum: sha1:0e241830bf9014e8ea814465c573711d8a7caa2c
@@ -9582,8 +9582,8 @@ trackedFiles:
pristine_git_object: adceee794cf8135f5db3b2d741dc6e4de9c4e968
src/openrouter/components/websearchconfig.py:
id: 3884d9509e8c
- last_write_checksum: sha1:6a4c4bd33203949606f6dd33fc904a8206fe64b5
- pristine_git_object: d13a69978e05b2c75d55cd9e5273dbcdf0045389
+ last_write_checksum: sha1:dd9eb9657775855efd71b8b9d141aea974656d03
+ pristine_git_object: f8f885ea905d18b3ce5063a392744806e787acae
src/openrouter/components/websearchdomainfilter.py:
id: 4a7307ed2ba6
last_write_checksum: sha1:15246ac9135fd303e0522b8b570f27254b90495d
@@ -9598,24 +9598,24 @@ trackedFiles:
pristine_git_object: aba36c1943f9b8e57d5e6f95d8b707263d95f738
src/openrouter/components/websearchmode.py:
id: 56a5dcb05613
- last_write_checksum: sha1:25d005027c965ba8e50a6d511b37099120515844
- pristine_git_object: cf825deec0bfb177c9c527952ebccf55dcf28b88
+ last_write_checksum: sha1:5fc2f8406ff78c88426a6b92e511a918951d00df
+ pristine_git_object: 12838605b22eaf6d116fc09e1a16db665352ca19
src/openrouter/components/websearchplugin.py:
id: 1d872d1792a7
- last_write_checksum: sha1:fc6d13857c16641f501b5e7903f0582fd0b86448
- pristine_git_object: 2121245ff9395d96d4dc924349a0686af7829c88
+ last_write_checksum: sha1:791a5d57f7390430264c04cc9a86726da9d4207c
+ pristine_git_object: a605a1b5a14d545be6551c42e8cd004d29773307
src/openrouter/components/websearchservertool.py:
id: 32c7333e3c21
- last_write_checksum: sha1:9d15566c339f53ae944d767de00dbb6529744626
- pristine_git_object: 45c228b92f72ee1f0f6d286173c5081a6cbe2341
+ last_write_checksum: sha1:5eba5565a3b70c9ea0c7d156c6dad36dbf8f443a
+ pristine_git_object: ac7ee95a3576418d2419451ba305a94508bb6bc7
src/openrouter/components/websearchservertool_openrouter.py:
id: 3fcedc999f5b
last_write_checksum: sha1:d5c34450670513a4fed73afc86670fc77f19a247
pristine_git_object: cac816de64f204cda6c706eee57f0d72b8b860eb
src/openrouter/components/websearchservertoolconfig.py:
id: ebdaa99d47da
- last_write_checksum: sha1:24fb841925a6bf4dd0238bff1260a8f40e7ea8da
- pristine_git_object: 4c131b5e04e62582b9b032229b3ff2d453d645e3
+ last_write_checksum: sha1:0d8d501205687110480986dafc292ea947cdb8c9
+ pristine_git_object: af44dc6bf8c3334c25e6453cb3741378b3893898
src/openrouter/components/websearchsource.py:
id: a1fe81b68a7b
last_write_checksum: sha1:fa30e5813682231d742fb6861f0fe92f655c8e81
diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml
index da5b5d71..7a7566b5 100644
--- a/.speakeasy/gen.yaml
+++ b/.speakeasy/gen.yaml
@@ -36,7 +36,7 @@ generation:
documentation: mintlify
preApplyUnionDiscriminators: true
python:
- version: 1.1.41
+ version: 1.1.42
additionalDependencies:
dev: {}
main: {}
diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml
index a3318202..bf9ed92a 100644
--- a/.speakeasy/out.openapi.yaml
+++ b/.speakeasy/out.openapi.yaml
@@ -25688,7 +25688,7 @@ components:
type: 'string'
x-speakeasy-unknown-values: allow
WebSearchMode:
- description: 'Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored.'
+ description: 'Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored.'
enum:
- 'instant'
- 'fast'
diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock
index c5f2e9f3..4613edda 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:a8d2046d69beca66a05b673a614ccbf437b2cd0e606c74296d9cb6b23a16df71
- sourceBlobDigest: sha256:462930c375d22e578dfe63934980c09c2235d20844ad3509314875a39190e56f
+ sourceRevisionDigest: sha256:ae34c83262058e6d8e0b315f30c23dcd69396426113177e2f9db4eb241fa4707
+ sourceBlobDigest: sha256:226017fbbefd415bbd652501750727128c9f7a43432fee4712c0a822bbeca88c
tags:
- latest
- 1.0.0
@@ -11,10 +11,10 @@ targets:
open-router:
source: OpenRouter API
sourceNamespace: open-router-chat-completions-api
- sourceRevisionDigest: sha256:a8d2046d69beca66a05b673a614ccbf437b2cd0e606c74296d9cb6b23a16df71
- sourceBlobDigest: sha256:462930c375d22e578dfe63934980c09c2235d20844ad3509314875a39190e56f
+ sourceRevisionDigest: sha256:ae34c83262058e6d8e0b315f30c23dcd69396426113177e2f9db4eb241fa4707
+ sourceBlobDigest: sha256:226017fbbefd415bbd652501750727128c9f7a43432fee4712c0a822bbeca88c
codeSamplesNamespace: open-router-python-code-samples
- codeSamplesRevisionDigest: sha256:83a576a430b6a0ba055fe97743e363d0f571a235b08e5add2a105c3a8ca47af7
+ codeSamplesRevisionDigest: sha256:7d0824ec7961897914a2df3cc661f9e9fa7c06263574877cd787714b80cdff5e
workflow:
workflowVersion: 1.0.0
speakeasyVersion: 1.787.0
diff --git a/RELEASES.md b/RELEASES.md
index eba674c7..c4b95abe 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -1199,4 +1199,14 @@ Based on:
### Generated
- [python v1.1.41] .
### Releases
-- [PyPI v1.1.41] https://pypi.org/project/openrouter/1.1.41 - .
\ No newline at end of file
+- [PyPI v1.1.41] https://pypi.org/project/openrouter/1.1.41 - .
+
+## 2026-08-11 02:26:57
+### Changes
+Based on:
+- OpenAPI Doc
+- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [python v1.1.42] .
+### Releases
+- [PyPI v1.1.42] https://pypi.org/project/openrouter/1.1.42 - .
\ No newline at end of file
diff --git a/docs/components/chatwebsearchshorthand.mdx b/docs/components/chatwebsearchshorthand.mdx
index 22b6dbe0..3321c18f 100644
--- a/docs/components/chatwebsearchshorthand.mdx
+++ b/docs/components/chatwebsearchshorthand.mdx
@@ -16,7 +16,7 @@ Web search tool using OpenAI Responses API syntax. Automatically converted to op
| `max_results` | *Optional[int]* | :heavy_minus_sign: | Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. | 5 |
| `max_total_results` | *Optional[int]* | :heavy_minus_sign: | Maximum total number of search results across all search calls in a single request. Once this limit is reached, the tool will stop returning new results. Useful for controlling cost and context size in agentic loops. Defaults to 50 when not specified. | 50 |
| `max_uses` | *Optional[int]* | :heavy_minus_sign: | Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it. | 3 |
-| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored. | auto |
+| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored. | auto |
| `parameters` | [Optional[components.WebSearchConfig]](../components/websearchconfig.mdx) | :heavy_minus_sign: | N/A | \{
"max_results": 5,
"search_context_size": "medium"
} |
| `search_context_size` | [Optional[components.SearchQualityLevel]](../components/searchqualitylevel.mdx) | :heavy_minus_sign: | How much context to retrieve per result. Applies to Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, pins a fixed per-result character cap (low=5,000, medium=15,000, high=30,000); when omitted, Exa picks an adaptive size per query and document (typically ~2,000–4,000 characters per result). For Parallel, controls the total characters across all results; when omitted, Parallel uses its own default size. For Perplexity, maps directly to the Search API's native search_context_size parameter. Overridden by `max_characters` when both are set. | medium |
| `type` | [components.ChatWebSearchShorthandType](../components/chatwebsearchshorthandtype.mdx) | :heavy_check_mark: | N/A | |
diff --git a/docs/components/legacywebsearchservertool.mdx b/docs/components/legacywebsearchservertool.mdx
index e73a1ade..1db3c857 100644
--- a/docs/components/legacywebsearchservertool.mdx
+++ b/docs/components/legacywebsearchservertool.mdx
@@ -13,7 +13,7 @@ Web search tool configuration
| `filters` | [OptionalNullable[components.WebSearchDomainFilter]](../components/websearchdomainfilter.mdx) | :heavy_minus_sign: | N/A | \{
"allowed_domains": [
"example.com"
],
"blocked_domains": [
"spam.com"
],
"excluded_domains": [
"spam.com"
]
} |
| `max_results` | *Optional[int]* | :heavy_minus_sign: | Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. | 5 |
| `max_uses` | *Optional[int]* | :heavy_minus_sign: | Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it. | 3 |
-| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored. | auto |
+| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored. | auto |
| `search_context_size` | [Optional[components.SearchContextSizeEnum]](../components/searchcontextsizeenum.mdx) | :heavy_minus_sign: | Size of the search context for web search tools | medium |
| `type` | [components.LegacyWebSearchServerToolType](../components/legacywebsearchservertooltype.mdx) | :heavy_check_mark: | N/A | |
| `user_location` | [OptionalNullable[components.WebSearchUserLocation]](../components/websearchuserlocation.mdx) | :heavy_minus_sign: | User location information for web search | \{
"city": "San Francisco",
"country": "USA",
"region": "California",
"timezone": "America/Los_Angeles",
"type": "approximate"
} |
\ No newline at end of file
diff --git a/docs/components/preview20250311websearchservertool.mdx b/docs/components/preview20250311websearchservertool.mdx
index f7104c88..9bf9466f 100644
--- a/docs/components/preview20250311websearchservertool.mdx
+++ b/docs/components/preview20250311websearchservertool.mdx
@@ -13,7 +13,7 @@ Web search preview tool configuration (2025-03-11 version)
| `filters` | [OptionalNullable[components.WebSearchDomainFilter]](../components/websearchdomainfilter.mdx) | :heavy_minus_sign: | N/A | \{
"allowed_domains": [
"example.com"
],
"blocked_domains": [
"spam.com"
],
"excluded_domains": [
"spam.com"
]
} |
| `max_results` | *Optional[int]* | :heavy_minus_sign: | Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. | 5 |
| `max_uses` | *Optional[int]* | :heavy_minus_sign: | Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it. | 3 |
-| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored. | auto |
+| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored. | auto |
| `search_context_size` | [Optional[components.SearchContextSizeEnum]](../components/searchcontextsizeenum.mdx) | :heavy_minus_sign: | Size of the search context for web search tools | medium |
| `type` | [components.Preview20250311WebSearchServerToolType](../components/preview20250311websearchservertooltype.mdx) | :heavy_check_mark: | N/A | |
| `user_location` | [OptionalNullable[components.PreviewWebSearchUserLocation]](../components/previewwebsearchuserlocation.mdx) | :heavy_minus_sign: | N/A | \{
"city": "San Francisco",
"country": "USA",
"region": "California",
"timezone": "America/Los_Angeles",
"type": "approximate"
} |
\ No newline at end of file
diff --git a/docs/components/previewwebsearchservertool.mdx b/docs/components/previewwebsearchservertool.mdx
index 1fa43dd1..e7cc75dc 100644
--- a/docs/components/previewwebsearchservertool.mdx
+++ b/docs/components/previewwebsearchservertool.mdx
@@ -13,7 +13,7 @@ Web search preview tool configuration
| `filters` | [OptionalNullable[components.WebSearchDomainFilter]](../components/websearchdomainfilter.mdx) | :heavy_minus_sign: | N/A | \{
"allowed_domains": [
"example.com"
],
"blocked_domains": [
"spam.com"
],
"excluded_domains": [
"spam.com"
]
} |
| `max_results` | *Optional[int]* | :heavy_minus_sign: | Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. | 5 |
| `max_uses` | *Optional[int]* | :heavy_minus_sign: | Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it. | 3 |
-| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored. | auto |
+| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored. | auto |
| `search_context_size` | [Optional[components.SearchContextSizeEnum]](../components/searchcontextsizeenum.mdx) | :heavy_minus_sign: | Size of the search context for web search tools | medium |
| `type` | [components.PreviewWebSearchServerToolType](../components/previewwebsearchservertooltype.mdx) | :heavy_check_mark: | N/A | |
| `user_location` | [OptionalNullable[components.PreviewWebSearchUserLocation]](../components/previewwebsearchuserlocation.mdx) | :heavy_minus_sign: | N/A | \{
"city": "San Francisco",
"country": "USA",
"region": "California",
"timezone": "America/Los_Angeles",
"type": "approximate"
} |
\ No newline at end of file
diff --git a/docs/components/websearchconfig.mdx b/docs/components/websearchconfig.mdx
index b15fce66..2b399b96 100644
--- a/docs/components/websearchconfig.mdx
+++ b/docs/components/websearchconfig.mdx
@@ -13,6 +13,6 @@ title: "WebSearchConfig"
| `max_results` | *Optional[int]* | :heavy_minus_sign: | Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. | 5 |
| `max_total_results` | *Optional[int]* | :heavy_minus_sign: | Maximum total number of search results across all search calls in a single request. Once this limit is reached, the tool will stop returning new results. Useful for controlling cost and context size in agentic loops. Defaults to 50 when not specified. | 50 |
| `max_uses` | *Optional[int]* | :heavy_minus_sign: | Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it. | 3 |
-| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored. | auto |
+| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored. | auto |
| `search_context_size` | [Optional[components.SearchQualityLevel]](../components/searchqualitylevel.mdx) | :heavy_minus_sign: | How much context to retrieve per result. Applies to Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, pins a fixed per-result character cap (low=5,000, medium=15,000, high=30,000); when omitted, Exa picks an adaptive size per query and document (typically ~2,000–4,000 characters per result). For Parallel, controls the total characters across all results; when omitted, Parallel uses its own default size. For Perplexity, maps directly to the Search API's native search_context_size parameter. Overridden by `max_characters` when both are set. | medium |
| `user_location` | [Optional[components.WebSearchUserLocationServerTool]](../components/websearchuserlocationservertool.mdx) | :heavy_minus_sign: | Approximate user location for location-biased results. | \{
"city": "San Francisco",
"country": "US",
"region": "California",
"timezone": "America/Los_Angeles",
"type": "approximate"
} |
\ No newline at end of file
diff --git a/docs/components/websearchmode.mdx b/docs/components/websearchmode.mdx
index b37c721f..928a8950 100644
--- a/docs/components/websearchmode.mdx
+++ b/docs/components/websearchmode.mdx
@@ -2,7 +2,7 @@
title: "WebSearchMode"
---
-Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored.
+Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored.
## Example Usage
diff --git a/docs/components/websearchplugin.mdx b/docs/components/websearchplugin.mdx
index 27273fc5..3b8919a5 100644
--- a/docs/components/websearchplugin.mdx
+++ b/docs/components/websearchplugin.mdx
@@ -13,6 +13,6 @@ title: "WebSearchPlugin"
| `include_domains` | List[*str*] | :heavy_minus_sign: | A list of domains to restrict web search results to. Supports wildcards (e.g. "*.substack.com") and path filtering (e.g. "openai.com/blog"). | [
"example.com",
"*.substack.com",
"openai.com/blog"
] |
| `max_results` | *Optional[int]* | :heavy_minus_sign: | N/A | |
| `max_uses` | *Optional[int]* | :heavy_minus_sign: | Maximum number of times the model can invoke web search in a single turn. Passed through to native providers that support it (e.g. Anthropic). | |
-| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored. | auto |
+| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored. | auto |
| `search_prompt` | *Optional[str]* | :heavy_minus_sign: | N/A | |
| `user_location` | [OptionalNullable[components.UserLocation]](../components/userlocation.mdx) | :heavy_minus_sign: | N/A | \{
"city": "San Francisco",
"country": "US",
"region": "California",
"timezone": "America/Los_Angeles",
"type": "approximate"
} |
\ No newline at end of file
diff --git a/docs/components/websearchservertool.mdx b/docs/components/websearchservertool.mdx
index a7c71678..9c256f6f 100644
--- a/docs/components/websearchservertool.mdx
+++ b/docs/components/websearchservertool.mdx
@@ -13,7 +13,7 @@ Web search tool configuration (2025-08-26 version)
| `filters` | [OptionalNullable[components.WebSearchDomainFilter]](../components/websearchdomainfilter.mdx) | :heavy_minus_sign: | N/A | \{
"allowed_domains": [
"example.com"
],
"blocked_domains": [
"spam.com"
],
"excluded_domains": [
"spam.com"
]
} |
| `max_results` | *Optional[int]* | :heavy_minus_sign: | Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. | 5 |
| `max_uses` | *Optional[int]* | :heavy_minus_sign: | Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it. | 3 |
-| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored. | auto |
+| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored. | auto |
| `search_context_size` | [Optional[components.SearchContextSizeEnum]](../components/searchcontextsizeenum.mdx) | :heavy_minus_sign: | Size of the search context for web search tools | medium |
| `type` | [components.WebSearchServerToolType](../components/websearchservertooltype.mdx) | :heavy_check_mark: | N/A | |
| `user_location` | [OptionalNullable[components.WebSearchUserLocation]](../components/websearchuserlocation.mdx) | :heavy_minus_sign: | User location information for web search | \{
"city": "San Francisco",
"country": "USA",
"region": "California",
"timezone": "America/Los_Angeles",
"type": "approximate"
} |
\ No newline at end of file
diff --git a/docs/components/websearchservertoolconfig.mdx b/docs/components/websearchservertoolconfig.mdx
index 1b148667..969b67e5 100644
--- a/docs/components/websearchservertoolconfig.mdx
+++ b/docs/components/websearchservertoolconfig.mdx
@@ -16,6 +16,6 @@ Configuration for the openrouter:web_search server tool
| `max_results` | *Optional[int]* | :heavy_minus_sign: | Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. | 5 |
| `max_total_results` | *Optional[int]* | :heavy_minus_sign: | Maximum total number of search results across all search calls in a single request. Once this limit is reached, the tool will stop returning new results. Useful for controlling cost and context size in agentic loops. Defaults to 50 when not specified. | 50 |
| `max_uses` | *Optional[int]* | :heavy_minus_sign: | Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it. | 3 |
-| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored. | auto |
+| `mode` | [Optional[components.WebSearchMode]](../components/websearchmode.mdx) | :heavy_minus_sign: | Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored. | auto |
| `search_context_size` | [Optional[components.SearchQualityLevel]](../components/searchqualitylevel.mdx) | :heavy_minus_sign: | How much context to retrieve per result. Applies to Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, pins a fixed per-result character cap (low=5,000, medium=15,000, high=30,000); when omitted, Exa picks an adaptive size per query and document (typically ~2,000–4,000 characters per result). For Parallel, controls the total characters across all results; when omitted, Parallel uses its own default size. For Perplexity, maps directly to the Search API's native search_context_size parameter. Overridden by `max_characters` when both are set. | medium |
| `user_location` | [Optional[components.WebSearchUserLocationServerTool]](../components/websearchuserlocationservertool.mdx) | :heavy_minus_sign: | Approximate user location for location-biased results. | \{
"city": "San Francisco",
"country": "US",
"region": "California",
"timezone": "America/Los_Angeles",
"type": "approximate"
} |
\ No newline at end of file
diff --git a/pyproject.toml b/pyproject.toml
index ac3bde63..81543794 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "openrouter"
-version = "1.1.41"
+version = "1.1.42"
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 eef308eb..0e48f5db 100644
--- a/src/openrouter/_version.py
+++ b/src/openrouter/_version.py
@@ -3,10 +3,10 @@
import importlib.metadata
__title__: str = "openrouter"
-__version__: str = "1.1.41"
+__version__: str = "1.1.42"
__openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.914.0"
-__user_agent__: str = "speakeasy-sdk/python 1.1.41 2.914.0 1.0.0 openrouter"
+__user_agent__: str = "speakeasy-sdk/python 1.1.42 2.914.0 1.0.0 openrouter"
try:
if __package__ is not None:
diff --git a/src/openrouter/components/chatwebsearchshorthand.py b/src/openrouter/components/chatwebsearchshorthand.py
index 48a49426..64857b82 100644
--- a/src/openrouter/components/chatwebsearchshorthand.py
+++ b/src/openrouter/components/chatwebsearchshorthand.py
@@ -45,7 +45,7 @@ class ChatWebSearchShorthandTypedDict(TypedDict):
max_uses: NotRequired[int]
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: NotRequired[WebSearchMode]
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
parameters: NotRequired[WebSearchConfigTypedDict]
search_context_size: NotRequired[SearchQualityLevel]
r"""How much context to retrieve per result. Applies to Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, pins a fixed per-result character cap (low=5,000, medium=15,000, high=30,000); when omitted, Exa picks an adaptive size per query and document (typically ~2,000–4,000 characters per result). For Parallel, controls the total characters across all results; when omitted, Parallel uses its own default size. For Perplexity, maps directly to the Search API's native search_context_size parameter. Overridden by `max_characters` when both are set."""
@@ -80,7 +80,7 @@ class ChatWebSearchShorthand(BaseModel):
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: Optional[WebSearchMode] = None
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
parameters: Optional[WebSearchConfig] = None
diff --git a/src/openrouter/components/legacy_websearchservertool.py b/src/openrouter/components/legacy_websearchservertool.py
index f0fae341..3097160a 100644
--- a/src/openrouter/components/legacy_websearchservertool.py
+++ b/src/openrouter/components/legacy_websearchservertool.py
@@ -33,7 +33,7 @@ class LegacyWebSearchServerToolTypedDict(TypedDict):
max_uses: NotRequired[int]
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: NotRequired[WebSearchMode]
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_context_size: NotRequired[SearchContextSizeEnum]
r"""Size of the search context for web search tools"""
user_location: NotRequired[Nullable[WebSearchUserLocationTypedDict]]
@@ -57,7 +57,7 @@ class LegacyWebSearchServerTool(BaseModel):
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: Optional[WebSearchMode] = None
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_context_size: Optional[SearchContextSizeEnum] = None
r"""Size of the search context for web search tools"""
diff --git a/src/openrouter/components/preview_20250311_websearchservertool.py b/src/openrouter/components/preview_20250311_websearchservertool.py
index 77eb038d..39530a45 100644
--- a/src/openrouter/components/preview_20250311_websearchservertool.py
+++ b/src/openrouter/components/preview_20250311_websearchservertool.py
@@ -36,7 +36,7 @@ class Preview20250311WebSearchServerToolTypedDict(TypedDict):
max_uses: NotRequired[int]
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: NotRequired[WebSearchMode]
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_context_size: NotRequired[SearchContextSizeEnum]
r"""Size of the search context for web search tools"""
user_location: NotRequired[Nullable[PreviewWebSearchUserLocationTypedDict]]
@@ -59,7 +59,7 @@ class Preview20250311WebSearchServerTool(BaseModel):
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: Optional[WebSearchMode] = None
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_context_size: Optional[SearchContextSizeEnum] = None
r"""Size of the search context for web search tools"""
diff --git a/src/openrouter/components/preview_websearchservertool.py b/src/openrouter/components/preview_websearchservertool.py
index 0e4fd5ef..c7edf6c6 100644
--- a/src/openrouter/components/preview_websearchservertool.py
+++ b/src/openrouter/components/preview_websearchservertool.py
@@ -36,7 +36,7 @@ class PreviewWebSearchServerToolTypedDict(TypedDict):
max_uses: NotRequired[int]
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: NotRequired[WebSearchMode]
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_context_size: NotRequired[SearchContextSizeEnum]
r"""Size of the search context for web search tools"""
user_location: NotRequired[Nullable[PreviewWebSearchUserLocationTypedDict]]
@@ -59,7 +59,7 @@ class PreviewWebSearchServerTool(BaseModel):
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: Optional[WebSearchMode] = None
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_context_size: Optional[SearchContextSizeEnum] = None
r"""Size of the search context for web search tools"""
diff --git a/src/openrouter/components/websearchconfig.py b/src/openrouter/components/websearchconfig.py
index d13a6997..f8f885ea 100644
--- a/src/openrouter/components/websearchconfig.py
+++ b/src/openrouter/components/websearchconfig.py
@@ -30,7 +30,7 @@ class WebSearchConfigTypedDict(TypedDict):
max_uses: NotRequired[int]
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: NotRequired[WebSearchMode]
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_context_size: NotRequired[SearchQualityLevel]
r"""How much context to retrieve per result. Applies to Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, pins a fixed per-result character cap (low=5,000, medium=15,000, high=30,000); when omitted, Exa picks an adaptive size per query and document (typically ~2,000–4,000 characters per result). For Parallel, controls the total characters across all results; when omitted, Parallel uses its own default size. For Perplexity, maps directly to the Search API's native search_context_size parameter. Overridden by `max_characters` when both are set."""
user_location: NotRequired[WebSearchUserLocationServerToolTypedDict]
@@ -60,7 +60,7 @@ class WebSearchConfig(BaseModel):
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: Optional[WebSearchMode] = None
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_context_size: Optional[SearchQualityLevel] = None
r"""How much context to retrieve per result. Applies to Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, pins a fixed per-result character cap (low=5,000, medium=15,000, high=30,000); when omitted, Exa picks an adaptive size per query and document (typically ~2,000–4,000 characters per result). For Parallel, controls the total characters across all results; when omitted, Parallel uses its own default size. For Perplexity, maps directly to the Search API's native search_context_size parameter. Overridden by `max_characters` when both are set."""
diff --git a/src/openrouter/components/websearchmode.py b/src/openrouter/components/websearchmode.py
index cf825dee..12838605 100644
--- a/src/openrouter/components/websearchmode.py
+++ b/src/openrouter/components/websearchmode.py
@@ -19,4 +19,4 @@
],
UnrecognizedStr,
]
-r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
diff --git a/src/openrouter/components/websearchplugin.py b/src/openrouter/components/websearchplugin.py
index 2121245f..a605a1b5 100644
--- a/src/openrouter/components/websearchplugin.py
+++ b/src/openrouter/components/websearchplugin.py
@@ -84,7 +84,7 @@ class WebSearchPluginTypedDict(TypedDict):
max_uses: NotRequired[int]
r"""Maximum number of times the model can invoke web search in a single turn. Passed through to native providers that support it (e.g. Anthropic)."""
mode: NotRequired[WebSearchMode]
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_prompt: NotRequired[str]
user_location: NotRequired[Nullable[UserLocationTypedDict]]
@@ -110,7 +110,7 @@ class WebSearchPlugin(BaseModel):
r"""Maximum number of times the model can invoke web search in a single turn. Passed through to native providers that support it (e.g. Anthropic)."""
mode: Optional[WebSearchMode] = None
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_prompt: Optional[str] = None
diff --git a/src/openrouter/components/websearchservertool.py b/src/openrouter/components/websearchservertool.py
index 45c228b9..ac7ee95a 100644
--- a/src/openrouter/components/websearchservertool.py
+++ b/src/openrouter/components/websearchservertool.py
@@ -33,7 +33,7 @@ class WebSearchServerToolTypedDict(TypedDict):
max_uses: NotRequired[int]
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: NotRequired[WebSearchMode]
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_context_size: NotRequired[SearchContextSizeEnum]
r"""Size of the search context for web search tools"""
user_location: NotRequired[Nullable[WebSearchUserLocationTypedDict]]
@@ -57,7 +57,7 @@ class WebSearchServerTool(BaseModel):
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: Optional[WebSearchMode] = None
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_context_size: Optional[SearchContextSizeEnum] = None
r"""Size of the search context for web search tools"""
diff --git a/src/openrouter/components/websearchservertoolconfig.py b/src/openrouter/components/websearchservertoolconfig.py
index 4c131b5e..af44dc6b 100644
--- a/src/openrouter/components/websearchservertoolconfig.py
+++ b/src/openrouter/components/websearchservertoolconfig.py
@@ -32,7 +32,7 @@ class WebSearchServerToolConfigTypedDict(TypedDict):
max_uses: NotRequired[int]
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: NotRequired[WebSearchMode]
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_context_size: NotRequired[SearchQualityLevel]
r"""How much context to retrieve per result. Applies to Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, pins a fixed per-result character cap (low=5,000, medium=15,000, high=30,000); when omitted, Exa picks an adaptive size per query and document (typically ~2,000–4,000 characters per result). For Parallel, controls the total characters across all results; when omitted, Parallel uses its own default size. For Perplexity, maps directly to the Search API's native search_context_size parameter. Overridden by `max_characters` when both are set."""
user_location: NotRequired[WebSearchUserLocationServerToolTypedDict]
@@ -64,7 +64,7 @@ class WebSearchServerToolConfig(BaseModel):
r"""Maximum number of web searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. Applies to the Exa, Firecrawl, Parallel, and Perplexity engines. With native provider search, forwarded only to Anthropic (as `max_uses`); other native search providers have no equivalent parameter and ignore it."""
mode: Optional[WebSearchMode] = None
- r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo (default), basic, and advanced. Modes unsupported by the selected engine are ignored."""
+ r"""Engine-native search mode. Exa supports instant, fast, auto (default), deep-lite, deep, and deep-reasoning. Parallel supports turbo, basic (default), and advanced. Modes unsupported by the selected engine are ignored."""
search_context_size: Optional[SearchQualityLevel] = None
r"""How much context to retrieve per result. Applies to Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, pins a fixed per-result character cap (low=5,000, medium=15,000, high=30,000); when omitted, Exa picks an adaptive size per query and document (typically ~2,000–4,000 characters per result). For Parallel, controls the total characters across all results; when omitted, Parallel uses its own default size. For Perplexity, maps directly to the Search API's native search_context_size parameter. Overridden by `max_characters` when both are set."""
diff --git a/uv.lock b/uv.lock
index 79068d58..e2de47b6 100644
--- a/uv.lock
+++ b/uv.lock
@@ -213,7 +213,7 @@ wheels = [
[[package]]
name = "openrouter"
-version = "1.1.41"
+version = "1.1.42"
source = { editable = "." }
dependencies = [
{ name = "httpcore" },