Aetherion-LogoAETHERION

Öffentliche Schnittstelle

Status, Server, Events, Ranglisten und Community-Zahlen als JSON – für Discord-Bots, Streams, Fan-Seiten und eigene Auswertungen. Nur öffentliche Daten.

Basisadresse

https://aetherion.me/api/public/v1

Alle Endpunkte erlauben Abrufe aus dem Browser (CORS: *) und werden kurz zwischengespeichert.

Grenzen und Schlüssel

Ohne Schlüssel: 60 Abrufe je Minute und IP. Wer mehr braucht, fragt das Team nach einem Schlüssel und schickt ihn im Kopf „x-api-key“ mit.

curl -H "x-api-key: aeth_…" https://aetherion.me/api/public/v1/status

Jede Antwort nennt die Grenze in „X-RateLimit-Limit“ und den Rest in „X-RateLimit-Remaining“. Zu viele Abrufe: Status 429 mit „Retry-After“.

Bitte fair bleiben: Werte ändern sich höchstens alle 30 Sekunden – öfter abzufragen bringt nichts.

Endpunkte

GET/api/public/v1/status

Zustand aller Server auf einen Blick: online, Spieler, Wartung – dieselben Werte wie auf der Statusseite.

Beispiel

curl https://aetherion.me/api/public/v1/status

Antwort (Auszug)

{
  "updatedAt": "2026-09-23T18:30:00.000Z",
  "summary": {
    "serversOnline": 4,
    "serversTotal": 5,
    "playersOnline": 37
  },
  "games": [
    {
      "name": "DayZ",
      "slug": "dayz",
      "servers": [
        {
          "id": 3,
          "name": "Aetherion DayZ #1",
          "game": "dayz",
          "status": "online",
          "players": 21,
          "maxPlayers": 60,
          "map": "chernarusplus"
        }
      ]
    }
  ]
}

GET/api/public/v1/servers

Alle Server mit Spiel, Adresse, Verbindungslink und aktuellem Zustand.

Beispiel

curl https://aetherion.me/api/public/v1/servers

Antwort (Auszug)

{
  "updatedAt": "2026-09-23T18:30:00.000Z",
  "servers": [
    {
      "id": 3,
      "name": "Aetherion DayZ #1",
      "game": "dayz",
      "status": "online",
      "players": 21,
      "maxPlayers": 60,
      "map": "chernarusplus",
      "address": "203.0.113.10:2302",
      "connectUrl": "steam://connect/203.0.113.10:2302"
    }
  ]
}

GET/api/public/v1/events

Kommende Events mit Beginn, Titel und Link.

Beispiel

curl https://aetherion.me/api/public/v1/events

Antwort (Auszug)

{
  "events": [
    {
      "id": 42,
      "title": "Community-Abend",
      "start": "2026-09-26T18:00:00.000Z",
      "url": "https://aetherion.me/events/42",
      "description": "Gemeinsam spielen, Preise gewinnen …"
    }
  ]
}

GET/api/public/v1/leaderboard

Rangliste eines Spiels (nur Spieler, die zugestimmt haben).

Parameter

game
Kürzel des Spiels (z. B. „dayz“) – Pflicht
metric
Wertung (optional), z. B. „playtime“ oder „sessions“ – ohne Angabe alle freigegebenen Wertungen
server
Server-ID (optional) – nur dieser Server

Beispiel

curl https://aetherion.me/api/public/v1/leaderboard?game=dayz&metric=playtime

Antwort (Auszug)

{
  "game": {
    "slug": "dayz",
    "name": "DayZ"
  },
  "server": null,
  "boards": [
    {
      "metric": "playtime",
      "unit": "seconds",
      "entries": [
        {
          "rank": 1,
          "name": "Nova",
          "value": 482400
        }
      ]
    }
  ]
}

GET/api/public/v1/community

Community in Zahlen: Mitglieder, Spielstunden, Rekorde.

Beispiel

curl https://aetherion.me/api/public/v1/community

Antwort (Auszug)

{
  "updatedAt": "2026-09-23T18:00:00.000Z",
  "discordMembers": 812,
  "playtimeHoursThisMonth": 1934,
  "sessionsThisMonth": 2410,
  "activePlayers30d": 164,
  "eventsThisYear": 38,
  "peakPlayers": {
    "players": 97,
    "at": "2026-08-14T19:05:00.000Z"
  },
  "games": 5,
  "servers": 9,
  "history": [
    {
      "month": "2026-09",
      "playtimeHours": 1934,
      "sessions": 2410,
      "activePlayers": 151,
      "members": 812
    }
  ]
}

Fehler

Fehler kommen als JSON { "error": { "code", "message" } } – z. B. 404 bei unbekanntem Spiel, 429 bei zu vielen Abrufen, 503 während einer Wartung.

Sprache von Namen und Texten: Parameter „?lang=de“ (Vorgabe) oder „?lang=en“.