API externa de SETTO
Una API HTTP que permite a un organizador llevar sus torneos, categorías, equipos, rondas, partidos y clasificaciones de SETTO a un sitio web, una hoja de cálculo o un agente de IA, configurar torneos, armar sus grupos y cuadros, cargar resultados y programar sus partidos en las canchas.
La API externa de SETTO es una API HTTP sobre los torneos de SETTO que
administras. Con un token de API personal puedes leer todos los torneos que
administras, y con un token de API de organización todos los torneos de esa
organización — sus categorías (divisions), equipos, rondas, grupos, cuadros,
partidos y clasificaciones — y mostrarlos donde quieras; con un token que tenga
el permiso «Gestionar torneos» también puedes configurar torneos (crearlos con
sus categorías, inscribir equipos, sustituir a un jugador, dar de baja a un
equipo) y armar sus cuadros (el formato de una categoría, sus grupos y sus
eliminatorias), con «Cargar resultados» cargar y borrar resultados, y con
«Programar partidos» fijar cuándo y en qué cancha se juega cada partido. Son
38 endpoints, todos bajo /v1/external/. Esta página
explica qué cubre la API y a dónde ir después; el
inicio rápido tiene una petición funcionando en menos de
cinco minutos.
Qué puedes leer
| Recurso | Endpoint |
|---|---|
| De quién es el token detrás de la petición | GET /v1/external/me |
| Los torneos que alcanza el token | GET /v1/external/tournaments |
| Un torneo, con relaciones opcionales | GET /v1/external/tournaments/{idx} |
| Las categorías (divisions) de un torneo | GET /v1/external/tournaments/{idx}/divisions |
| Los equipos de un torneo y sus jugadores | GET /v1/external/tournaments/{idx}/teams |
| Una ronda: grupos, clasificación, partidos y cuadros | GET /v1/external/rounds/{idx} |
| Canchas, partidos, bloqueos y peticiones, para planear | GET /v1/external/tournaments/{idx}/schedule |
| «Actividad»: qué cambiaron las aplicaciones y los tokens, y quién | GET /v1/external/activity |
| Categorías, rondas, grupos, equipos y jugadores por nombre | GET /v1/external/tournaments/{idx}/search |
Qué puedes configurar
Con «Gestionar torneos» (manage); todas las rutas van bajo /v1/external.
| Acción | Endpoint |
|---|---|
| Crear un torneo (en borrador, con el plan gratis), editarlo | POST /tournaments, PATCH /tournaments/{idx} |
| Publicarlo, regresarlo a borrador, archivarlo o restaurarlo | POST /tournaments/{idx}/publish, POST /tournaments/{idx}/lifecycle |
| Agregar, editar o borrar una categoría; fijar sus cabezas de serie | POST /tournaments/{idx}/divisions, PATCH / DELETE /tournaments/{idx}/divisions/{divisionIdx}, PUT …/seeds |
| Inscribir un equipo, o hasta 50 (no se envía ningún correo) | POST /tournaments/{idx}/registrations, POST …/registrations/batch |
| Editar o borrar un equipo; editar un jugador | PATCH / DELETE /tournaments/{idx}/teams/{teamIdx}, PATCH /tournaments/{idx}/players/{playerIdx} |
| Sustituir a un jugador («Sustitución») | POST /tournaments/{idx}/teams/{teamIdx}/substitute |
| Dar de baja a un equipo («Baja»): vista previa y luego aplicar | POST /tournaments/{idx}/teams/{teamIdx}/withdraw/preview, POST …/withdraw |
Grupos, cuadros y resultados
Las tres vistas previas no escriben nada y solo requieren «Leer» (read); los
resultados requieren «Cargar resultados» (results); aplicar un formato, unos
grupos o un cuadro, «Confirmar cuadro» y todo lo demás de esta tabla requieren
«Gestionar torneos» (manage). Todas las rutas van bajo /v1/external.
| Acción | Endpoint |
|---|---|
| Fijar el formato de una categoría («Formato»): vista previa y luego aplicar | POST /tournaments/{idx}/divisions/{divisionIdx}/format/preview, POST …/format |
| Agregar las eliminatorias después de la fase de grupos | POST /tournaments/{idx}/divisions/{divisionIdx}/rounds/append |
| Armar los grupos («Configurar grupos»): vista previa y luego aplicar | POST /tournaments/{idx}/rounds/{roundIdx}/pools/preview, POST …/pools |
| Armar el cuadro («Configurar eliminatorias»): vista previa y luego aplicar | POST /tournaments/{idx}/rounds/{roundIdx}/draw/preview, POST …/draw |
| Acomodar el cuadro con la clasificación de los grupos («Confirmar cuadro») | POST /tournaments/{idx}/rounds/{roundIdx}/draw/confirm |
| Cargar o borrar el resultado de un partido («Borrar resultado») | POST / DELETE /tournaments/{idx}/games/{gameIdx}/result |
| Fijar quién juega un partido | PATCH /tournaments/{idx}/games/{gameIdx}/teams |
Qué puedes programar
| Acción | Endpoint |
|---|---|
| Proponer un día «un grupo por cancha» (no guarda nada) | POST /v1/external/tournaments/{idx}/schedule/proposals |
| Aplicar horarios: inicio, cancha y duración (requiere «Programar partidos») | POST /v1/external/tournaments/{idx}/schedule/placements |
Esa es toda la superficie. No se escribe nada más: la API no puede crear ni borrar un partido suelto, armar clasificatorias ni partidos de consolación, borrar un torneo ni enviar correos, y no cambia ningún precio, marca de pago, registro de pago ni reembolso (una baja cierra los enlaces de pago sin pagar del equipo). Los cuadros y resultados del fútbol y de las ligas se quedan en el panel.
Para quién es
- Clubes y federaciones que integran cuadros, calendarios y clasificaciones en vivo en su propio sitio web.
- Patrocinadores y medios que extraen partidos y resultados para una gráfica de transmisión o un boletín.
- Analistas que exportan una temporada a una hoja de cálculo o una base de datos.
- Agentes de IA — cada página de aquí también se sirve como Markdown, y hay un servidor MCP y un Agent Skill para esos mismos 38 endpoints.
URL base
https://api.setto.io/v1Cada ruta de esta documentación se escribe completa
(/v1/external/tournaments), así que se agrega directamente al host.
api.setto.io es el host canónico; el host generado por Railway al que
reemplazó sigue respondiendo, pero las integraciones nuevas no deben usarlo.
Autenticación en una línea
Envía tu token de API como bearer token en cada petición:
GET /v1/external/tournaments HTTP/1.1
Host: api.setto.io
Authorization: Bearer setto_live_YOUR_TOKEN_HERELos tokens se crean en el panel de organizador de SETTO, en Configuración → Tokens de API. Un token es personal (tuyo, alcanza todos los torneos que administras) o de una organización (solo alcanza los torneos de esa organización). Consulta Autenticación.
Qué nunca devuelve la API
La API externa está diseñada para ser segura de poner frente a un sitio web
público. Nunca devuelve datos personales de contacto (ni correos, ni teléfonos,
ni redes sociales) ni datos de pago o facturación. Los objetos de jugador llevan
solo idx, firstName, lastName y avatar.
Hay dos cosas que sí devuelve y que suelen sorprender:
- Categorías y rondas ocultas. Regresan con
isVisible: falseen lugar de omitirse, así que tú decides si las muestras. - Torneos en borrador y archivados. Fíltralos con el parámetro de consulta
statussi solo quieres los que están en curso.
A dónde ir después
Inicio rápido
Crea un token y haz tus primeras tres peticiones.
Autenticación
Formato del token, permisos, rotación y 401 contra 403.
Modelo de datos
Torneo, categoría, ronda, grupo, cuadro, partido, equipo.
Referencia de la API
Referencia generada por endpoint con un panel Try it.
Guías
Un ejemplo resuelto por endpoint.
Para agentes de IA
llms.txt, Markdown por página, OpenAPI y MCP.