The data feed for alternative sports betting — odds, events, futures for 30 leagues
Project description
AltSportsData SDK
Alternative sports odds & data for sportsbooks, DFS platforms, and prediction markets.
One SDK. 30 leagues. Every market type. Moneylines, matchups, props, podiums, futures, and parlays — from surfing to Supercross to Formula Drift.
pip install altsportsdata
Example 1 — Get Odds (Live → Upcoming → Completed)
Finds the first event with real odds — works any time, any day:
from altsportsdata import AltSportsData
client = AltSportsData(api_key="your_key")
# Try live first, then upcoming, then completed results
for status in ["live", "upcoming", "completed"]:
for event in client.list_events(status=status):
odds = client.get_moneylines(event.id)
winners = odds.get("eventWinner", [])
if winners:
print(f"{event.name} ({status})")
for o in sorted(winners, key=lambda x: x["odds"])[:5]:
ath = o["athlete"]
settled = f' → {o["settlement"]}' if o.get("settlement") else ""
print(f' {ath["firstName"]} {ath["lastName"]:20} {o["probability"]:5.1f}% ({o["odds"]:.2f}){settled}')
break
else:
continue
break
Indianapolis (upcoming)
Eli Tomac 49.4% (2.02)
Hunter Lawrence 37.6% (2.66)
Ken Roczen 23.5% (4.26)
Cooper Webb 14.6% (6.84)
Joey Savatgy 6.2% (16.20)
Example 2 — Historical Results & Settlement
Completed events include settlement — see who won vs the odds:
wsl = AltSportsData(api_key="your_key", league="wsl")
for event in wsl.list_events(status="completed"):
odds = wsl.get_moneylines(event.id)
winners = odds.get("eventWinner", [])
if winners:
print(f"\n{event.name}")
for o in sorted(winners, key=lambda x: x["odds"])[:5]:
ath = o["athlete"]
tag = "✅" if o["settlement"] == "WIN" else " "
print(f' {tag} {ath["firstName"]} {ath["lastName"]:20} {o["odds"]:5.2f} → {o["settlement"]}')
break
Lexus Pipe Challenger
Molly Picklum 3.50 → LOSE
Caitlin Simmers 3.88 → LOSE
Erin Brooks 5.49 → LOSE
✅ Gabriela Bryan 6.46 → WIN
Bettylou Johnson 9.90 → LOSE
All Market Types
# Sportsbook — traditional markets
client.get_moneylines("event_id") # event winner
client.get_matchups("event_id") # head-to-head
client.get_totals("event_id") # over/under
client.get_exactas("event_id", n=2) # exacta (2, 3, or 4)
client.get_podiums("event_id") # top-3 finish
client.get_shows("event_id") # shows
client.get_heat_winners("event_id") # heat winner
client.get_fastest_lap("event_id") # fastest lap
client.get_dream_team("event_id") # dream team
# DFS — player-level markets
client.get_player_props("event_id") # prop bets
client.get_player_matchups("event_id") # pick'em matchups
client.get_player_totals("event_id") # over/under by stat
# Prediction markets — probability-first
client.get_market_probabilities("event_id") # win probabilities
client.get_podium_probabilities("event_id") # top-3 probabilities
client.get_top_finish_probabilities("event_id", top_n=5) # top-N probabilities
# Same Game Parlay
client.calculate_parlay("event_id", picks=["odd_id_1", "odd_id_2"])
# Generic — any market by name or alias
client.get_odds("event_id", "moneyline") # aliases: "h2h", "props", "totals", etc.
Events
client.list_events(status="upcoming") # pre-event
client.list_events(status="live") # in-progress
client.list_events(status="completed") # historical + settlement
client.list_events(status=["live", "upcoming"]) # combine filters
client.list_events(league="f1", status="upcoming") # filter by league
client.get_event("event_id") # full detail with rounds/heats
client.get_participants("event_id") # athletes / roster
client.get_heat_scores("event_id", "heat_id") # scores / lap times
Futures
client.list_futures() # all available futures
client.get_futures(tour="tour_id", type="winner") # season winner odds
Setup
from altsportsdata import AltSportsData
# All leagues
client = AltSportsData(api_key="your_key")
# Lock to a league — auto-filters every query
wsl = AltSportsData(api_key="your_key", league="wsl")
f1 = AltSportsData(api_key="your_key", league="f1")
spr = AltSportsData(api_key="your_key", league="spr")
Google Colab
!pip install altsportsdata
from altsportsdata import AltSportsData
from google.colab import userdata
client = AltSportsData(api_key=userdata.get("ALTSPORTSDATA_API_KEY"))
for lg in client.list_leagues():
print(f"{lg.key:15} {lg.name}")
30 Leagues
| Code | League | Code | League |
|---|---|---|---|
wsl |
World Surf League | pbr |
Professional Bull Riders |
sls |
Street League Skateboarding | bkfc |
Bare Knuckle FC |
f1 |
Formula 1 | motogp |
MotoGP |
spr |
Supercross | mxgp |
MXGP |
nrx |
Nitrocross | jaialai |
Jai Alai |
fdrift |
Formula Drift | nll |
National Lacrosse League |
masl |
Major Arena Soccer | nhra |
NHRA Drag Racing |
powerslap |
Power Slap | dgpt |
Disc Golf Pro Tour |
worldoutlaws |
World of Outlaws | usac |
USAC Racing |
xgame |
X Games | motoamerica |
MotoAmerica |
hlrs |
High Limit Racing | byb |
BYB Extreme Fighting |
athletesunlimited |
Athletes Unlimited | lux |
LUX Fight League |
raf |
Real American Freestyle | mltt |
Major League Table Tennis |
motocrs |
Motocross | spectation |
Spectation |
gsoc |
Global Soccer | sprmtcrs |
Supermotocross |
Links
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file altsportsdata-2.2.0.tar.gz.
File metadata
- Download URL: altsportsdata-2.2.0.tar.gz
- Upload date:
- Size: 20.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6629ef8b43e5e8e401dbcb5ceb5f34a8c4aa34d7b1281e4b208e27c396b18926
|
|
| MD5 |
5887b68c33a3cf27c4d7e37dbb7926f1
|
|
| BLAKE2b-256 |
4a6b20e0b3276f784512d6d98fb07428446dc1a0bb4637e6f91eb1fc497eec64
|
File details
Details for the file altsportsdata-2.2.0-py3-none-any.whl.
File metadata
- Download URL: altsportsdata-2.2.0-py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acbbae67eadbf980a3ddc6cebaf3c3e5353e4355aad2d9f0454122b433d9087f
|
|
| MD5 |
dd799c5138c6efb363615128bb491cba
|
|
| BLAKE2b-256 |
1d2fe433688b00855aaa021834d6c47ebaf5af37b65c623add219d0b8800fd41
|