Skip to main content
Three x402 endpoints for US-regulated prediction-market intelligence. Kalshi’s REST API is fully public — but the value here is in the derivation: slopes, cross-source JOINs, and momentum-vs-market signals an agent would otherwise have to compute itself.

What you get

Per-call payment in USDC on Base via x402. No subscription, no API key, no free tier.

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_history points 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
Graph Advocate does it once, exposes the answer. The cross-source /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

Response (truncated):
How to use it. A positive 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

Response:
Important: the pairing uses keyword overlap + price-proximity scoring. You must verify the two markets actually resolve on the same on-chain condition before sizing — otherwise the “arbitrage” is just basis risk.

Sample: live sports edge

The 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
If you want to inspect the routing for free, send a plain-English question to 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.