Dokumentacja API
Interfejs RESTful API do statusu serwerów i danych o karach
Rozpoczęcie pracy
API UtopiaFPS umożliwia programowy dostęp do informacji o statusie serwerów oraz rekordów kar. Wszystkie odpowiedzi są w formacie JSON i zawierają nagłówki cache dla optymalnej wydajności.
Adres bazowy
https://utopiafps.pl/api/v1
Limity zapytań
- Publiczne endpointy: 30 żądań na minutę
- Chronione endpointy: 60 żądań na minutę (wymagany token API)
Uwierzytelnianie
Chronione endpointy wymagają tokenu API. Dołącz swój token w nagłówku Authorization:
Authorization: Bearer TWÓJ_TOKEN_API
Alternatywnie możesz przekazać token jako parametr zapytania:
?api_token=TWÓJ_TOKEN_API
PUBLICZNE Endpointy serwerów
/servers
Pobierz listę wszystkich serwerów z ich aktualnym statusem.
Przykład odpowiedzi:
{
"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"
}
}
/servers/{slug}
Pobierz szczegółowe informacje o konkretnym serwerze za pomocą jego sluga.
Przykład odpowiedzi:
{
"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"
}
}
CHRONIONE Endpointy kar
/penalties
Pobierz wszystkie kary (bany, mute, gag, silence, ostrzeżenia) z opcjonalnymi filtrami.
Parametry zapytania:
type- Filtruj według typu kary (ban, mute, gag, silence, warn lub puste dla wszystkich)status- Filtruj według statusu (ACTIVE, EXPIRED, UNBANNED)server_id- Filtruj według ID serwerasteamid- Filtruj według SteamID64 graczaadmin_steamid- Filtruj według SteamID64 adminaper_page- Wyników na stronę (domyślnie: 50, maks: 100)page- Numer strony
Przykład odpowiedzi:
{
"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"
}
}
/bans
Pobierz stronicowaną listę banów z opcjonalnymi filtrami.
Parametry zapytania:
status- Filtruj według statusu (ACTIVE, EXPIRED, UNBANNED)server_id- Filtruj według ID serwerasteamid- Filtruj według SteamID64 graczaper_page- Wyników na stronę (domyślnie: 50, maks: 100)page- Numer strony
Przykład odpowiedzi:
{
"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"
}
}
/mutes
Pobierz stronicowaną listę wyciszeń z opcjonalnymi filtrami.
Parametry zapytania:
status- Filtruj według statususerver_id- Filtruj według ID serwerasteamid- Filtruj według SteamID64 graczatype- Filtruj według typu (GAG, MUTE, SILENCE)per_page- Wyników na stronę (domyślnie: 50, maks: 100)page- Numer strony
Struktura odpowiedzi podobna do endpointu banów
/warns
Pobierz stronicowaną listę ostrzeżeń z opcjonalnymi filtrami.
Parametry zapytania:
status- Filtruj według statususerver_id- Filtruj według ID serwerasteamid- Filtruj według SteamID64 graczaper_page- Wyników na stronę (domyślnie: 50, maks: 100)page- Numer strony
Odpowiedzi błędów
401 Unauthorized
{
"success": false,
"message": "API token is required"
}
404 Not Found
{
"success": false,
"message": "Server not found"
}
429 Too Many Requests
Gdy limit zapytań zostanie przekroczony, otrzymasz kod statusu 429 z informacjami o ponownej próbie w nagłówkach.