From 44cbf9d360d7f86f98f23ade673df470115edf59 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 16:31:18 +0000 Subject: [PATCH 1/2] feat(search): add search_context_size to search and web_search tool --- .stats.yml | 4 ++-- src/perplexity/resources/search.py | 12 ++++++++++++ src/perplexity/types/response_create_params.py | 6 ++++++ src/perplexity/types/search_create_params.py | 7 +++++++ tests/api_resources/test_responses.py | 4 ++++ tests/api_resources/test_search.py | 2 ++ 6 files changed, 33 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 93c6387..485fba7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 11 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/perplexity-ai/perplexity-c9a4aa7e01c6335588f6d246f5bc498d70ab7164bb8b753c7e031086af55cc64.yml -openapi_spec_hash: 4018d7234b9acf008622b921908b6329 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/perplexity-ai/perplexity-bf28ac7f1a24d27aa2ba57b65aaf7fc99f492d28ab969f570d86abc339c842e9.yml +openapi_spec_hash: 2f086349fe584965e24e58bddbb91672 config_hash: 059988c88f0dc18e9e393daed94b5eb6 diff --git a/src/perplexity/resources/search.py b/src/perplexity/resources/search.py index 06f9f62..56a3b56 100644 --- a/src/perplexity/resources/search.py +++ b/src/perplexity/resources/search.py @@ -57,6 +57,7 @@ def create( max_tokens_per_page: int | Omit = omit, search_after_date_filter: Optional[str] | Omit = omit, search_before_date_filter: Optional[str] | Omit = omit, + search_context_size: Literal["low", "medium", "high"] | Omit = omit, search_domain_filter: Optional[SequenceNotStr[str]] | Omit = omit, search_language_filter: Optional[SequenceNotStr[str]] | Omit = omit, search_mode: Optional[Literal["web", "academic", "sec"]] | Omit = omit, @@ -73,6 +74,10 @@ def create( Search the web and retrieve relevant web page contents. Args: + search_context_size: Controls how much content is retrieved per result. Larger sizes return more page + content at higher cost. Defaults to "high". Omit when supplying explicit + max_tokens / max_tokens_per_page. + search_type: Search type — "web" for general web search, "people" for people search. max_results above 20 is only supported for people search. @@ -98,6 +103,7 @@ def create( "max_tokens_per_page": max_tokens_per_page, "search_after_date_filter": search_after_date_filter, "search_before_date_filter": search_before_date_filter, + "search_context_size": search_context_size, "search_domain_filter": search_domain_filter, "search_language_filter": search_language_filter, "search_mode": search_mode, @@ -146,6 +152,7 @@ async def create( max_tokens_per_page: int | Omit = omit, search_after_date_filter: Optional[str] | Omit = omit, search_before_date_filter: Optional[str] | Omit = omit, + search_context_size: Literal["low", "medium", "high"] | Omit = omit, search_domain_filter: Optional[SequenceNotStr[str]] | Omit = omit, search_language_filter: Optional[SequenceNotStr[str]] | Omit = omit, search_mode: Optional[Literal["web", "academic", "sec"]] | Omit = omit, @@ -162,6 +169,10 @@ async def create( Search the web and retrieve relevant web page contents. Args: + search_context_size: Controls how much content is retrieved per result. Larger sizes return more page + content at higher cost. Defaults to "high". Omit when supplying explicit + max_tokens / max_tokens_per_page. + search_type: Search type — "web" for general web search, "people" for people search. max_results above 20 is only supported for people search. @@ -187,6 +198,7 @@ async def create( "max_tokens_per_page": max_tokens_per_page, "search_after_date_filter": search_after_date_filter, "search_before_date_filter": search_before_date_filter, + "search_context_size": search_context_size, "search_domain_filter": search_domain_filter, "search_language_filter": search_language_filter, "search_mode": search_mode, diff --git a/src/perplexity/types/response_create_params.py b/src/perplexity/types/response_create_params.py index 6239cc5..29d08b0 100644 --- a/src/perplexity/types/response_create_params.py +++ b/src/perplexity/types/response_create_params.py @@ -131,6 +131,12 @@ class ToolWebSearchTool(TypedDict, total=False): max_tokens_per_page: int + search_context_size: Literal["low", "medium", "high"] + """Search context size (low, medium, high). + + Omit when supplying explicit max_tokens / max_tokens_per_page. + """ + user_location: ToolWebSearchToolUserLocation """User's geographic location for search personalization""" diff --git a/src/perplexity/types/search_create_params.py b/src/perplexity/types/search_create_params.py index 9467457..77b5c16 100644 --- a/src/perplexity/types/search_create_params.py +++ b/src/perplexity/types/search_create_params.py @@ -31,6 +31,13 @@ class SearchCreateParams(TypedDict, total=False): search_before_date_filter: Optional[str] + search_context_size: Literal["low", "medium", "high"] + """Controls how much content is retrieved per result. + + Larger sizes return more page content at higher cost. Defaults to "high". Omit + when supplying explicit max_tokens / max_tokens_per_page. + """ + search_domain_filter: Optional[SequenceNotStr[str]] search_language_filter: Optional[SequenceNotStr[str]] diff --git a/tests/api_resources/test_responses.py b/tests/api_resources/test_responses.py index 192b38a..f3969d8 100644 --- a/tests/api_resources/test_responses.py +++ b/tests/api_resources/test_responses.py @@ -62,6 +62,7 @@ def test_method_create_with_all_params_overload_1(self, client: Perplexity) -> N }, "max_tokens": 0, "max_tokens_per_page": 0, + "search_context_size": "low", "user_location": { "city": "city", "country": "country", @@ -146,6 +147,7 @@ def test_method_create_with_all_params_overload_2(self, client: Perplexity) -> N }, "max_tokens": 0, "max_tokens_per_page": 0, + "search_context_size": "low", "user_location": { "city": "city", "country": "country", @@ -278,6 +280,7 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn }, "max_tokens": 0, "max_tokens_per_page": 0, + "search_context_size": "low", "user_location": { "city": "city", "country": "country", @@ -362,6 +365,7 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn }, "max_tokens": 0, "max_tokens_per_page": 0, + "search_context_size": "low", "user_location": { "city": "city", "country": "country", diff --git a/tests/api_resources/test_search.py b/tests/api_resources/test_search.py index dc89d8e..9af46e8 100644 --- a/tests/api_resources/test_search.py +++ b/tests/api_resources/test_search.py @@ -39,6 +39,7 @@ def test_method_create_with_all_params(self, client: Perplexity) -> None: max_tokens_per_page=0, search_after_date_filter="search_after_date_filter", search_before_date_filter="search_before_date_filter", + search_context_size="low", search_domain_filter=["string"], search_language_filter=["string"], search_mode="web", @@ -101,6 +102,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncPerplexity max_tokens_per_page=0, search_after_date_filter="search_after_date_filter", search_before_date_filter="search_before_date_filter", + search_context_size="low", search_domain_filter=["string"], search_language_filter=["string"], search_mode="web", From 5066349fa38ae3622183666530da65285e5cc9b1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 16:31:41 +0000 Subject: [PATCH 2/2] release: 0.37.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- src/perplexity/_version.py | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 157f035..51acdaa 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.36.0" + ".": "0.37.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index c2433a9..57fab1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.37.0 (2026-06-02) + +Full Changelog: [v0.36.0...v0.37.0](https://github.com/perplexityai/perplexity-py/compare/v0.36.0...v0.37.0) + +### Features + +* **search:** add search_context_size to search and web_search tool ([44cbf9d](https://github.com/perplexityai/perplexity-py/commit/44cbf9d360d7f86f98f23ade673df470115edf59)) + ## 0.36.0 (2026-05-30) Full Changelog: [v0.35.1...v0.36.0](https://github.com/perplexityai/perplexity-py/compare/v0.35.1...v0.36.0) diff --git a/pyproject.toml b/pyproject.toml index 36ad1bb..e7a28d6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "perplexityai" -version = "0.36.0" +version = "0.37.0" description = "The official Python library for the perplexity API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/perplexity/_version.py b/src/perplexity/_version.py index 05b930a..862f58f 100644 --- a/src/perplexity/_version.py +++ b/src/perplexity/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "perplexity" -__version__ = "0.36.0" # x-release-please-version +__version__ = "0.37.0" # x-release-please-version