Production-grade orderbooks, trades, funding rates, and more — delivered as Parquet files via API.
from pragma_glacier import GlacierClient
client = GlacierClient()
# List available datasets
datasets = client.list_datasets()
# Download order book data
df = client.to_polars(
dataset="orderbooks",
start="2026-03-01",
end="2026-03-15",
source="HYPERLIQUID",
pair="BTC_USD"
)
print(df.head())
Comprehensive market data covering every dimension of crypto markets.
Aggregated price data from multiple sources with volume.
FreeL2 order book snapshots with full bid/ask depth.
ProIndividual trade executions with price, size, and side.
ProPerpetual futures funding rate snapshots.
ProOpen interest data across exchanges.
ProTrading volume data across exchanges.
FreeFrom sign-up to analysis in under 5 minutes.
Sign up for free and get your API key instantly. No credit card required.
Use the REST API, Python SDK, or CLI to browse datasets and list files.
Download Parquet files and load them directly into Polars or Pandas.
Start free, scale when you need more.
First-class Python SDK with Polars and Pandas support.
from pragma_glacier import GlacierClient
import polars as pl
client = GlacierClient()
# Download a month of trade data
df = client.to_polars(
dataset="trades",
start="2026-02-01",
end="2026-02-28",
source="HYPERLIQUID",
pair="ETH_USD"
)
# Resample to 1-minute bars
bars = df.sort("timestamp_ms").with_columns(
(pl.col("timestamp_ms") // 60_000).alias("minute")
).group_by("minute").agg(
pl.col("price").last().alias("close"),
pl.col("size").sum().alias("volume"),
).sort("minute")
# Compute moving averages
bars = bars.with_columns(
pl.col("close").rolling_mean(window_size=20).alias("sma_20"),
pl.col("close").rolling_mean(window_size=50).alias("sma_50"),
)
print(f"Loaded {len(bars)} bars")
print(bars.head(10))