API
Les données de votre serveur,dans vos propres outils.
Une API en lecture seule pour les serveurs Premium : qui est en ligne, le match, les joueurs, les kills et l'historique. Les clés se créent dans WARPANEL → Paramètres → API.
Endpoints · warpanel.gg/api/v1Lecture seule
GET/v1/serversVos serveurs en ce moment (navigateur de serveurs)
GET/v1/serverLe serveur en ce moment
GET/v1/playersLes joueurs et leurs stats (classements)
GET/v1/players/{steamId}Un joueur
GET/v1/matchesMatchs récents
GET/v1/eventsFlux d'événements (kills et résultats de matchs)
GET/v1/weaponsArmes
GET/v1/mapsMaps
GET/v1/totalsTotaux (aujourd'hui, saison, depuis toujours)
GET/v1/historyHistorique et heures les plus chargées
~❯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",
~❯
Comment ça marche
- 01JSON en lecture seule via HTTPS. URL de base : https://warpanel.gg/api/v1
- 02Authentification : envoyez la clé sous la forme
Authorization: Bearer wpk_…(ouX-API-Key: wpk_…). Les clés sont créées par le propriétaire du serveur dans WARPANEL → Paramètres → API. Une clé serveur lit un serveur ; une clé réseau (propriétaire uniquement) lit tous les serveurs que le propriétaire a dans WARPANEL. - 03Les clés réseau choisissent le serveur avec ?server=<id> (ids issus de GET /servers ; un slug ou un code de connexion fonctionne aussi) ou ?server=all pour combiner les serveurs (les joueurs sont fusionnés par Steam ID). Sans ?server, les endpoints qui peuvent combiner le font (all), et /server en demande un. Une clé serveur peut omettre ?server.
- 04Serveurs Premium uniquement. Une clé cesse de répondre (403 premium_required) tant que le serveur sur lequel elle a été créée est en Free.
- 0560 requêtes par minute et par clé. En-têtes : X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (secondes). Au-delà de la limite : 429 avec Retry-After.
- 06De notre côté, les données live sont en cache 10 secondes, le flux d'événements 5 secondes, les stats 1 à 2 minutes et l'historique 10 minutes : interroger plus souvent n'apporte rien. Mettez aussi en cache de votre côté (30 à 60 s suffisent largement pour un site web).
- 07Les heures sont au format ISO 8601 en UTC. /totals et /history acceptent ?tz= (un fuseau IANA comme Europe/Berlin) pour « aujourd'hui » et les heures les plus chargées. Les Steam ID sont des chaînes SteamID64 de 17 chiffres. Les équipes sont Valkyra (rouge), Lonestar (bleu) et Manticore (vert) ; un serveur accueille jusqu'à 100 joueurs.
- 08Les joueurs qui se sont masqués des classements sont exclus des listes de joueurs ; ailleurs (liste live, matchs, événements), ils apparaissent comme « Joueur masqué » avec steamId null.
- 09CORS est ouvert pour GET, mais gardez la clé sur un serveur (une route backend, une fonction serverless ou un Cloudflare Worker) — tout ce qui est dans le JavaScript du navigateur peut être lu par chaque visiteur.