GET /markets - Fetch Market Metadata

Get a list of Markets

GET https://api.sockodds.com/v2/markets/

Retrieve metadata about markets, keyed by oddID: identifiers, display names, classification (main markets, props, prop type, sub-periods) and which leagues and bookmakers currently price each one.

Query parameters

ParameterTypeDescription
oddIDstringA single oddID or comma-separated list of oddIDs. Used to specify specific Markets to return.
sportIDstringA single sportID or comma-separated list of sportIDs to filter Markets by
leagueIDstringA single leagueID or comma-separated list of leagueIDs to filter Markets by
bookmakerIDstringA single bookmakerID or comma-separated list of bookmakerIDs to filter Markets by
statIDstringA single statID or comma-separated list of statIDs to filter Markets by
statEntityIDstringA single statEntityID or comma-separated list of statEntityIDs to filter Markets by
periodIDstringA single periodID or comma-separated list of periodIDs to filter Markets by
betTypeIDstringA single betTypeID or comma-separated list of betTypeIDs to filter Markets by
sideIDstringA single sideID or comma-separated list of sideIDs to filter Markets by
isMainMarketbooleanFilter to only include main markets (main period moneyline, spread, and over/under)
isPropbooleanFilter by whether it is any type of prop bet market
isSubPeriodbooleanFilter by whether it tracks a sub/non-main period
propTypestringFilter by prop type (game_prop, team_prop, player_prop, other_prop)
isSupportedbooleanFilter whether this market is priced by at least 1 bookmaker in at least 1 league. Defaults to true if not specified.
limitnumberThe maximum number of Markets to return (default: 100, max: 10000)
cursorstringThe cursor for the request. Used to get the next group of results. This is an opaque token — pass the nextCursor value from the prior response unchanged.

Response

Paginated: { "success": true, "data": Market[], "nextCursor": string | null }

Market

Contains information about a betting market, including its classification and support data across leagues and bookmakers

FieldTypeDescription
oddIDstringThe unique identifier for this market
statID / statEntityID / periodID / betTypeID / sideIDstringThe decomposed grammar
playerID / teamIDstringSet for player props and tournament team markets
marketGroupID / marketGroupNamestringThe group (all sides of the market) this market belongs to, and its display name
isMainMarketbooleanTrue for the full-game moneyline, spread and total
isMainDerivativebooleanTrue for a sub-period of a main market
isSubPeriodbooleanTrue when the market tracks a non-main period
isPropbooleanTrue if this is a prop bet
propTypestringgame_prop, team_prop, player_prop or other_prop
isSupportedbooleanTrue if at least one bookmaker prices it in at least one league
activeEventsnumberUnique events with this market priced right now
supportobjectleagueID → { bookmakerID → true }
bookmakersstring[]SockOdds extension: the flat list of bookmakers pricing it

Status codes

StatusBody
200Success
400{"success":false,"error":"Invalid params"}
401{"success":false,"error":"Invalid API key"}
403{"success":false,"error":"Inactive API key"}
429{"success":false,"error":"Rate limit exceeded"} (Retry-After header)
500{"success":false,"error":"Query failed"}

Code samples

curl -X GET "https://api.sockodds.com/v2/markets/?leagueID=AFL&isMainMarket=true" \
  -H "x-api-key: YOUR_API_KEY"
const r = await fetch("https://api.sockodds.com/v2/markets/?leagueID=AFL&isMainMarket=true", { headers: { "x-api-key": "YOUR_API_KEY" } });
const { success, data, nextCursor, notice } = await r.json();
import requests
r = requests.get("https://api.sockodds.com/v2/markets/", params=dict(leagueID="AFL", isMainMarket="true"), headers={"x-api-key": "YOUR_API_KEY"})
body = r.json()
req, _ := http.NewRequest("GET", "https://api.sockodds.com/v2/markets/?leagueID=AFL&isMainMarket=true", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
res, err := http.DefaultClient.Do(req)
HttpRequest req = HttpRequest.newBuilder().uri(URI.create("https://api.sockodds.com/v2/markets/?leagueID=AFL&isMainMarket=true"))
    .header("x-api-key", "YOUR_API_KEY").GET().build();
HttpResponse<String> res = HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString());
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");
var body = await http.GetStringAsync("https://api.sockodds.com/v2/markets/?leagueID=AFL&isMainMarket=true");

Try it

// the response appears here
Need help?FAQ · Email · Contact