Skip to content

Sharp-API/sports-odds-sample-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Sports Betting Odds Sample Dataset (SharpAPI)

license rows books source

Real sportsbook odds snapshots from SharpAPI, the real-time sports betting odds API. Free to use for research, coursework, backtesting experiments, and data journalism, with attribution (CC BY 4.0, see below).

Files

File Rows What it is
data/worldcup_2026_odds_snapshot.csv 6,178 Full odds board for the 2026 FIFA World Cup, captured 2026-07-13 (semifinals week: Argentina vs England, France vs Spain). 20 sportsbooks, 99 market types, from moneylines and Asian handicaps to correct score and outrights.
data/mlb_odds_snapshot.csv 3,673 Same-day MLB slate across the same books: moneylines, run lines, totals, and derivative markets.

Both files share one schema: each row is one price on one selection at one sportsbook at capture time.

Schema

Column Type Description
id string Unique row id from the API
sportsbook string Book slug (draftkings, fanduel, pinnacle, novig, kalshi, ...)
event_id string Stable event identifier, join key across books
sport / league string e.g. soccer / fifa_-_world_cup
home_team / away_team string Event participants
market_type string One of 99 market slugs (moneyline, asian_handicap, total_goals, ...)
selection string The specific outcome priced
selection_type string side, total, outright, ...
odds_american int American odds (+150, -110)
odds_decimal float Decimal odds
odds_probability float Implied probability (vig included)
line float or empty Handicap/total line where applicable
event_start_time ISO 8601 Scheduled start
is_live bool Whether the price was in-play at capture
timestamp ISO 8601 Capture time of this price

Quick start

Python:

import pandas as pd
wc = pd.read_csv("data/worldcup_2026_odds_snapshot.csv")
ml = wc[wc.market_type == "moneyline"]
best = ml.loc[ml.groupby(["event_id", "selection"]).odds_decimal.idxmax()]
print(best[["selection", "sportsbook", "odds_american"]].head())

R:

wc <- read.csv("data/worldcup_2026_odds_snapshot.csv")
ml <- subset(wc, market_type == "moneyline")
aggregate(odds_decimal ~ selection, ml, max)

Ideas: cross-book vig comparison, best-line analysis, implied-probability calibration against results, market-efficiency studies across 20 books, arbitrage detection exercises.

Want live or historical data?

This is a static snapshot. The live feed behind it: SharpAPI serves real-time odds from 45+ sportsbooks with sub-89ms SSE streaming, no-vig fair odds, +EV and arbitrage detection, plus historical odds and closing-line data on paid tiers. The free tier needs no credit card: sharpapi.io/pricing. SDKs: Python and TypeScript.

License and attribution

Data: CC BY 4.0. Use it freely, including commercially, with attribution:

Odds data from SharpAPI (sharpapi.io), Sports Betting Odds Sample Dataset, 2026.

BibTeX:

@misc{sharpapi2026odds,
  title  = {Sports Betting Odds Sample Dataset},
  author = {{SharpAPI}},
  year   = {2026},
  url    = {https://sharpapi.io},
  note   = {2026 FIFA World Cup and MLB odds snapshots, 20 sportsbooks}
}

Disclaimers

Odds are informational market data, not betting advice. Prices move constantly; this snapshot was accurate only at capture time. Sports betting involves financial risk, is legal only where permitted, and is restricted to those of legal age (21+ in most US states). Please wager responsibly.

About

Real sportsbook odds snapshots (2026 FIFA World Cup + MLB, 20 books, 99 markets) from SharpAPI. CC BY 4.0.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors