From a542e5d8062681618492b5b6b3cafc33539a63b1 Mon Sep 17 00:00:00 2001 From: cjumel Date: Wed, 17 Sep 2025 17:13:05 +0200 Subject: [PATCH] feat: include_inline_citations search parameter --- src/linkup/client.py | 11 +++++++++++ tests/unit/client_test.py | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/linkup/client.py b/src/linkup/client.py index 462a61e..51d565f 100644 --- a/src/linkup/client.py +++ b/src/linkup/client.py @@ -57,6 +57,7 @@ def search( to_date: Optional[date] = None, exclude_domains: Optional[list[str]] = None, include_domains: Optional[list[str]] = None, + include_inline_citations: Optional[bool] = None, ) -> Any: """Perform a web search using the Linkup API `search` endpoint. @@ -82,6 +83,8 @@ def search( search results will not be filtered by date. exclude_domains: If you want to exclude specific domains from your search. include_domains: If you want the search to only return results from certain domains. + include_inline_citations: If output_type is "sourcedAnswer", indicate whether the + answer should include inline citations. Returns: The Linkup API search result. If output_type is "searchResults", the result will be a @@ -109,6 +112,7 @@ def search( to_date=to_date, exclude_domains=exclude_domains, include_domains=include_domains, + include_inline_citations=include_inline_citations, ) response: httpx.Response = self._request( @@ -137,6 +141,7 @@ async def async_search( to_date: Optional[date] = None, exclude_domains: Optional[list[str]] = None, include_domains: Optional[list[str]] = None, + include_inline_citations: Optional[bool] = None, ) -> Any: """Asynchronously perform a web search using the Linkup API `search` endpoint. @@ -162,6 +167,8 @@ async def async_search( search results will not be filtered by date. exclude_domains: If you want to exclude specific domains from your search. include_domains: If you want the search to only return results from certain domains. + include_inline_citations: If output_type is "sourcedAnswer", indicate whether the + answer should include inline citations. Returns: The Linkup API search result. If output_type is "searchResults", the result will be a @@ -189,6 +196,7 @@ async def async_search( to_date=to_date, exclude_domains=exclude_domains, include_domains=include_domains, + include_inline_citations=include_inline_citations, ) response: httpx.Response = await self._async_request( @@ -410,6 +418,7 @@ def _get_search_params( to_date: Optional[date], exclude_domains: Optional[list[str]], include_domains: Optional[list[str]], + include_inline_citations: Optional[bool], ) -> dict[str, Union[str, bool, list[str]]]: params: dict[str, Union[str, bool, list[str]]] = dict( q=query, @@ -437,6 +446,8 @@ def _get_search_params( params["excludeDomains"] = exclude_domains if include_domains is not None: params["includeDomains"] = include_domains + if include_inline_citations is not None: + params["includeInlineCitations"] = include_inline_citations return params diff --git a/tests/unit/client_test.py b/tests/unit/client_test.py index 354c747..7acfa47 100644 --- a/tests/unit/client_test.py +++ b/tests/unit/client_test.py @@ -75,6 +75,7 @@ class Company(BaseModel): "to_date": date(2023, 12, 31), "exclude_domains": ["excluded.com"], "include_domains": ["example.com", "example.org"], + "include_inline_citations": True, }, { "q": "A long query.", @@ -85,6 +86,7 @@ class Company(BaseModel): "toDate": "2023-12-31", "excludeDomains": ["excluded.com"], "includeDomains": ["example.com", "example.org"], + "includeInlineCitations": True, }, b'{"results": []}', LinkupSearchResults(results=[]),