Zum Inhalt springen
API

Die Daten deines Servers,in deinen eigenen Tools.

Eine schreibgeschützte API für Premium-Server: wer online ist, das Match, Spieler, Kills und Verlauf. Keys erstellst du in WARPANEL → Einstellungen → API.

Endpunkte · warpanel.gg/api/v1Nur lesen
GET/v1/serversDeine Server gerade jetzt (Serverbrowser)
GET/v1/serverDer Server gerade jetzt
GET/v1/playersSpieler und ihre Statistiken (Bestenlisten)
GET/v1/players/{steamId}Ein Spieler
GET/v1/matchesLetzte Matches
GET/v1/eventsEvent-Feed (Kills und Match-Ergebnisse)
GET/v1/weaponsWaffen
GET/v1/mapsMaps
GET/v1/totalsSummen (heute, Season, gesamt)
GET/v1/historyVerlauf und Stoßzeiten
curl · /v1/server
~❯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",
~❯
Vollständige Referenz (Markdown) →OpenAPI 3.1 →
So funktioniert’s
  • 01Schreibgeschütztes JSON über HTTPS. Basis-URL: https://warpanel.gg/api/v1
  • 02Authentifizierung: Sende den Key als Authorization: Bearer wpk_… (oder X-API-Key: wpk_…). Keys erstellt der Besitzer des Servers in WARPANEL → Einstellungen → API. Ein Server-Key liest einen Server; ein Netzwerk-Key (nur Besitzer) liest jeden Server, den der Besitzer in WARPANEL hat.
  • 03Netzwerk-Keys wählen den Server mit ?server=<id> (IDs aus GET /servers; ein Slug oder Join-Code geht auch) oder ?server=all, um die Server zusammenzufassen (Spieler werden per Steam-ID zusammengeführt). Ohne ?server fassen Endpunkte, die das können, zusammen (all), und /server verlangt einen Server. Ein Server-Key kann ?server weglassen.
  • 04Nur für Premium-Server. Ein Key antwortet nicht mehr (403 premium_required), solange der Server, für den er erstellt wurde, auf Free ist.
  • 0560 Anfragen pro Minute und Key. Header: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (Sekunden). Über dem Limit: 429 mit Retry-After.
  • 06Live-Daten werden bei uns 10 Sekunden gecacht, der Event-Feed 5 Sekunden, Statistiken 1–2 Minuten und der Verlauf 10 Minuten — schnelleres Abfragen bringt also nichts. Cache auch auf deiner Seite (30–60 s reichen für eine Website).
  • 07Zeiten sind ISO 8601 in UTC. /totals und /history nehmen ?tz= (eine IANA-Zone wie Europe/Berlin) für "heute" und die Stoßzeiten. Steam-IDs sind 17-stellige SteamID64-Strings. Die Teams sind Valkyra (rot), Lonestar (blau) und Manticore (grün); ein Server fasst bis zu 100 Spieler.
  • 08Spieler, die sich in Bestenlisten verborgen haben, fehlen in Spielerlisten; anderswo (Live-Liste, Matches, Events) erscheinen sie als "Hidden player" mit steamId null.
  • 09CORS ist für GET offen, aber halte den Key auf einem Server (einer Backend-Route, Serverless-Funktion oder einem Cloudflare Worker) — alles in Browser-JavaScript kann jeder Besucher lesen.