create_xerberus_session
Documentation for eth_defi.xerberus.session.create_xerberus_session function.
- create_xerberus_session(api_url='https://api.xerberus.io/public/v1', api_key=None, api_email=None, retries=5, backoff_factor=0.5, requests_per_minute=8.0, min_request_interval=7.5, pool_maxsize=8, rate_limit_db_path=PosixPath('/home/runner/.tradingstrategy/vaults/xerberus/rate-limit.sqlite'))
Create a
XerberusSessionconfigured for Xerberus API.The session is configured with:
Dual auth headers (
x-api-key+x-user-email)Minute-bucket rate limiting under the public 10/min quota (default 8/min)
Minimum request spacing to avoid burst-then-idle behaviour
Retry logic for 429/5xx with
Retry-Afterrespect
Prefer passing credentials explicitly when they are already available (e.g. after
source .local-test.envloaded operator secrets):import os from eth_defi.xerberus.session import create_xerberus_session session = create_xerberus_session( api_key=os.environ["XERBERUS_API_KEY"], api_email=os.environ["XERBERUS_API_EMAIL"], )Or rely on environment defaults (operator-set only; agents must never invent the email):
session = create_xerberus_session()
- Parameters
api_url (str) – Xerberus API base URL.
api_key (Optional[str]) – API key. If
None, reads fromXERBERUS_API_KEY. Pass explicitly when known.api_email (Optional[str]) – Email registered with the API key (
x-user-email). IfNone, reads fromXERBERUS_API_EMAIL. Pass explicitly when known. Do not guess this value.retries (int) – Maximum retry attempts for failed requests.
backoff_factor (float) – Exponential backoff factor.
requests_per_minute (float) – Hard minute-bucket cap (default 8, under the 10/min public limit).
min_request_interval (float) – Minimum seconds between authenticated requests.
pool_maxsize (int) – Connection pool size (serial clients can keep this small).
rate_limit_db_path (pathlib.Path) – SQLite path for rate-limit state.
- Returns
Configured
XerberusSession.- Return type