API

Alle Endpunkte liegen unter /api/v1. Antworten sind JSON, Zeitangaben in ISO 8601 (UTC), Zahlen ohne Tausendertrennzeichen.

Basisadresse

https://mcstats.de/api/v1

Authentifizierung

Jeder Aufruf braucht den Schlüssel deines Kontos – entweder als Header oder als Parameter.

curl -H "Authorization: Bearer DEIN_API_SCHLUESSEL" https://mcstats.de/api/v1/servers
curl "https://mcstats.de/api/v1/servers?key=DEIN_API_SCHLUESSEL"
API-Schlüssel
Jedes Konto bekommt einen Schlüssel. Du findest ihn in den Einstellungen.

Server

GET/api/v1/servers

Liste aller Server, seitenweise.

ParameterBedeutungStandard
sortSortierung: players, trending, record, newplayers
editionjava oder bedrock
categoryKategorie, siehe /meta
languageSprache, siehe /meta
qSuche in Name und Adresse
pageSeite, ab 11
limitAnzahl je Seite, höchstens 20050
GET/api/v1/servers/{id}

Ein einzelner Server mit allem, was wir über ihn wissen.

Verlauf

GET/api/v1/servers/{id}/history

Gemittelte Zeitreihe für Diagramme.

ParameterBedeutungStandard
rangeZeitraum: 24h, 7d oder 30d7d
GET/api/v1/servers/{id}/day

Wann auf dem Server etwas los ist, über den Tag verteilt.

ParameterBedeutungStandard
rangeZeitraum: 24h, 7d oder 30d7d
GET/api/v1/servers/{id}/pings

Einzelne Messungen, so wie sie gespeichert wurden.

ParameterBedeutungStandard
limitAnzahl der Einträge100

Ranglisten

GET/api/v1/leaderboard

Fertige Rangliste, dieselbe wie auf der Website.

ParameterBedeutungStandard
boardwelche Rangliste: players, trending, record, uptime, newplayers
limitAnzahl der Einträge25
GET/api/v1/totals

Alle Server zusammengezählt, plus aktuelle Summen.

ParameterBedeutungStandard
rangeZeitraum: 24h, 7d oder 30d7d
modeMittelwert oder Spitze: avg, peakavg

Serverstatus

GET/api/v1/status

Beliebige Adresse sofort abfragen. Nichts davon wird gespeichert.

ParameterBedeutungStandard
hostAdresse des ServersPflicht
editionjava oder bedrockjava
portPort, sonst Standard je Edition25565 / 19132
curl "https://mcstats.de/api/v1/status?host=mc.hypixel.net&key=DEIN_API_SCHLUESSEL"

Konto

GET/api/v1/me

Dein Konto und deine Server.

GET/api/v1/meta

Auswahllisten und Eckdaten, damit Clients keine Werte raten müssen.

Schreiben

Schreibende Aufrufe schicken JSON und brauchen den Schlüssel des Besitzers. Admins dürfen fremde Server ändern.

POST/api/v1/servers

Eigenen Server eintragen. Rumpf: host, dazu optional edition, port, name, website, categories, languages.

PATCH/api/v1/servers/{id}

Eigenen Server ändern: name, website, categories, languages.

DELETE/api/v1/servers/{id}

Eigenen Server samt Verlauf entfernen.

curl -X POST -H "Authorization: Bearer DEIN_API_SCHLUESSEL" \
  -H "content-type: application/json" \
  -d '{"host":"mc.example.com","edition":"java","categories":["smp"],"languages":["de"]}' \
  https://mcstats.de/api/v1/servers

Fehler

CodeWann
400Eingabe unbrauchbar, Feld error erklärt warum
401Schlüssel fehlt oder ist ungültig
403Kein Zugriff auf fremde Server
404Server oder Konto gibt es nicht
429Höchstens 20 Abfragen pro Minute je Konto beziehungsweise IP-Adresse.
{ "error": "unauthorized", "message": "API-Schlüssel fehlt oder ist ungültig." }

Grenzen

  • Höchstens 20 Abfragen pro Minute je Konto beziehungsweise IP-Adresse. /status
  • Private und lokale Adressen werden abgewiesen.
  • Bedrock wird über UDP gemessen; in Serverless-Umgebungen kann das fehlschlagen.
  • Ping alle 60 Sekunden