View .md

Permissions endpoints (Admin API)

5 FeatherPanel Admin API endpoints from admin/permissions.php: methods, paths, auth, permissions, rate limits, parameters and responses.

Last synced from FeatherPanel 15b94e9 on .

On this page

Defined in backend/app/routes/admin/permissions.php. Authentication used here: Admin. Read Authentication for how to send credentials and Rate limits and errors for the response envelope.

Paths, methods, permissions and rate limits come from the route file. Summaries, parameters and response codes come from the OpenAPI annotations on the controllers; endpoints without annotations show only what the route file declares.

Endpoints

GET/api/admin/permissions

Auth: AdminPermission: admin.roles.permissions.viewRoute name: admin-permissionsController: PermissionsController::indexroute source

Get all permissions Retrieve a paginated list of all permissions with optional search functionality and role filtering.

ParameterInTypeRequiredDescription
pagequeryintegernoPage number for pagination
limitqueryintegernoNumber of records per page
searchquerystringnoSearch term to filter permissions by permission name
role_idqueryintegernoFilter permissions by specific role ID
Response data fieldTypeDescription
permissionsPermission[]
paginationPermissionPagination
searchobject
curl -X GET "$PANEL_URL/api/admin/permissions" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Permissions retrieved successfully · 401 Unauthorized · 403 Forbidden - Insufficient permissions

GET/api/admin/permissions/{id}

Auth: AdminPermission: admin.roles.permissions.viewRoute name: admin-permissions-showController: PermissionsController::showroute source

Get permission by ID Retrieve a specific permission by its ID.

ParameterInTypeRequiredDescription
idpathintegeryesPermission ID
Response data fieldTypeDescription
permissionPermission
curl -X GET "$PANEL_URL/api/admin/permissions/$ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Permission retrieved successfully · 400 Bad request - Invalid permission ID · 401 Unauthorized · 403 Forbidden - Insufficient permissions · 404 Permission not found

PATCH/api/admin/permissions/{id}

Auth: AdminPermission: admin.roles.permissions.editRoute name: admin-permissions-updateController: PermissionsController::updateroute source

Update permission Update an existing permission. Only provided fields will be updated. Validates role ID and permission name format.

ParameterInTypeRequiredDescription
idpathintegeryesPermission ID

Request body: PermissionUpdate (application/json)

Body fieldTypeRequiredDescription
role_idintegernoRole ID
permissionstringnoPermission name
Response data fieldTypeDescription
permissionPermission
curl -X PATCH "$PANEL_URL/api/admin/permissions/$ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"role_id":0,"permission":""}'

Plugin events: featherpanel:admin:permissions:permission:updated

Responses: 200 Permission updated successfully · 400 Bad request - Invalid JSON, no data provided, invalid data types, or validation errors · 401 Unauthorized · 403 Forbidden - Insufficient permissions · 404 Permission not found · 500 Internal server error - Failed to update permission

DELETE/api/admin/permissions/{id}

Auth: AdminPermission: admin.roles.permissions.deleteRoute name: admin-permissions-deleteController: PermissionsController::deleteroute source

Delete permission Permanently delete a permission from the database. This action cannot be undone.

ParameterInTypeRequiredDescription
idpathintegeryesPermission ID
Response data fieldTypeDescription
messagestringSuccess message
curl -X DELETE "$PANEL_URL/api/admin/permissions/$ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:admin:permissions:permission:deleted

Responses: 200 Permission deleted successfully · 400 Bad request - Invalid permission ID · 401 Unauthorized · 403 Forbidden - Insufficient permissions · 404 Permission not found · 500 Internal server error - Failed to delete permission

PUT/api/admin/permissions

Auth: AdminPermission: admin.roles.permissions.createRoute name: admin-permissions-createController: PermissionsController::createroute source

Create new permission Create a new permission for a specific role. Validates role ID and permission name format.

Request body: PermissionCreate (application/json)

Body fieldTypeRequiredDescription
role_idintegeryesRole ID
permissionstringyesPermission name
Response data fieldTypeDescription
permissionPermission
curl -X PUT "$PANEL_URL/api/admin/permissions" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"role_id":0,"permission":""}'

Plugin events: featherpanel:admin:permissions:permission:created

Responses: 201 Permission created successfully · 400 Bad request - Invalid JSON, missing required fields, invalid data types, or validation errors · 401 Unauthorized · 403 Forbidden - Insufficient permissions · 500 Internal server error - Failed to create permission