Removes the entry from theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/TheSerchCp/SEAM-API/llms.txt
Use this file to discover all available pages before exploring further.
permissionXRole pivot table that links a permissionId to a roleId. After the unassignment, the roles.middleware will deny any request to the associated route made by users whose only qualifying role was this one. Access is revoked immediately on the next request — no restart required.
If the roleId/permissionId combination does not exist in the pivot table, the operation succeeds silently (no error is raised).
Authentication
Requires a valid JWT and theDELETE /api/v1/permission/unassign permission assigned to the caller’s role.
Request
Method:DELETE
Path: /api/v1/permission/unassign
Headers
Bearer token obtained from the login endpoint. Format:
Bearer <token>Must be
application/json. This DELETE endpoint accepts a JSON body.Body
The numeric ID of the role to remove the permission from. Must be a JSON number (not a string).
The numeric ID of the permission to remove. Must be a JSON number (not a string).
Example Request Body
Response
200 OK
Returned when the unassignment completes. If the combination did not exist, the operation succeeds silently.Always
true for successful responses.Human-readable confirmation message. Value:
"Permiso removido del rol exitosamente".Always
null for this operation.Example Response
Error Responses
| Status | Description |
|---|---|
400 Bad Request | roleId or permissionId is missing or not a JSON number type. |
401 Unauthorized | Missing or invalid JWT token. |
403 Forbidden | Authenticated user’s role lacks the DELETE /api/v1/permission/unassign permission. |
400 Bad Request
Code Example
cURL
Socket.IO Events
On success, the server emits the following events:| Event | Target | Operation | Status sequence |
|---|---|---|---|
operation:progress | Requesting socket | permissions:unassign | start → success |
data:changed | All connected clients | permissions:unassign | Broadcast with no data payload (null) |
data:changed can use the initiatorSocketId field in the payload to skip redundant UI updates if they already know the result from the HTTP response.