What you get
| Endpoint | Cost | Returns |
|---|---|---|
POST /kalshi/consensus-trend | $0.05 | Slope-per-hour over 24h + 3d, acceleration signal, volatility band, days-to-resolve — derived from Kalshi’s unique forecast_history |
POST /kalshi-polymarket/spread | $0.05 | Cross-source spread between Kalshi and Polymarket on the same topic, with arbitrage direction. JOIN that single-source passthrough APIs structurally can’t return |
POST /kalshi/sports-live-edge | $0.05 | Play-by-play momentum vs market candle reaction → latency-arb signal for live Football / Basketball / Soccer / Hockey / Baseball / WNBA markets |
Why derived over raw
Kalshi exposes ~50 public no-auth endpoints across 10,821 series (Entertainment 2,445 · Sports 2,172 · Politics 1,986 · Elections 1,404 · Economics 563 · Financials 516 · …). An agent can read them directly — but every consuming agent then re-implements the same math:- Fit a slope through
forecast_historypoints to detect regime change - Match Kalshi events against Polymarket equivalents by keyword + price proximity
- Compute momentum from play-by-play events and compare to market reaction lag
/spread endpoint in particular is the defensible play: passthrough APIs return one source at a time and can’t JOIN — so the cross-venue arbitrage signal stays valuable even as more upstream sources come online.
Sample: consensus trend for an event
acceleration_signal means the slope is steepening upward — the market is converging on YES faster than it was 3 days ago. Negative means the opposite. interpretation collapses the signal into one of accelerating-up, accelerating-down, stable, or insufficient-history so an agent can branch without parsing.
Sample: cross-source spread
Sample: live sports edge
milestone is Kalshi’s identifier for a specific live game; market is an optional ticker for the market whose candlesticks you want compared against the play-by-play. Response includes momentum_score_last_5_events, market_reaction_pct_last_hour, and a latency_arbitrage_signal of one of upside-lag-likely, downside-lag-likely, market-tracking-stats, or null (insufficient data).
How to use it. When momentum_score is strongly one-way (≥0.6 or ≤0.2) but market_reaction_pct is near zero, the market hasn’t fully priced the play-by-play yet — latency-arb window. Verify orderbook depth before sizing — low liquidity will eat the edge.
How it differs from /polymarket/* and /hyperliquid/*
These three Kalshi endpoints are derived signals on top of a fully public upstream — different model than the polymarket/hyperliquid trader-intelligence endpoints which proxy through gated data sources. Kalshi’s API is free for anyone to read; Graph Advocate’s value here is in the math:
/polymarket/risk— wallet-type detection (binary signal from on-chain probe)/hyperliquid/risk— liquidation rate + funding burn (derived from per-trade ledger)/kalshi/consensus-trend— slope of Kalshi’s unique forecast percentile history/kalshi-polymarket/spread— JOIN that no single-source API can return/kalshi/sports-live-edge— momentum-vs-market reaction lag
POST / (A2A JSON-RPC) and Graph Advocate will name the right kalshi/* endpoint and hand back the exact paid curl — without charging.
Source
kalshi.py — the three derivation functions and how they fetch from Kalshi’s public REST and Polymarket data sources.