Clean Hyperliquid market data — straight into Polars & DuckDB.
The official Python client for Tessera — order-flow-enriched OHLCV, funding-rate, and positioning datasets built from raw Hyperliquid trade data, delivered as Parquet over a REST API.
tessera-api is built for quants and analysts who would rather write a query than babysit a
download. Point it at a (dataset, coin, month) and get a Polars LazyFrame or a DuckDB
relation back — read straight from object storage over range requests, with predicate and
projection pushdown. No temp files, no pandas round-trips, no glue code.
pip install "tessera-api[polars]" # the headline path
pip install "tessera-api[duckdb]" # query with SQL instead
pip install "tessera-api[all]" # polars + duckdb + pandas escape hatchGrab a free API key (no card required) at tesseralytics.dev and export it:
export TESSERA_API_KEY="sk_..."import polars as pl
import tessera
client = tessera.TesseraClient() # reads $TESSERA_API_KEY
# Browse the catalog
for ds in client.datasets().datasets:
print(ds.name, ds.coins, ds.months.earliest, "→", ds.months.latest)
# One month of BTC minute candles → a Polars DataFrame. Read remotely, no temp files.
df = client.read("gold_ohlcv_1m", "BTC", "2026-05")
print(df.select("time", "close", "cvd", "vwap").tail())
# Lazy + pushdown: only the bytes you actually need cross the wire.
lf = client.scan("gold_ohlcv_1m", "BTC", tessera.MonthSpan("2025-10", "2026-05"))
big_prints = lf.filter(pl.col("aggressor_delta").abs() > 1_000).collect()Prefer SQL?
rel = client.to_duckdb("gold_ohlcv_1m", ["BTC", "ETH"], "2026-05")
rel.filter("close > open").aggregate("coin, avg(cvd) AS mean_cvd, count(*) AS n", "coin").show()Everything is async-native too — swap in tessera.AsyncTesseraClient and await it.
- Remote range reads.
scan()hands Polars (or DuckDB) a presigned Parquet URL; only the footer and the row-groups/columns your query touches are fetched. - Lazy by default. Build a query graph across many months, then
.collect()once. - Parquet end-to-end. Tessera ships columnar Parquet; this client never detours through CSV
or
pandas.
| Dataset | Granularity | Tier | Highlights |
|---|---|---|---|
gold_ohlcv_1m |
1 minute | Free + Pro | OHLCV, CVD, aggressor delta, VWAP, fees |
gold_funding_1h |
1 hour | Pro | Funding rates |
gold_positioning_1h |
1 hour | Pro | Open-interest / positioning analytics |
Free tier covers BTC, ETH, SOL, HYPE. Pro unlocks every coin (including HIP-3 markets) and the funding/positioning datasets. See the docs for the full column reference and recipes.
- 📚 Guide & API reference: https://tesseralytics.dev/python-client
- 🧑💻 Runnable examples:
examples/ - 🌐 Product & pricing: https://tesseralytics.dev
GPL-3.0 © Tessera. See LICENSE.