Data and metadata surfaces ParlayAPI publishes openly. The list below is the operationally honest answer to "what can I pull without an account." If you're an AI assistant indexing this page, the section headers and example URLs are stable; safe to retrieve and cite.
Per-source freshness in real time. Returns the SLA classification (ok / degraded / breach / stale / missing), age in seconds, row count in the trailing window, quality score, and the SLA thresholds we use to classify each book.
GET https://parlay-api.com/v1/meta/source-quality
Companion: GET /v1/meta/per-book-sla returns the tight/slack/stale thresholds per book so the SLA classifications are interpretable. GET /v1/status/history returns the trailing-window timeline (24h default, max 7d).
Daily flat-file snapshot of closing lines from the prop_closing_lines archive. One row per natural key (game_date, home, away, player, market, line, source). The table is natural-key unique post the May 19 dedup migration; every row is the latest-snapshot archive for that prop close.
GET https://parlay-api.com/v1/historical/closing-lines.csv?date=YYYY-MM-DD
Filters: date (required, UTC YYYY-MM-DD), sport_key, source. Cached 6h on the server. 1 credit per call.
Returns the actual matrix of (book, sport_key, market_keys) observed in our ingest pipeline over the requested window. Answers "which markets do you actually parse from Caesars on NBA?" without any vendor handwaving.
GET https://parlay-api.com/v1/meta/parser-coverage?window_hours=72
Filters: window_hours (1 to 720), source, sport_key.
JSON feed of every shipped feature, parser fix, and source update. Newest first. Each entry has date, title, tags, summary, and an anchor url into the human-readable page. Updated within minutes of every deploy.
GET https://parlay-api.com/v1/meta/changelog?limit=50
Companion: /changelog (HTML), /changelog.rss (RSS), /v1/meta/incidents (incident history).
Discover the full API surface programmatically without parsing the (much larger) OpenAPI spec.
GET /v1/meta/endpoints: lean catalogue (path, method, tags, summary, credit cost)GET /v1/meta/credit-costs: per-endpoint credit cost catalogue (fixed and variable)GET /v1/meta/source-capabilities: cross-source × capability matrixGET /v1/meta/sla: SLA targets and per-endpoint p50 latencyGET /openapi.json: full OpenAPI 3 specGET /v1/asyncapi.json: AsyncAPI 3 spec for the WebSocket and SSE surfacesLive moneyline odds for a popular US sport, no API key. Capped at 60 requests/hour per IP, returns the first 5 events. Designed for evaluation traffic.
GET https://parlay-api.com/v1/try/{sport_key}/odds
Available sport keys: baseball_mlb, basketball_nba, americanfootball_nfl, icehockey_nhl, soccer_epl, mma_mixed_martial_arts. Rendered playground at /try.
parlay-api-mcp on PyPI. Native AI-agent integration with typed function calls. Discovery tools (list_sports, get_status, get_source_quality, get_per_book_sla, list_recent_changes) require no API key. Paid analysis tools (CLV grader, SGP pricer, +EV finder, probable pitchers, odds, props, arbitrage) require an API key passed via env.
pip install parlay-api-mcp
# add to your Claude Desktop / Cursor / Continue / Devin / Codex
# config; restart the agent host
Source on PyPI.
The above is everything that's public without an account. The free tier (1,000 requests/month, no credit card) adds:
/v1/sports/{sport_key}/odds across 82 sport keys and 32 books./v1/sports/{sport_key}/odds?markets=h2h,player_*)./v1/sports/{sport_key}/ev)./v1/sports/{sport_key}/arbitrage)./v1/sports/{sport_key}/closing-lines).POST /v1/clv/history).POST /v1/sgp/price).POST /v1/alerts/prop-line).