List teams
Use GET /v1/external/tournaments/{idx}/teams to read every registered pair or player, filter by category, and embed players, captain and league team.
GET /v1/external/tournaments/{idx}/teams lists every entry registered in a
tournament — a pair in doubles, a single player in singles, a squad in a team
league. Each team carries its seed, its category, and (populated by default) its
players. Use it for an entry list, a seeding sheet, or to resolve the { idx, name } team references that appear inside round payloads.
Like divisions, the response is a bare JSON array and is not paginated.
Request
GET /v1/external/tournaments/3c9b7f52-6d41-4a8e-b1f0-2e7d5c9a4b18/teams?division=7b2f4d16-9c83-4e50-a7d1-3f6c8b204e59 HTTP/1.1
Host: api-production-ea80.up.railway.app
Authorization: Bearer setto_live_…Parameters
| Parameter | In | Notes |
|---|---|---|
idx | path | The tournament's UUID v4 |
division | query | Restrict to one category. Must be a UUID v4 — a bad value is a 400 |
populate | query | Any of playerProfiles, captainProfile, leagueTeam, division. Default playerProfiles,division |
curl -s -G \
https://api-production-ea80.up.railway.app/v1/external/tournaments/3c9b7f52-6d41-4a8e-b1f0-2e7d5c9a4b18/teams \
-H "Authorization: Bearer $SETTO_API_TOKEN" \
-d division=7b2f4d16-9c83-4e50-a7d1-3f6c8b204e59 \
-d populate=playerProfiles,divisionResponse
[
{
"idx": "e0c4b839-2d17-4a56-9fb3-6e8d1c05a274",
"name": "Álvarez / Peña",
"seed": 1,
"seedNumber": 1,
"club": "Club Padel Monterrey",
"picture": null,
"ranking": 412,
"isWildCard": false,
"qualifierStatus": null,
"drawAssignment": null,
"createdAt": "2026-08-14T15:02:31.770Z",
"division": {
"idx": "7b2f4d16-9c83-4e50-a7d1-3f6c8b204e59",
"name": "Cuarta Fuerza Varonil"
},
"players": [
{
"idx": "f3a7d02c-8b19-4e65-97c4-5d1b0a6e3f82",
"firstName": "Mariana",
"lastName": "Álvarez",
"avatar": "https://cdn.setto.io/avatars/f3a7d02c.jpg"
},
{
"idx": "0d6c81b4-72ef-4a30-8b19-c5e73f2a9d64",
"firstName": "Sofía",
"lastName": "Peña",
"avatar": null
}
]
},
{
"idx": "b71f3a05-6c28-49ed-8a94-2f5b0d7e1c63",
"name": "Ramos / Ortega",
"seed": null,
"seedNumber": null,
"isWildCard": true,
"createdAt": "2026-08-19T11:47:03.214Z",
"division": {
"idx": "7b2f4d16-9c83-4e50-a7d1-3f6c8b204e59",
"name": "Cuarta Fuerza Varonil"
},
"players": [
{
"idx": "6a2e9f47-0c53-4b81-9d26-8f1c4a7b0e35",
"firstName": "Daniela",
"lastName": "Ramos",
"avatar": null
},
{
"idx": "c94b7d18-3e60-4a27-85f9-2b0d6e1a7c84",
"firstName": "Regina",
"lastName": "Ortega",
"avatar": null
}
]
}
]Tips and pitfalls
playerProfilesembeds asplayers. The populate key and the response key differ. LikewisecaptainProfileembeds ascaptainProfileIdx— an id, not an object.- Players carry no contact data, by design.
idx,firstName,lastName,avatar— that is the whole player object. There is no email, phone or social handle in the External API. - Ordering is
seedascending, unseeded last, thenname. Do not assumeteams[0]is the top seed if the organizer has not seeded the draw yet. - Singles categories still return "teams" with one entry in
players. Checkdivision.isDoubles— fromlistDivisions— if you need to label them differently. divisioncan benullon a team that has not been assigned to a category.- Use the
divisionfilter, not client-side filtering, on large tournaments: it is applied in the query. - Team leagues: populate
leagueTeamto get the squad ({ idx, name, color, logo, position, pointsAdjustment }) each entry plays for. nameis what you render. It is the organizer's chosen label for the pair and is what round payloads echo in their{ idx, name }team references, so you can display bracket slots without joining back to this list.
Related
- List divisions — get the
divisionidx to filter by. - Data model — the full field list.
- Reference:
listTeams.
MCP tool: list_teams