Public API
Developers can use Viscra's public API to integrate server data into external tools or websites.
/apikeys generate.
Legacy BotKeys will cease to function on 10th of January 2026.Getting Started
General Information
Get basic information about a Discord server.
serverId (String
Discord Server ID){
"id": "...",
"name": "...",
"memberCount": 0,
"iconUrl": "..."
}Check if a Roblox user is verified with Viscra.
robloxId (Number/String
Roblox User ID){
"isVerified": true,
"discordId": "..."
}Get the current rank of a user in a Discord server.
serverId,
robloxId{
"groupId": 0,
"rankName": "...",
"rankId": 0
}XP Management
All XP routes return a success status and the new XP balance.
Fetch the current XP balance for a user.
serverId,
robloxId{ "xp": 100 }Set a user's XP to an exact value.
serverId,
robloxId, amount,
reference (Optional)Add XP to a user's current balance.
Subtract XP from a user's current balance.
Group Management
If groupId is not provided, the bot defaults to the
server's configured Main Group.
List pending join requests for a Roblox group.
{
"success": true,
"data": [
{
"id": "...",
"user": { "userId": 123, "displayName": "..." }
}
]
}Accept a pending join request.
serverId,
requestId, groupId (Optional)Decline or deny a pending join request.
/api/group/deny-requestPromote a user in the Roblox group.
{
"success": true,
"newRole": { "name": "Captain", "rank": 50 }
}Demote a user in the Roblox group.
Medal Management
List all available medals in a server.
{
"medals": [{ "name": "Purple Heart", "description": "..." }]
}Get a specific user's medals.
Award a medal to a user.
serverId,
robloxId, medalNameRevoke a medal from a user.
Certifications
Get all certifications configured for a server.
serverId (String
Discord Server ID){
"certifications": [
{
"reference": "AFO",
"name": "Authorised Firearms Officer",
"description": "Certified to use firearms in the field"
},
{
"reference": "FTO",
"name": "Field Training Officer",
"description": "Certified to train new recruits"
}
]
}Get all certifications for a specific user.
serverId,
robloxId{
"certifications": [
{
"reference": "AFO",
"name": "Authorised Firearms Officer",
"description": "Certified to use firearms in the field"
}
]
}Check if a user has a specific certification.
serverId,
robloxId, reference{
"hasCertification": true
}Award a certification to a user.
serverId,
robloxId, reference{
"success": true,
"message": "Awarded Authorised Firearms Officer (AFO) to 123456789."
}Revoke a certification from a user.
serverId,
robloxId, reference{
"success": true,
"message": "Revoked AFO from 123456789."
}EP (Quota)
Get user EP status and warning level.
{
"ep": { "main": 10, "sub1": 5 },
"warningLevel": 1
}Add EP to a user.
company must be one of:
main, sub1, sub2,
sub3.Leave of Absence (LOA)
Get a user's current LOA status.
{
"active": true,
"endsAt": 1705920000000,
"startedAt": 1705833600000
}Start a new LOA for a user.
serverId,
robloxId, days (Number)End an active LOA.