Dla Programistów i Społeczności

Dokumentacja ETERU Public API v1

Oficjalny interfejs programistyczny REST API do integracji botów, paneli klanowych i aplikacji z Multiwersum ETERU.

Baza API: https://api.mw.eteru.pl/api/v1

Obsługiwany również alias: https://eteru.pl/api/v1

● API AKTYWNEOpenAPI JSON Spec

Uwierzytelnianie

Otwarte (Read-Only). W przypadku włączenia autoryzacji przez administratora podaj nagłówek x-api-key.

Limity Zapytań (Rate Limiting)

Domyślny limit wynosi 60 zapytań / minutę per adres IP nadawcy. Po przekroczeniu serwer zwraca kod HTTP 429 z nagłówkiem Retry-After.

Dostępne Punkty Końcowe (Endpoints)

GET/api/v1/statusStatus infrastruktury i usług

Zwraca zagregowany stan usług sieciowych (Minecraft, Portal, Caddy, Postgres), opóźnienie w ms oraz aktywne i niedawne incydenty.

Przykładowa Odpowiedź (JSON)
{
  "status": "operational",
  "timestamp": "2026-09-21T00:00:00.000Z",
  "database": { "status": "online", "latency_ms": 3 },
  "services": [
    { "service": "Minecraft Runtime (Paper)", "status": "online", "latency_ms": 8 }
  ],
  "incidents": []
}
GET/api/v1/worldsKatalog światów Multiwersum

Pobiera listę oficjalnie opublikowanych światów w ETERU (Ziemia, Orbita, Księżyc, Mars) wraz z ich opisami, klimatem i komendami.

Przykładowa Odpowiedź (JSON)
{
  "count": 4,
  "items": [
    {
      "id": "ziemia",
      "slug": "ziemia",
      "name": "Ziemia",
      "description": "Główny świat cywilizacji: miasta, klany, rynek i spawn."
    }
  ]
}
GET/api/v1/bossesKatalog bossów i legend

Zwraca kompendium unikalnych bossów, ich roli w świecie gry oraz powiązanych mechanik.

Przykładowa Odpowiedź (JSON)
{
  "count": 4,
  "items": [
    {
      "id": "straznik-cywilizacji",
      "slug": "straznik-cywilizacji",
      "name": "Strażnik Cywilizacji",
      "description": "Starożytna maszyna strzegąca porządku między światami."
    }
  ]
}
GET/api/v1/eventsKalendarz wydarzeń i eventów

Zwraca zaplanowane turnieje, fazy sezonowe i specjalne wydarzenia fabularne.

Przykładowa Odpowiedź (JSON)
{
  "count": 1,
  "items": [
    {
      "id": "c1f7...",
      "slug": "turniej-otwarcia",
      "title": "Turniej Otwarcia Sezonu",
      "starts_at": "2026-09-25T18:00:00Z"
    }
  ]
}
GET/api/v1/leaderboardsRankingi sezonowe graczy

Pobiera topkę graczy według wybranej metryki w danym sezonie.

Parametry Zapytania
metric(string)Metryka rankingu: level (domyślnie), kills, playtime
season(string)ID sezonu (np. s1, s2). Domyślnie bieżący sezon.
Przykładowa Odpowiedź (JSON)
{
  "season": "s1",
  "metric": "level",
  "count": 2,
  "items": [
    {
      "metric": "level",
      "score": 45,
      "display_name": "Kowalski",
      "minecraft_name": "KowalskiPL",
      "clan_name": "Aegis",
      "progression_level": 45
    }
  ]
}
GET/api/v1/profiles/{name}Profil publiczny gracza

Pobiera statystyki gracza na podstawie nicku Minecraft lub loginu portalu.

Parametry Zapytania
name(string (path))Nick Minecraft lub nazwa użytkownikaWymagany
Przykładowa Odpowiedź (JSON)
{
  "player": {
    "displayName": "Kowalski",
    "role": "player",
    "minecraft": {
      "name": "KowalskiPL",
      "uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5",
      "avatarUrl": "https://crafatar.com/avatars/069a79f4-44e9-4726-a5be-fca90e38aaf5?overlay"
    },
    "clan": "Aegis",
    "progression": {
      "level": 45,
      "xp": 14200,
      "playtimeHours": 128.5,
      "balance": 2450.00
    },
    "badges": []
  }
}
GET/api/v1/openapiKontrakt OpenAPI 3.0 (JSON)

Zwraca kompletną specyfikację OpenAPI 3.0.3 przeznaczoną do generowania klientów SDK (TypeScript, Python, Go) oraz importu w Postman / Swagger.

Przykładowa Odpowiedź (JSON)
{
  "openapi": "3.0.3",
  "info": {
    "title": "ETERU Public API",
    "version": "1.0.0"
  },
  "paths": { ... }
}