Client
HTTP client classes for the ByteKit Python SDK.
Client Reference
The ByteKit Python SDK provides two client classes for making API requests.
Client
A class for keeping track of data related to the API
The following are accepted as keyword arguments and will be used to construct httpx Clients internally:
base_url: The base URL for the API, all requests are made to a relative path to this URL
cookies: A dictionary of cookies to be sent with every request
headers: A dictionary of headers to be sent with every request
timeout: The maximum amount of a time a request can take. API functions will raise
httpx.TimeoutException if this is exceeded.
verify_ssl: Whether or not to verify the SSL certificate of the API server. This should be True in production,
but can be set to False for testing purposes.
follow_redirects: Whether or not to follow redirects. Default value is False.
httpx_args: A dictionary of additional arguments to be passed to the httpx.Client and httpx.AsyncClient constructor.
Attributes: raise_on_unexpected_status: Whether or not to raise an errors.UnexpectedStatus if the API returns a status code that was not documented in the source OpenAPI document. Can also be provided as a keyword argument to the constructor. Explicit constructor arguments always win over these defaults (explicit arg > default).
with_headers
with_headers(headers: dict[str, str]) -> 'Client'Get a new client matching this one with additional headers
with_cookies
with_cookies(cookies: dict[str, str]) -> 'Client'Get a new client matching this one with additional cookies
with_timeout
with_timeout(timeout: httpx.Timeout) -> 'Client'Get a new client matching this one with a new timeout (in seconds)
set_httpx_client
set_httpx_client(client: httpx.Client) -> 'Client'Manually set the underlying httpx.Client
NOTE: This will override any other settings on the client, including cookies, headers, and timeout.
get_httpx_client
get_httpx_client() -> httpx.ClientGet the underlying httpx.Client, constructing a new one if not previously set
set_async_httpx_client
set_async_httpx_client(async_client: httpx.AsyncClient) -> 'Client'Manually the underlying httpx.AsyncClient
NOTE: This will override any other settings on the client, including cookies, headers, and timeout.
A client set here is YOURS to manage: the SDK never rebuilds or closes it, even if it is later used from a different event loop. Clients the SDK constructs itself are rebuilt automatically when the running event loop changes.
get_async_httpx_client
get_async_httpx_client() -> httpx.AsyncClientGet the underlying httpx.AsyncClient, constructing a new one if not previously set
AuthenticatedClient
A Client which has been authenticated for use on secured endpoints
The following are accepted as keyword arguments and will be used to construct httpx Clients internally:
base_url: The base URL for the API, all requests are made to a relative path to this URL
cookies: A dictionary of cookies to be sent with every request
headers: A dictionary of headers to be sent with every request
timeout: The maximum amount of a time a request can take. API functions will raise
httpx.TimeoutException if this is exceeded.
verify_ssl: Whether or not to verify the SSL certificate of the API server. This should be True in production,
but can be set to False for testing purposes.
follow_redirects: Whether or not to follow redirects. Default value is False.
httpx_args: A dictionary of additional arguments to be passed to the httpx.Client and httpx.AsyncClient constructor.
Attributes:
raise_on_unexpected_status: Whether or not to raise an errors.UnexpectedStatus if the API returns a
status code that was not documented in the source OpenAPI document. Can also be provided as a keyword
argument to the constructor.
Explicit constructor arguments always win over these defaults (explicit arg > default).
token: The token to use for authentication. KEYWORD-ONLY.
prefix: The prefix to use for the Authorization header. KEYWORD-ONLY.
auth_header_name: The name of the Authorization header. KEYWORD-ONLY.
All three are keyword-only so that the pre-0.3.0 positional call
AuthenticatedClient(base_url, token) raises TypeError instead of
silently binding the base URL to token and the API key to prefix.
search
search(query: str, type: Optional[str] = None, limit: Optional[int] = None, country: Optional[str] = None, language: Optional[str] = None, date_range: Optional[str] = None) -> 'CreateSearchResponse200'Run a web search and return ranked organic results.
Thin, statically-declared delegate to the hand-written _search appended at the
bottom of this module; the full contract (argument semantics, the
errors.UnexpectedStatus guarantee) is documented there.
with_headers
with_headers(headers: dict[str, str]) -> 'AuthenticatedClient'Get a new client matching this one with additional headers
with_cookies
with_cookies(cookies: dict[str, str]) -> 'AuthenticatedClient'Get a new client matching this one with additional cookies
with_timeout
with_timeout(timeout: httpx.Timeout) -> 'AuthenticatedClient'Get a new client matching this one with a new timeout (in seconds)
set_httpx_client
set_httpx_client(client: httpx.Client) -> 'AuthenticatedClient'Manually set the underlying httpx.Client
NOTE: This will override any other settings on the client, including cookies, headers, and timeout.
get_httpx_client
get_httpx_client() -> httpx.ClientGet the underlying httpx.Client, constructing a new one if not previously set
set_async_httpx_client
set_async_httpx_client(async_client: httpx.AsyncClient) -> 'AuthenticatedClient'Manually the underlying httpx.AsyncClient
NOTE: This will override any other settings on the client, including cookies, headers, and timeout.
A client set here is YOURS to manage: the SDK never rebuilds or closes it, even if it is later used from a different event loop. Clients the SDK constructs itself are rebuilt automatically when the running event loop changes.
get_async_httpx_client
get_async_httpx_client() -> httpx.AsyncClientGet the underlying httpx.AsyncClient, constructing a new one if not previously set