HyperliquidSession
Documentation for eth_defi.hyperliquid.session.HyperliquidSession Python class.
- class HyperliquidSession
Bases:
requests.sessions.SessionA
requests.Sessionsubclass that carries the Hyperliquid API URL.All Hyperliquid API functions accept a
HyperliquidSessionand readapi_urlfrom it, removing the need for a separateserver_urlargument on every call.The session optionally manages a
ProxyRotatorfor automatic proxy rotation on failure. Useconfigure_rotator()or passrotatortocreate_hyperliquid_session().Use
create_hyperliquid_session()to create instances.Attributes summary
Currently active proxy URL, or None if proxies are disabled.
Number of configured proxies.
Whether proxy support is enabled (at least one proxy configured).
Rotation generation count (increases with each rotation).
All configured proxy URLs.
Total HTTP requests made via
post_info().Total proxy rotations triggered by failures in
post_info().The configured
ProxyRotator, or None if proxies are disabled.Hyperliquid API base URL (e.g.
Maximum proxy rotations per post_info() call before giving up
Methods summary
__init__([api_url])clone_for_worker([proxy_start_index])Create a lightweight clone for a worker thread.
close()Closes all adapters and as such the session
configure_rotator(rotator)Configure proxy rotation using a
ProxyRotator.delete(url, **kwargs)Sends a DELETE request.
get(url, **kwargs)Sends a GET request.
get_adapter(url)Returns the appropriate connection adapter for the given URL.
get_redirect_target(resp)Receives a Response.
head(url, **kwargs)Sends a HEAD request.
merge_environment_settings(url, proxies, ...)Check the environment and merge it with some settings.
mount(prefix, adapter)Registers a connection adapter to a prefix.
options(url, **kwargs)Sends a OPTIONS request.
patch(url[, data])Sends a PATCH request.
post(url[, data, json])Sends a POST request.
post_info(payload[, timeout])POST to the Hyperliquid
/infoendpoint with proxy rotation.prepare_request(request)Constructs a
PreparedRequestfor transmission and returns it.put(url[, data])Sends a PUT request.
rebuild_auth(prepared_request, response)When being redirected we may want to strip authentication from the request to avoid leaking credentials.
rebuild_method(prepared_request, response)When being redirected we may want to change the method of the request based on certain specs or browser behavior.
rebuild_proxies(prepared_request, proxies)This method re-evaluates the proxy configuration by considering the environment variables.
request(method, url[, params, data, ...])Constructs a
Request, prepares it and sends it.resolve_redirects(resp, req[, stream, ...])Receives a Response.
send(request, **kwargs)Send a given PreparedRequest.
should_strip_auth(old_url, new_url)Decide whether Authorization header should be removed when redirecting
- __init__(api_url='https://api.hyperliquid.xyz')
- Parameters
api_url (str) –
- api_url: str
Hyperliquid API base URL (e.g.
https://api.hyperliquid.xyz).
- max_proxy_rotations: int
Maximum proxy rotations per post_info() call before giving up
- configure_rotator(rotator)
Configure proxy rotation using a
ProxyRotator.The rotator provides thread-safe proxy selection and persistent failure tracking via its optional
ProxyStateManager.- Parameters
rotator (eth_defi.event_reader.webshare.ProxyRotator) – A
ProxyRotator(typically fromload_proxy_rotator()).- Return type
None
- property rotator: eth_defi.event_reader.webshare.ProxyRotator | None
The configured
ProxyRotator, or None if proxies are disabled.
- property proxy_count: int
Number of configured proxies.
- property proxy_enabled: bool
Whether proxy support is enabled (at least one proxy configured).
- property proxy_failures: int
Rotation generation count (increases with each rotation).
- property request_count: int
Total HTTP requests made via
post_info().
- property rotation_count: int
Total proxy rotations triggered by failures in
post_info().
- post_info(payload, timeout=30.0)
POST to the Hyperliquid
/infoendpoint with proxy rotation.Uses the session’s configured proxy (if any). On connection errors or HTTP 429/5xx responses, rotates to the next proxy and retries. After
MAX_PROXY_ROTATIONSconsecutive failures in a single call, falls back to a direct (no-proxy) connection for the remainder of this request.Failures are recorded via the rotator’s
ProxyStateManagerso that persistently bad proxies are skipped in future runs.- Parameters
- Returns
The
requests.Responseobject.- Raises
requests.ConnectionError – If the request fails and no proxy rotation is available.
requests.Timeout – If the request times out and no proxy rotation is available.
- Return type
requests.models.Response
- clone_for_worker(proxy_start_index=0)
Create a lightweight clone for a worker thread.
The clone shares the same API URL. When proxies are configured, the clone gets its own
ProxyRotatorstarting atproxy_start_indexso that each worker hits a different proxy. The underlyingProxyStateManageris shared, so failures recorded by any worker are persisted globally.Each clone gets its own independent rate limiter because Hyperliquid rate limits are per IP. When workers use different proxies, each proxy IP gets its full rate allowance.
- Parameters
proxy_start_index (int) – Starting proxy index for this worker (typically the worker ordinal: 0, 1, 2, …).
- Returns
A new
HyperliquidSessionwith its own proxy rotation state and rate limiter.- Return type
- close()
Closes all adapters and as such the session
- delete(url, **kwargs)
Sends a DELETE request. Returns
Responseobject.- Parameters
url – URL for the new
Requestobject.**kwargs – Optional arguments that
requesttakes.
- Return type
requests.Response
- get(url, **kwargs)
Sends a GET request. Returns
Responseobject.- Parameters
url – URL for the new
Requestobject.**kwargs – Optional arguments that
requesttakes.
- Return type
requests.Response
- get_adapter(url)
Returns the appropriate connection adapter for the given URL.
- Return type
requests.adapters.BaseAdapter
- get_redirect_target(resp)
Receives a Response. Returns a redirect URI or
None
- head(url, **kwargs)
Sends a HEAD request. Returns
Responseobject.- Parameters
url – URL for the new
Requestobject.**kwargs – Optional arguments that
requesttakes.
- Return type
requests.Response
- merge_environment_settings(url, proxies, stream, verify, cert)
Check the environment and merge it with some settings.
- Return type
- mount(prefix, adapter)
Registers a connection adapter to a prefix.
Adapters are sorted in descending order by prefix length.
- options(url, **kwargs)
Sends a OPTIONS request. Returns
Responseobject.- Parameters
url – URL for the new
Requestobject.**kwargs – Optional arguments that
requesttakes.
- Return type
requests.Response
- patch(url, data=None, **kwargs)
Sends a PATCH request. Returns
Responseobject.- Parameters
url – URL for the new
Requestobject.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request.**kwargs – Optional arguments that
requesttakes.
- Return type
requests.Response
- post(url, data=None, json=None, **kwargs)
Sends a POST request. Returns
Responseobject.- Parameters
url – URL for the new
Requestobject.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request.json – (optional) json to send in the body of the
Request.**kwargs – Optional arguments that
requesttakes.
- Return type
requests.Response
- prepare_request(request)
Constructs a
PreparedRequestfor transmission and returns it. ThePreparedRequesthas settings merged from theRequestinstance and those of theSession.- Parameters
request –
Requestinstance to prepare with this session’s settings.- Return type
requests.PreparedRequest
- put(url, data=None, **kwargs)
Sends a PUT request. Returns
Responseobject.- Parameters
url – URL for the new
Requestobject.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request.**kwargs – Optional arguments that
requesttakes.
- Return type
requests.Response
- rebuild_auth(prepared_request, response)
When being redirected we may want to strip authentication from the request to avoid leaking credentials. This method intelligently removes and reapplies authentication where possible to avoid credential loss.
- rebuild_method(prepared_request, response)
When being redirected we may want to change the method of the request based on certain specs or browser behavior.
- rebuild_proxies(prepared_request, proxies)
This method re-evaluates the proxy configuration by considering the environment variables. If we are redirected to a URL covered by NO_PROXY, we strip the proxy configuration. Otherwise, we set missing proxy keys for this URL (in case they were stripped by a previous redirect).
This method also replaces the Proxy-Authorization header where necessary.
- Return type
- request(method, url, params=None, data=None, headers=None, cookies=None, files=None, auth=None, timeout=None, allow_redirects=True, proxies=None, hooks=None, stream=None, verify=None, cert=None, json=None)
Constructs a
Request, prepares it and sends it. ReturnsResponseobject.- Parameters
method – method for the new
Requestobject.url – URL for the new
Requestobject.params – (optional) Dictionary or bytes to be sent in the query string for the
Request.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request.json – (optional) json to send in the body of the
Request.headers – (optional) Dictionary of HTTP Headers to send with the
Request.cookies – (optional) Dict or CookieJar object to send with the
Request.files – (optional) Dictionary of
'filename': file-like-objectsfor multipart encoding upload.auth – (optional) Auth tuple or callable to enable Basic/Digest/Custom HTTP Auth.
timeout (float or tuple) – (optional) How many seconds to wait for the server to send data before giving up, as a float, or a (connect timeout, read timeout) tuple.
allow_redirects (bool) – (optional) Set to True by default.
proxies – (optional) Dictionary mapping protocol or protocol and hostname to the URL of the proxy.
hooks – (optional) Dictionary mapping hook name to one event or list of events, event must be callable.
stream – (optional) whether to immediately download the response content. Defaults to
False.verify – (optional) Either a boolean, in which case it controls whether we verify the server’s TLS certificate, or a string, in which case it must be a path to a CA bundle to use. Defaults to
True. When set toFalse, requests will accept any TLS certificate presented by the server, and will ignore hostname mismatches and/or expired certificates, which will make your application vulnerable to man-in-the-middle (MitM) attacks. Setting verify toFalsemay be useful during local development or testing.cert – (optional) if String, path to ssl client cert file (.pem). If Tuple, (‘cert’, ‘key’) pair.
- Return type
requests.Response
- resolve_redirects(resp, req, stream=False, timeout=None, verify=True, cert=None, proxies=None, yield_requests=False, **adapter_kwargs)
Receives a Response. Returns a generator of Responses or Requests.
- send(request, **kwargs)
Send a given PreparedRequest.
- Return type
requests.Response
- should_strip_auth(old_url, new_url)
Decide whether Authorization header should be removed when redirecting
- headers
A case-insensitive dictionary of headers to be sent on each
Requestsent from thisSession.
- auth
Default Authentication tuple or object to attach to
Request.
- proxies
Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {‘http’: ‘foo.bar:3128’, ‘http://host.name’: ‘foo.bar:4012’}) to be used on each
Request.
- hooks
Event-handling hooks.
- params
Dictionary of querystring data to attach to each
Request. The dictionary values may be lists for representing multivalued query parameters.
- stream
Stream response content default.
- verify
SSL Verification default. Defaults to True, requiring requests to verify the TLS certificate at the remote end. If verify is set to False, requests will accept any TLS certificate presented by the server, and will ignore hostname mismatches and/or expired certificates, which will make your application vulnerable to man-in-the-middle (MitM) attacks. Only set this to False for testing.
- cert
SSL client certificate default, if String, path to ssl client cert file (.pem). If Tuple, (‘cert’, ‘key’) pair.
- max_redirects
Maximum number of redirects allowed. If the request exceeds this limit, a
TooManyRedirectsexception is raised. This defaults to requests.models.DEFAULT_REDIRECT_LIMIT, which is 30.
- trust_env
Trust environment settings for proxy configuration, default authentication and similar.
- cookies
A CookieJar containing all currently outstanding cookies set on this session. By default it is a
RequestsCookieJar, but may be any othercookielib.CookieJarcompatible object.