UtopiaFPS
UtopiaFPS

Navigation

Entwickler-API

Dokumentation API

RESTful-API-Schnittstelle für Serverstatus und Strafendaten

Anmeldung erforderlich

Um ein API-Token zu generieren, müssen Sie angemeldet sein.

Über Steam anmelden

Erste Schritte

Die UtopiaFPS-API bietet programmatischen Zugriff auf Serverstatusinformationen und Strafendatensätze. Alle Antworten sind im JSON-Format und enthalten Cache-Header für optimale Leistung.

Basis-URL

https://utopiafps.pl/api/v1

Ratenlimits

  • Öffentliche Endpunkte: 30 Anfragen pro Minute
  • Geschützte Endpunkte: 60 Anfragen pro Minute (API-Token erforderlich)

Authentifizierung

Geschützte Endpunkte erfordern ein API-Token. Fügen Sie Ihr Token in den Authorization-Header ein:

Authorization: Bearer YOUR_API_TOKEN

Alternativ können Sie das Token als Abfrageparameter übergeben:

?api_token=YOUR_API_TOKEN

ÖFFENTLICH Server-Endpunkte

GET /servers

Rufen Sie eine Liste aller Server mit ihrem aktuellen Status ab.

Beispielantwort:

{
  "success": true,
  "data": [
    {
      "id": 1,
      "name": "Server #1",
      "slug": "server-1",
      "hostname": "UtopiaFPS Server #1",
      "ip": "51.75.59.212:27015",
      "map": "de_dust2",
      "mode": "casual",
      "region": "pl",
      "players_count": 12,
      "max_players": 32,
      "is_online": true,
      "ping_ms": 25,
      "updated_at": "2025-01-23T12:34:56+00:00"
    }
  ],
  "meta": {
    "total": 5,
    "online": 3,
    "cached_at": "2025-01-23T12:34:56+00:00"
  }
}
GET /servers/{slug}

Erhalten Sie detaillierte Informationen über einen bestimmten Server anhand seines Slugs.

Beispielantwort:

{
  "success": true,
  "data": {
    "id": 1,
    "name": "Server #1",
    "slug": "server-1",
    "hostname": "UtopiaFPS Server #1",
    "ip": "51.75.59.212:27015",
    "map": "de_dust2",
    "mode": "casual",
    "region": "pl",
    "players_count": 12,
    "max_players": 32,
    "is_online": true,
    "ping_ms": 25,
    "updated_at": "2025-01-23T12:34:56+00:00",
    "players": [
      {
        "name": "PlayerName1",
        "score": 150
      },
      {
        "name": "PlayerName2",
        "score": 120
      }
    ]
  },
  "meta": {
    "cached_at": "2025-01-23T12:34:56+00:00"
  }
}

GESCHÜTZT Strafen-Endpunkte

GET /penalties

Rufen Sie alle Strafen (Verbannungen, Stummschaltungen, Gags, Silences, Warnungen) mit optionalen Filtern ab.

Abfrageparameter:

  • type - Nach Strafentyp filtern (ban, mute, gag, silence, warn oder leer für alle)
  • status - Nach Status filtern (ACTIVE, EXPIRED, UNBANNED)
  • server_id - Nach Server-ID filtern
  • steamid - Nach Spieler-SteamID64 filtern
  • admin_steamid - Nach Admin-SteamID64 filtern
  • per_page - Ergebnisse pro Seite (Standard: 50, max: 100)
  • page - Seitennummer

Beispielantwort:

{
  "success": true,
  "data": [
    {
      "penalty_type": "ban",
      "id": 123,
      "player_name": "PlayerName",
      "player_steamid": "76561198012345678",
      "admin_name": "AdminName",
      "admin_steamid": "76561198087654321",
      "reason": "Cheating",
      "duration": 0,
      "status": "ACTIVE",
      "server_id": 1,
      "created": "2025-01-23T12:00:00+00:00",
      "ends": null
    },
    {
      "penalty_type": "gag",
      "id": 456,
      "player_name": "AnotherPlayer",
      "player_steamid": "76561198099999999",
      "admin_name": "AdminName",
      "admin_steamid": "76561198087654321",
      "reason": "Spam",
      "duration": 3600,
      "status": "ACTIVE",
      "server_id": 1,
      "created": "2025-01-23T11:00:00+00:00",
      "ends": "2025-01-23T12:00:00+00:00"
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 250,
    "per_page": 50,
    "last_page": 5,
    "counts": {
      "ban": 100,
      "gag": 50,
      "mute": 40,
      "silence": 30,
      "warn": 30
    },
    "cached_at": "2025-01-23T12:34:56+00:00"
  }
}
GET /bans

Rufen Sie eine paginierte Liste von Verbannungen mit optionalen Filtern ab.

Abfrageparameter:

  • status - Nach Status filtern (ACTIVE, EXPIRED, UNBANNED)
  • server_id - Nach Server-ID filtern
  • steamid - Nach Spieler-SteamID64 filtern
  • per_page - Ergebnisse pro Seite (Standard: 50, max: 100)
  • page - Seitennummer

Beispielantwort:

{
  "success": true,
  "data": [
    {
      "id": 123,
      "player_name": "PlayerName",
      "player_steamid": "76561198012345678",
      "admin_name": "AdminName",
      "admin_steamid": "76561198087654321",
      "reason": "Cheating",
      "duration": 0,
      "status": "ACTIVE",
      "server_id": 1,
      "created": "2025-01-23T12:00:00+00:00",
      "ends": null
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 150,
    "per_page": 50,
    "last_page": 3,
    "cached_at": "2025-01-23T12:34:56+00:00"
  }
}
GET /mutes

Rufen Sie eine paginierte Liste von Stummschaltungen mit optionalen Filtern ab.

Abfrageparameter:

  • status - Nach Status filtern
  • server_id - Nach Server-ID filtern
  • steamid - Nach Spieler-SteamID64 filtern
  • type - Nach Typ filtern (GAG, MUTE, SILENCE)
  • per_page - Ergebnisse pro Seite (Standard: 50, max: 100)
  • page - Seitennummer

Antwortstruktur ähnlich wie beim Bans-Endpunkt

GET /warns

Rufen Sie eine paginierte Liste von Warnungen mit optionalen Filtern ab.

Abfrageparameter:

  • status - Nach Status filtern
  • server_id - Nach Server-ID filtern
  • steamid - Nach Spieler-SteamID64 filtern
  • per_page - Ergebnisse pro Seite (Standard: 50, max: 100)
  • page - Seitennummer

Fehlerantworten

401 Unauthorized

{
  "success": false,
  "message": "API token is required"
}

404 Not Found

{
  "success": false,
  "message": "Server not found"
}

429 Too Many Requests

Wenn das Ratenlimit überschritten wird, erhalten Sie einen 429-Statuscode mit Wiederholungsinformationen in den Headern.