Create a tournament on the free plan, with its categories (needs the `manage` scope)
Creates a TOURNAMENT-type tournament on the free plan («Gratis»: 2 categories, 12 pairs or 24 singles players), as a draft («Borrador»), and answers it with its categories and its public link (publicUrl). Paid plans, prices and fútbol tournaments are set up in the dashboard. Every tournament starts with one category, «Categoría 1»: the first item of divisions configures it (name, modality, colour) and the others are created after it; more categories than the plan holds is a 403 DIVISION_LIMIT_REACHED before anything is written. The slug is generated from the name (change it with updateTournament). An organization token creates in its own organization; a personal API token or an OAuth access token creates in organizationIdx (an organization its user belongs to) or, without it, a personal tournament. At most 20 tournaments a day per organizer through the API (429 TOURNAMENT_CREATE_DAILY_CAP, Retry-After). Once the tournament exists, a category step that failed is reported in warnings (DIVISION_NOT_APPLIED) and the answer is still a 201: never create it again to fix it. Optional Idempotency-Key header. Recorded in «Actividad».
Authorization
apiToken API token (organization or personal)
In: header
Header Parameters
Optional. A unique string (1-255 visible ASCII characters) per intended write, sent again unchanged when retrying THAT write: for 24 h the same key with the same request answers the first answer again (Idempotency-Replayed: true) instead of writing twice. The same key with another request is a 422 IDEMPOTENCY_KEY_REUSED; while the first still runs, a 409 IDEMPOTENCY_IN_PROGRESS (Retry-After). A 429 or a 409 TOURNAMENT_BUSY is never stored: retry with the same key.
length <= 255Request 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
application/json
curl -X POST "https://example.com/v1/external/tournaments" \ -H "Content-Type: application/json" \ -d '{ "name": "Copa Primavera", "sport": "PADEL", "startDate": "2027-03-14", "endDate": "2027-03-15", "timezone": "America/Mexico_City" }'{ "tournament": { "idx": "f6a7b8c9-d0e1-4234-8f5a-6b7c8d9e0f1a", "slug": "liga-conquistadores-2026", "name": "Liga Conquistadores 2026", "type": "TOURNAMENT", "sport": "PADEL", "status": "IN_PROGRESS", "startDate": "2026-09-12T00:00:00.000Z", "endDate": "2026-09-14T00:00:00.000Z", "timezone": "America/Mexico_City", "addOneHour": false, "matchDays": 3, "americanoRounds": null, "courtNames": { "1": "Cancha Central", "2": "Cancha 2" }, "scheduleType": "ASSIGNED", "isPublic": true, "isFormatComplete": true, "banner": "https://cdn.setto.io/banners/liga-conquistadores-2026.jpg", "whoCanSubmit": "ADMINS_ONLY", "resultApprovalMode": "NONE", "displayPoints": true, "matchdayBonusEnabled": true, "inscriptionCost": 1200, "totalPrize": 50000, "standingColumns": [ { "ordering": 1, "type": "GAMES_WON" } ], "sportSettings": { "modality": "F7", "extraTime": true, "matchMinutes": 50, "h2hRequiresCompleteSubset": true, "forfeitScore": 3, "fairPlayWeights": { "yellow": 1, "secondYellow": 3, "directRed": 4, "yellowThenRed": 5 } }, "createdAt": "2026-08-01T16:40:00.000Z", "publicUrl": "https://www.setto.io/t/liga-conquistadores-2026", "organization": { "idx": "e5f6a7b8-c9d0-4123-8e4f-5a6b7c8d9e0f", "name": "Setto Padel Tour", "slug": "setto-padel-tour" }, "club": { "idx": "7c1b9d2e-3f45-4a68-8b90-1c2d3e4f5a6b", "name": "Club Deportivo Santa Fe", "address": "Av. Vasco de Quiroga 3800", "website": "https://clubsantafe.mx", "image": "https://cdn.setto.io/clubs/santa-fe.png", "location": { "formattedAddress": "Av. Vasco de Quiroga 3800, Santa Fe, 05348 Ciudad de Mexico", "city": "Ciudad de Mexico", "country": "Mexico", "lat": 19.3607, "lng": -99.2739, "postalCode": "05348", "province": "CDMX" }, "courts": [ { "idx": "0f3a8c1e-59d4-4b2a-9c77-1b8e2d4f6a90", "name": "Cancha 1", "position": 1 } ] }, "divisions": [ { "idx": "a7b8c9d0-e1f2-4345-8a6b-7c8d9e0f1a2b", "name": "Primera Varonil", "number": 1, "color": "#1E3A8A", "isDoubles": true, "isVisible": true, "price": 1200, "minParticipants": null, "maxParticipants": null, "maxRegistrations": 32, "createdAt": "2026-08-01T16:44:00.000Z", "tournament": { "idx": "f6a7b8c9-d0e1-4234-8f5a-6b7c8d9e0f1a" }, "rounds": [ { "idx": "a9b0c1d2-e3f4-4567-8a81-920314253647", "name": "Pool Play", "label": { "es": "Fase de Grupos", "en": "Group stage" }, "type": "ROUND_ROBIN_ROUND", "number": 1, "isSetup": true, "isVisible": true, "gamesPerTeam": 3, "gamesRequireWinners": true, "numberOfSets": 3, "proSets": false, "playAllSets": false, "pointsPerSet": 11, "placements": [ 1, 2 ], "playEachTeamOnce": true, "trueDoubleEliminationRound": null, "numQualifiers": null, "drawSize": null, "hasNextRoundTransitioned": false, "createdAt": "2026-08-20T10:55:00.000Z", "division": { "idx": "a7b8c9d0-e1f2-4345-8a6b-7c8d9e0f1a2b", "name": "Primera Varonil" }, "pools": [ { "idx": "d6e7f8a9-b0c1-4234-8d5e-6f7081920314", "name": "Grupo A", "number": 1, "teams": [ { "idx": "b8c9d0e1-f2a3-4456-8b7c-8d9e0f1a2b3c", "name": "Lugo / Ramirez" } ], "standings": [ { "idx": "c5d6e7f8-a9b0-4123-8c4d-5e6f70819203", "rank": 1, "awardedPoints": 250, "team": { "idx": "b8c9d0e1-f2a3-4456-8b7c-8d9e0f1a2b3c", "name": "Lugo / Ramirez" }, "teamStats": { "idx": "b4c5d6e7-f8a9-4012-8b3c-4d5e6f708192", "points": 9, "wins": 3, "losses": 1, "ties": 0, "cancelled": 0, "forfeits": 0, "pointsFor": 24, "pointsAgainst": 15, "setsPointsFor": 7, "setsPointsAgainst": 3, "totalGamesPlayed": 4, "pointsDifference": 9, "setsPointsDifference": 4 } } ] } ], "games": [ { "idx": "a3b4c5d6-e7f8-4901-8a2b-3c4d5e6f7081", "number": 7, "displayNumber": 7, "status": "FINISHED", "time": "2026-09-12T16:00:00.000Z", "lengthInMinutes": 90, "courtNumber": 2, "matchDay": 1, "roundDetail": "Grupo A", "scheduleNumber": 14, "sectionNumber": 1, "isRetirement": false, "isDoubleForfeit": false, "retiredTeamId": null, "liveStartedAt": null, "resultApprovalStatus": "PENDING", "submittedAt": null, "homeTeamDetails": { "label": "Winner of Game 3", "labelEs": "Ganador del juego 3", "teamNumber": 2, "poolNumber": 1, "poolRank": 1, "sourceGameNumber": 3, "sourceResult": "WINNER" }, "awayTeamDetails": { "label": "Winner of Game 3", "labelEs": "Ganador del juego 3", "teamNumber": 2, "poolNumber": 1, "poolRank": 1, "sourceGameNumber": 3, "sourceResult": "WINNER" }, "createdAt": "2026-08-20T11:02:00.000Z", "homeTeam": { "idx": "b8c9d0e1-f2a3-4456-8b7c-8d9e0f1a2b3c", "name": "Lugo / Ramirez" }, "awayTeam": { "idx": "b8c9d0e1-f2a3-4456-8b7c-8d9e0f1a2b3c", "name": "Lugo / Ramirez" }, "winner": { "idx": "b8c9d0e1-f2a3-4456-8b7c-8d9e0f1a2b3c", "name": "Lugo / Ramirez" }, "court": { "idx": "0f3a8c1e-59d4-4b2a-9c77-1b8e2d4f6a90", "name": "Cancha 1", "position": 1 }, "score": { "idx": "f2a3b4c5-d6e7-4890-8f1a-2b3c4d5e6f70", "home": 2, "away": 1, "playerPointsBalanced": null, "extraTime": null, "penalties": null, "decisionMethod": "REGULATION", "sets": [ { "idx": "e1f2a3b4-c5d6-4789-8e0f-1a2b3c4d5e6f", "home": 6, "away": 4, "number": 1, "isTieBreak": false } ] } } ], "draws": [ { "idx": "f8a9b0c1-d2e3-4456-8f70-819203142536", "placement": 1, "rounds": [ { "idx": "e7f8a9b0-c1d2-4345-8e6f-708192031425", "label": "Semifinal", "order": 2, "games": [ { "idx": "a3b4c5d6-e7f8-4901-8a2b-3c4d5e6f7081", "number": 7, "displayNumber": 7, "status": "FINISHED", "time": "2026-09-12T16:00:00.000Z", "lengthInMinutes": 90, "courtNumber": 2, "matchDay": 1, "roundDetail": "Grupo A", "scheduleNumber": 14, "sectionNumber": 1, "isRetirement": false, "isDoubleForfeit": false, "retiredTeamId": null, "liveStartedAt": null, "resultApprovalStatus": "PENDING", "submittedAt": null, "homeTeamDetails": { "label": "Winner of Game 3", "labelEs": "Ganador del juego 3", "teamNumber": 2, "poolNumber": 1, "poolRank": 1, "sourceGameNumber": 3, "sourceResult": "WINNER" }, "awayTeamDetails": { "label": "Winner of Game 3", "labelEs": "Ganador del juego 3", "teamNumber": 2, "poolNumber": 1, "poolRank": 1, "sourceGameNumber": 3, "sourceResult": "WINNER" }, "createdAt": "2026-08-20T11:02:00.000Z", "homeTeam": { "idx": "b8c9d0e1-f2a3-4456-8b7c-8d9e0f1a2b3c", "name": "Lugo / Ramirez" }, "awayTeam": { "idx": "b8c9d0e1-f2a3-4456-8b7c-8d9e0f1a2b3c", "name": "Lugo / Ramirez" }, "winner": { "idx": "b8c9d0e1-f2a3-4456-8b7c-8d9e0f1a2b3c", "name": "Lugo / Ramirez" }, "court": { "idx": "0f3a8c1e-59d4-4b2a-9c77-1b8e2d4f6a90", "name": "Cancha 1", "position": 1 }, "score": { "idx": "f2a3b4c5-d6e7-4890-8f1a-2b3c4d5e6f70", "home": 2, "away": 1, "playerPointsBalanced": null, "extraTime": null, "penalties": null, "decisionMethod": "REGULATION", "sets": [ {} ] } } ] } ] } ] } ], "teams": [ { "idx": "b8c9d0e1-f2a3-4456-8b7c-8d9e0f1a2b3c", "name": "Lugo / Ramirez", "seed": 3, "seedNumber": 1, "club": "Club Deportivo Santa Fe", "picture": "https://cdn.setto.io/teams/lugo-ramirez.png", "description": "Campeones 2025", "ranking": 12, "isWildCard": false, "qualifierStatus": "COMPETING", "drawAssignment": "QUALIFYING", "withdrawn": false, "createdAt": "2026-08-01T17:30:00.000Z", "division": { "idx": "a7b8c9d0-e1f2-4345-8a6b-7c8d9e0f1a2b", "name": "Primera Varonil" }, "players": [ { "idx": "c9d0e1f2-a3b4-4567-8c8d-9e0f1a2b3c4d", "firstName": "Mario", "lastName": "Lugo", "avatar": "https://cdn.setto.io/avatars/mario-lugo.png" } ], "captainProfileIdx": "c9d0e1f2-a3b4-4567-8c8d-9e0f1a2b3c4d", "leagueTeam": { "idx": "d0e1f2a3-b4c5-4678-8d9e-0f1a2b3c4d5e", "name": "Club Santa Fe", "color": "#1E3A8A", "logo": "https://cdn.setto.io/league-teams/santa-fe.png", "position": 1, "pointsAdjustment": 0 } } ], "circuitCategory": { "idx": "b2c3d4e5-f6a7-4890-8b1c-2d3e4f5a6b7c", "name": "Primera Fuerza", "gender": "MIXED", "color": "#1E3A8A" } } ], "sponsors": [ { "idx": "d4e5f6a7-b8c9-4012-8345-6789abcdef01", "name": "Bebidas del Valle", "logoUrl": "https://cdn.setto.io/sponsors/bebidas-del-valle.png", "websiteUrl": "https://bebidasdelvalle.mx", "description": "Patrocinador oficial de hidratacion", "position": 1 } ], "circuit": { "idx": "a1b2c3d4-e5f6-4789-8a0b-1c2d3e4f5a6b", "name": "Circuito Nacional de Padel", "slug": "circuito-nacional-de-padel", "seasonYear": 2026 }, "circuitCategory": { "idx": "b2c3d4e5-f6a7-4890-8b1c-2d3e4f5a6b7c", "name": "Primera Fuerza", "gender": "MIXED", "color": "#1E3A8A" }, "rankedTiebreakRules": [ { "idx": "d4e5f6a7-b8c9-4012-8d3e-4f5a6b7c8d9e", "rank": 1, "rule": { "idx": "c3d4e5f6-a7b8-4901-8c2d-3e4f5a6b7c8d", "name": "Head to head", "acronym": "H2H" } } ] }, "plan": { "tier": "FREE", "maxDivisions": 2, "teamLimit": 12 }, "warnings": [ { "code": "PAYMENT_REVIEW", "message": "The team has payment marks or a payment link: review its payments in the dashboard.", "mensaje": "revisa los pagos de este equipo en el panel", "divisionIdx": "a7b8c9d0-e1f2-4345-8a6b-7c8d9e0f1a2b", "teamIdx": "b8c9d0e1-f2a3-4456-8b7c-8d9e0f1a2b3c", "name": "5a varonil", "numberOfSets": 2 } ]}