PropLine

by proplineapi

370 downloads
Not rated
GitHub

About

Live sports betting player props and odds across 45 sports and 16+ books — plus prop resolution: every Over/Under graded won/lost/push against the real box score (unique vs other odds APIs). Cross-book +EV, line history, scores, and box-score stats. Zero-config via a built-in fre

Details

Author
proplineapi
Downloads
370
Categories
Other, API

- Live sports betting odds
- Prop resolution as MCP tools
- Every Over/Under graded against the real box score
- 45 sports covered
- 16+ sportsbooks aggregated
- Cross-book +EV (expected value) comparison

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name PropLine
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Zero configuration: run npx -y propline-mcp. A free demo API key is built in.

propline_list_sports

List all sports PropLine currently polls. Returns sport keys (e.g. baseball_mlb, basketball_nba, soccer_epl) along with human titles and active status. Use this first to discover what sport_key values are valid for the other tools.

propline_list_events

List upcoming events for a sport. Returns each event's id, home_team, away_team, commence_time. Use the returned event_id to drill into per-event odds, props, +EV, or results.

propline_list_event_markets

List the market types available for a specific event (e.g. h2h, spreads, totals, player_points, pitcher_strikeouts). Useful when you don't know which prop markets a given event carries.

propline_get_odds

Get live odds. If event_id is supplied, returns full per-event props for that event; otherwise returns bulk game-line odds for the whole sport. Pass markets as a comma-separated list (e.g. 'h2h,spreads,totals' or 'player_points,player_rebounds'). Response includes a bookmakers[] array across every book that carries the requested markets (currently up to 13: Bovada, DraftKings, FanDuel, Pinnacle, BetMGM, BetRivers, Unibet, Underdog, PrizePicks, Kalshi, Polymarket, Matchbook, Smarkets — coverage varies by sport). Underdog Fantasy outcomes carry a payout_multiplier on EVERY outcome (1.0 = standard pick, e.g. 1.5 = boost, 0.75 = discount; null means the book is not Underdog) — keep only payout_multiplier == 1.0 when comparing DFS lines to sportsbook consensus, since filtering on non-null would drop every Underdog line. Each market carries suspended_at: null while on the board, set when that book pulled the market pregame (late scratch, dropped market type) — its outcomes are then the last quoted legs, not a live price. Treat a suspended market as unbettable and, if several books show it for one player, as a probable scratch.

propline_get_odds_history

Hobby+ endpoint. Returns the historical line-movement snapshot series for an event (every recorded price/point change per outcome over the event's lifetime). Free tier returns market structure with redacted snapshots and an upgrade pointer. Supports period-historical filters: from/to (absolute ISO), relative_from/relative_to (offsets to commence_time like '-3h' or '0'), interval downsample ('30s'/'1m'/'5m'/'15m'/'30m'/'1h'), and changes_only=true to drop unchanged adjacent snapshots.

propline_get_odds_closing

Hobby+ endpoint. Returns the OPENING and CLOSING line per (book, market, outcome) for an event. Closing = the last snapshot at or before commence_time (price/point/closing_at); opening = the first snapshot in the same 14-day pre-kickoff window (opening_price/opening_point/opening_at). Canonical CLV-tracking helper; one call returns both data points your bet should be measured against, instead of fetching full history and post-processing. Compare the POINTS as well as the prices — on spreads and totals the number moves as much as the price, so a price-only comparison mis-measures those markets. opening_age_seconds says how long before kickoff the opener was recorded: the archive starts 2026-04, so a small value means PropLine started polling late and this is not the book's true open. Free tier returns redacted structure with upgrade pointer.

propline_export_odds_history

Backfill-pass / Enterprise only. Bulk line-movement tick history as CSV — every recorded odds snapshot (price + line, per book, including period markets) across a whole sport, one row per (outcome, snapshot). This is the raw firehose no subscription tier can bulk-pull (Pro/Streaming use propline_get_odds_history per event instead). REQUIRES a since/until window to keep the pull bounded — the full archive runs to gigabytes per sport. The result is capped to the first 200 rows for context safety; for the full dataset use the /v1/exports/odds-history endpoint directly with curl/SDK and stream to disk. Non-entitled keys get a 403 with an upgrade pointer.

propline_get_futures

Free-tier endpoint. Returns season-long futures (outright) markets for a sport — championship/Super Bowl/division/conference winners, MVP and award winners, season win totals — aggregated across Bovada, FanDuel, DraftKings, and Pinnacle. One row per (futures event, book, market) with each team/player outcome and its price. Marquee markets (Super Bowl winner, MVP, division/conference) are quoted by multiple books for comparison; exotic markets are often single-book. Useful for: 'who are the Super Bowl favorites across books', 'NFL MVP odds', 'NBA championship futures'. Futures are unresolved (no settlement grade).

propline_get_scores

Free-tier endpoint. Returns recent and live game scores plus status (scheduled, live, final) for a sport. Useful for: 'is this game over yet, what was the final score'.

propline_get_dfs_payouts

Free-tier reference math. Returns the PrizePicks Power Play (all legs must hit) and Flex Play (partial payouts) entry payout schedule for 2-6 legs, plus the per-leg breakeven win probability for each play. Pass leg_win_prob (e.g. 0.58) to also get expected_return (per $1) and is_plus_ev per play — the slip-level breakeven. Useful for: 'what hit rate do I need to beat a 4-pick PrizePicks Power play', 'is a 3-leg flex +EV at 60% per leg'. NOTE: standard published payouts only — demon/goblin per-pick modifiers aren't in PrizePicks's feed (see the disclaimer field); breakeven assumes independent legs.

propline_get_mlb_grand_salami

Free-tier endpoint. Returns the synthetic daily MLB Grand Salami for a given UTC date — total runs scored across every MLB game on the slate plus each book's implied Grand Salami line (median of per-game primary totals across our MLB books incl. Pinnacle, Polymarket, Matchbook, Smarkets). No retail sportsbook quotes this as a single market. Useful for: 'what's the total run line for tonight's full MLB slate', 'did the Grand Salami go over yesterday', 'historical Grand Salami results for backtesting'.

propline_get_nhl_daily_goals_total

Free-tier endpoint. Returns the synthetic daily NHL goals total (hockey's equivalent of the MLB Grand Salami) for a given UTC date — total goals scored across every NHL game on the slate (including OT/SO) plus each book's implied Daily Goals Total line (median of per-game primary totals across our NHL books). No retail sportsbook quotes this as a single market. Useful for: 'what's the total goal line for tonight's full NHL slate', 'did the Daily Goals Total go over yesterday', 'historical NHL daily-goals results for backtesting'.

propline_get_resolution_summary

Free-tier endpoint. Returns the factual volume of player props PropLine has graded against real box scores over the last N days (aggregated counts only): total graded/settled, games, sports covered, plus per-sport and top-market breakdowns. Useful for: 'how much graded prop data does PropLine have, what's the coverage'. A coverage proof, never a profitability claim.

propline_get_event_stats

Book-agnostic raw box-score stats for an event. Returns per-player stats (e.g. strikeouts, hits, points, rebounds, shots-on-goal) decoupled from any sportsbook's lines. LIVE during games for major US sports (MLB + WNBA now; NFL, NCAAF, NBA, NHL at season start): while the event's status is in_progress, stats refresh ~every 90 seconds with cumulative in-game values — use this to answer 'how is this prop tracking right now'. Treat in-progress numbers as partial; at status=final they are the official box score. Other sports populate stats at game completion. Free tier.

propline_get_event_results

Pro-tier endpoint. Returns graded prop outcomes for a completed event — every Over/Under marked won, lost, push, or void with the actual stat value next to the line. The single most distinctive feature vs the-odds-api: they don't grade props at any tier. Free tier returns the same structure with resolution and actual_value redacted plus an upgrade pointer.

propline_get_event_context

Game context for an event — the conditions a prop settles under. MLB: probable starting pitchers and their throwing hand (L/R/S — platoon-split context for every batter prop), a confirmed-lineup flag, the home-plate umpire, and first-pitch weather (temperature, wind, precipitation) at outdoor / open-roof venues (indoor venues return weather=null). NFL & NCAAF: the venue and kickoff weather. The same block is embedded in get_event_results, so every graded prop carries its conditions — unique to PropLine. Free tier. 404 when no context is on file for the event yet.

propline_get_event_movement

Line movement + steam detection from the snapshot tick history. Per (book, market, outcome): opening line, latest line, signed implied-probability shift, point shift, direction. The steam[] array flags outcomes that multiple books moved the same direction — the classic sharp-money signal, computed across all 16 books PropLine polls. When a book moves the line itself, that outcome's prob_shift is null and direction is 'line_moved' (excluded from the steam signal). No pull-only odds API can produce this. Hobby+ full; free tier redacted.

propline_get_player_history

Player prop history across recent games. Returns each prior prop this player took with line, prices, resolution, and actual value. Pro tier returns full data; free tier returns redacted resolution/actual_value with an upgrade pointer.

propline_get_player_trends

Hit-rate trends / last-N-games over rate for a player — unique to PropLine's prop-resolution data. For each market the player has graded history in, returns over/under/push splits across the last 5/10/20/50 graded games, current streak, average actual stat, and the recent line. This is the 'did X go over in N of his last M games?' surface. Omit `market` for all markets, or pass one to scope (e.g. 'player_points', 'batter_hits').

propline_get_event_ev

Pro-tier endpoint. Returns cross-book +EV per outcome for an event. We anchor on a sharp book, remove vig, derive a no-vig fair line, and compute EV% per book at the same line. Outcomes are sorted with +EV plays floated to the top of each line group. PrizePicks is excluded from EV math (DFS payouts aren't comparable to per-book prices). The anchor is chosen PER LINE in the order pinnacle → polymarket → kalshi → bovada, and each line's fair_source names the one used — report the anchor from fair_source per line, never assume Pinnacle anchored all of them. Optional bookmakers filter prices to the books the user holds accounts at; it never changes the anchor, so filtering to DraftKings still measures DraftKings against Pinnacle.

propline_get_best_line

Cross-book line shopping (Hobby+ for prices; free tier gets the full structure with book identities + best-first ranking but prices nulled and redacted:true). For every (market, player, line) tuple on an event, returns the single best American price across all comparable books, plus an all_prices array sorted best-first (one row per book, each with last_update). Companion to propline_get_event_ev: /ev says whether a price beats the no-vig fair line; best-line says which book pays the most. DFS pick'em books (PrizePicks, Sleeper, Dabble) are excluded; Underdog only at clean two-way lines. Optional bookmakers filter to shop only the books the user holds accounts at.

propline_list_webhooks

List the API key's webhook subscriptions (Streaming Lite tier and up; other tiers get a 403 with an upgrade URL). Read-only: signing secrets are always masked, and this server deliberately has no create/update/delete tools — manage subscriptions via the REST API or SDKs. Each row shows url, subscribed events (line_movement, resolution, steam, market_suspended), filters and active status. Use this first to find the webhook id for propline_get_webhook_deliveries.

propline_get_webhook_deliveries

Recent delivery attempts for one webhook (Streaming Lite tier and up), newest first — the debugging surface for 'why isn't my webhook firing'. Each row: status (pending/success/failed), HTTP response_code, attempts, delivered_at and the payload that was sent. A pending row with attempts > 0 is mid-retry-backoff; status 'failed' with response_code null means the endpoint was unreachable or timed out (8s). Page backwards through a deep queue with before_id = the smallest id on the previous page; a page shorter than limit is the last one.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "propline": {
            "propline": {
                "command": "npx",
                "args": [
                    "-y",
                    "propline-mcp"
                ]
            }
        }
    }
}

McpServers

{
    "propline": {
        "command": "npx",
        "args": [
            "-y",
            "propline-mcp"
        ]
    }
}

Listed in the officialMCP Registryasio.github.proplineapi/propline-mcp— discoverable from Claude Code, Claude Desktop, and any MCP-aware client.

Model Context Protocol serverfor thePropLineplayer props betting odds API. Plug it into Claude Desktop, Claude Code, or any MCP-compatible client and ask natural-language questions about live odds, prop resolution, cross-book +EV, scores, and box-score stats — the model picks the right tool, calls the API, and answers from real data.

No more "I'd need an API for that" deflections from your AI assistant. PropLine MCP turns sports-betting research into a chat.

Once installed, you can prompt the model with things like:

- "What's the +EV on Yankees vs Red Sox tonight across all books?"
- "Pull Aaron Judge's last 20 prop-bet history with hit/miss outcomes."
- "List today's MLB pitcher strikeout props from DraftKings and Pinnacle side by side."
- "Did Nikola Jokic's points prop hit last night? What was the line?"
- "Compare PrizePicks DFS projections to Bovada lines for tonight's NBA slate."
- "What's the first-quarter total on Lakers vs Celtics, and which book has the best Over?"

The model uses these tools transparently:

The same 23 tools are served overStreamable HTTPat

Use it from any remote-capable client — nothing to install, nothing to run.

Auth is per request.Send your PropLine key asAuthorization: Bearer <key>(orX-API-Key: <key>, or?apiKey=<key>for clients that cannot set headers). With no key the endpoint falls back to the shared free demo key — every tool works, paid features are redacted, limits are pooled. Keys are used for the one request and never stored.

claude mcp add --transport http propline https://mcp.prop-line.com/mcp \ --header "Authorization: Bearer YOUR_KEY"

The stdio build below (npx -y propline-mcp) is the same code; pick whichever your client prefers.

No key needed to try it. The server falls back to a shared public demo key, so this just works:

Your agent can immediately pull live odds, scores, and stats. The demo key is free-tier and shared — paid features (resolution, +EV, history, exports) return a redacted teaser, and limits are pooled across everyone. For full access and your own limits, setPROPLINE_API_KEY(below). Get a free personal key atprop-line.com.

prop-line.com— free tier is 1,000 requests/day, no credit card. Pro at $19/mo unlocks resolution, history, and +EV.

Edit~/Library/Application Support/Claude/claude_desktop_config.json(macOS) or%APPDATA%\Claude\claude_desktop_config.json(Windows):

{ "mcpServers": { "propline": { "command": "npx", "args": ["-y", "propline-mcp"], "env": { "PROPLINE_API_KEY": "YOUR_KEY_HERE" } } } }

Restart Claude Desktop. The hammer icon should show 21 PropLine tools. (Or skip the install and addhttps://mcp.prop-line.com/mcpas a custom connector — see the hosted endpoint above.)

claude mcp add propline \ --env PROPLINE_API_KEY=YOUR_KEY \ -- npx -y propline-mcp

Runpropline-mcpas a stdio server. Most clients accept a command + env. See theMCP specfor client-specific config.

PropLine is API-compatible at the response level (samebookmakers[].markets[].outcomes[]shape) and adds three things the-odds-api doesn't offer at any tier:
- Prop resolution— every Over/Under graded against the actual box-score stat after the game
- Cross-book +EV— Pinnacle-anchored no-vig fair lines per book, sorted with +EV plays at the top
- Webhooks— push delivery on Streaming tier, not pull-only

Pricing: free at 1,000 req/day (vs their 500/month), Pro at $19/mo for 25,000 req/day, Streaming at $79/mo for 1,000,000 req/day. No credit math.

- Hosted MCP endpoint:https://mcp.prop-line.com/mcp(Streamable HTTP)
- Privacy policy:prop-line.com/privacy
- Website:
prop-line.com
- API Docs:
prop-line.com/docs
- Recipes(code for common jobs):
prop-line.com/recipes
- Odds API by sport and market(live line, books, graded hit rate):
prop-line.com/odds-api
- Prop resolution(every prop graded against the box score):
prop-line.com/prop-resolution-api
- Cross-book +EV:
prop-line.com/ev
- Pricing:
prop-line.com/pricing
- Dashboard:
prop-line.com/dashboard
- OpenAPI reference:
api.prop-line.com/docs
- For AI agents(llms.txt, MCP setup):
prop-line.com/for-ai-agents
- Python SDK:
pip install propline
- Node SDK:
npm install propline

Provides club information and advanced player statistics for Euroleague and Eurocup basketball from the Euroleague API.

Provides real-time football match information from the SoccerDataAPI using natural language.

Provides football (soccer) statistics and live match data using the API-Football service.

Analyse endurance sports activities, build training plans and sync structured workouts to your sports watch.

Every FIFA World Cup since 1930. 23 tournaments, full squads, knockout brackets, stadium altitudes, hat-tricks. Free tier API.

Hosted MCP server for live sports data — scores, analytics, schedules, standings, multi-book odds, team form, head-to-head, model predictions, and pre-generated matchup analysis across 1,000+ leagues in 150+ countries. Free tier, no card.

Access college football statistics from the College Football Data API.

Enable fast, free real-time web search and access premium data from trusted media brands for news, financial markets, sports, entertainment, weather, and more.

Access Formula 1 data, including race results, driver standings, and circuit information.

Access extensive Formula 1 statistics and information using the FastF1 library and OpenF1 API.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.