Server API

Server API v1: read

Read a server you admin: the live server, players, staff, sessions, cases, bans, shifts, departments and logs. v1 keys can only read.

#Start

Base address: https://uplinkrblx.xyz/api/server/v1. Send your key in the Authorization header on every request. How to get a key.

Terminal
curl https://uplinkrblx.xyz/api/server/v1/server \
  -H "Authorization: Bearer usk_your_key"

#Endpoints

All of these are GET.

MethodPathWhat it does
GET/serverName, status and the live server: players, max players, queue, teams and join code
GET/playersPlayers in the server now, with team, callsign, permission, wanted level and linked Discord IDs
GET/players/:nameOrIdOne player: online, banned, last join, Discord IDs and their last 25 cases
GET/staff/onlineStaff in the server now
GET/sessionsThe running session (or null) and recent ones
GET/casesQuery: target (Roblox ID), type, q, limit (1-200, default 50), before (case number)Cases, newest first
GET/cases/:numberOne case
GET/bansActive bans
GET/shiftsQuery: days (1-90, default 7)Staff shift time
GET/shifts/openWho is clocked in now
GET/quotaThe weekly staff quota board
GET/departmentsDepartments with ranks and member counts
GET/departments/:id/membersA department's roster
GET/logsQuery: kind, q, limit (1-200, default 100), before (time in ms)Joins, leaves, kills, commands, mod calls and team changes

#Example answer

GET /cases/42

JSON
{
  "case": {
    "number": 42,
    "type": "warn",
    "status": "active",
    "target": { "robloxId": "1520318804", "name": "DashCamDan" },
    "moderator": { "discordId": "200000000000000007", "name": "Ava (API: Staff bot)" },
    "reason": "Driving on the sidewalk",
    "evidence": null,
    "inGame": true,
    "createdAt": 1760000000000,
    "voidedAt": null,
    "voidedBy": null
  }
}

#Need to make changes?

Starting sessions, making cases, clocking staff and webhooks are in v2. A v2 key also works on every v1 address. Errors and rate limits are the same for both, on Errors and limits.