Player prop odds from 43 distinct sources in the last 24 hours - regulated sportsbooks, sharp books, and the DFS pick'em apps (PrizePicks, Underdog, Sleeper) most odds feeds skip - across 4,000+ distinct prop market keys. Flat rows with line, over price, under price, and the book that posted it. Free tier, no card required.
One endpoint per sport - /v1/sports/{sport_key}/props - across
90+ sports, on the same canonical player_* market keys
the-odds-api uses. Figures below are platform-wide, measured from live ingest.
The standard books - DraftKings, FanDuel, Caesars, Pinnacle, Bovada - plus
DFS pick'em apps as first-class sources: prizepicks,
underdog, sleeper, betr, and
pick6 (DraftKings), alongside exchange-style sources like
Novig. DFS lines are normalized via the dfsOdds parameter:
midpoint (+100/−100 zero-vig, the default) or
effective (each app's implied pricing).
GET /v1/sports/{sport_key}/props
A single call returns every book and every game for the sport - no
per-event fan-out. Filter with markets=,
bookmakers=, or player= (substring match on the
player's name). Platform-wide the pipeline processes roughly half a
million prop updates per hour, with sub-5-second freshness on major books.
?markets=player_points,player_assists
?player=mahomes
Two zero-credit endpoints tell you exactly what exists before you burn a
credit: /props/markets lists every available prop market key
for the sport, and /props/coverage reports which bookmakers
post which prop markets, with sample counts.
GET /v1/sports/{sport_key}/props/markets
GET /v1/sports/{sport_key}/props/coverage
The archive holds 30M+ player prop closing lines going back to June 2022 - queryable by market key, player, and date range for backtests and CLV. Business tier and up add WebSocket streaming for props, so line moves are pushed instead of polled. See the historical odds API and props over WebSocket.
GET /v1/historical/sports/{sport_key}/closing-odds
These pages read from the same live API you'd be buying, so you can verify prop coverage yourself, right now, without an account.
Which books are writing which sports and prop markets, measured from
live ingest - the browsable version of /props/coverage.
The current board, straight from the API - the same rows an API call returns, updated continuously.
parlay-api.com/live →Per-source ingest health and data freshness. If a book or DFS app goes quiet, you'll see it here before we do a postmortem.
parlay-api.com/status →
the-odds-api serves player props through its event-odds endpoint, which its
own docs describe as querying one event at a time
(their v4
guide, read 2026-08-25) - a 12-game slate means 12 requests. ParlayAPI
returns the whole sport's props in one 3-credit call, on the same canonical
player_* market keys, so your market-key handling code carries
over unchanged.
# before: one request per event on the-odds-api for event_id in todays_event_ids: # 12 games = 12 calls GET api.the-odds-api.com/v4/sports/americanfootball_nfl/events/{event_id}/odds?markets=player_pass_yds # after: the whole slate, every book, one call GET parlay-api.com/v1/sports/americanfootball_nfl/props?markets=player_pass_yds
the-odds-api is older, simpler, and more battle-tested, with a much larger base of tutorials, Stack Overflow answers, and community wrappers to copy from. If you only need a handful of props on a handful of games, its per-event model is perfectly workable and its smaller surface area is a genuine advantage. Our honest roundup of the-odds-api alternatives compares seven providers side by side, us included.
Endpoint shapes below are the real ones from the API docs.
Auth is either the-odds-api-style apiKey= query param or an
X-API-Key header. A props call costs 3 credits.
# every book, every game for the sport curl "https://parlay-api.com/v1/sports/basketball_nba/props?markets=player_points,player_rebounds,player_assists" \ -H "X-API-Key: YOUR_KEY" # DFS apps only, normalized to each app's implied pricing curl "https://parlay-api.com/v1/sports/basketball_nba/props?bookmakers=prizepicks,underdog,sleeper&dfsOdds=effective" \ -H "X-API-Key: YOUR_KEY" # free, no credits: which prop markets exist for a sport? curl "https://parlay-api.com/v1/sports/americanfootball_nfl/props/markets" \ -H "X-API-Key: YOUR_KEY"
from parlay_api import ParlayAPI client = ParlayAPI(api_key="YOUR_KEY") # NFL props on TOA-canonical market keys props = client.props("americanfootball_nfl", markets=["player_pass_yds", "player_anytime_td"]) # De-vig a two-way prop into fair probabilities fair_over, fair_under = ParlayAPI.devig(over_price=-118, under_price=-102)
[
{
"event_id": "abc123def456",
"sport_key": "baseball_mlb",
"home_team": "Boston Red Sox",
"away_team": "Houston Astros",
"commence_time": "2026-05-04T19:00:00Z",
"player_name": "Tarik Skubal",
"market_key": "player_strikeouts",
"market_label": "Strikeouts",
"line": 7.5,
"over_price": -118,
"under_price": -102,
"bookmaker": "pinnacle",
"last_update": "2026-05-04T18:55:14Z"
}
]
SDK on GitHub:
JacobiusMakes/parlay-api-python
(MIT-licensed). Building with an AI agent instead? There's an official
MCP server with 22 tools:
pip install parlayapi-mcp.
One call to /v1/sports/{sport_key}/props returns prop rows from
the standard sportsbooks - DraftKings, FanDuel, Caesars, Pinnacle, Bovada and
more - plus DFS pick'em apps (prizepicks, underdog,
sleeper, betr, pick6 by DraftKings) and
exchange-style sources like Novig and Kalshi. Across the platform, 43 distinct
sources wrote player props in the last 24 hours, spanning 4,000+ distinct prop
market keys.
Yes. ParlayAPI's free tier includes 1,000 credits per month with no credit
card required. A props call costs 3 credits and returns every book and every
game for the sport, and the discovery endpoints -
/props/markets and /props/coverage - are free, so
you can see exactly which books post which prop markets before spending a
credit. Current paid tiers are listed at /pricing.
DFS pick'em apps post a line but not a two-sided price, so the API
normalizes them via the dfsOdds parameter:
midpoint (the default) represents them as +100/−100
zero-vig prices, and effective uses each app's implied per-pick
pricing instead. Every row still carries the real bookmaker key,
so you can treat DFS rows differently from sportsbook rows in your model.
Yes. The archive holds 30M+ player prop closing lines going back to June
2022. Query /v1/historical/sports/{sport_key}/closing-odds with
prop market keys like player_points or
player_pass_yds - a flat 10 credits per call - for backtesting
and closing-line-value tracking. Full detail on the
historical odds API page.
the-odds-api serves player props through its event-odds endpoint, which its
own docs describe as querying one event at a time
(their v4
guide, read 2026-08-25) - so a 12-game slate is 12 requests. ParlayAPI's
/props endpoint returns every book and every game for a sport in
a single 3-credit call, and adds DFS apps the-odds-api doesn't carry. To be
fair, the-odds-api is older and simpler, with a much larger base of tutorials
and community wrappers; if you only need a few props on a few games, its
per-event model is perfectly workable.
CFB Week 0 kicks off August 29 and the NFL follows September 9. Sign up free - 1,000 credits a month, no card required - and pull your first prop board today.