SETTO API

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

RecursoEndpoint
De quién es el token detrás de la peticiónGET /v1/external/me
Los torneos que alcanza el tokenGET /v1/external/tournaments
Un torneo, con relaciones opcionalesGET /v1/external/tournaments/{idx}
Las categorías (divisions) de un torneoGET /v1/external/tournaments/{idx}/divisions
Los equipos de un torneo y sus jugadoresGET /v1/external/tournaments/{idx}/teams
Una ronda: grupos, clasificación, partidos y cuadrosGET /v1/external/rounds/{idx}
Canchas, partidos, bloqueos y peticiones, para planearGET /v1/external/tournaments/{idx}/schedule
«Actividad»: qué cambiaron las aplicaciones y los tokens, y quiénGET /v1/external/activity
Categorías, rondas, grupos, equipos y jugadores por nombreGET /v1/external/tournaments/{idx}/search

Qué puedes configurar

Con «Gestionar torneos» (manage); todas las rutas van bajo /v1/external.

AcciónEndpoint
Crear un torneo (en borrador, con el plan gratis), editarloPOST /tournaments, PATCH /tournaments/{idx}
Publicarlo, regresarlo a borrador, archivarlo o restaurarloPOST /tournaments/{idx}/publish, POST /tournaments/{idx}/lifecycle
Agregar, editar o borrar una categoría; fijar sus cabezas de seriePOST /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 jugadorPATCH / 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 aplicarPOST /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ónEndpoint
Fijar el formato de una categoría («Formato»): vista previa y luego aplicarPOST /tournaments/{idx}/divisions/{divisionIdx}/format/preview, POST …/format
Agregar las eliminatorias después de la fase de gruposPOST /tournaments/{idx}/divisions/{divisionIdx}/rounds/append
Armar los grupos («Configurar grupos»): vista previa y luego aplicarPOST /tournaments/{idx}/rounds/{roundIdx}/pools/preview, POST …/pools
Armar el cuadro («Configurar eliminatorias»): vista previa y luego aplicarPOST /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 partidoPATCH /tournaments/{idx}/games/{gameIdx}/teams

Qué puedes programar

AcciónEndpoint
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/v1

Cada 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_HERE

Los 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: false en lugar de omitirse, así que tú decides si las muestras.
  • Torneos en borrador y archivados. Fíltralos con el parámetro de consulta status si solo quieres los que están en curso.

A dónde ir después

En esta página