ZenHodl Python SDK
Calibrated fair win probabilities and edge signals for prediction markets — Polymarket, Kalshi, and sportsbooks — across 8 sports (NBA, WNBA, NCAAMB, NCAAWB, CFB, NFL, NHL, MLB).
Zero dependencies (standard library only). Built-in timeouts and retry with exponential backoff.
Install
pip install zenhodl
Try it without an API key
The sample endpoint is free and needs no signup:
from zenhodl import ZenHodl
client = ZenHodl() # keyless — sample + health only
sample = client.edges_sample() # delayed sample of the live edge feed
print(sample["count"], "signals")
Full access
Get a key from zenhodl.net/pricing — the free Developer tier (500 requests/month, 5-minute delay, no card) or a paid plan for real-time data.
from zenhodl import ZenHodl
client = ZenHodl("sk_live_...")
# Games where the model disagrees with the market by ≥10 cents
edges = client.edges(min_edge=10)
for e in edges["signals"]:
print(e)
# All live games with fair win probabilities
games = client.games(sport="MLB")
# Available sports + model metadata
sports = client.sports()
# Predictions CSV (bytes)
csv_bytes = client.predictions("latest")
# Backtests (Pro tier and above)
result = client.backtest(sport="NBA", min_edge_c=8)
Configuration
client = ZenHodl(
"sk_live_...",
timeout=15.0, # per-request timeout, seconds
retries=2, # retry on 429/5xx/network errors (exponential backoff)
)
Errors raise zenhodl.ZenHodlError with .status and .detail.
What this is (and isn't)
ZenHodl publishes calibrated model probabilities and compares them with live venue prices, with public methodology and a results ledger that includes losses. It is a research and monitoring API — not a source of guaranteed profitable picks, and nothing here is financial advice.
- Docs: zenhodl.net/docs
- Methodology: zenhodl.net/methodology
- Results ledger: zenhodl.net/results
License
MIT
Metadata
Release files for zenhodl 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zenhodl-0.2.1.tar.gz | 5.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zenhodl-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.8 kB
Release files / zenhodl-0.2.1.tar.gz
| Download URL | zenhodl-0.2.1.tar.gz |
|---|---|
| Size | 5.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
655d0c4a64ac6f17074969b89cf689004a57cddfa83c2859f7f9407ebe23a25e
|
|
BLAKE2b-256 checksum How to use checksums |
2071af335237a53b8419f04c01a12e687656236fe0488c003728e395de539909
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / zenhodl-0.2.1-py3-none-any.whl
| Download URL | zenhodl-0.2.1-py3-none-any.whl |
|---|---|
| Size | 5.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b9d7b4427079b8a59160f75cb0093daddd6e2a5c40cd103281397d5e5c6e6d62
|
|
BLAKE2b-256 checksum How to use checksums |
84a263437212f8f086138264cd23e506ab9dd51a0bcabe593edd9a03b118af8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|