/api/. Es la misma que usa la propia web para mostrar torneos, partidas, equipos y artículos. Los ejemplos usan el dominio de producción, https://vants.vants.workers.dev. El código está en vants-server/worker.js (rutas) y vants-server/plataforma-core.js (validación, orden y paginación) de Vantsgames.
Los registros con
is_demo: true son datos de demostración. Su nombre empieza por DEMO · y sirven para validar la plataforma.Reglas generales
Formato de respuesta
Una respuesta correcta llevaok: true y los datos en data:
ok: false y un texto en error.message:
Si el origen de datos no responde, recibes
400 con el mensaje Datos no disponibles (proxy <código>). Reintenta pasado un momento.Rutas de lectura
Los slugs usan letras minúsculas, números y guiones. Los de equipo y jugador tienen entre 2 y 64 caracteres.
Juegos
GET /api/games no admite parámetros. Usa el campo slug como valor del parámetro juego en el resto de rutas.
Torneos
GET /api/tournaments
Un número fuera de rango se ajusta al límite más cercano. Un
estado, juego o region inválido devuelve 400. Los próximos y en curso se ordenan por fecha de inicio ascendente. Los finalizados, descendente.
El filtro usa
archive, pero el campo estado de un torneo finalizado devuelve finished. Además, en torneos y partidas el campo pag de la respuesta devuelve hoy 1 aunque pidas otra página. Usa el valor que enviaste. El campo total sí es el total de resultados.Ficha de un torneo
GET /api/tournaments/:slug devuelve los mismos campos que la lista y añade participantes: los equipos con inscripción confirmada.
404 con el mensaje Torneo no encontrado.
Partidas
GET /api/matches
Las próximas se ordenan de la más cercana a la más lejana. Las demás, de la más reciente a la más antigua.
Equipos
GET /api/teams devuelve hasta 50 equipos ordenados por nombre, sin paginación. Acepta el parámetro opcional juego.
GET /api/teams/:slug devuelve la ficha del equipo con dos listas añadidas:
plantilla: hasta 30 jugadores, ordenados por nombre.partidas: las más recientes primero, hasta 20 como equipo A y 20 como equipo B.
En la lista,
game es el slug del juego (texto). En la ficha, game es un objeto con slug y nombre.Jugadores
GET /api/players devuelve los perfiles VANTS ordenados por rating de mayor a menor, 50 por página. Acepta pag (de 1 a 500). Solo expone campos públicos: nunca incluye correo ni datos de contacto o de autenticación.
GET /api/players/:slug devuelve la ficha de un jugador de la plataforma de torneos: slug, nombre, game, team_slug, rol, pais, bio, source e is_demo. Si el jugador tiene equipo, añade equipo con los datos de ese equipo, con el mismo formato que la ficha de equipo sin las listas.
La lista sale de los perfiles VANTS y la ficha por slug, de los jugadores de la plataforma de torneos. Son conjuntos distintos, así que un perfil de la lista puede no tener ficha.
Artículos
GET /api/articles devuelve los artículos publicados, del más reciente al más antiguo, 20 por página.
Búsqueda
GET /api/search?q=texto busca en torneos, equipos, artículos y jugadores. Devuelve hasta 8 resultados por tipo.
jugadores cubre un conjunto limitado de perfiles, así que no es exhaustiva.
Rutas de la web
La web usa además rutas propias bajo/api/. Las que piden sesión necesitan la cabecera Authorization: Bearer <token de acceso> de un usuario con la sesión iniciada y un Origin de un dominio de VANTS. Sus errores tienen la forma { "ok": false, "error": "codigo" }, distinta de la de las rutas de lectura.
El parámetro
nick de FACEIT tiene entre 2 y 24 caracteres: letras, números, _, . o -. Un nick inválido devuelve 400 con nick_invalido, y uno que no existe, 404 con no_encontrado.
Clips destacados
GET /api/clips/featured devuelve clips, hasta 60 entradas. Cada clip incluye, entre otros, id, nick, username, titulo, juego, ext, fecha, dur, tam, video y thumb. Los vídeos, las miniaturas y el índice se guardan en vants-clips.
POST recibe un formulario multipart/form-data con estos campos: video, thumb, titulo, juego, nick, username, dur y ext.
Si el
id de un DELETE no existe devuelve 404 con no_existe, y si el clip es de otro usuario, 403 con no_es_tuyo.
Inscribir un equipo
POST /api/torneos/inscribir crea una inscripción con estado pendiente. Recibe un cuerpo JSON:
Si todo va bien, responde
200 con ok: true y, en equipo, el registro creado con status igual a pendiente. Estos son los errores posibles:
Más información
- Vantsgames: estructura del Worker y despliegue.
- Seguridad: protecciones de la API y de la plataforma.
- Esquema de la base de datos: tablas que alimentan esta API.
- Arquitectura: cómo encajan los componentes.