Skip to main content
La web de VANTS expone una API JSON de lectura bajo /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 lleva ok: true y los datos en data:
Un error lleva 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.
El ejemplo omite el resto de campos del torneo. Si el slug no existe, responde 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.
La lista no incluye el cuerpo del artículo. La ficha de un artículo no está disponible por API todavía.

Búsqueda

GET /api/search?q=texto busca en torneos, equipos, artículos y jugadores. Devuelve hasta 8 resultados por tipo.
La búsqueda de 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