Skip to main content
GET
/
v2
/
sports
/
categories
List Categories
curl --request GET \
  --url https://api.predexon.com/v2/sports/categories \
  --header 'x-api-key: <api-key>'
{
  "categories": [
    {
      "category": "sports",
      "sports": [
        {
          "sport": "basketball",
          "leagues": [
            {
              "league": "nba",
              "league_name": "NBA"
            }
          ]
        },
        {
          "sport": "soccer",
          "leagues": [
            {
              "league": "epl",
              "league_name": "Premier League"
            },
            {
              "league": "lal",
              "league_name": "La Liga"
            },
            {
              "league": "sea",
              "league_name": "Serie A"
            },
            {
              "league": "ucl",
              "league_name": "Champions League"
            }
          ]
        }
      ]
    }
  ]
}

Overview

Returns the top-level navigation tree for sports discovery. The response is a hierarchy of category → sport → league. At launch, the only supported category is sports. Within sports, each distinct sport (basketball, soccer, hockey, baseball) is listed, and under each sport the leagues currently available in the canonical sports dataset. This endpoint is the intended entry point for client UIs - use it to build filter dropdowns or sport/league pickers, then pass the league or sport value to GET /v2/sports/markets to retrieve actual games.
Only leagues with at least one currently available canonical sports game are returned. Leagues with no available games will not appear until a new game is listed by a venue and matched into the canonical sports tables.

Response Fields

FieldDescription
categories[].categoryTop-level category identifier. Always "sports" at launch.
categories[].sports[].sportSport identifier - pass to /v2/sports/markets?sport=.... Values: basketball, soccer, hockey, baseball.
categories[].sports[].leagues[].leagueLeague code - pass to /v2/sports/markets?league=... (e.g. nba, epl).
categories[].sports[].leagues[].league_nameHuman-readable league name (e.g. "NBA", "Premier League").

Example Response

{
  "categories": [
    {
      "category": "sports",
      "sports": [
        {
          "sport": "basketball",
          "leagues": [
            { "league": "nba", "league_name": "NBA" }
          ]
        },
        {
          "sport": "soccer",
          "leagues": [
            { "league": "epl", "league_name": "Premier League" },
            { "league": "sea", "league_name": "Serie A" },
            { "league": "lal", "league_name": "La Liga" },
            { "league": "ucl", "league_name": "Champions League" }
          ]
        }
      ]
    }
  ]
}

Notes

  • sport values are lowercase English. Passing a league code (e.g. sport=nba) returns no results - use league=nba instead.
  • league values are 2–4 character lowercase codes. See the Sports Markets concept page for the current coverage matrix per venue.
  • The response is a complete snapshot - there is no pagination.
  • Cached for 60 seconds.

Authorizations

x-api-key
string
header
required

Data key provided by Predexon. The trading key used by the Order Router on trade.predexon.com is a separate credential.

Response

200 - application/json

Successful response