Dashboard: Server Management

API Documentation

The Server Manager exposes a REST API and SignalR Hub for communication with the Remote Client. All endpoints (except authentication) require JWT authentication with appropriate permissions.

API Endpoints

1. Authentication

EndpointMethodActionRequest VariablesPermissions
/api/auth/loginPOSTLogin with credentialsLoginRequest (DTO)None (public)
/api/auth/logoutPOSTLogout and revoke token(none)Valid JWT

2. Admin

EndpointMethodActionRequest VariablesPermissions
/api/admin/user/createPOSTCreate new userCreateUserRequestDTO (DTO)admins_accounts + admins_editusers
/api/admin/user/updatePOSTUpdate existing userUpdateUserRequestDTO (DTO)admins_accounts + admins_editusers
/api/admin/user/deletePOSTDelete userDeleteUserRequestDTO (DTO)admins_accounts + admins_editusers

3. Audit

EndpointMethodActionRequest VariablesPermissions
/api/audit/logsPOSTGet audit logs with filteringAuditLogRequest (DTO)admins_auditlogs
/api/audit/categoriesGETGet audit categories(none)admins_auditlogs
/api/audit/actiontypesGETGet audit action types(none)admins_auditlogs
/api/audit/statsGETGet audit statisticshours (int, query)admins_auditlogs

4. Ban

EndpointMethodActionRequest VariablesPermissions
/api/ban/save-blacklistPOSTSave blacklist recordBanDTOs (DTO)bans
/api/ban/delete-blacklistPOSTDelete blacklist recordDeleteBanRecordRequest (DTO)bans
/api/ban/save-whitelistPOSTSave whitelist recordBanDTOs (DTO)bans
/api/ban/delete-whitelistPOSTDelete whitelist recordDeleteBanRecordRequest (DTO)bans

4.1 NetLimiter

EndpointMethodActionRequest VariablesPermissions
/api/ban/netlimiter/savePOSTSave NetLimiter settingsNetLimiterSettingsRequest (DTO)bans
/api/ban/netlimiter/filtersGETGet NetLimiter filters(none)bans

4.2 ProxyCheck

EndpointMethodActionRequest VariablesPermissions
/api/ban/proxycheck/validatePOSTValidate proxy checkProxyCheckTestRequest (DTO)bans
/api/ban/proxycheck/savePOSTSave proxy check settingsProxyCheck (DTO)bans
/api/ban/proxycheck/country/addPOSTAdd blocked countryAddBlockedCountryRequest (DTO)bans
/api/ban/proxycheck/country/removePOSTRemove blocked countryRemoveBlockedCountryRequest (DTO)bans

5. Chat

EndpointMethodActionRequest VariablesPermissions
/api/chat/sendPOSTSend chat messageSendChatCommand (DTO)chat
/api/chat/auto/addPOSTAdd auto messageAutoMessageRequest (DTO)chat
/api/chat/auto/removePOSTRemove auto messageRemoveMessageRequest (DTO)chat
/api/chat/slap/addPOSTAdd slap messageSlapMessageRequest (DTO)chat
/api/chat/slap/removePOSTRemove slap messageRemoveMessageRequest (DTO)chat
/api/chat/history/playersGETGet distinct player nameslimit (int, query)chat
/api/chat/history/searchPOSTSearch chat historyChatHistoryRequest (DTO)chat

6. FileSystem

EndpointMethodActionRequest VariablesPermissions
/api/filesystem/drivesGETGet available drives(none)profile
/api/filesystem/listPOSTList directory contentsDirectoryListingRequest (DTO)profile
/api/filesystem/validate-pathPOSTValidate path existsDirectoryListingRequest (DTO)profile
/api/filesystem/filesGETGet profile files(none)profile

7. GamePlay

EndpointMethodActionRequest VariablesPermissions
/api/gameplay/settingsGETGet gameplay settings(none)gameplay
/api/gameplay/settingsPOSTSave gameplay settingsGamePlaySettingsRequest (DTO)gameplay
/api/gameplay/validatePOSTValidate gameplay settingsGamePlaySettingsRequest (DTO)gameplay

8. Maps

EndpointMethodActionRequest VariablesPermissions
/api/maps/list/availableGETGet available maps(none)maps
/api/maps/list/playlistsGETGet all playlists(none)maps
/api/maps/list/playlist/{id}GETGet playlist by IDid (int, route)maps
/api/maps/playlist/savePOSTSave playlistPlaylistDTO (DTO)maps
/api/maps/playlist/set-activePOSTSet active playlistPlaylistDTO (DTO)maps
/api/maps/playlist/importPOSTImport playlistPlaylistDTO (DTO)maps
/api/maps/playlist/export/{id}GETExport playlistid (int, route)maps
/api/maps/server/skip-mapPOSTSkip current map(none)maps
/api/maps/server/score-mapPOSTScore current map(none)maps
/api/maps/server/play-nextPOSTPlay next mapmapIndex (int)maps

9. Player

EndpointMethodActionRequest VariablesPermissions
/api/player/armPOSTArm playerArmPlayerCommand (DTO)players
/api/player/disarmPOSTDisarm playerDisarmPlayerCommand (DTO)players
/api/player/togglegodmodePOSTToggle god modeGodModePlayerCommand (DTO)players
/api/player/switchteamPOSTSwitch player teamSwitchTeamPlayerCommand (DTO)players
/api/player/kickPOSTKick playerKickPlayerCommand (DTO)players
/api/player/banPOSTBan playerBanPlayerCommand (DTO)players
/api/player/warnPOSTWarn playerWarnPlayerCommand (DTO)players
/api/player/killPOSTKill playerKillPlayerCommand (DTO)players

10. Profile

EndpointMethodActionRequest VariablesPermissions
/api/profile/settingsGETGet profile settings(none)profile
/api/profile/settingsPOSTSave profile settingsProfileSettingsRequest (DTO)profile
/api/profile/validatePOSTValidate profile settingsProfileSettingsRequest (DTO)profile

11. Snapshot

EndpointMethodActionRequest VariablesPermissions
/api/snapshotGETGet server snapshot(none)Valid JWT

12. Stats

EndpointMethodActionRequest VariablesPermissions
/api/stats/babstats/servers/savePOSTSave BABStats serverBabstatsServerRequest (DTO)stats
/api/stats/babstats/servers/addPOSTAdd BABStats serverBabstatsServerRequest (DTO)stats
/api/stats/babstats/servers/removePOSTRemove BABStats serverserverID (int)stats
/api/stats/babstats/servers/clearAnnoucementsPOSTClear announcementsboolstats
/api/stats/babstats/validatePOSTValidate web statsWebStatsValidateRequest (DTO)stats
/api/stats/lobby/servers/savePOSTSave lobby serverLobbyServerRequest (DTO)stats
/api/stats/lobby/servers/addPOSTAdd lobby serverLobbyServerRequest (DTO)stats
/api/stats/lobby/servers/removePOSTRemove lobby serverserverID (int)stats

SignalR Hub

ServerHub

MethodActionRequest VariablesPermissions
SubscribeToUpdatesSubscribe to real-time server state updates(none)Valid JWT
UnsubscribeFromUpdatesUnsubscribe from updates(none)Valid JWT
HeartbeatSend heartbeat to maintain session(none)Valid JWT
RemoteSpectateCommandServer sends command to clientRemoteSpectateCommand (DTO)Server → Client

Required Variables (DTOs)

Auth

record LoginRequest(string Username, string Password, string? ClientVersion = null);

Admin

class CreateUserRequestDTO { string Username, string Password, List<string> Permissions, bool IsActive, string Notes }
class UpdateUserRequestDTO { int UserID, string Username, string? NewPassword, List<string> Permissions, bool IsActive, string Notes }
class DeleteUserRequestDTO { int UserID }

Ban

class BanDTOs { int? NameRecordID, int? IPRecordID, string? PlayerName, string? IPAddress, bool IsName, bool IsIP, int? SubnetMask, DateTime BanDate, DateTime? ExpireDate, string RecordType, string Notes, bool IgnoreValidation }
class DeleteBanRecordRequest { int RecordID, bool IsName }

Player Commands

class ArmPlayerCommand { int PlayerSlot, string PlayerName }
class DisarmPlayerCommand { int PlayerSlot, string PlayerName }
class GodModePlayerCommand { int PlayerSlot, string PlayerName }
class SwitchTeamPlayerCommand { int PlayerSlot, string PlayerName, int currentTeam, int TeamNum }
class KickPlayerCommand { int PlayerSlot, string PlayerName }
class BanPlayerCommand { int PlayerSlot, string PlayerName, string PlayerIP, bool BanIP }
class WarnPlayerCommand { int PlayerSlot, string PlayerName, string Message }
class KillPlayerCommand { int PlayerSlot, string PlayerName }

Permissions

  • admins_accounts - Access admin accounts panel
  • admins_editusers - Create/edit/delete users
  • admins_auditlogs - View audit logs
  • bans - Manage ban whitelist/blacklist
  • chat - Send chat messages, manage auto messages
  • profile - Manage profile settings, file browser
  • gameplay - Manage gameplay settings
  • maps - Manage map playlists
  • players - Manage players (arm, disarm, kick, ban, etc.)
  • stats - Manage stats/lobby settings

Token Information

PropertyValue
Token TypeJWT (JSON Web Token)
IssuerBHD.ServerManager
AudienceBHD.RemoteClient
Expiration8 hours
Token RevocationSupported via denylist (JTI)