Quickstart
TickVault API Docs
REST + WebSocket + Python SDK.
1. Get an API key
Sign up at /pricing (Free tier available). Your key shows up in the dashboard.
2. REST: query historical ticks
curl -H "Authorization: Bearer $TICKVAULT_KEY" \
"https://tickvault.eliteaiempire.com/v1/ticks?universe=polymarket&market=us-election-2028&from=2026-04-01&to=2026-04-07"
# Returns Parquet stream by default, JSON with ?format=json
3. WebSocket: stream tick-perfect replay
import websockets, json
async with websockets.connect(
"wss://tickvault.eliteaiempire.com/v1/replay",
extra_headers={"Authorization": f"Bearer {KEY}"}
) as ws:
await ws.send(json.dumps({
"universe": "kalshi",
"markets": ["MACRO-CPI-MAY-26"],
"replay_lag_sec": 300, # T2 tier
"speed": 1.0
}))
async for msg in ws:
tick = json.loads(msg)
# tick is bit-identical to live, just lagged by replay_lag_sec
4. Python SDK
pip install tickvault
from tickvault import TickVault
tv = TickVault(api_key="...")
# Historical
df = tv.ticks(universe="polymarket", market="us-election-2028",
from_="2026-04-01", to="2026-04-07") # pandas DataFrame
# Replay
for tick in tv.replay(universe="kalshi", markets=["MACRO-CPI-MAY-26"],
lag_sec=300):
strategy.on_tick(tick)
# Walk-forward backtest
result = tv.backtest(strategy=my_strategy,
universe="polymarket",
from_="2026-01-01", to="2026-04-01",
splits=5, oos_pct=0.2)
print(result.deflated_sharpe, result.psr)
Tier max-lag (replay)
| Tier | Max replay lag | Available on |
|---|---|---|
| T1 | 30 sec | Team + Enterprise |
| T2 | 120 sec | Pro + Team + Enterprise |
| T3 | 300 sec | Pro + Team + Enterprise |
| T4 | 900 sec | All tiers (incl. Free) |
| T5 | 3600 sec | All tiers |
| T6 | Unbounded | All tiers |
Authentication & rate limits
- Bearer token auth (or HMAC for high-frequency clients).
- Free: 1,000 REST calls/day, 1 concurrent WS, T4+T5+T6 only.
- Pro: unlimited REST, 3 concurrent WS, T2+T3+T4+T5+T6.
- Team: unlimited REST, 10 concurrent WS, all tiers (incl. T1).
- Enterprise: unlimited everything + dedicated infra option.