# Hold

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


Canonical page: https://getoddsapi.com/glossary/hold

Hold is the share of stakes retained after payouts. Realized hold describes recorded results; price-based theoretical hold is a model derived from a complete set of odds. Neither should be confused with overround, the excess in summed implied probabilities.

## Formula

Price-based theoretical hold = 1 − 1/Q, with Q = Σ(1/dᵢ). Realized hold = (settled stakes − total returns) ÷ settled stakes, under the stated accounting definition.

## Two quantities need two labels

For the theoretical formula, imagine allocating stakes across exhaustive outcomes so that the total return is equal whichever outcome wins. If total stake is S, that common return is S/Q. The retained share is therefore (S − S/Q)/S = 1 − 1/Q. This derivation does not require a prediction about the winner.

Realized hold instead uses actual stakes and payouts over a stated reporting period. Uneven stakes, the outcomes that occur, promotions, refunds and accounting conventions can make it different from a price-based estimate. Gross retained stakes are also not net business profit after expenses.

## Why −110 / −110 is not 4.76% hold

1. Two opposing $110 stakes create $220 in total stakes.
2. At −110 the winning side receives $210, including its $110 stake.
3. The retained amount is $220 − $210 = $10.
4. The retained share is $10/$220 = 4.545455%; overround is 4.761905%.

## Assumptions and limits

The equal-return allocation is an illustrative model, not evidence that an operator has balanced its book. A quote-derived hold number does not establish realized revenue, player expected loss or the true probability of either outcome. State the denominator and treatment of refunds, bonuses and unsettled tickets whenever comparing reported hold figures.

## Try the arithmetic

- [Calculate hold and overround](https://getoddsapi.com/hold-calculator)
- [Inspect equal-return stake arithmetic](https://getoddsapi.com/arbitrage-calculator)

## Related terms

- [Vig](https://getoddsapi.com/glossary/vig)
- [Implied probability](https://getoddsapi.com/glossary/implied-probability)
- [No-vig odds](https://getoddsapi.com/glossary/no-vig)

## Sources

- [Pinnacle: betting-margin terminology](https://support.pinnacle.com/hc/en-us/articles/44854177573009-What-is-a-betting-margin)

Examples are illustrative, not live offers or betting recommendations.

## FAQ

### Is there a free odds API key?

Yes. A free GetOdds key includes 1,000 requests per UTC day and 60 per minute, with no card.

### Which sportsbooks does the API cover?

DraftKings (prices observed through ESPN), FanDuel (native game markets and futures) and BetRivers (Pennsylvania pregame markets), plus PrizePicks, Underdog and Pick6 lines.

### Does it work with Claude?

Yes. Add the hosted MCP server with `claude mcp add --transport http getodds https://getoddsapi.com/api/mcp` and your key in the Authorization header.

---

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