Skip to main content

Overview

The Admin API provides endpoints for managing CAD settings, users, values, and administrative operations.
All admin endpoints require appropriate administrative permissions. Access is restricted based on user rank and specific permission grants.

Get Dashboard Statistics

curl -X GET https://your-cad.com/api/admin \
  -H "Cookie: snaily-cad-access-token=<token>"
Get administrative dashboard statistics and metrics.

Response

activeUsers
number
Number of accepted/active users
pendingUsers
number
Number of users pending whitelist approval
bannedUsers
number
Number of banned users
createdCitizens
number
Total citizens created
arrestCitizens
number
Citizens with arrest records
deadCitizens
number
Citizens marked as deceased
officerCount
number
Total officers
onDutyOfficers
number
Currently on-duty officers
suspendedOfficers
number
Suspended officers
emsDeputiesCount
number
Total EMS-FD deputies
onDutyEmsDeputies
number
Currently on-duty deputies
vehicles
number
Total registered vehicles
impoundedVehicles
number
Impounded vehicles
imageData
object
Image storage statistics

Get Changelog

curl -X GET https://your-cad.com/api/admin/changelog
Get the latest SnailyCAD release changelog from GitHub.

Response

Returns the changelog markdown content for the current version.

User Management

Get Users

curl -X GET "https://your-cad.com/api/admin/manage/users?skip=0" \
  -H "Cookie: snaily-cad-access-token=<token>"
Get all users with pagination and filtering.

Query Parameters

skip
number
default:"0"
Pagination offset
includeAll
boolean
default:"false"
Include all users
query
string
Search by username

Update User

curl -X PUT https://your-cad.com/api/admin/manage/users/{userId} \
  -H "Cookie: snaily-cad-access-token=<token>" \
  -H "Content-Type: application/json" \
  -d '{
    "rank": "ADMIN",
    "permissions": ["Leo", "Dispatch"],
    "whitelistStatus": "ACCEPTED"
  }'
Update a user’s rank, permissions, or whitelist status.

Request Body

rank
string
User rank: OWNER, ADMIN, USER
permissions
array
Array of permission strings
whitelistStatus
string
Whitelist status: ACCEPTED, PENDING, DECLINED

Ban/Unban User

curl -X POST https://your-cad.com/api/admin/manage/users/{userId}/ban \
  -H "Cookie: snaily-cad-access-token=<token>" \
  -H "Content-Type: application/json" \
  -d '{
    "banned": true,
    "banReason": "Violation of terms"
  }'
Ban or unban a user.

Request Body

banned
boolean
required
Ban (true) or unban (false)
banReason
string
Reason for ban (required when banning)

CAD Settings

Get CAD Settings

curl -X GET https://your-cad.com/api/admin/manage/cad-settings \
  -H "Cookie: snaily-cad-access-token=<token>"
Get current CAD settings and configuration.

Update CAD Settings

curl -X PUT https://your-cad.com/api/admin/manage/cad-settings \
  -H "Cookie: snaily-cad-access-token=<token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My CAD Instance",
    "areaOfPlay": "San Andreas",
    "whitelisted": true,
    "registrationCode": "SECRET123"
  }'
Update CAD settings.

Request Body

name
string
CAD instance name
areaOfPlay
string
Default area of play
whitelisted
boolean
Enable whitelist for new users
registrationCode
string
Required registration code
towWhitelisted
boolean
Whitelist tow access
taxiWhitelisted
boolean
Whitelist taxi access

Values Management

Get Values

curl -X GET https://your-cad.com/api/admin/values/penal_code \
  -H "Cookie: snaily-cad-access-token=<token>"
Get values for a specific category.

Path Parameters

path
string
required
Value category: penal_code, vehicle, weapon, gender, ethnicity, license, etc.

Create Value

curl -X POST https://your-cad.com/api/admin/values/penal_code \
  -H "Cookie: snaily-cad-access-token=<token>" \
  -H "Content-Type: application/json" \
  -d '{
    "value": "Assault",
    "type": "FELONY",
    "jailTime": {"min": 10, "max": 20},
    "fine": {"min": 500, "max": 1000}
  }'
Create a new value.

Update Value

curl -X PUT https://your-cad.com/api/admin/values/penal_code/{valueId} \
  -H "Cookie: snaily-cad-access-token=<token>" \
  -H "Content-Type: application/json" \
  -d '{
    "value": "Aggravated Assault"
  }'
Update an existing value.

Delete Value

curl -X DELETE https://your-cad.com/api/admin/values/penal_code/{valueId} \
  -H "Cookie: snaily-cad-access-token=<token>"
Delete a value.

Citizens Management

Get All Citizens

curl -X GET "https://your-cad.com/api/admin/manage/citizens?skip=0" \
  -H "Cookie: snaily-cad-access-token=<token>"
Get all citizens in the CAD.

Query Parameters

skip
number
default:"0"
Pagination offset
query
string
Search query

Units Management

Get All Officers

curl -X GET https://your-cad.com/api/admin/manage/units/officers \
  -H "Cookie: snaily-cad-access-token=<token>"
Get all LEO officers.

Get All Deputies

curl -X GET https://your-cad.com/api/admin/manage/units/deputies \
  -H "Cookie: snaily-cad-access-token=<token>"
Get all EMS-FD deputies.

Suspend/Unsuspend Unit

curl -X POST https://your-cad.com/api/admin/manage/units/{unitId}/suspend \
  -H "Cookie: snaily-cad-access-token=<token>" \
  -H "Content-Type: application/json" \
  -d '{
    "suspended": true
  }'
Suspend or unsuspend a unit.

Import/Export

Import Citizens

curl -X POST https://your-cad.com/api/admin/import/citizens \
  -H "Cookie: snaily-cad-access-token=<token>" \
  -F "[email protected]"
Bulk import citizens from JSON file.

Import Vehicles

curl -X POST https://your-cad.com/api/admin/import/vehicles \
  -H "Cookie: snaily-cad-access-token=<token>" \
  -F "[email protected]"
Bulk import vehicles from JSON file.

Import Weapons

curl -X POST https://your-cad.com/api/admin/import/weapons \
  -H "Cookie: snaily-cad-access-token=<token>" \
  -F "[email protected]"
Bulk import weapons from JSON file.

Courthouse

Get Pending Warrants

curl -X GET https://your-cad.com/api/admin/manage/courthouse/pending-warrants \
  -H "Cookie: snaily-cad-access-token=<token>"
Get warrants pending approval.

Get Pending Expungement Requests

curl -X GET https://your-cad.com/api/admin/manage/courthouse/pending-expungement-requests \
  -H "Cookie: snaily-cad-access-token=<token>"
Get expungement requests pending approval.

Get Pending Name Changes

curl -X GET https://your-cad.com/api/admin/manage/courthouse/pending-name-change-requests \
  -H "Cookie: snaily-cad-access-token=<token>"
Get name change requests pending approval.

Discord Integration

Get Discord Settings

curl -X GET https://your-cad.com/api/admin/manage/cad-settings/discord \
  -H "Cookie: snaily-cad-access-token=<token>"
Get Discord integration settings.

Update Discord Webhooks

curl -X POST https://your-cad.com/api/admin/manage/cad-settings/discord/webhooks \
  -H "Cookie: snaily-cad-access-token=<token>" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "CALL_911",
    "webhookUrl": "https://discord.com/api/webhooks/..."
  }'
Configure Discord webhooks for various events.

Request Body

type
string
required
Webhook type: CALL_911, BOLO, UNIT_STATUS, PANIC_BUTTON, etc.
webhookUrl
string
required
Discord webhook URL

Build docs developers (and LLMs) love