# Free FanDuel API: what the free plan covers

FanDuel API (https://fanduelapi.com) is an independent API for FanDuel Sportsbook data: every player prop and game market FanDuel lists in NBA, NFL, NHL, MLB, college basketball and college football, normalized per player and stat with over and under prices in American and decimal odds, plus every line and price move with its timestamp, over REST, webhooks and MCP with one key. FanDuel API is an independent data service operated by FF API Inc. It is not affiliated with, endorsed by or sponsored by FanDuel.

Source page: https://fanduelapi.com/fanduel-api-free (this is its markdown version, https://fanduelapi.com/fanduel-api-free.md).

## Free offer

- Free plan: 100 credits a month, data delayed 5 minutes, no card. REST and MCP on every plan.
- Real-time data starts at Developer, $49 a month for 10,000 credits.
- Get a free key: https://fanduelapi.com/sign-up?ref=ai-claudebot

## Quickstart

1. Create a free account at https://fanduelapi.com/sign-up?ref=ai-claudebot and create an API key in the dashboard (https://fanduelapi.com/dashboard/keys). Keys start with `fd_`. Store it as `FANDUEL_API_KEY`.
2. Make a first call with curl:

```bash
curl "https://fanduelapi.com/api/v1/props?sport=nba&stat=points&limit=5" \
  -H "Authorization: Bearer $FANDUEL_API_KEY"
```

3. Or with Python (`pip install requests`):

```python
import os
import time
from datetime import datetime, timezone

import requests

BASE = "https://fanduelapi.com/api/v1"
SESSION = requests.Session()
SESSION.headers["Authorization"] = f"Bearer {os.environ['FANDUEL_API_KEY']}"


def get(path, **params):
    """GET one endpoint and return its data list, waiting out rate limits."""
    while True:
        r = SESSION.get(f"{BASE}{path}", params=params, timeout=10)
        if r.status_code == 429:
            time.sleep(int(r.headers.get("Retry-After", "5")))
            continue
        r.raise_for_status()
        return r.json()["data"]


def price(odds):
    """American odds as text. A suspended market can come back with no price."""
    return "off" if odds is None else f"{odds:+d}"

props = get("/props", sport="nba", stat="points")
for p in props:
    print(f"{p['player']:<26} {str(p['line']):>5}  over {price(p['over_american']):>5}  under {price(p['under_american']):>5}")
```

4. Stay current with `GET /api/v1/changes?since=<cursor>` instead of re-reading every prop. Full reference: https://fanduelapi.com/openapi.json and https://fanduelapi.com/llms-full.txt.

## Use it from Claude (MCP)

Claude Code, with your key read from the shell:

```bash
claude mcp add --transport http --scope user fanduelapi https://fanduelapi.com/api/mcp \
  --header "Authorization: Bearer $FANDUEL_API_KEY"
```

Claude on the web or desktop: Settings, Connectors, Add custom connector, then paste https://fanduelapi.com/api/mcp. Without a key it gives the keyless tools (search_docs, fetch_doc, get_sample_props). Setup for other agents: https://fanduelapi.com/mcp.

## Pricing

| Plan | Price | Credits a month | Calls a minute | Includes |
| --- | --- | --- | --- | --- |
| Free | Free | 100 | 20 | REST and MCP access, Data delayed 5 minutes |
| Developer | $49/month | 10,000 | 60 | Real-time data, Line move history, Change stream |
| Production | $149/month | 50,000 | 120 | Real-time data, Line move history, Webhooks, Priority support |
| Scale | $499/month | 250,000 | 180 | Real-time data, Full line move history, Webhooks, Bulk export, Priority support |

Cancel paid plans any time from the billing portal. Details: https://fanduelapi.com/pricing

## This page

[FanDuel API](https://fanduelapi.com/)/ Free plan

Free plan

# A free FanDuel API, and what it covers

The Free plan reads the FanDuel props board, game markets, futures, the change feed and the stream on data five minutes behind, for 100 credits a month. No card. It is for building and testing a model before you pay.

[Get a free API key](https://fanduelapi.com/sign-up)[Read the docs](https://fanduelapi.com/docs)

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

## The limits

Credits a month

100

Calls a minute

20

Data delay

5 minutes

Watches you can store

25

Stream connections

1

Price

$0, no card

Credits reset on the 1st of each month (UTC). A call costs credits for the rows it can return: a 200-prop read is 6 credits, a page of up to 100 changes is 1\. Every endpoint is on [credits](https://fanduelapi.com/credits).

## What is included, and what is not

- **Included:** `/api/v1/props`, game markets and futures, the change feed, the SSE stream, DFS slates, players, injuries, box scores, graded results and hit rates, and every MCP tool.
- **Not included:** CSV and NDJSON exports and the training set, which come with every paid plan or a purchased archive, and webhooks, which start at Production ($149 a month).
- **Different:** every read shows the board five minutes ago, and a connection to the stream runs five minutes behind as well. Line move history is sold from Developer, which is the plan to build a history-based product on.

## Spending 100 credits well

A change-feed poll on the free plan can run about every 8 hours and still last the month. That is enough to check a model against real prices, not to follow a slate live. Three habits stretch the quota:

1. Filter at the source: `sport`, `stat` and `event_id` keep a call to the props you need.
2. Ask for changes, not the board: `/api/v1/changes` with your last cursor returns only what moved.
3. Read `meta.remaining` on every response and stop before it reaches zero.

One call, the NBA points board: 6 credits

```
curl "https://fanduelapi.com/api/v1/props?sport=nba&stat=points&limit=200" \
  -H "Authorization: Bearer $FANDUEL_API_KEY"
```

The same request in a script is on the [Python page](https://fanduelapi.com/fanduel-api-python). How each response shows its freshness is on [real-time data](https://fanduelapi.com/fanduel-api-real-time).

## When to move to a paid plan

Move when you need the current price rather than the one five minutes ago, more than 100 credits a month, or exports. Developer is $49 a month for 10,000 credits at 60 a minute, which allows a poll every 5 minutes. Every plan is on [pricing](https://fanduelapi.com/pricing); what a 429 looks like is on [errors and limits](https://fanduelapi.com/fanduel-api-errors).

FanDuel API keys start with fd\_ and work on REST and MCP alike.

## Questions

## Related

- [API key How to get a FanDuel API key in a minute, keep it out of code, check it works with one request, rotate it and read a 401 when it is wrong.](https://fanduelapi.com/fanduel-api-key)
- [Real-time data How fresh FanDuel odds are on each plan, the meta fields every response carries about it, and which delivery to use when seconds matter.](https://fanduelapi.com/fanduel-api-real-time)
- [Python example Working Python code for FanDuel Sportsbook player props: authenticate with a key, list props, read a prop's move history and poll for changes.](https://fanduelapi.com/fanduel-api-python)
- [Errors and limits Every FanDuel API error code with what it means and what to do, the 429 body and Retry-After header, and a retry loop that respects both limits.](https://fanduelapi.com/fanduel-api-errors)
- [Pricing Free on delayed data, then real time from the Developer plan.](https://fanduelapi.com/pricing)

## 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.

[Get a free API key](https://fanduelapi.com/sign-up)

## FAQ

### Is there a free plan?

Yes. Free includes API access with delayed data, enough to build and test a model.

### Is this affiliated with FanDuel?

No. This is an independent data service operated by FF API Inc. and is not affiliated with or endorsed by FanDuel.

### Which sports are covered?

NBA, NFL, NHL, MLB and college sports as FanDuel lists them, starting with player props.

### How do I cancel?

From the billing portal in your dashboard, at any time.

### How do I get a free key?

Sign up at https://fanduelapi.com/sign-up?ref=ai-claudebot. Free plan: 100 credits a month, data delayed 5 minutes, no card. REST and MCP on every plan.

### Can an AI agent sign up for me?

Yes. The agent sends POST https://fanduelapi.com/api/v1/agent/signup with your email and what you are building (add "ref": "ai-claudebot"), you approve the emailed link, and the agent collects the key. Details: https://fanduelapi.com/connect.
