{
  "info": {
    "name": "SockOdds API",
    "description": "Every endpoint of the SockOdds API (SportsGameOdds v2 schema, Australian bookmakers). Set the apiKey variable.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.sockodds.com/v2"
    },
    {
      "key": "apiKey",
      "value": "YOUR_API_KEY_HERE"
    }
  ],
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "X-API-Key"
      },
      {
        "key": "value",
        "value": "{{apiKey}}"
      },
      {
        "key": "in",
        "value": "header"
      }
    ]
  },
  "item": [
    {
      "name": "Events",
      "item": [
        {
          "name": "Get a list of Events",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/events/?leagueID=AFL&oddsAvailable=true&limit=1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "events"
              ],
              "query": [
                {
                  "key": "eventID",
                  "value": "",
                  "description": "An eventID to get Event data for",
                  "disabled": true
                },
                {
                  "key": "eventIDs",
                  "value": "",
                  "description": "A comma separated list of eventIDs to get Event data for",
                  "disabled": true
                },
                {
                  "key": "sportID",
                  "value": "",
                  "description": "A sportID or comma-separated list of sportIDs to get Events for",
                  "disabled": true
                },
                {
                  "key": "leagueID",
                  "value": "AFL",
                  "description": "A leagueID or comma-separated list of leagueIDs to get Events for",
                  "disabled": false
                },
                {
                  "key": "type",
                  "value": "",
                  "description": "Only include Events of the specified type (match, tournament, prop)",
                  "disabled": true
                },
                {
                  "key": "oddsAvailable",
                  "value": "true",
                  "description": "Whether you want only Events which do (true) or do not (false) have odds markets which are currently available (open for wagering)",
                  "disabled": false
                },
                {
                  "key": "oddsPresent",
                  "value": "",
                  "description": "Whether you want only Events which do (true) or do not (false) have any associated odds markets regardless of whether those odds markets are currently available",
                  "disabled": true
                },
                {
                  "key": "oddID",
                  "value": "",
                  "description": "An oddID or comma-separated list of oddIDs to include odds for. Replace the playerID slot with PLAYER_ID to match every player. `oddIDs` is accepted as an alias.",
                  "disabled": true
                },
                {
                  "key": "includeOpposingOdds",
                  "value": "",
                  "description": "Whether to include opposing odds for each included oddID (`includeOpposingOddIDs` is accepted as an alias)",
                  "disabled": true
                },
                {
                  "key": "includeAltLines",
                  "value": "",
                  "description": "Whether to include alternate lines in the odds byBookmaker data. Off by default — alt lines can multiply the payload.",
                  "disabled": true
                },
                {
                  "key": "expandResults",
                  "value": "",
                  "description": "Whether to expand the results object to include all stat values rather than just the base set",
                  "disabled": true
                },
                {
                  "key": "includeOpenCloseOdds",
                  "value": "",
                  "description": "Whether to include open and close odds values (openOdds, closeOdds, openSpread, closeSpread, openOverUnder, closeOverUnder) in the odds byBookmaker data",
                  "disabled": true
                },
                {
                  "key": "bookmakerID",
                  "value": "",
                  "description": "A bookmakerID or comma-separated list of bookmakerIDs to include odds for",
                  "disabled": true
                },
                {
                  "key": "teamID",
                  "value": "",
                  "description": "A teamID or comma-separated list of teamIDs to include Events for",
                  "disabled": true
                },
                {
                  "key": "playerID",
                  "value": "",
                  "description": "A playerID or comma-separated list of playerIDs to include Events (and associated odds) for",
                  "disabled": true
                },
                {
                  "key": "finalized",
                  "value": "",
                  "description": "Only include finalized Events (true), exclude unfinalized Events (false) or all Events (omit)",
                  "disabled": true
                },
                {
                  "key": "live",
                  "value": "",
                  "description": "Only include live Events (true), only non-live Events (false) or all Events (omit)",
                  "disabled": true
                },
                {
                  "key": "started",
                  "value": "",
                  "description": "Only include Events which have previously started (true), only Events which have not previously started (false) or all Events (omit)",
                  "disabled": true
                },
                {
                  "key": "ended",
                  "value": "",
                  "description": "Only include Events which have ended (true), only Events which have not ended (false) or all Events (omit)",
                  "disabled": true
                },
                {
                  "key": "cancelled",
                  "value": "",
                  "description": "Only include cancelled Events (true), only non-cancelled Events (false) or all Events (omit)",
                  "disabled": true
                },
                {
                  "key": "startsAfter",
                  "value": "",
                  "description": "Get Events that start after this date",
                  "disabled": true
                },
                {
                  "key": "startsBefore",
                  "value": "",
                  "description": "Get Events that start before this date",
                  "disabled": true
                },
                {
                  "key": "includeFinished",
                  "value": "",
                  "description": "SockOdds extension. Without a date window, eventID or this flag, events that kicked off more than 24 hours ago are omitted. Pass true to list everything the store retains.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "1",
                  "description": "The maximum number of Events to return (default 10, max 100)",
                  "disabled": false
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "The 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.",
                  "disabled": true
                }
              ]
            },
            "description": "Retrieve sports events with odds, status, teams, players, results and bookmaker links. Filter by league, team, date or odds market. Includes every bookmaker line your plan allows."
          }
        }
      ]
    },
    {
      "name": "Odds",
      "item": [
        {
          "name": "Get the tick-by-tick odds history of an Event",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/odds/history/?eventID=afl_2026-09-12_brisbane_lions_vs_adelaide_crows&oddID=points-home-game-ml-home&bookmakerID=sportsbet,pinnacle",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "odds",
                "history"
              ],
              "query": [
                {
                  "key": "eventID",
                  "value": "afl_2026-09-12_brisbane_lions_vs_adelaide_crows",
                  "description": "The eventID to get odds history for (required)",
                  "disabled": false
                },
                {
                  "key": "oddID",
                  "value": "points-home-game-ml-home",
                  "description": "An oddID or comma-separated list of oddIDs to include ticks for. `oddIDs` is accepted as an alias.",
                  "disabled": false
                },
                {
                  "key": "bookmakerID",
                  "value": "sportsbet,pinnacle",
                  "description": "A bookmakerID or comma-separated list of bookmakerIDs to include ticks for",
                  "disabled": false
                },
                {
                  "key": "from",
                  "value": "",
                  "description": "Start of the window. Defaults to 21 days before the event's kickoff date.",
                  "disabled": true
                },
                {
                  "key": "to",
                  "value": "",
                  "description": "End of the window (exclusive, capped at now). Defaults to 2 days after kickoff. from/to may span at most 400 days.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "The maximum number of ticks to return (default 1000, max 5000)",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "The 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.",
                  "disabled": true
                }
              ]
            },
            "description": "SockOdds extension. Every price, line and bet-limit change every bookmaker has published for one event, oldest first — the raw movement behind opening, closing and steam. Captured since 2026-08-14 and kept indefinitely; the last ~28 days are answered from the live store and everything older from the archive."
          }
        }
      ]
    },
    {
      "name": "Teams",
      "item": [
        {
          "name": "Get a list of Teams by ID or league",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/teams/?leagueID=AFL",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "teams"
              ],
              "query": [
                {
                  "key": "sportID",
                  "value": "",
                  "description": "A single sportID or comma-separated list of sportIDs to get Teams for",
                  "disabled": true
                },
                {
                  "key": "leagueID",
                  "value": "AFL",
                  "description": "A single leagueID or comma-separated list of leagueIDs to get Teams for",
                  "disabled": false
                },
                {
                  "key": "teamID",
                  "value": "",
                  "description": "A single teamID or comma-separated list of teamIDs to get data for",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "The maximum number of Teams to return (default 50, max 250)",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "The 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.",
                  "disabled": true
                }
              ]
            },
            "description": "Retrieve team information including names, colours and identifiers. Filter by teamID, leagueID or sportID. Supports pagination."
          }
        }
      ]
    },
    {
      "name": "Players",
      "item": [
        {
          "name": "Get a list of Players for a specific Team or Event",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/players/?leagueID=MLB&limit=5",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "players"
              ],
              "query": [
                {
                  "key": "teamID",
                  "value": "",
                  "description": "TeamID to get Players data for",
                  "disabled": true
                },
                {
                  "key": "eventID",
                  "value": "",
                  "description": "EventID to get Players data for",
                  "disabled": true
                },
                {
                  "key": "playerID",
                  "value": "",
                  "description": "PlayerID to get data for",
                  "disabled": true
                },
                {
                  "key": "leagueID",
                  "value": "MLB",
                  "description": "SockOdds extension: a leagueID or comma-separated list to scope the player list",
                  "disabled": false
                },
                {
                  "key": "limit",
                  "value": "5",
                  "description": "The maximum number of Players to return (default 50, max 250)",
                  "disabled": false
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "The 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.",
                  "disabled": true
                }
              ]
            },
            "description": "Retrieve player information including names, team and identifiers. Filter by playerID, teamID or eventID. Supports pagination."
          }
        }
      ]
    },
    {
      "name": "Sports",
      "item": [
        {
          "name": "Get a list of sports",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/sports/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "sports"
              ],
              "query": []
            },
            "description": "Retrieve all supported sports with their sportID values."
          }
        }
      ]
    },
    {
      "name": "Leagues",
      "item": [
        {
          "name": "Get a list of Leagues",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/leagues/?sportID=RUGBY_LEAGUE",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "leagues"
              ],
              "query": [
                {
                  "key": "sportID",
                  "value": "RUGBY_LEAGUE",
                  "description": "The sport to get leagues for",
                  "disabled": false
                },
                {
                  "key": "leagueID",
                  "value": "",
                  "description": "The league to get data for",
                  "disabled": true
                }
              ]
            },
            "description": "Retrieve all supported leagues with leagueID values. `enabled` reflects what your plan can see."
          }
        }
      ]
    },
    {
      "name": "Stats",
      "item": [
        {
          "name": "Get a list of StatIDs",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/stats/?sportID=CRICKET",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "stats"
              ],
              "query": [
                {
                  "key": "statID",
                  "value": "",
                  "description": "StatID to get data for",
                  "disabled": true
                },
                {
                  "key": "sportID",
                  "value": "CRICKET",
                  "description": "SportID to get StatIDs for",
                  "disabled": false
                },
                {
                  "key": "statLevel",
                  "value": "",
                  "description": "Level of the stat, must be used in combination with sportID. Must be one of all, player, or team. Shows stats that are applicable to that specified entity, defaults to all.",
                  "disabled": true
                }
              ]
            },
            "description": "Retrieve all supported statistics with statID values. Filter by sportID and by the level (all, team, player) the stat is priced at."
          }
        }
      ]
    },
    {
      "name": "Markets",
      "item": [
        {
          "name": "Get a list of Markets",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/markets/?leagueID=AFL&isMainMarket=true",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "markets"
              ],
              "query": [
                {
                  "key": "oddID",
                  "value": "",
                  "description": "A single oddID or comma-separated list of oddIDs. Used to specify specific Markets to return.",
                  "disabled": true
                },
                {
                  "key": "sportID",
                  "value": "",
                  "description": "A single sportID or comma-separated list of sportIDs to filter Markets by",
                  "disabled": true
                },
                {
                  "key": "leagueID",
                  "value": "AFL",
                  "description": "A single leagueID or comma-separated list of leagueIDs to filter Markets by",
                  "disabled": false
                },
                {
                  "key": "bookmakerID",
                  "value": "",
                  "description": "A single bookmakerID or comma-separated list of bookmakerIDs to filter Markets by",
                  "disabled": true
                },
                {
                  "key": "statID",
                  "value": "",
                  "description": "A single statID or comma-separated list of statIDs to filter Markets by",
                  "disabled": true
                },
                {
                  "key": "statEntityID",
                  "value": "",
                  "description": "A single statEntityID or comma-separated list of statEntityIDs to filter Markets by",
                  "disabled": true
                },
                {
                  "key": "periodID",
                  "value": "",
                  "description": "A single periodID or comma-separated list of periodIDs to filter Markets by",
                  "disabled": true
                },
                {
                  "key": "betTypeID",
                  "value": "",
                  "description": "A single betTypeID or comma-separated list of betTypeIDs to filter Markets by",
                  "disabled": true
                },
                {
                  "key": "sideID",
                  "value": "",
                  "description": "A single sideID or comma-separated list of sideIDs to filter Markets by",
                  "disabled": true
                },
                {
                  "key": "isMainMarket",
                  "value": "true",
                  "description": "Filter to only include main markets (main period moneyline, spread, and over/under)",
                  "disabled": false
                },
                {
                  "key": "isProp",
                  "value": "",
                  "description": "Filter by whether it is any type of prop bet market",
                  "disabled": true
                },
                {
                  "key": "isSubPeriod",
                  "value": "",
                  "description": "Filter by whether it tracks a sub/non-main period",
                  "disabled": true
                },
                {
                  "key": "propType",
                  "value": "",
                  "description": "Filter by prop type (game_prop, team_prop, player_prop, other_prop)",
                  "disabled": true
                },
                {
                  "key": "isSupported",
                  "value": "",
                  "description": "Filter whether this market is priced by at least 1 bookmaker in at least 1 league. Defaults to true if not specified.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "The maximum number of Markets to return (default: 100, max: 10000)",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "The 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.",
                  "disabled": true
                }
              ]
            },
            "description": "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."
          }
        }
      ]
    },
    {
      "name": "Account",
      "item": [
        {
          "name": "Get rate-limits and usage data about your API key",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/account/usage",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "account",
                "usage"
              ],
              "query": []
            },
            "description": "Check your API key's tier, rate limits and current usage by interval. Calling it counts as a request like any other."
          }
        }
      ]
    },
    {
      "name": "Stream",
      "item": [
        {
          "name": "Setup streamed (WebSocket) connection",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/stream/events?feed=events:live",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "stream",
                "events"
              ],
              "query": [
                {
                  "key": "feed",
                  "value": "events:live",
                  "description": "The feed you would like to subscribe to (events:live, events:upcoming, events:byid)",
                  "disabled": false
                },
                {
                  "key": "leagueID",
                  "value": "",
                  "description": "A leagueID to stream events for",
                  "disabled": true
                },
                {
                  "key": "eventID",
                  "value": "",
                  "description": "An eventID to stream events for",
                  "disabled": true
                }
              ]
            },
            "description": "Reserved. SockOdds does not stream: the source refreshes every ~2 minutes and this endpoint answers 501 so a client written for SportsGameOdds fails loudly instead of waiting on a socket that never opens."
          }
        }
      ]
    }
  ]
}