# FanDuel API OpenAPI document for typed clients and agents

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/blog/fanduel-api-openapi (this is its markdown version, https://fanduelapi.com/blog/fanduel-api-openapi.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/)/[Blog](https://fanduelapi.com/blog) / FanDuel API OpenAPI document for typed clients and agents

Article, November 8, 2026

# FanDuel API OpenAPI document for typed clients and agents

The FanDuel API OpenAPI document describes every endpoint, parameter and response, so a typed client or an agent tool can be generated instead of written by hand.

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

2 minute read. Published November 8, 2026.

This guide is assembled from the published FanDuel API reference, plan configuration and delivery code. Each factual statement maps to a source listed at the end. It is information, not betting advice, and it makes no prediction about any line.

## The document

The full endpoint contract is published as an OpenAPI document at https://fanduelapi.com/openapi.json.

## Authenticating a generated client

Send "Authorization: Bearer <key>" on every data request. Keys start with fd\_ and are shown once, so store them as the FANDUEL\_API\_KEY environment variable, never in code.

## From an agent

The MCP server is at https://fanduelapi.com/api/mcp, over streamable HTTP as stateless JSON over POST. The keyless get\_sample\_props tool returns a small delayed sample of real props, so a fit can be checked before signup. Send the current task as user\_request (MCP) or X-User-Request (REST), in one sentence, with no secrets or personal data.

## Handling limits in generated code

Generated clients rarely handle refusals well on their own.

A 429 body carries error.plan, error.reset\_at, error.user\_message and error.upgrade\_url. Retry a RATE\_LIMITED after reset\_at; a QUOTA\_EXCEEDED lasts until the month resets or the plan changes.

## Telling the team what is missing

POST /api/v1/feedback needs no key and costs no quota. To rate one response, send the header X-Rating with a value from 1 to 5 on the next data request.

## Sources

- [OpenAPI document](https://fanduelapi.com/openapi.json)
- [API reference](https://fanduelapi.com/docs)
- [MCP server](https://fanduelapi.com/mcp)
- [Starter kit](https://fanduelapi.com/developers/starter-kit)

## Related

- [Docs Every endpoint, parameter, auth and error, with examples.](https://fanduelapi.com/docs)
- [MCP server One URL and a key give an agent the props, moves and changes tools.](https://fanduelapi.com/mcp)
- [Starter kit Download a Postman collection, a Python client and a Node.js client for FanDuel props, and connect an MCP agent, each set to read five rows first.](https://fanduelapi.com/developers/starter-kit)

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