API
Los datos de tu servidor,en tus propias herramientas.
Una API de solo lectura para servidores Premium: quién está conectado, la partida, jugadores, bajas e historial. Las claves se crean en WARPANEL → Ajustes → API.
Endpoints · warpanel.gg/api/v1Solo lectura
GET/v1/serversTus servidores ahora mismo (navegador de servidores)
GET/v1/serverEl servidor ahora mismo
GET/v1/playersJugadores y sus estadísticas (clasificaciones)
GET/v1/players/{steamId}Un jugador
GET/v1/matchesPartidas recientes
GET/v1/eventsFeed de eventos (bajas y resultados de partidas)
GET/v1/weaponsArmas
GET/v1/mapsMapas
GET/v1/totalsTotales (hoy, temporada, histórico)
GET/v1/historyHistorial y horas punta
~❯curl -H "Authorization: Bearer $WARPANEL_API_KEY" https://warpanel.gg/api/v1/server
{
"server": {
"id": "x7k2p9",
"name": "[DOGS] Dog House EU | KOTK",
"joinCode": "ABCD1234",
"region": "eu-central",
"source": "rcon"
},
"online": true,
"players": {
"current": 58,
"max": 100
},
"match": {
"map": "Bakurani",
"lighting": "Day",
~❯
Cómo funciona
- 01JSON de solo lectura por HTTPS. URL base: https://warpanel.gg/api/v1
- 02Autenticación: envía la clave como
Authorization: Bearer wpk_…(oX-API-Key: wpk_…). Las claves las crea el dueño del servidor en WARPANEL → Ajustes → API. Una clave de servidor lee un servidor; una clave de red (solo el dueño) lee todos los servidores que el dueño tiene en WARPANEL. - 03Las claves de red eligen el servidor con ?server=<id> (ids de GET /servers; también sirve un slug o un código de unión) o ?server=all para combinar los servidores (los jugadores se fusionan por Steam ID). Sin ?server, los endpoints que pueden combinar lo hacen (all), y /server pide uno. Una clave de servidor puede omitir ?server.
- 04Solo servidores Premium. Una clave deja de responder (403 premium_required) mientras el servidor en el que se creó esté en Free.
- 0560 peticiones por minuto por clave. Cabeceras: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (segundos). Si superas el límite: 429 con Retry-After.
- 06Por nuestra parte, los datos en vivo se cachean 10 segundos, el feed de eventos 5 segundos, las estadísticas 1–2 minutos y el historial 10 minutos, así que consultar más rápido no sirve de nada. Cachea también por tu parte (30–60 s es más que suficiente para una web).
- 07Las horas van en ISO 8601 en UTC. /totals y /history aceptan ?tz= (una zona IANA como Europe/Berlin) para "hoy" y las horas punta. Los Steam ID son cadenas SteamID64 de 17 dígitos. Los equipos son Valkyra (rojo), Lonestar (azul) y Manticore (verde); un servidor admite hasta 100 jugadores.
- 08Los jugadores que se ocultaron de las clasificaciones no aparecen en las listas de jugadores; en lo demás (lista en vivo, partidas, eventos) aparecen como "Jugador oculto" con steamId null.
- 09CORS está abierto para GET, pero guarda la clave en un servidor (una ruta de backend, una función serverless o un Cloudflare Worker) — cualquier cosa en el JavaScript del navegador la puede leer cualquier visitante.