API reference
How the generated SETTO External API reference works — one page per operation, a Try it panel you can paste a token into, and the raw OpenAPI document.
The pages in this section are generated from the SETTO External API's OpenAPI document, so they cannot drift from the API: one page per operation, with its path, method, every parameter, the security scheme and the response schema. Each page also carries a Try it panel that fires a real request from your browser, so you can see a live payload without leaving the docs. If you are looking for worked examples and advice rather than an exhaustive parameter list, read the guides instead.
The operations
| Operation | Method and path | Guide |
|---|---|---|
getMe | GET /v1/external/me | Quickstart |
listTournaments | GET /v1/external/tournaments | List tournaments |
getTournament | GET /v1/external/tournaments/{idx} | Get a tournament |
listDivisions | GET /v1/external/tournaments/{idx}/divisions | List divisions |
listTeams | GET /v1/external/tournaments/{idx}/teams | List teams |
getRound | GET /v1/external/rounds/{idx} | Get a round |
getTournamentSchedule | GET /v1/external/tournaments/{idx}/schedule | MCP server |
proposePoolPerCourtSchedule | POST /v1/external/tournaments/{idx}/schedule/proposals | MCP server |
applySchedulePlacements | POST /v1/external/tournaments/{idx}/schedule/placements | MCP server |
listActivity | GET /v1/external/activity | «Actividad» |
searchTournament | GET /v1/external/tournaments/{idx}/search | MCP server |
createTournament | POST /v1/external/tournaments | MCP server |
updateTournament | PATCH /v1/external/tournaments/{idx} | MCP server |
publishTournament | POST /v1/external/tournaments/{idx}/publish | MCP server |
setTournamentLifecycle | POST /v1/external/tournaments/{idx}/lifecycle | MCP server |
createDivision | POST /v1/external/tournaments/{idx}/divisions | MCP server |
updateDivision | PATCH /v1/external/tournaments/{idx}/divisions/{divisionIdx} | MCP server |
deleteDivision | DELETE /v1/external/tournaments/{idx}/divisions/{divisionIdx} | MCP server |
setDivisionSeeds | PUT /v1/external/tournaments/{idx}/divisions/{divisionIdx}/seeds | MCP server |
registerTeam | POST /v1/external/tournaments/{idx}/registrations | MCP server |
registerTeams | POST /v1/external/tournaments/{idx}/registrations/batch | MCP server |
updateTeam | PATCH /v1/external/tournaments/{idx}/teams/{teamIdx} | MCP server |
deleteTeam | DELETE /v1/external/tournaments/{idx}/teams/{teamIdx} | MCP server |
updatePlayer | PATCH /v1/external/tournaments/{idx}/players/{playerIdx} | MCP server |
substitutePlayer | POST /v1/external/tournaments/{idx}/teams/{teamIdx}/substitute | MCP server |
previewTeamWithdrawal | POST /v1/external/tournaments/{idx}/teams/{teamIdx}/withdraw/preview | MCP server |
withdrawTeam | POST /v1/external/tournaments/{idx}/teams/{teamIdx}/withdraw | MCP server |
previewDivisionFormat | POST /v1/external/tournaments/{idx}/divisions/{divisionIdx}/format/preview | MCP server |
applyDivisionFormat | POST /v1/external/tournaments/{idx}/divisions/{divisionIdx}/format | MCP server |
appendEliminationRound | POST /v1/external/tournaments/{idx}/divisions/{divisionIdx}/rounds/append | MCP server |
previewPools | POST /v1/external/tournaments/{idx}/rounds/{roundIdx}/pools/preview | MCP server |
applyPools | POST /v1/external/tournaments/{idx}/rounds/{roundIdx}/pools | MCP server |
previewDraw | POST /v1/external/tournaments/{idx}/rounds/{roundIdx}/draw/preview | MCP server |
applyDraw | POST /v1/external/tournaments/{idx}/rounds/{roundIdx}/draw | MCP server |
confirmDraw | POST /v1/external/tournaments/{idx}/rounds/{roundIdx}/draw/confirm | MCP server |
recordGameResult | POST /v1/external/tournaments/{idx}/games/{gameIdx}/result | MCP server |
clearGameResult | DELETE /v1/external/tournaments/{idx}/games/{gameIdx}/result | MCP server |
setGameTeams | PATCH /v1/external/tournaments/{idx}/games/{gameIdx}/teams | MCP server |
Pages are grouped by OpenAPI tag — Organization, Tournaments, Divisions, Teams, Rounds, Scheduling, Activity — which is also how the sidebar is ordered.
Using "Try it"
Every operation page has a panel where you can fill in the path and query parameters and send the request.
- Open the Authorization field and paste a SETTO API token, personal or
organization (
setto_live_…). The panel uses theapiTokenbearer scheme declared in the spec. - Fill in
idx— a real tournament or round UUID that your token reaches. - Send. The response comes back with its status, headers and body.
The request leaves your browser
The playground calls the SETTO API directly from your browser; there is no proxy in front of it, and nothing is stored on this site's servers. Even so, a token pasted into a web form is a token that has been in a web form — use a short-lived one, or revoke it afterwards from the organizer dashboard. See Authentication.
If a request fails with a network or CORS error rather than an HTTP status, the token never left your browser — check the token and the URL and try again.
The raw OpenAPI document
The same document that generates these pages is published at
/openapi.json. Point a client generator, a Postman import or
an AI agent at it:
curl -s https://docs.setto.io/openapi.json -o setto-external-api.jsonIts servers[0].url is filled in at request time from the API base URL this site
is configured against, so the URLs in a generated client are correct without
editing.
Related
- Authentication — before you paste a token anywhere.
- Errors — every status and code the reference lists.
- Rate limits — the headers on every response.