Six Product API tools require authentication; protocol metadata discovery is keyless.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Read actual frames from the dedicated V2 hedge WebSocket for selected events and books. Requires HedgeAccess or an eligible pass; this dedicated route has its own gate. Returns server-provided calculations only; places no wagers. Capture closes after at most five seconds of observation, 50 messages or 256 KiB. No guaranteed opportunities or continuous coverage.
Read actual frames from the dedicated V2 hedge WebSocket for selected events and books. Requires HedgeAccess or an eligible pass; this dedicated route has its own gate. Returns server-provided calculations only; places no wagers. Capture closes after at most five seconds of observation, 50 messages or 256 KiB. No guaranteed opportunities or continuous coverage.
| Argument | Type | Description |
|---|---|---|
| filters* | object | |
| max_frames | integer | |
| duration_ms | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"filters"
],
"properties": {
"filters": {
"type": "object",
"properties": {
"sources": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"maxItems": 5,
"minItems": 1
},
"event_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,80}$"
},
"maxItems": 5,
"minItems": 1
},
"min_percent": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"include_live": {
"type": "boolean"
},
"affiliate_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 10,
"minItems": 1
},
"include_links": {
"type": "boolean"
}
},
"additionalProperties": false
},
"max_frames": {
"type": "integer",
"default": 50,
"maximum": 50,
"minimum": 1
},
"duration_ms": {
"type": "integer",
"default": 5000,
"maximum": 5000,
"minimum": 1
}
},
"additionalProperties": false
}Read actual multiplexed WebSocket markets, scores, plays, stats, live game state, futures or hedge frames. Supports scoped subscriptions and supported snapshot, resync, usage and unsubscribe controls; only plays supports durable resume. Stats needs a REST baseline. Requires each channel entitlement; priced channels also need all periods, live/player-prop access and no delay. Restricted custom plans can use REST. At most three subscriptions, five seconds of observation, 50 messages and 256 KiB; the socket then closes. No continuous feed or automatic reconnect; report incomplete snapshot/replay and gaps.
| Argument | Type | Description |
|---|---|---|
| actions | array | |
| max_frames | integer | |
| duration_ms | integer | |
| subscriptions* | array |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"subscriptions"
],
"properties": {
"actions": {
"type": "array",
"items": {
"type": "object",
"required": [
"action"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,32}$"
},
"action": {
"enum": [
"snapshot",
"resync",
"usage",
"unsubscribe"
],
"type": "string"
},
"params": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1
},
"offset": {
"type": "integer",
"maximum": 840,
"minimum": -840
},
"resume": {
"type": "object",
"required": [
"plays"
],
"properties": {
"plays": {
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,80}$"
},
"additionalProperties": {
"type": "integer",
"maximum": 4294967295,
"exclusiveMinimum": 0
}
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"maxItems": 5,
"minItems": 1
},
"snapshot": {
"type": "boolean"
},
"event_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,80}$"
},
"maxItems": 5,
"minItems": 1
},
"main_line": {
"type": "boolean"
},
"sport_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 3,
"minItems": 1
},
"market_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 12,
"minItems": 1
},
"min_percent": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"event_status": {
"type": "string",
"pattern": "^[A-Za-z0-9_, -]{1,80}$"
},
"include_live": {
"type": "boolean"
},
"affiliate_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 10,
"minItems": 1
},
"include_links": {
"type": "boolean"
},
"after_sequence": {
"type": "integer",
"maximum": 4294967295,
"exclusiveMinimum": 0
},
"exclude_status": {
"type": "string",
"pattern": "^[A-Za-z0-9_, -]{1,80}$"
},
"before_sequence": {
"type": "integer",
"maximum": 4294967295,
"exclusiveMinimum": 0
},
"hide_no_markets": {
"type": "boolean"
},
"participant_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 12,
"minItems": 1
},
"participant_type": {
"enum": [
"TYPE_TEAM",
"TYPE_PLAYER",
"TYPE_RESULT"
],
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 6
},
"max_frames": {
"type": "integer",
"default": 50,
"maximum": 50,
"minimum": 1
},
"duration_ms": {
"type": "integer",
"default": 5000,
"maximum": 5000,
"minimum": 1
},
"subscriptions": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"channel",
"params"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,32}$"
},
"params": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1
},
"offset": {
"type": "integer",
"maximum": 840,
"minimum": -840
},
"resume": {
"type": "object",
"required": [
"plays"
],
"properties": {
"plays": {
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,80}$"
},
"additionalProperties": {
"type": "integer",
"maximum": 4294967295,
"exclusiveMinimum": 0
}
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"maxItems": 5,
"minItems": 1
},
"snapshot": {
"type": "boolean"
},
"event_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,80}$"
},
"maxItems": 5,
"minItems": 1
},
"main_line": {
"type": "boolean"
},
"sport_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 3,
"minItems": 1
},
"market_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 12,
"minItems": 1
},
"min_percent": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"event_status": {
"type": "string",
"pattern": "^[A-Za-z0-9_, -]{1,80}$"
},
"include_live": {
"type": "boolean"
},
"affiliate_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 10,
"minItems": 1
},
"include_links": {
"type": "boolean"
},
"after_sequence": {
"type": "integer",
"maximum": 4294967295,
"exclusiveMinimum": 0
},
"exclude_status": {
"type": "string",
"pattern": "^[A-Za-z0-9_, -]{1,80}$"
},
"before_sequence": {
"type": "integer",
"maximum": 4294967295,
"exclusiveMinimum": 0
},
"hide_no_markets": {
"type": "boolean"
},
"participant_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 12,
"minItems": 1
},
"participant_type": {
"enum": [
"TYPE_TEAM",
"TYPE_PLAYER",
"TYPE_RESULT"
],
"type": "string"
}
},
"additionalProperties": false
},
"channel": {
"enum": [
"markets",
"scores",
"plays",
"stats",
"live",
"live_game_state",
"game_state",
"futures",
"hedge"
],
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 3,
"minItems": 1
}
},
"additionalProperties": false
}Read actual V2 market-price WebSocket frames for explicit event/sport, market and affiliate filters. Requires eligible WebSocket access with all periods, live/player-prop access and no delay; restricted custom plans must use REST. Opens one socket for at most five seconds of observation, 50 messages or 256 KiB, then closes. Empty capture is not proof of no changes or no coverage.
| Argument | Type | Description |
|---|---|---|
| filters* | object | |
| max_frames | integer | |
| duration_ms | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"filters"
],
"properties": {
"filters": {
"type": "object",
"properties": {
"event_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,80}$"
},
"maxItems": 5,
"minItems": 1
},
"main_line": {
"type": "boolean"
},
"sport_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 3,
"minItems": 1
},
"market_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 12,
"minItems": 1
},
"affiliate_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 10,
"minItems": 1
}
},
"additionalProperties": false
},
"max_frames": {
"type": "integer",
"default": 50,
"maximum": 50,
"minimum": 1
},
"duration_ms": {
"type": "integer",
"default": 5000,
"maximum": 5000,
"minimum": 1
}
},
"additionalProperties": false
}Read actual frames from the V1 WebSocket for selected events and books. Use only for legacy line contracts; prefer V2 market tools. Requires eligible WebSocket access with all periods, live/player-prop access and no delay; restricted custom plans must use REST. One bounded socket closes after at most five seconds of observation, 50 messages or 256 KiB; no ongoing background delivery.
| Argument | Type | Description |
|---|---|---|
| filters* | object | |
| max_frames | integer | |
| duration_ms | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"filters"
],
"properties": {
"filters": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"event_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,80}$"
},
"maxItems": 5,
"minItems": 1
},
"sport_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"maxItems": 3,
"minItems": 1
},
"affiliate_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"maxItems": 10,
"minItems": 1
}
},
"additionalProperties": false
},
"max_frames": {
"type": "integer",
"default": 50,
"maximum": 50,
"minimum": 1
},
"duration_ms": {
"type": "integer",
"default": 5000,
"maximum": 5000,
"minimum": 1
}
},
"additionalProperties": false
}Fetch open per-affiliate main lines for one event_id. Do not call until list_events returned that exact ID, and do not treat retrieved_at as price freshness. Preserves participant identity, line value and price updated_at. Request live markets 41/42/43 explicitly; each local page is metered.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| limit | integer | |
| event_id* | string | Exact event_id from list_events; never a URL. |
| market_ids | array | Canonical market IDs. Prematch 1/2/3; live 41/42/43. Discover with list_markets. |
| affiliate_ids | array | Canonical affiliate IDs; defaults to 19 and 23. Discover current IDs with list_affiliates. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"event_id"
],
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 1000,
"minimum": 1
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"event_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,80}$",
"description": "Exact event_id from list_events; never a URL."
},
"market_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
"default": [
1,
2,
3
],
"maxItems": 12,
"minItems": 1,
"description": "Canonical market IDs. Prematch 1/2/3; live 41/42/43. Discover with list_markets."
},
"affiliate_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
"default": [
19,
23
],
"maxItems": 10,
"minItems": 1,
"description": "Canonical affiliate IDs; defaults to 19 and 23. Discover current IDs with list_affiliates."
}
},
"additionalProperties": false
}List currently published affiliate IDs and names, excluding retired affiliates. Do not use a catalog row as proof of plan access or an open offer for a sport or market.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Find event IDs and summaries for one sport and date. Do not use this tool for futures or as a price quote; use the returned exact event ID with get_main_lines. Defaults to open main lines for prematch markets 1/2/3 and affiliates 19/23. Each local page refetches a metered snapshot.
| Argument | Type | Description |
|---|---|---|
| date* | string | Calendar date. Without offset, the day starts at midnight UTC. |
| page | integer | |
| limit | integer | |
| offset | integer | Date-boundary offset in minutes; default UTC. |
| sport_id* | integer | |
| market_ids | array | Canonical market IDs. Prematch 1/2/3; live 41/42/43. Discover with list_markets. |
| affiliate_ids | array | Canonical affiliate IDs; defaults to 19 and 23. Discover current IDs with list_affiliates. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sport_id",
"date"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Calendar date. Without offset, the day starts at midnight UTC."
},
"page": {
"type": "integer",
"default": 1,
"maximum": 1000,
"minimum": 1
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "Date-boundary offset in minutes; default UTC."
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
"market_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
"default": [
1,
2,
3
],
"maxItems": 12,
"minItems": 1,
"description": "Canonical market IDs. Prematch 1/2/3; live 41/42/43. Discover with list_markets."
},
"affiliate_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
"default": [
19,
23
],
"maxItems": 10,
"minItems": 1,
"description": "Canonical affiliate IDs; defaults to 19 and 23. Discover current IDs with list_affiliates."
}
},
"additionalProperties": false
}Read one sport's scoped futures competition page. Do not use this for dated event discovery or treat a partial page as a complete listing. Futures require an eligible Ultra plan or higher and use opaque cursor pagination.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| cursor | string | |
| sport_id* | integer | |
| market_ids | array | Canonical futures market IDs; defaults to 1141. Discover with list_markets. |
| affiliate_ids | array | Canonical affiliate IDs; defaults to 19 and 23. Discover current IDs with list_affiliates. |
| include_settled | boolean |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sport_id"
],
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"cursor": {
"type": "string",
"maxLength": 4096,
"minLength": 1
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
"market_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
"default": [
1141
],
"maxItems": 12,
"minItems": 1,
"description": "Canonical futures market IDs; defaults to 1141. Discover with list_markets."
},
"affiliate_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
"default": [
19,
23
],
"maxItems": 10,
"minItems": 1,
"description": "Canonical affiliate IDs; defaults to 19 and 23. Discover current IDs with list_affiliates."
},
"include_settled": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}Discover market definitions, or available markets for one sport and date. Do not use definitions as price quotes or combine live with date-based discovery. Catalog sport/live filters use catalog metadata.
| Argument | Type | Description |
|---|---|---|
| date | string | |
| live | boolean | |
| page | integer | |
| limit | integer | |
| offset | integer | Date-boundary offset in minutes; used only with date-based discovery. |
| sport_id | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"live": {
"type": "boolean"
},
"page": {
"type": "integer",
"default": 1,
"maximum": 1000,
"minimum": 1
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "Date-boundary offset in minutes; used only with date-based discovery."
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}List current canonical sport IDs and names. Do not use a catalog row as evidence of current events, prices, or plan access.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}List all sportsbooks/affiliates Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"regions"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get best lines for multiple events Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "object",
"required": [
"event_ids"
],
"properties": {
"period": {
"allOf": [
{
"enum": [
"period_full_game",
"period_first_half",
"period_second_half",
"period_first_period",
"period_second_period",
"period_third_period",
"period_fourth_period",
"period_live_full_game",
"period_live_first_half",
"period_live_second_half",
"period_live_first_period",
"period_live_second_period",
"period_live_third_period",
"period_live_fourth_period"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "period_full_game"
},
"event_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated event IDs Comma-separated event IDs; maximum 50, unique, no spaces or encoded aliases."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get event by line ID Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventId",
"lineId"
],
"properties": {
"lineId": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1
},
"eventId": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get closing lines for a sport and date Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256
},
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
},
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
]
},
"division_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"event_status": {
"type": "string",
"maxLength": 256,
"description": "Comma-separated event status strings to include (e.g. `STATUS_IN_PROGRESS,STATUS_HALFTIME`). Applied before `exclude_status`."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"conference_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"exclude_status": {
"type": "string",
"maxLength": 256
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get conferences for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID"
],
"properties": {
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get available dates for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID"
],
"properties": {
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"format": {
"allOf": [
{
"enum": [
"iso8601",
"epoch"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "iso8601",
"description": "Date format — `iso8601` returns date strings, `epoch` returns Unix timestamps"
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get event deltas (V1 format) Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "object",
"required": [
"last_id"
],
"properties": {
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
]
},
"last_id": {
"type": "string",
"maxLength": 36,
"minLength": 36,
"description": "Delta cursor (36-character UUID)"
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get event deltas (V2 format via V1 path) Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "object",
"required": [
"last_id"
],
"properties": {
"last_id": {
"type": "string",
"maxLength": 256
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get divisions for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID"
],
"properties": {
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get a single event with lines Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventId"
],
"properties": {
"eventId": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Set to `all_periods` to include period-specific lines"
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated affiliate IDs Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get events with lines for a sport and date Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256
},
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
},
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
]
},
"division_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"event_status": {
"type": "string",
"maxLength": 256,
"description": "Comma-separated event status strings to include (e.g. `STATUS_IN_PROGRESS,STATUS_HALFTIME`). Applied before `exclude_status`."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"conference_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"exclude_status": {
"type": "string",
"maxLength": 256,
"description": "Comma-separated event statuses to exclude"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get moneylines for an event Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Event ID"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get opening lines for a sport and date Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256
},
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
},
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
]
},
"division_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"event_status": {
"type": "string",
"maxLength": 256,
"description": "Comma-separated event status strings to include (e.g. `STATUS_IN_PROGRESS,STATUS_HALFTIME`). Applied before `exclude_status`."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"conference_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"exclude_status": {
"type": "string",
"maxLength": 256
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get event schedule for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID"
],
"properties": {
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"from": {
"type": "string",
"format": "date",
"maxLength": 256
},
"sort": {
"allOf": [
{
"enum": [
"asc",
"desc"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "asc"
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 5000,
"minimum": 1
},
"team_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"division_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"season_year": {
"type": "integer",
"maximum": 2200,
"minimum": 1900
},
"conference_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"include_teams": {
"type": "string",
"maxLength": 256,
"description": "Include team details when present"
},
"season_type_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"last_event_uuid": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Cursor for pagination — pass the last event UUID from previous page"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}List season types per sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}List all sports Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}List all sportsbooks (alias) Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"regions"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get spreads for an event Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get team totals for an event Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get teams for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID"
],
"properties": {
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get totals (over/under) for an event Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}List all sportsbooks/affiliates Returns currently published sportsbooks with IDs, names, URLs, and an integration `status` (`healthy`, `unhealthy`, or `beta`). Availability can vary by sport and market. No authentication required. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"regions"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Set to `regions` to include geographic region data"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}List all market definitions Returns all canonical market definitions with IDs, names, period info, and whether the line value represents a participant. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}List all stat definitions Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"type": "object",
"default": {},
"properties": {
"id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Filter by stat ID"
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Filter by sport ID"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get available markets for an event Returns the list of market definitions available for this event (not prices — use the event endpoint with market_ids for prices). Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventID"
],
"properties": {
"eventID": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID from the `event_id` field returned by event endpoints"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"participant_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated participant IDs to filter (max 99) Comma-separated integer IDs; maximum 50, unique, no spaces or encoded aliases."
},
"participant_type": {
"allOf": [
{
"enum": [
"TYPE_TEAM",
"TYPE_PLAYER",
"TYPE_RESULT"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Filter participants by type"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get best available line for an event Returns the best moneyline, spread, and total across all sportsbooks. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventID"
],
"properties": {
"eventID": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID from the `event_id` field returned by event endpoints"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"period": {
"allOf": [
{
"enum": [
"period_full_game",
"period_first_half",
"period_second_half",
"period_first_period",
"period_second_period",
"period_third_period",
"period_fourth_period",
"period_live_full_game",
"period_live_first_half",
"period_live_second_half",
"period_live_first_period",
"period_live_second_period",
"period_live_third_period",
"period_live_fourth_period"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "period_full_game",
"description": "Period to get best line for"
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get best available line using event_id query Returns the best currently open sportsbook price for one event market, plus the ranked matching prices. This endpoint is event-scoped, so no date parameter is required. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "object",
"required": [
"event_id",
"market_id"
],
"properties": {
"line": {
"type": "string",
"pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)$",
"maxLength": 32,
"description": "Exact line to match. Omit to allow main-line ranking."
},
"side": {
"allOf": [
{
"enum": [
"over",
"under"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Use over or under to rank total-style markets by bettor-favorable line before price."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum ranked prices to return."
},
"event_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "The unique event ID."
},
"market_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Market ID to price."
},
"period_id": {
"type": "integer",
"default": 0,
"maximum": 2147483647,
"minimum": 0,
"description": "Market period. Defaults to the full-game period."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook affiliate IDs to include. Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"participant_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0,
"description": "Participant to price."
},
"participant_type": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0,
"description": "Participant type identifier."
},
"include_alternates": {
"type": "boolean",
"default": false,
"description": "Include alternate and extended lines."
},
"market_participant_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Exact market participant row to price."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get Best Available Line for an Event Returns the best currently open sportsbook price for one event market, plus the ranked matching prices. This endpoint is event-scoped, so no date parameter is required. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path",
"query"
],
"properties": {
"path": {
"type": "object",
"required": [
"event_id"
],
"properties": {
"event_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "The unique event ID."
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"required": [
"market_id"
],
"properties": {
"line": {
"type": "string",
"pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)$",
"maxLength": 32,
"description": "Exact line to match. Omit to allow main-line ranking."
},
"side": {
"allOf": [
{
"enum": [
"over",
"under"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Use over or under to rank total-style markets by bettor-favorable line before price."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum ranked prices to return."
},
"market_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Market ID to price."
},
"period_id": {
"type": "integer",
"default": 0,
"maximum": 2147483647,
"minimum": 0,
"description": "Market period. Defaults to the full-game period."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook affiliate IDs to include. Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"participant_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0,
"description": "Participant to price."
},
"participant_type": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0,
"description": "Participant type identifier."
},
"include_alternates": {
"type": "boolean",
"default": false,
"description": "Include alternate and extended lines."
},
"market_participant_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Exact market participant row to price."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get Bulk Best Lines by Sport and Date Returns the best currently open sportsbook price for each matching event/market/participant selection on a sport date. This is the collection form of the event best-line endpoint and avoids making one request per event. By default it considers only main lines; set include_alternates=true to rank alternate and extended lines. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path",
"query"
],
"properties": {
"path": {
"type": "object",
"required": [
"sport_id",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256,
"description": "Event date in YYYY-MM-DD format or Unix epoch timestamp."
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID."
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"required": [
"market_id"
],
"properties": {
"line": {
"type": "string",
"pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)$",
"maxLength": 32,
"description": "Exact line to match. Omit to rank main lines by bettor-favorable line, then price."
},
"side": {
"allOf": [
{
"enum": [
"over",
"under"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Use over or under to rank total-style markets by bettor-favorable line before price."
},
"limit": {
"type": "integer",
"default": 250,
"maximum": 1000,
"minimum": 1,
"description": "Maximum best-line rows to return."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840
},
"all_limit": {
"type": "integer",
"default": 5,
"maximum": 25,
"minimum": 1,
"description": "Maximum ranked prices per best-line row when include_all=true."
},
"market_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Market ID to price."
},
"period_id": {
"type": "integer",
"default": 0,
"maximum": 2147483647,
"minimum": 0,
"description": "Market period. Defaults to the full-game period."
},
"include_all": {
"type": "boolean",
"default": false,
"description": "Include ranked matching prices under each best-line row."
},
"sample_limit": {
"type": "integer",
"default": 10000,
"maximum": 20000,
"minimum": 1,
"description": "Maximum raw price rows to inspect before grouping."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook affiliate IDs to include. Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"participant_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0,
"description": "Optional participant to price across all events on the date."
},
"participant_type": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0,
"description": "Participant type identifier."
},
"include_alternates": {
"type": "boolean",
"default": false,
"description": "Include alternate and extended lines in the ranking pool."
},
"market_participant_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Exact market participant row to price."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Find Best Same-Book Parlay Price Returns sportsbooks that currently have every requested leg open, ranked by the combined same-book price. The response does not guarantee that a sportsbook will accept the exact betslip combination. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns. POST computes same-book prices from existing public prices; it does not submit a bet.
| Argument | Type | Description |
|---|---|---|
| body* | object | Read-only same-book price calculation; does not place a wager. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"legs"
],
"properties": {
"legs": {
"type": "array",
"items": {
"type": "object",
"required": [
"event_id",
"market_id",
"period_id"
],
"properties": {
"line": {
"type": "string",
"pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)$",
"maxLength": 32
},
"side": {
"allOf": [
{
"enum": [
"over",
"under"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Use over or under for total-style markets."
},
"event_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1
},
"market_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"period_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0
},
"participant_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0
},
"participant_type": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0
},
"include_alternates": {
"type": "boolean"
},
"market_participant_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
},
"maxItems": 25,
"minItems": 2
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"affiliate_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Excluded values: 27."
},
"maxItems": 10
}
},
"description": "Read-only same-book price calculation; does not place a wager.",
"additionalProperties": false
}
},
"additionalProperties": false
}Get closing lines for a sport and date Returns events with the latest recorded price for each available line and sportsbook at or before each event's scheduled start time. Before an event starts, the snapshot is provisional. Period markets use the event start time as their closing cutoff. Historical-data access and the event-date lookback depend on your plan. Omit `hide_closed` or use `false` to include currently closed prices in completed-event snapshots. Events can be returned without prices when no recorded lines match the filters. Use market history for price changes over time; see the [Historical Odds guide](/guides/historical-odds). Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256
},
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
},
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Source-supported period inclusion flag; normal plan/live-period entitlement enforcement still applies. Existing Data MCP uses all_periods."
},
"main_line": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Only return main lines (primary odds, not alternates). On opening and closing endpoints, this selects main lines in the snapshot. Use history to follow which line was main at each timestamp."
},
"market_ids": {
"type": "string",
"default": "1,2,3",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated market IDs. Defaults to `1,2,3` (Moneyline, Spread, Total); for soccer leagues and NHL the default is `1,2,3,563`. The soccer 3-way moneyline (home/draw/away) is served on market 1 as three participants; market 563 carries the NHL 60-minute regulation-time line.\n**Limit: 12 market IDs per request.** Requests with more than 12 IDs are rejected with a `400` — split larger requests into batches of 12, or omit the parameter to use the default.\nOn market-definition endpoints (`/api/v2/events/{eventID}/markets`, `/api/v2/sports/{sportID}/markets/{date}`), omitting `market_ids` returns all available market definitions instead of the default set.\nCommon IDs: 1=Moneyline, 2=Spread, 3=Total, 29=Player Points, 35=Player Rebounds, 38=Three Pointers, 39=Player Assists, 93=Player PRA, 94=Team Totals.\nLive variants: 41=Live ML, 42=Live Spread, 43=Live Total.\n Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"hide_closed": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Exclude currently closed lines when `true`. Omit or set `false` to retrieve completed historical snapshots; an event can remain when no prices match."
},
"event_status": {
"type": "string",
"maxLength": 256,
"description": "Comma-separated event status strings to include (e.g. `STATUS_IN_PROGRESS,STATUS_HALFTIME`). Applied before `exclude_status`."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded. Scores-only 0 must stand alone."
},
"exclude_status": {
"type": "string",
"maxLength": 256,
"description": "Comma-separated event status strings to exclude. Applied after `event_status`."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get conferences for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID"
],
"properties": {
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get available dates for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID"
],
"properties": {
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"format": {
"allOf": [
{
"enum": [
"iso8601",
"epoch"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "iso8601",
"description": "Date format — `iso8601` returns date strings, `epoch` returns Unix timestamps"
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get available dates for multiple sports Returns dates with events for the specified sport IDs. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"type": "object",
"default": {},
"properties": {
"format": {
"allOf": [
{
"enum": [
"iso8601",
"epoch"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "iso8601",
"description": "Date format — `iso8601` returns date strings, `epoch` returns Unix timestamps"
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
},
"sport_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sport IDs Comma-separated integer IDs; maximum 50, unique, no spaces or encoded aliases."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get event changes since a delta ID Returns raw JSON delta payloads for events that changed since `last_id`. Each delta entry is a raw JSON string containing the full event update — the `data` field is a serialized JSON string, not a parsed object. The response is wrapped in a `meta` object containing the `delta_last_id` cursor for subsequent polling. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "object",
"required": [
"last_id"
],
"properties": {
"last_id": {
"type": "string",
"maxLength": 36,
"minLength": 36,
"description": "Delta cursor (36-character UUID). Use `00000000-0000-0000-0000-000000000000` for initial fetch, then pass the `delta_last_id` from the previous response."
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Filter by sport ID"
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get divisions for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID"
],
"properties": {
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get a single event with markets `main_line=true` also excludes closed prices while selecting main lines. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventID"
],
"properties": {
"eventID": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID from the `event_id` field returned by event endpoints"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Source-supported period inclusion flag; normal plan/live-period entitlement enforcement still applies. Existing Data MCP uses all_periods."
},
"main_line": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Only return main lines (primary odds, not alternates). On opening and closing endpoints, this selects main lines in the snapshot. Use history to follow which line was main at each timestamp."
},
"market_ids": {
"type": "string",
"default": "1,2,3",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated market IDs. Defaults to `1,2,3` (Moneyline, Spread, Total); for soccer leagues and NHL the default is `1,2,3,563`. The soccer 3-way moneyline (home/draw/away) is served on market 1 as three participants; market 563 carries the NHL 60-minute regulation-time line.\n**Limit: 12 market IDs per request.** Requests with more than 12 IDs are rejected with a `400` — split larger requests into batches of 12, or omit the parameter to use the default.\nOn market-definition endpoints (`/api/v2/events/{eventID}/markets`, `/api/v2/sports/{sportID}/markets/{date}`), omitting `market_ids` returns all available market definitions instead of the default set.\nCommon IDs: 1=Moneyline, 2=Spread, 3=Total, 29=Player Points, 35=Player Rebounds, 38=Three Pointers, 39=Player Assists, 93=Player PRA, 94=Team Totals.\nLive variants: 41=Live ML, 42=Live Spread, 43=Live Total.\n Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"hide_closed": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Exclude currently closed lines when `true`. Omit or set `false` to retrieve completed historical snapshots; an event can remain when no prices match."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded. Scores-only 0 must stand alone."
},
"participant_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated participant IDs to filter (max 99) Comma-separated integer IDs; maximum 50, unique, no spaces or encoded aliases."
},
"participant_type": {
"allOf": [
{
"enum": [
"TYPE_TEAM",
"TYPE_PLAYER",
"TYPE_RESULT"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Filter participants by type"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get closing prices for an event Returns the latest recorded price for each available line and sportsbook at or before the event's scheduled start time. Before the event starts, the snapshot is provisional. Period markets use the event start time as their closing cutoff. The response always uses an `events` array, even for one event ID. Historical-data access and the event-date lookback depend on your plan. Omit `hide_closed` or use `false` to include currently closed prices in completed-event snapshots. The event can be returned without prices when no recorded lines match the filters. For price changes over time, use `GET /api/v2/events/{eventID}/markets/history` or `GET /api/v2/events/{eventID}/markets/{marketID}/history`. See the [Historical Odds guide](/guides/historical-odds) for examples. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventID"
],
"properties": {
"eventID": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID from the `event_id` field returned by event endpoints"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Source-supported period inclusion flag; normal plan/live-period entitlement enforcement still applies. Existing Data MCP uses all_periods."
},
"main_line": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Only return main lines (primary odds, not alternates). On opening and closing endpoints, this selects main lines in the snapshot. Use history to follow which line was main at each timestamp."
},
"market_ids": {
"type": "string",
"default": "1,2,3",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated market IDs. Defaults to `1,2,3` (Moneyline, Spread, Total); for soccer leagues and NHL the default is `1,2,3,563`. The soccer 3-way moneyline (home/draw/away) is served on market 1 as three participants; market 563 carries the NHL 60-minute regulation-time line.\n**Limit: 12 market IDs per request.** Requests with more than 12 IDs are rejected with a `400` — split larger requests into batches of 12, or omit the parameter to use the default.\nOn market-definition endpoints (`/api/v2/events/{eventID}/markets`, `/api/v2/sports/{sportID}/markets/{date}`), omitting `market_ids` returns all available market definitions instead of the default set.\nCommon IDs: 1=Moneyline, 2=Spread, 3=Total, 29=Player Points, 35=Player Rebounds, 38=Three Pointers, 39=Player Assists, 93=Player PRA, 94=Team Totals.\nLive variants: 41=Live ML, 42=Live Spread, 43=Live Total.\n Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"hide_closed": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Exclude currently closed lines when `true`. Omit or set `false` to retrieve completed historical snapshots; an event can remain when no prices match."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded. Scores-only 0 must stand alone."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get opening prices for an event Returns the earliest recorded price for each available line at each sportsbook. Opening snapshots are available whenever a price has been recorded, including before, during, or after an event. The response always uses an `events` array, even for one event ID. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventID"
],
"properties": {
"eventID": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID from the `event_id` field returned by event endpoints"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Source-supported period inclusion flag; normal plan/live-period entitlement enforcement still applies. Existing Data MCP uses all_periods."
},
"main_line": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Only return main lines (primary odds, not alternates). On opening and closing endpoints, this selects main lines in the snapshot. Use history to follow which line was main at each timestamp."
},
"market_ids": {
"type": "string",
"default": "1,2,3",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated market IDs. Defaults to `1,2,3` (Moneyline, Spread, Total); for soccer leagues and NHL the default is `1,2,3,563`. The soccer 3-way moneyline (home/draw/away) is served on market 1 as three participants; market 563 carries the NHL 60-minute regulation-time line.\n**Limit: 12 market IDs per request.** Requests with more than 12 IDs are rejected with a `400` — split larger requests into batches of 12, or omit the parameter to use the default.\nOn market-definition endpoints (`/api/v2/events/{eventID}/markets`, `/api/v2/sports/{sportID}/markets/{date}`), omitting `market_ids` returns all available market definitions instead of the default set.\nCommon IDs: 1=Moneyline, 2=Spread, 3=Total, 29=Player Points, 35=Player Rebounds, 38=Three Pointers, 39=Player Assists, 93=Player PRA, 94=Team Totals.\nLive variants: 41=Live ML, 42=Live Spread, 43=Live Total.\n Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"hide_closed": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Exclude currently closed lines when `true`. Omit or set `false` to retrieve completed historical snapshots; an event can remain when no prices match."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded. Scores-only 0 must stand alone."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get events across sports for a date Returns schedule listing dates grouped by sport (`sport_id` → date strings) for the given date. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
},
"sport_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sport IDs Comma-separated integer IDs; maximum 50, unique, no spaces or encoded aliases."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get events with markets for a sport and date Returns events with full market/odds data for the specified sport and date. This is the primary endpoint for building odds screens. `main_line=true` also excludes closed prices while selecting main lines. For known zero-delay access, this response's positive whole-integer `meta.delta_last_id` can bootstrap `/api/v2/markets/delta` only when this response explicitly reports `X-Data-Delay-Seconds: 0`. If that header is positive, absent, or invalid, use scoped snapshots instead; do not start market-delta polling with `0`. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256
},
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
},
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Source-supported period inclusion flag; normal plan/live-period entitlement enforcement still applies. Existing Data MCP uses all_periods."
},
"main_line": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Only return main lines (primary odds, not alternates). On opening and closing endpoints, this selects main lines in the snapshot. Use history to follow which line was main at each timestamp."
},
"market_ids": {
"type": "string",
"default": "1,2,3",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated market IDs. Defaults to `1,2,3` (Moneyline, Spread, Total); for soccer leagues and NHL the default is `1,2,3,563`. The soccer 3-way moneyline (home/draw/away) is served on market 1 as three participants; market 563 carries the NHL 60-minute regulation-time line.\n**Limit: 12 market IDs per request.** Requests with more than 12 IDs are rejected with a `400` — split larger requests into batches of 12, or omit the parameter to use the default.\nOn market-definition endpoints (`/api/v2/events/{eventID}/markets`, `/api/v2/sports/{sportID}/markets/{date}`), omitting `market_ids` returns all available market definitions instead of the default set.\nCommon IDs: 1=Moneyline, 2=Spread, 3=Total, 29=Player Points, 35=Player Rebounds, 38=Three Pointers, 39=Player Assists, 93=Player PRA, 94=Team Totals.\nLive variants: 41=Live ML, 42=Live Spread, 43=Live Total.\n Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"hide_closed": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Exclude currently closed lines when `true`. Omit or set `false` to retrieve completed historical snapshots; an event can remain when no prices match."
},
"event_status": {
"type": "string",
"maxLength": 256,
"description": "Comma-separated event status strings to include (e.g. `STATUS_IN_PROGRESS,STATUS_HALFTIME`). Applied before `exclude_status`."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded. Scores-only 0 must stand alone."
},
"exclude_status": {
"type": "string",
"maxLength": 256,
"description": "Comma-separated event status strings to exclude"
},
"hide_no_markets": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Hide events with no market data"
},
"participant_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated participant IDs to filter (max 99) Comma-separated integer IDs; maximum 50, unique, no spaces or encoded aliases."
},
"participant_type": {
"allOf": [
{
"enum": [
"TYPE_TEAM",
"TYPE_PLAYER",
"TYPE_RESULT"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Filter participants by type"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get one futures competition, with progress and leaders Returns **one** futures/outright competition event — the same envelope and event object shape as `GET /api/v2/sports/{sportID}/futures` (`meta.delta_last_id`, `events` with a single event carrying `event_id`, `sport_id`, `event_date`, `settle_by`, `event_status`, `settlement`, `schedule`, `markets`) — plus up to three optional detail-only keys not served on the listing. **Early access — requires an Ultra plan or higher.** **`progress`** — the competition's live non-odds state (a golf leaderboard, a team-sport standings table), refreshed on its own cycle independent of the odds board. `entries[].participant_id` is the same participant ID space `markets[].participants[].id` uses, so a progress row joins directly to a price. Omitted entirely (never `null`) when no progress document exists yet for the competition — "priced, no odds-board progress" is the normal state for a fresh team-championship board, not a degraded response. See [Competition Stats (Progress)](/guides/futures#competition-stats-progress) for the full field-by-field breakdown of both kinds live today. **`leaders`** / **`player_leaders`** — optional curated season-stats leaderboards, team-grain and player-grain respectively, for a hand-verified set of sports. Both reuse the same `{stat, stat_id, season_year, entries[]}` shape and are omitted entirely (never an empty array) when the sport is not curated or no stat rows exist yet — see [Competition Stats (Progress)](/guides/futures#competition-stats-progress) for the curated sport list and the two distinct entry ID spaces. **Settled competitions are always served here.** Unlike the listing (which hides settled markets and terminal events unless `include_settled=true`), this is a deep link to a specific competition you already hold the ID for, and it keeps working after settlement, with the graded results visible in `settlement`. There is no `include_settled` parameter on this endpoint. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type |
|---|
Get futures for a sport Returns futures/outright **competition events** (e.g. tournament winner) for a sport, with future-class markets in the standard V2 market → participants → lines → prices shape and per-market settlement state. Competition events are excluded from the dated game endpoints and served only here. **Early access — requires an Ultra plan or higher.** A competition is an **interval**, not an instant: `event_date` is when it starts and `settle_by` is when it must have graded. Futures events carry no `teams` array and no score — the human-readable identity is `schedule.event_name`. **Date filtering uses interval overlap.** An event is returned when its `[event_date, settle_by]` span intersects the requested window — `settle_by >= from` and `event_date <= to`. So the default `from=now` means "in flight right now" and matches a season future that started months ago. **Paging is keyset-based** (no skip parameter). When more results exist the response carries `meta.next_cursor`; pass it back verbatim as `cursor`. Ordering is soonest-to-resolve first: `settle_by`, then `event_date`, then `event_id`. `meta.count` is the number of events on the page, `meta.has_more` says whether another page exists, and `meta.total` is the number of events matching your filters across all pages, so a single call tells you the size of the listing. **Default visibility:** settled markets are removed per market, an event is hidden once every requested future-class market on it has settled, and terminal (final/canceled/abandoned) events are excluded. `include_settled=true` lifts all of those **and** the default `from=now`, so settled history is reachable. **Delta bootstrap:** On known zero-delay access, `meta.delta_last_id` can seed `GET /api/v2/markets/delta` only when this snapshot explicitly reports `X-Data-Delay-Seconds: 0`; it is a positive whole-integer cursor. With a positive, absent, or invalid delay header, keep using scoped snapshots and do not substitute `0`. Futures market IDs are **not** in the delta feed's default set — pass them explicitly (e.g. `market_ids=1141`) when polling. See the [Futures guide](/guides/futures) for the full integration recipe. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
List Hedge Opportunities (v2) Returns current arbitrage/hedge opportunities across sportsbooks. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"type": "object",
"default": {},
"properties": {
"sort": {
"allOf": [
{
"enum": [
"asc",
"desc"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "desc"
},
"type": {
"allOf": [
{
"enum": [
"2ways",
"mainlines",
"props",
"3ways",
"middles",
"posev",
"openev"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "2ways",
"description": "Opportunity type filter (e.g. mainlines, props)"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 1000,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 1000000,
"minimum": 0
},
"event_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1
},
"market_id": {
"type": "string",
"maxLength": 256
},
"min_percent": {
"type": "string",
"pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)$",
"maxLength": 32
},
"include_live": {
"type": "boolean"
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"include_closed": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}List Hedge Opportunities for an Event (v2) Returns arbitrage/hedge opportunities for a specific event. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"event_id"
],
"properties": {
"event_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "The unique event ID"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"sort": {
"allOf": [
{
"enum": [
"asc",
"desc"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "desc"
},
"type": {
"allOf": [
{
"enum": [
"2ways",
"mainlines",
"props",
"3ways",
"middles",
"posev",
"openev"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "2ways",
"description": "Opportunity type filter (e.g. mainlines, props)"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 1000,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 1000000,
"minimum": 0
},
"market_id": {
"type": "string",
"maxLength": 256
},
"min_percent": {
"type": "string",
"pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)$",
"maxLength": 32
},
"include_live": {
"type": "boolean"
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"include_closed": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get a Hedge Opportunity by ID (v2) Returns one hedge opportunity from the selected opportunity type. IDs are unique within an opportunity type, not across every hedge type, so an ID copied from a non-mainlines feed must be requested with that feed's concrete `type`. If omitted, `type` defaults to `mainlines` for backwards compatibility. Only the enumerated generally available opportunity types are part of this public contract. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "The numeric hedge opportunity ID"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"type": {
"allOf": [
{
"enum": [
"mainlines",
"props",
"3ways",
"middles",
"posev",
"openev"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "mainlines",
"description": "The concrete opportunity type containing this ID; defaults to mainlines"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get market price history for an event Returns recorded price changes for the requested markets and sportsbooks, subject to your plan's historical-data access. Data can be available before, during, or after an event as prices are recorded. Each response is bounded by the requested limit. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventID"
],
"properties": {
"eventID": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID from the `event_id` field returned by event endpoints"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"to": {
"type": "string",
"format": "date-time",
"maxLength": 256,
"description": "Inclusive end time (RFC3339)"
},
"from": {
"type": "string",
"format": "date-time",
"maxLength": 256,
"description": "Inclusive start time (RFC3339)"
},
"limit": {
"type": "integer",
"default": 1000,
"maximum": 5000,
"minimum": 1,
"description": "Maximum total rows across all requested markets and sportsbooks. Invalid or out-of-range values use 1000."
},
"main_line": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "When `true`, return only history rows (or chart points) that were the sportsbook's main line when written — `is_main_line` = true on history rows, `m` = true on chart points. Sorted by time, each change of the line value for a participant is a main-line move at that timestamp."
},
"market_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated market IDs to filter. Defaults to `1,2,3`; maximum 12. Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get line price chart data for a specific market Returns time-series price data suitable for charting line movement. To chart one participant, first discover its public `participant_id` with `GET /api/v2/markets/participants` for the same event and market, then pass that value here. For totals (market `3`), discover the `TYPE_RESULT` Over and Under participants and request each side separately. Series are grouped by affiliate and can otherwise contain points for more than one participant. `main_line=true` keeps only the points that were the main line when written. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventID",
"marketID"
],
"properties": {
"eventID": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID from the `event_id` field returned by event endpoints"
},
"marketID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Market ID"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"to": {
"type": "string",
"format": "date-time",
"maxLength": 256,
"description": "Inclusive end time (RFC3339)"
},
"from": {
"type": "string",
"format": "date-time",
"maxLength": 256,
"description": "Inclusive start time (RFC3339)"
},
"line": {
"type": "string",
"pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)$",
"maxLength": 32,
"description": "Filter by line value"
},
"limit": {
"type": "integer",
"default": 1000,
"maximum": 5000,
"minimum": 1,
"description": "Maximum total points across all returned sportsbooks. Invalid or out-of-range values use 1000."
},
"main_line": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "When `true`, return only history rows (or chart points) that were the sportsbook's main line when written — `is_main_line` = true on history rows, `m` = true on chart points. Sorted by time, each change of the line value for a participant is a main-line move at that timestamp."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"participant_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0,
"description": "Filter by the public canonical `participant_id` returned by `GET /api/v2/markets/participants` for this event and market. For totals (market `3`), use the discovered `TYPE_RESULT` Over or Under participant ID; do not substitute the participant record `id`."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get price history for specific market line prices Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "object",
"required": [
"market_line_price_ids"
],
"properties": {
"to": {
"type": "string",
"format": "date-time",
"maxLength": 256,
"description": "End time (RFC3339)"
},
"from": {
"type": "string",
"format": "date-time",
"maxLength": 256,
"description": "Start time (RFC3339)"
},
"limit": {
"type": "integer",
"default": 1000,
"maximum": 5000,
"minimum": 1
},
"main_line": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "When `true`, return only history rows (or chart points) that were the sportsbook's main line when written — `is_main_line` = true on history rows, `m` = true on chart points. Sorted by time, each change of the line value for a participant is a main-line move at that timestamp."
},
"market_line_price_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated market line price IDs (max 50) Comma-separated integer IDs; maximum 50, unique, no spaces or encoded aliases."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get available markets by date Returns available market definitions for each sport on the given date. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
},
"hide_closed_markets": {
"allOf": [
{
"enum": [
"1"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Set to `1` to hide closed markets"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get available markets for a sport and date Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256
},
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
},
"hide_closed_markets": {
"allOf": [
{
"enum": [
"1"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Set to `1` to hide closed markets"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get market price changes since a given ID Returns market line price changes (new, updated, closed) since the specified `last_id`. Use for efficient polling. **Bootstrap flow:** On known zero-delay access, call `GET /api/v2/sports/{sportID}/events/{date}` with the snapshot scope you need. Use its positive whole-integer `meta.delta_last_id` only when that response explicitly reports `X-Data-Delay-Seconds: 0`, then pass it as `last_id`. If the header is positive, absent, or invalid, keep using scoped snapshots; do not substitute `0`. **Staleness guard:** Cursors older than 30 minutes are rejected with HTTP 400. After a cursor error, take at most one fresh scoped snapshot and resume only when it meets the same zero-delay and valid-cursor conditions. Do not loop bootstrap requests. **Core live markets:** Event snapshots expand `market_ids=1,2,3` to include in-play IDs. This delta endpoint filters IDs literally, so poll `1,2,3,41,42,43` to receive full-game core updates before and during play. Returned rows retain their actual market IDs. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "object",
"required": [
"last_id"
],
"properties": {
"limit": {
"type": "integer",
"default": 1000,
"maximum": 5000,
"minimum": 1
},
"last_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Return changes with ID greater than this value. On known zero-delay access, obtain a positive whole-integer initial cursor from `meta.delta_last_id` in a scoped v2 events snapshot that explicitly reports `X-Data-Delay-Seconds: 0`. Cursors older than 30 minutes are rejected; do not use `0` as a fallback."
},
"event_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Filter by event ID"
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Filter by sport ID"
},
"market_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Literal comma-separated market-ID filter. To poll full-game core updates before and during play, include `1,2,3,41,42,43`; event snapshots expand `1,2,3` to include the in-play IDs. Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get market participants Lists teams, players, or result sides for the requested event and markets. Use `participant_id` from this response, rather than `id`, to filter a participant-specific chart. Market `3` totals use `TYPE_RESULT` Over and Under participants, while markets `1` and `2` use `TYPE_TEAM` participants. For example, discover totals with `GET /api/v2/markets/participants?event_id=733a06aa4f4f2a3af7872c3667a60f22&market_ids=3&participant_type=TYPE_RESULT`, then request each discovered side from `GET /api/v2/events/{eventID}/markets/{marketID}/history`. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "object",
"required": [
"event_id"
],
"properties": {
"event_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID that scopes participant discovery."
},
"market_ids": {
"type": "string",
"default": "1,2,3",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated market IDs. Defaults to `1,2,3` when omitted. Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"participant_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated public canonical participant IDs to return. Comma-separated integer IDs; maximum 50, unique, no spaces or encoded aliases."
},
"participant_type": {
"allOf": [
{
"enum": [
"TYPE_TEAM",
"TYPE_PLAYER",
"TYPE_RESULT"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Filter by participant type."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get opening lines for a sport and date Returns events with the earliest recorded price for each available line at each sportsbook. Opening snapshots are available whenever a price has been recorded, including before, during, or after an event. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256
},
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
},
"include": {
"allOf": [
{
"enum": [
"all_periods"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Source-supported period inclusion flag; normal plan/live-period entitlement enforcement still applies. Existing Data MCP uses all_periods."
},
"main_line": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Only return main lines (primary odds, not alternates). On opening and closing endpoints, this selects main lines in the snapshot. Use history to follow which line was main at each timestamp."
},
"market_ids": {
"type": "string",
"default": "1,2,3",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated market IDs. Defaults to `1,2,3` (Moneyline, Spread, Total); for soccer leagues and NHL the default is `1,2,3,563`. The soccer 3-way moneyline (home/draw/away) is served on market 1 as three participants; market 563 carries the NHL 60-minute regulation-time line.\n**Limit: 12 market IDs per request.** Requests with more than 12 IDs are rejected with a `400` — split larger requests into batches of 12, or omit the parameter to use the default.\nOn market-definition endpoints (`/api/v2/events/{eventID}/markets`, `/api/v2/sports/{sportID}/markets/{date}`), omitting `market_ids` returns all available market definitions instead of the default set.\nCommon IDs: 1=Moneyline, 2=Spread, 3=Total, 29=Player Points, 35=Player Rebounds, 38=Three Pointers, 39=Player Assists, 93=Player PRA, 94=Team Totals.\nLive variants: 41=Live ML, 42=Live Spread, 43=Live Total.\n Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"hide_closed": {
"allOf": [
{
"enum": [
"true",
"false"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "false",
"description": "Exclude currently closed lines when `true`. Omit or set `false` to retrieve completed historical snapshots; an event can remain when no prices match."
},
"event_status": {
"type": "string",
"maxLength": 256,
"description": "Comma-separated event status strings to include (e.g. `STATUS_IN_PROGRESS,STATUS_HALFTIME`). Applied before `exclude_status`."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded. Scores-only 0 must stand alone."
},
"exclude_status": {
"type": "string",
"maxLength": 256,
"description": "Comma-separated event status strings to exclude. Applied after `event_status`."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get opening prices for an event's markets Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventID"
],
"properties": {
"eventID": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID from the `event_id` field returned by event endpoints"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"market_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated market IDs Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get Bookmaker Outliers by Sport and Date using sport_id/date query Returns prices from one sportsbook that are most out of line with the peer-book consensus for matching event, market, period, participant, and line. The date scope keeps the query bounded and cacheable. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "object",
"required": [
"sport_id",
"date",
"affiliate_id"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256,
"description": "Event date in YYYY-MM-DD format or Unix epoch timestamp."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum outliers to return."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "Minutes from UTC for timezone adjustment."
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID."
},
"min_peers": {
"type": "integer",
"default": 2,
"maximum": 2147483647,
"minimum": 1,
"description": "Minimum peer prices required to calculate consensus."
},
"affiliate_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sportsbook affiliate ID to compare against peer books. Excluded values: 27."
},
"sample_limit": {
"type": "integer",
"default": 1000,
"maximum": 5000,
"minimum": 1,
"description": "Maximum candidate prices to inspect before ranking."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook affiliate IDs allowed by the request. Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get Bookmaker Outliers by Sport and Date Returns prices from one sportsbook that are most out of line with the peer-book consensus for matching event, market, period, participant, and line. The date scope keeps the query bounded and cacheable. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path",
"query"
],
"properties": {
"path": {
"type": "object",
"required": [
"sport_id",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256,
"description": "Event date in YYYY-MM-DD format or Unix epoch timestamp."
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID."
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"required": [
"affiliate_id"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum outliers to return."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "Minutes from UTC for timezone adjustment."
},
"min_peers": {
"type": "integer",
"default": 2,
"maximum": 2147483647,
"minimum": 1,
"description": "Minimum peer prices required to calculate consensus."
},
"affiliate_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sportsbook affiliate ID to compare against peer books. Excluded values: 27."
},
"sample_limit": {
"type": "integer",
"default": 1000,
"maximum": 5000,
"minimum": 1,
"description": "Maximum candidate prices to inspect before ranking."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook affiliate IDs allowed by the request. Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Find Best Same-Book Parlay Price Returns sportsbooks that currently have every requested leg open, ranked by the combined same-book price. The response does not guarantee that a sportsbook will accept the exact betslip combination. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns. POST computes same-book prices from existing public prices; it does not submit a bet.
| Argument | Type | Description |
|---|---|---|
| body* | object | Read-only same-book price calculation; does not place a wager. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"legs"
],
"properties": {
"legs": {
"type": "array",
"items": {
"type": "object",
"required": [
"event_id",
"market_id",
"period_id"
],
"properties": {
"line": {
"type": "string",
"pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)$",
"maxLength": 32
},
"side": {
"allOf": [
{
"enum": [
"over",
"under"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"description": "Use over or under for total-style markets."
},
"event_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1
},
"market_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
},
"period_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0
},
"participant_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0
},
"participant_type": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0
},
"include_alternates": {
"type": "boolean"
},
"market_participant_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
},
"maxItems": 25,
"minItems": 2
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"affiliate_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Excluded values: 27."
},
"maxItems": 10
}
},
"description": "Read-only same-book price calculation; does not place a wager.",
"additionalProperties": false
}
},
"additionalProperties": false
}Get a player by ID Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"playerID"
],
"properties": {
"playerID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get player game stats for an event Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventID"
],
"properties": {
"eventID": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID from the `event_id` field returned by event endpoints"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"stats_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated stat IDs (max 12) Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"player_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated player IDs (max 6) Comma-separated integer IDs; maximum 6, unique, no spaces or encoded aliases."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get player season stats for a team Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"teamID"
],
"properties": {
"teamID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"year": {
"type": "integer",
"maximum": 2200,
"minimum": 1900,
"description": "Season year (defaults to current year)"
},
"stats_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated stat IDs (max 12) Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"player_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated player IDs Comma-separated integer IDs; maximum 6, unique, no spaces or encoded aliases."
},
"season_type": {
"type": "string",
"default": "2",
"maxLength": 256
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get players for a team Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"teamID"
],
"properties": {
"teamID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Normalized team ID"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get play-by-play for an event Returns the play-by-play timeline for a live or completed event — one entry per play with description, period, game clock, running score, and (as attribution rolls out) the players involved. Live game state and play-by-play require an **Ultra plan or higher**; keys on lower tiers receive a `403`. The companion `live_game_state` snapshot (current inning/quarter, count, base runners, possession, and more) is embedded on live event payloads for entitled keys. Also available for streaming via the `plays` channel on the V2 WebSocket. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventID"
],
"properties": {
"eventID": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID from the `event_id` field returned by event endpoints"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 500,
"minimum": 1,
"description": "Number of plays to return. The most recent plays are selected, then returned in ascending `sequence` order. Values above 500 are capped."
},
"before_sequence": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Pagination cursor — returns plays with `sequence` lower than this value. Use the lowest `sequence` from the previous page to walk backwards through long games."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Read public allowlisted tournament schedule and scores (no odds) Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"tournament"
],
"properties": {
"tournament": {
"allOf": [
{
"enum": [
"fifa"
],
"type": "string"
},
{
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1
}
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}List season types per sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}List all sports Returns all available sports with their IDs. No authentication required. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}List all sportsbooks (alias for /affiliates) Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"type": "object",
"default": {},
"properties": {
"include": {
"allOf": [
{
"enum": [
"regions"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get team game stats for an event Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"eventID"
],
"properties": {
"eventID": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID from the `event_id` field returned by event endpoints"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"team_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Filter by team ID"
},
"stats_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated stat IDs (max 12) Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get a fixed complete-game stats sample Returns a static, marked sample game box for schema and parsing tests. It requires an API key but consumes zero data points. It is not a production-data entitlement and must not be polled. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Get Steamers by Sport and Date using sport_id/date query Returns open prices for a sport and event date whose implied probability moved the most during the requested lookback window. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "object",
"required": [
"sport_id",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256,
"description": "Event date in YYYY-MM-DD format or Unix epoch timestamp."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum prices to return."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "Minutes from UTC for timezone adjustment."
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook affiliate IDs to include. Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"window_minutes": {
"type": "integer",
"default": 5,
"maximum": 120,
"minimum": 1,
"description": "Lookback window for price movement."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get Steamers by Sport and Date Returns open prices for a sport and event date whose implied probability moved the most during the requested lookback window. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sport_id",
"date"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"maxLength": 256,
"description": "Event date in YYYY-MM-DD format or Unix epoch timestamp."
},
"sport_id": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID."
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum prices to return."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "Minutes from UTC for timezone adjustment."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook affiliate IDs to include. Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"window_minutes": {
"type": "integer",
"default": 5,
"maximum": 120,
"minimum": 1,
"description": "Lookback window for price movement."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get a team by ID Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"teamID"
],
"properties": {
"teamID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Normalized team ID"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get season stats for a team Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"teamID"
],
"properties": {
"teamID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"year": {
"type": "integer",
"maximum": 2200,
"minimum": 1900,
"description": "Season year (defaults to current year)"
},
"stats_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated stat IDs (max 12) Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"season_type": {
"type": "string",
"default": "2",
"maxLength": 256,
"description": "Season type ID (default 2 = regular season)"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Get teams for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| path* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID"
],
"properties": {
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}List Top Hedge Opportunities (v2) Returns the top arbitrage/hedge opportunities by edge. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.
| Argument | Type | Description |
|---|---|---|
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"type": "object",
"default": {},
"properties": {
"sort": {
"allOf": [
{
"enum": [
"asc",
"desc"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "desc"
},
"type": {
"allOf": [
{
"enum": [
"2ways",
"mainlines",
"props",
"3ways",
"middles",
"posev",
"openev"
],
"type": "string"
},
{
"type": "string",
"maxLength": 256
}
],
"default": "2ways",
"description": "Opportunity type filter (e.g. mainlines, props)"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 1000,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 1000000,
"minimum": 0
},
"event_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1
},
"market_id": {
"type": "string",
"maxLength": 256
},
"min_percent": {
"type": "string",
"pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)$",
"maxLength": 32
},
"include_live": {
"type": "boolean"
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"include_closed": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}| Description |
|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID",
"eventID"
],
"properties": {
"eventID": {
"type": "string",
"pattern": "^[A-Za-z0-9-]+$",
"maxLength": 80,
"minLength": 1,
"description": "Canonical V2 event ID from the `event_id` field returned by event endpoints"
},
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"market_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated market IDs, intersected with the future-class market set. When omitted, all future-class markets are returned. Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}| Argument | Type | Description |
|---|
| path* | object | |
| query | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "object",
"required": [
"sportID"
],
"properties": {
"sportID": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "Sport ID. Common values: 1=NCAAF, 2=NFL, 3=MLB, 4=NBA, 5=NCAAB, 6=NHL, 7=UFC, 8=WNBA, 9=CFL, 10=MLS, 11=EPL, 16=UEFA Champions League, 33=UEFA Europa League, 38=ATP Tennis, 39=WTA Tennis, 40=PGA Tour Golf, 41=Formula 1\n"
}
},
"additionalProperties": false
},
"query": {
"type": "object",
"default": {},
"properties": {
"to": {
"type": "string",
"maxLength": 256,
"description": "End of the window. A competition is returned when its `event_date` (start) is at or before this. RFC3339 timestamp or `YYYY-MM-DD`, inclusive; date-only values use the `offset` timezone. Unbounded when omitted."
},
"from": {
"type": "string",
"maxLength": 256,
"description": "Start of the window. A competition is returned when its `settle_by` is at or after this — i.e. it has not finished yet. RFC3339 timestamp or `YYYY-MM-DD`; date-only values use the `offset` timezone. Defaults to **now**, with two exceptions where it is left unbounded instead: when `include_settled=true` (so settled history, whose intervals ended in the past, stays reachable), and when an explicit `to` is itself already in the past (defaulting `from` to now would describe an inverted, always-empty window)."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1,
"description": "Maximum events returned per page (values above 200 are clamped to 200)."
},
"cursor": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Opaque keyset page token. Pass `meta.next_cursor` from the previous response verbatim; omit for the first page. Do not parse or construct the token."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -840,
"description": "UTC offset in **minutes** for the date boundary. Use `300` for US Central, `240` for Eastern, `360` for Mountain, `420` for Pacific. Without this, the API day boundary is midnight UTC."
},
"market_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated market IDs, intersected with the future-class market set (1141 = Tournament Winner on every futures sport; golf adds 1392–1396). When omitted, all future-class markets are returned. Game-market IDs match no markets here (events still return, with empty markets arrays). Comma-separated integer IDs; maximum 12, unique, no spaces or encoded aliases."
},
"affiliate_ids": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), BookMaker (7), BetCRIS (9), Pinnacle (3), Polymarket US (31), Circa Sports (32), Bet105 (33), and Heritage Sports (34). Availability varies by sport and market.\nOn V2 event endpoints (`/api/v2/sports/{sportID}/events/{date}`, `/api/v2/events/{eventID}`, and their openers/closing siblings), `affiliate_ids=0` is a scores-only sentinel: the response keeps events, scores, and status and omits markets and price objects. Other endpoints that share this parameter treat `affiliate_ids` as a sportsbook filter only.\n Comma-separated integer IDs; maximum 10, unique, no spaces or encoded aliases. Affiliate 27 is excluded."
},
"include_settled": {
"type": "boolean",
"default": false,
"description": "Set to `true` to include settled markets (with their graded `settlement` entries) and terminal (finished/canceled) competition events. Also lifts the default `from=now`, so settled history is reachable — add explicit `from`/`to` bounds to scope it."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}