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
Sign up with an email in the portal, confirm it, and the key is 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