SETTO API

List divisions

Use GET /v1/external/tournaments/{idx}/divisions to read a tournament's categories, their rounds, and optionally every team registered in each one.

GET /v1/external/tournaments/{idx}/divisions lists a tournament's categories — what organizers and players call categorías. Each division carries its display order, colour, price, capacity and visibility, and by default its rounds. Use it to build a category selector, to find the round ids you will feed to getRound, or — with populate=teams — to dump an entire draw sheet in one request.

The response is a bare JSON array, not a data/meta envelope, and it is not paginated.

Request

GET /v1/external/tournaments/3c9b7f52-6d41-4a8e-b1f0-2e7d5c9a4b18/divisions?populate=rounds HTTP/1.1
Host: api-production-ea80.up.railway.app
Authorization: Bearer setto_live_…

Parameters

ParameterInNotes
idxpathThe tournament's UUID v4
populatequeryAny of rounds, teams, teams.playerProfiles, teams.leagueTeam, circuitCategory. Default rounds
curl -s -G \
  https://api-production-ea80.up.railway.app/v1/external/tournaments/3c9b7f52-6d41-4a8e-b1f0-2e7d5c9a4b18/divisions \
  -H "Authorization: Bearer $SETTO_API_TOKEN" \
  -d populate=rounds,teams,teams.playerProfiles

Response

200 OK (trimmed)
[
  {
    "idx": "7b2f4d16-9c83-4e50-a7d1-3f6c8b204e59",
    "name": "Cuarta Fuerza Varonil",
    "number": 1,
    "color": "#2563eb",
    "isDoubles": true,
    "isVisible": true,
    "price": 900,
    "minParticipants": 8,
    "maxParticipants": 32,
    "maxRegistrations": 32,
    "createdAt": "2026-06-02T18:24:55.901Z",
    "tournament": { "idx": "3c9b7f52-6d41-4a8e-b1f0-2e7d5c9a4b18" },
    "rounds": [
      {
        "idx": "9d3c6a84-7e15-4b02-8f6d-1c4a9e7b53f2",
        "name": "Pool Play",
        "type": "ROUND_ROBIN_ROUND",
        "number": 1,
        "isSetup": true,
        "isVisible": true,
        "numberOfSets": 3,
        "proSets": false,
        "playAllSets": false,
        "hasNextRoundTransitioned": true,
        "createdAt": "2026-06-02T18:25:10.338Z",
        "division": {
          "idx": "7b2f4d16-9c83-4e50-a7d1-3f6c8b204e59",
          "name": "Cuarta Fuerza Varonil"
        }
      },
      {
        "idx": "2e7f5b10-8c94-4d63-a1b8-7f0e3d6c2a95",
        "name": "Playoffs",
        "type": "SINGLE_ELIMINATION_ROUND",
        "number": 2,
        "isSetup": true,
        "isVisible": true,
        "drawSize": 8,
        "numQualifiers": 8,
        "placements": [1, 3],
        "createdAt": "2026-06-02T18:25:10.512Z",
        "division": {
          "idx": "7b2f4d16-9c83-4e50-a7d1-3f6c8b204e59",
          "name": "Cuarta Fuerza Varonil"
        }
      }
    ]
  },
  {
    "idx": "c58a1e93-0b74-42df-96e8-5a3d7f1b28c0",
    "name": "Segunda Fuerza Femenil",
    "number": 2,
    "color": "#db2777",
    "isDoubles": true,
    "isVisible": false,
    "price": 900,
    "tournament": { "idx": "3c9b7f52-6d41-4a8e-b1f0-2e7d5c9a4b18" },
    "rounds": []
  }
]

Tips and pitfalls

  • It is an array. There is no data key and no meta. res.json() gives you the list directly.
  • Ordered by number ascending — the order the organizer arranged the categories in. Render in that order; do not sort alphabetically.
  • isVisible: false categories are included. The second row above is hidden on setto.io but present here. Filter it out for a public page.
  • An empty rounds array is real information: the organizer has created the category but has not built its format yet. Combine with the tournament's isFormatComplete.
  • teams can be large. A 64-pair category with populate=teams,teams.playerProfiles is a big payload, multiplied by every category in the tournament. If you only need one category's entries, use listTeams with its division filter instead.
  • price is per the category, in the tournament's currency, and may be null when the organizer did not set one.
  • Rounds here carry division, so you can key them without a second lookup. In a TEAM_LEAGUE a round's division may be null — those rounds belong to the tournament, not to one category, and will not appear under any division.

MCP tool: list_divisions

On this page