Props feed

FanDuel player props feed

Every FanDuel Sportsbook player prop as one JSON record: player, stat, line, both prices, fair price and a move summary, filterable by league, game and stat.

FanDuel API is an independent data service operated by FF API Inc. It is not affiliated with, endorsed by or sponsored by FanDuel.

Read the whole player prop board in one call, already normalised, with where each line opened.

One shape
Points, rebounds, passing yards and shots on goal share one record: player, team, stat, period, line, over and under in American and decimal odds.
Move summary
Each prop carries its opening line and price, the current one, and how many line and price moves sit between them.
Filters
League, sport, game, player, stat and status, with updated_since for incremental reads and paging by limit and offset.

What it returns now

NFL player propsReal rows, 5 min delay, as of 3:24 PM ET
PlayerStatOpenLineOverUnderFair over
Austin Hooperreceiving yardsreceiving yards6.56.5-114-11450.0%
Bijan Robinsonreceiving yardsreceiving yards0.50.5+100-13246.8%
Chase Brownreceiving yardsreceiving yards2.52.5-118-11450.4%
Dohnte Meyersreceiving yardsreceiving yards17.517.5-114-11450.0%
Drake Londonreceiving yardsreceiving yards78.578.5-114-11450.0%
Drew Samplereceiving yardsreceiving yards3.53.5-114-11450.0%
Ja'Marr Chasereceiving yardsreceiving yards78.578.5-114-11450.0%
Jahan Dotsonreceiving yardsreceiving yards0.50.5+168-23034.9%

One prop per player here; the API returns every one. The full NFL board is on the props page.

Endpoint and parameters

GET/api/v1/props

Every FanDuel Sportsbook player prop on the board, one record per player, stat and period, with line, over and under prices in American and decimal odds, and a move summary: where it opened, where it is now and how many times it moved.

ParameterInDescription
sportquerynba, nfl, nhl, mlb, ncaab or ncaaf.
leaguequeryLeague code as FanDuel lists it, such as NBA.
event_idqueryOne game, from /api/v1/events.
playerqueryPlayer name, matched case-blind on any part.
statquerypoints, rebounds, assists, threes, pra and the other stats FanDuel lists.
statusqueryMarket status. Default: everything except removed. One of open, suspended, closed, removed, any.
updated_sincequeryOnly props that changed after this ISO 8601 time.
limitqueryRows per page, 1 to 200. Default 50.
offsetqueryRows to skip, for paging.

Code

curl
curl "https://fanduelapi.com/api/v1/props?league=NBA&stat=points&limit=5" \
  -H "Authorization: Bearer $FANDUEL_API_KEY"
Python
import os, requests

r = requests.get(
    "https://fanduelapi.com/api/v1/props",
    params={"league": "NBA", "stat": "points", "limit": "5"},
    headers={"Authorization": f"Bearer {os.environ['FANDUEL_API_KEY']}"},
)
r.raise_for_status()
body = r.json()
print(body["meta"])          # plan, delay_seconds, as_of, source_status
for row in body["data"][:5]:
    print(row)

Keys look like fd_.... Keep one in the FANDUEL_API_KEY environment variable on your server, never in browser code. Every response's meta says which plan answered, how far behind it is and how fresh the collection is.

Which plans include it

  • FreeIncluded, 5 minutes behind
  • DeveloperIncluded, real time
  • ProductionIncluded, real time
  • ScaleIncluded, real time

Read from the plans on the pricing page. Every request counts against the monthly and per-minute allowance; request quotas explains how.

Works well with

Make your first call in a few minutes

Sign up, create a key in the dashboard, and send it as a Bearer token. The free plan needs no card and reads the same data five minutes behind.

Get a free API key