Endpoints
Get Odds
The core endpoint: current prices for a sport, filtered by market, bookmaker and region.
GET
/v1/sports/{sport_key}/oddsAPI keyReturns one odds record per bookmaker and market for the matching events. Prices refresh every 30 seconds while a market is open.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
sport_key | string | required | Sport key, e.g. tennis. |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
market | string | optional | Filter to a single market key, e.g. h2h. |
bookmaker | string | optional | Filter to a single bookmaker key. |
regions | string | optional | Comma-separated: us, uk, eu, au. Defaults to us. |
odds_format | string | optional | american, decimal or fractional. Defaults to american. |
event_ids | string | optional | Comma-separated event IDs to scope the response. |
limit | integer | optional | Max records. Default 100, max 500. |
Request
cURL
curl "https://api.openoddsapi.com/v1/sports/nfl/odds?market=moneyline®ions=us,uk&odds_format=decimal" \
-H "X-API-Key: sk_test_your_key_here"JavaScript
const url = "https://api.openoddsapi.com/v1/sports/nfl/odds" +
"?market=moneyline®ions=us,uk&odds_format=decimal";
const res = await fetch(url, {
headers: { "X-API-Key": "sk_test_your_key_here" }
});
const odds = await res.json();
console.log(odds);Python
import requests
url = "https://api.openoddsapi.com/v1/sports/nfl/odds"
res = requests.get(
url,
params={"market": "moneyline", "regions": "us,uk", "odds_format": "decimal"},
headers={"X-API-Key": "sk_test_your_key_here"},
)
print(res.json())JSON
[
{
"id": "odd_nfl_20260910_chiefs_bills_draftkings_spread",
"sport_key": "nfl",
"event_id": "evt_nfl_20260910_chiefs_bills",
"bookmaker": "draftkings",
"market": "spread",
"format": "american",
"last_update": "2026-08-07T02:14:33Z",
"outcomes": [
{ "name": "Kansas City Chiefs", "price": -110, "point": -2.5 },
{ "name": "Buffalo Bills", "price": -110, "point": 2.5 }
]
},
{
"id": "odd_nfl_20260910_chiefs_bills_fanduel_moneyline",
"sport_key": "nfl",
"event_id": "evt_nfl_20260910_chiefs_bills",
"bookmaker": "fanduel",
"market": "moneyline",
"format": "american",
"last_update": "2026-08-07T02:14:31Z",
"outcomes": [
{ "name": "Kansas City Chiefs", "price": -145, "point": null },
{ "name": "Buffalo Bills", "price": +125, "point": null }
]
}
]Filter with market to collapse to one record set. point is null for non-point markets. Sending odds_format=decimal returns the same records with decimal prices.
NOTECache odds for up to 30 seconds. Prices move often during live periods; polling faster than the refresh rate returns identical payloads.