Permission Levels
Every user has a permission level that determines what admin actions they can perform. The hierarchy is strict — you can only act on users below your level (except Owners, who can act on each other).| Level | Value | Description |
|---|---|---|
| User | 0 | Default. Self-service only — manage own profile, prefix, sessions, and view own guilds. |
| Moderator | 1 | Can warn and timeout users below them. Limited admin panel access. |
| Admin | 2 | Full admin panel. Can ban, delete, manage subscriptions, and assign permissions up to Moderator. |
| Owner | 3 | Unrestricted. Can act on everyone including other Owners. Can assign permissions up to Admin. |
What each level can access
User (level 0)
Public endpoints (no login required, justX-API-Key):
GET /statistics/*— View user, guild, bot countsGET /bots— List public botsGET /bots/{id}— View a bot’s public profileGET /guilds/{id}— View a guild’s public profileGET /users/{id}— View a user’s public profile
GET /users/me— View own profilePOST /users/me/prefix— Update own command prefixGET /users/me/subscription— View own subscription statusGET /users/me/punishments— View own punishment historyGET /users/me/guilds— List own guildsPOST /users/me/guilds/{id}/prefix— Update a guild’s prefix (must be guild owner)GET /users/me/sessions— List own sessionsPOST /users/me/sessions/{token}/destroy— Revoke a sessionGET /users/search— Search users (returns public profiles)GET /guilds/search— Search guildsGET /bots/search— Search bots (returns public profiles)
Note: Session TTL varies by permission level — admin and above get 1-day sessions, while regular users get 30-day sessions.
Moderator (level 1)
Everything a User can access, plus:GET /users/search— Search users (full details, only sees users below their level)GET /users/{id}— View user detail with punishments, guilds, bots (hierarchy enforced)GET /guilds/{id}— View guild detail (subscription/sponsor fields redacted)GET /admin/audit/logs— View audit logs (only warn and timeout events)POST /admin/punishments/.../warn— Issue warningsPOST /admin/punishments/.../timeout— Issue timeouts
Admin (level 2)
Everything a Moderator can access, plus:GET /bots/search— Search bots (full details)GET /users/{id}— Full user detail (no redaction, includes subscription history)GET /guilds/{id}— Full guild detail (no redaction, includes subscription history)GET /bots/{id}— Full bot detail (owner, rate limits, type)POST /admin/users/{id}— Update users (permission, prefix)POST /admin/users/{id}/delete— Delete usersPOST /admin/guilds/{id}/update— Update guildsPOST /admin/guilds/{id}/prefix— Update guild prefixPOST /admin/guilds/{id}/delete— Delete guildsGET /admin/bots— List botsPOST /admin/bots— Register new botsPOST /admin/bots/{id}/update— Update botsPOST /admin/bots/{id}/verify— Verify botsPOST /admin/bots/{id}/unverify— Unverify botsPOST /admin/bots/{id}/regenerate-key— Regenerate API keysPOST /admin/bots/{id}/reset-stats— Reset bot statsPOST /admin/bots/{id}/delete— Delete botsPOST /admin/punishments/.../ban— Ban users/guildsPOST /admin/punishments/.../unban— Unban users/guildsGET /admin/punishments/search— Search punishmentsGET /admin/punishments/{id}— View punishment detailGET /admin/punishments/stats— Punishment analyticsGET /admin/subscriptions/active— List active subscriptionsPOST /admin/subscriptions/.../grant— Grant subscriptionsPOST /admin/subscriptions/.../trial— Grant trialsPOST /admin/subscriptions/.../revoke— Revoke subscriptionsGET /admin/audit/logs— Full audit logs (filtered to exclude admin+ targets)
Owner (level 3)
Same as Admin, but:- Can act on all users including other Owners and Admins
- Can assign permissions up to Admin (Admins can only assign up to Moderator)
- Audit logs are unfiltered — sees everything
Subscription Tiers
Subscription tiers control feature access, not admin permissions. They apply to both users and guilds independently.| Tier | Value | Duration | Description |
|---|---|---|---|
| Basic | 0 | — | Default. Standard features only. |
| Trial | 1 | 7 days (forced) | One-time trial. Same access as Premium. Cannot be granted twice. |
| Premium | 2 | Set by admin | Paid subscription with expiration date. |
| Lifetime | 3 | Permanent | Never expires. subscription_expires_at is null. |
has_premiumistruefor any active non-Basic tier (Trial, Premium, or Lifetime with valid expiry).- Expired Trial/Premium subscriptions are automatically downgraded to Basic by a background task.
- Trial eligibility is checked via audit log history — once granted, it cannot be granted again.
User States
| State | Value | Description |
|---|---|---|
| Active | 0 | Normal — can log in and use all features. |
| Timeout | 1 | Temporarily restricted — cannot execute commands. |
| Banned | 2 | Permanently blocked — cannot log in or interact. |
Guild States
| State | Value | Description |
|---|---|---|
| Active | 0 | Bot is present and operational. |
| Inactive | 1 | Bot has left or been removed. |
| Banned | 2 | Guild is blacklisted — bot will not rejoin. |
Bot Types
| Type | Value | Description |
|---|---|---|
| Official | 1 | First-party bots managed by the platform. |
| Verified | 2 | Third-party bots that passed review. |
| Community | 3 | Default — unverified community bots. |
Bot API Access
Registered bots authenticate withX-API-Key and have their own set of endpoints:
GET /bot/me— View own bot profilePOST /bot/update-info— Update own name/avatarPOST /bot/me— Update stats (guilds, users, latency)POST /bot/batch— Batch report command executionsGET /bot/users/{id}— Look up a userPOST /bot/users/{id}— Update a user’s info (username, avatar)GET /bot/guilds/{id}— Look up a guildPOST /bot/guilds/{id}— Create/update guild info
rate_limit_per_hour setting (configured by admins).
