SETTO API

Place or move games: time, court and length (needs the `schedule` scope)

POST
/v1/external/tournaments/{idx}/schedule/placements

Writes the start, court and length of every game in placements and touches nothing else: games not listed keep their time and court. All or nothing: one refused item writes none of them, and the error's details name every offending game with its own code. Needs a token minted with «Programar partidos» (scope schedule): an organization token whose minter is still an ADMIN of the organization, or a personal API token whose owner can manage the tournament; any other token is a 403 INSUFFICIENT_SCOPE. 1 to 500 placements, each game at most once. Refused: a game or court outside the tournament (GAME_NOT_FOUND, COURT_NOT_FOUND), a repeated game (DUPLICATE_GAME), a start at or before now (START_IN_PAST), a tournament whose players arrange their own times (FLEXIBLE_SCHEDULE), a locked game (409 GAME_LOCKED: finished, with a result, or already started), and any collision of the resulting schedule involving a listed game (409 SCHEDULE_CONFLICT: COURT_OVERLAP, TEAM_OVERLAP, PLAYER_OVERLAP — the same person in two categories — or HARD_PETITION, a CANNOT_PLAY petition). A placement outside a team's PREFERS petition is applied and reported in warnings (PREFERS_NOT_MET). A tournament on the free plan cannot schedule courts and times (403 FEATURE_REQUIRES_UPGRADE).

Authorization

apiToken
AuthorizationBearer <token>

API token (organization or personal)

In: header

Path Parameters

idx*string

Tournament identifier

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/external/tournaments/497f6eca-6276-4993-bfeb-53cbbbba6f08/schedule/placements" \  -H "Content-Type: application/json" \  -d '{    "placements": [      {        "gameIdx": "bf32cab9-899d-4fe1-9d0a-b2fcc16a6531",        "start": "2026-11-07T15:00:00.000Z",        "courtIdx": "a987926a-4375-460f-a8bd-609c14a4ad29",        "lengthInMinutes": 60      }    ]  }'
{  "updated": 6,  "games": [    {      "idx": "d0e1f2a3-b4c5-4678-9d0e-1f2a3b4c5d6e",      "startTime": "2026-11-07T15:00:00.000Z",      "court": {        "idx": "0f3a8c1e-59d4-4b2a-9c77-1b8e2d4f6a90"      },      "lengthInMinutes": 60    }  ],  "warnings": [    {      "gameIdx": "d0e1f2a3-b4c5-4678-9d0e-1f2a3b4c5d6e",      "teamIdx": "b8c9d0e1-f2a3-4456-8b7c-8d9e0f1a2b3c",      "code": "PREFERS_NOT_MET"    }  ]}