Developer API
Use the Technified API to connect your own services (Roblox game servers, custom dashboards, internal tools) to your guild's data.
This reference only lists endpoints you can call with a guild API key. Dashboard-only routes are not in here.
Base URL
https://api.technified.xyz/api/v1All paths in this reference are added to that prefix.
Authentication
You authenticate with a guild API key. A key is bound to one guild, so it can only read and write data for that guild.
Get a key
- Open technified.xyz/dashboard (opens in a new tab)
- Pick your server, then go to Settings, API Keys
- Click Create API Key, give it a name, and copy it right away (it is only shown once)
- You can have up to 3 active keys per guild. Revoke an old one to free a slot.
A key looks like technified_<guildId>_<random>. Keep it server-side. Never embed it in Roblox client scripts, browser code, or git.
Send the key
The API accepts the key in any of three header formats. Pick whichever your HTTP client makes easiest:
X-API-Key: technified_xxx_yyyAuthorization: ApiKey technified_xxx_yyyAuthorization: Bearer technified_xxx_yyyThe guild ID in the key is checked against the :guildId in the path. If they don't match you get a 403.
Response shape
Every successful response uses this envelope:
{
"status": "success",
"code": 200,
"message": "User is not banned",
"data": { "banned": false }
}Errors look like this:
{
"status": "error",
"code": 401,
"message": "Invalid API key for this guild"
}Quick example
Check whether a Roblox user is banned in your guild:
curl https://api.technified.xyz/api/v1/moderation/$GUILD_ID/ban-status/$ROBLOX_USER_ID \
-H "X-API-Key: $TECHNIFIED_API_KEY"{
"status": "success",
"code": 200,
"message": "User is not banned",
"data": { "banned": false }
}In Roblox (server-side Luau) the same call:
local HttpService = game:GetService("HttpService")
local API_KEY = "technified_xxx_yyy"
local function isBanned(guildId, robloxUserId)
local ok, res = pcall(HttpService.RequestAsync, HttpService, {
Url = string.format(
"https://api.technified.xyz/api/v1/moderation/%s/ban-status/%d",
guildId, robloxUserId
),
Method = "GET",
Headers = { ["X-API-Key"] = API_KEY },
})
if not ok or not res.Success then return false end
return HttpService:JSONDecode(res.Body).data.banned == true
endIf you already run the Adonis plugin, you don't need to call this yourself. The plugin handles ban checks, mute checks, and sync for you. This API is for builders who want to wire Technified into their own systems.
Conventions
- Bodies are JSON.
- Timestamps are ISO-8601 in UTC (for example
2026-05-08T14:22:01Z). - Discord IDs are stringified snowflakes (
"123456789012345678"). - Roblox user and group IDs are numbers.
:identifieraccepts either a Discord ID (string) or a Roblox user ID (number).
Where to next
- Endpoint Reference for every API-key endpoint with example responses
- Rate Limits for the per-category quotas
- Errors for status codes and how to recover