/api/v1/temp-roles
Authentication: API key or JWT Bearer token required. Moderator permission required.
Rate limit: 120 requests per 15 minutes per IP.
GET /temp-roles
Returns a paginated list of active (non-expired) temporary role assignments for a guild.Query parameters
The Discord guild ID to query.
Filter results to a specific user ID.
Page number.
Items per page. Maximum
100.Response
List of active temp role assignment records.
Example
POST /temp-roles
Assigns a temporary role to a member via the dashboard. The role is applied to the member in Discord immediately and scheduled for automatic removal.Request body
The Discord guild ID.
Discord user ID to assign the role to.
Discord role ID to assign.
Duration string (for example,
1h, 7d, 2w). Parsed by the bot’s duration utility.Optional reason recorded in the assignment and shown in Discord audit log.
Response
HTTP 201 on success. Returns{ "success": true, "data": <assignment record> }.
Example
Error responses
| Status | Cause |
|---|---|
400 | Missing required fields; invalid duration string; invalid guild, user, or role |
401 | Missing authentication |
403 | Not a guild moderator |
503 | Discord client not available |
DELETE /temp-roles/:id
Revokes an active temp role assignment by its database record ID. The role is removed from the member in Discord immediately.Path parameters
The database record ID of the assignment to revoke.
Query parameters
The Discord guild ID (required for permission check).
Response
HTTP 200 on success. Returns{ "success": true, "data": <revoked record> }.
Example
Error responses
| Status | Cause |
|---|---|
400 | Missing or invalid guildId; invalid record ID |
404 | Assignment not found or already expired |
403 | Not a guild moderator |