# GetOdds API documentation

Choose an endpoint, create a GetOdds key, and build with a versioned contract and downloadable Node, Python or R client.

Canonical page: https://getoddsapi.com/docs

## Free API key

Get a free GetOdds API key: **1,000 requests per UTC day and 60 per minute, no card**. One key covers REST and the hosted MCP server.

Sign up: https://getoddsapi.com/sign-up?ref=ai-claudebot

## Quickstart

1. Create an account at https://getoddsapi.com/sign-up?ref=ai-claudebot, open https://getoddsapi.com/dashboard and issue a key with the sources you need (draftkings, fanduel, betrivers, prizepicks or underdog). Keep it in a server environment variable named GETODDS_API_KEY.
2. Read current DraftKings NBA spreads with curl:

```bash
curl --fail-with-body "https://getoddsapi.com/api/v1/odds?sport=NBA&market=spread&fresh_only=true&limit=50" \
  -H "Authorization: Bearer $GETODDS_API_KEY"
```

3. The same request in Python (standard library only):

```python
import json, os, urllib.request

req = urllib.request.Request(
    "https://getoddsapi.com/api/v1/odds?sport=NBA&market=spread&fresh_only=true&limit=50",
    headers={"Authorization": "Bearer " + os.environ["GETODDS_API_KEY"]},
)
with urllib.request.urlopen(req) as res:
    rows = json.load(res)["data"]
for row in rows:
    print(row["away"], "at", row["home"], row["side"], row["line"], row["american"], row["observed_at"])
```

4. Check `observed_at`, `age_seconds` and `stale` on every row before using a price. Full reference: https://getoddsapi.com/docs

## Use with Claude (MCP)

```bash
claude mcp add --transport http getodds https://getoddsapi.com/api/mcp \
  --header "Authorization: Bearer $GETODDS_API_KEY"
```

The MCP tools follow the key's source grants and share its allowance. Setup guide: https://getoddsapi.com/use-with-claude

## Pricing

| Plan | Allowance | Price |
| --- | --- | --- |
| Free key | 1,000 requests a day, 60 a minute | $0, no card |
| Developer Bundle | 10,000 requests or credits a month on each of four sources | $149 a month |

Free development allowance: 1,000 requests per UTC day and 60 per minute per account, with no payment step. Paid: the Developer Bundle at $149 per month, with 10,000 monthly requests or credits on each of four sources.
Details: https://getoddsapi.com/bundle

## Guide


Canonical: https://getoddsapi.com/docs
Reviewed: 2026-11-07 UTC

Choose an endpoint, create a GetOdds key, and build with a versioned contract and downloadable Node, Python or R client.

## Start with a five-row request

Create your account and issue a key at /dashboard. GetOdds keys authenticate the GetOdds market gateway; branded-service keys belong to those separate services. The /api/v1/markets endpoint returns partial player-stat thresholds from PrizePicks, Underdog, DraftKings Pick6 or FanDuel, with odds set to null. The separately scoped /api/v1/odds endpoint returns stored DraftKings prices; see /docs/sportsbook.

```bash
curl --fail-with-body "https://getoddsapi.com/api/v1/markets?source=prizepicks&limit=5" -H "Authorization: Bearer $GETODDS_API_KEY"
```

## Contract and developer tools

Download /openapi.json for the public HTTP contract and /capabilities.json for the implemented source scope. The Node and Python source clients are downloadable from /docs/sdks; the CLI performs the same bounded read. These are source downloads, not a claim of registry publication.

## Keep the response metadata

meta.complete is false: this is a bounded sample, not a full board or paginated snapshot. observed_at is the gateway receipt time. source_updated_at can be null. Do not label a quote fresh using its receipt time alone. A 200 response can contain no rows.

## Handle failures deliberately

401 means the key is invalid or revoked. 403 means its source grant excludes the requested source. 429 means a shared customer limit has been reached; inspect Retry-After. A source timeout or source refusal returns an error rather than invented data. The current gateway applies 60 requests per minute and 1,000 per UTC day per customer; successful reads record one credit. These development allowances are not a purchased subscription promise.

## Questions

### Does one key access every branded API?

No. A GetOdds key accesses the four threshold sources and stored DraftKings sportsbook data according to its source grants. Branded APIs keep their own accounts and contracts.

### Is there a complete-board cursor?

Not on this endpoint. limit controls the returned sample; complete remains false.

### Where are the limits documented?

The OpenAPI contract lists request parameters and response errors; /docs describes current customer allowances.

## Sources

- [GetOdds Node guide](https://getoddsapi.com/docs/node)
- [GetOdds Python guide](https://getoddsapi.com/docs/python)
- [OpenAPI contract](https://getoddsapi.com/openapi.json)
- [Source capabilities](https://getoddsapi.com/capabilities.json)

Independent product; not affiliated with the operators named. No picks or predicted profits.

---

GetOdds is an independent developer product and is not affiliated with any sportsbook or pick’em operator. Prices describe data, not betting advice.
