Odds, line-movement history, betting splits, and the derived signals computed from them — a REST API and a Python SDK, billed per request with no credit multipliers and no surcharge on historical queries.
What is here
A time-ordered price series per selection, priced the same as any other request.
Set pregame_only for any backtest — in-play points know part of the
result.
The last price each book showed before kickoff, with a fair probability and how many seconds before the start it was captured. Started events only — an upcoming game has no closing line, so it returns nothing rather than a price still moving.
Where money and ticket counts disagree, from three independent sources.
Where Polymarket disagrees with the de-vigged consensus of the sportsbooks, ranked by the size of the gap. Both sides de-vigged, so a bookmaker's margin is never reported as signal.
A labeled record of claims with the price taken, the price the market closed at, the closing-line value between them, and the result — voids and pushes intact, and mean CLV reported next to ROI, because on this data the two disagree.
Point-in-time team ratings with leakage-safe lookups, de-vigged cross-book consensus, and CSV or Parquet export — pagination is the wrong shape for research.
Getting started
Create an account in the portal, confirm your email, and mint a key — shown once. The SDK returns typed pandas frames; the raw REST API is documented live at /docs.
pip install pycap
import pycap
client = pycap.Client(api_key="pycap_live_...")
closing = client.odds.closing(league="mlb", as_dataframe=True)
picks = client.picks.to_dataframe(with_clv_only=True)
gaps = client.signals.divergence(min_divergence=0.02)
Reference