View .md

Subusers endpoints (Client API: game servers)

9 FeatherPanel Client API: game servers endpoints from user/server/subusers.php: methods, paths, auth, permissions, rate limits, parameters and responses.

Last synced from FeatherPanel 15b94e9 on .

On this page

Defined in backend/app/routes/user/server/subusers.php. Authentication used here: Server access. 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/user/servers/{uuidShort}/subusers

Auth: Server accessRoute name: session-server-subusersController: SubuserController::getSubusersroute source

Get server subusers Retrieve all subusers for a specific server that the user owns or has subuser access to.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
pagequeryintegernoPage number for pagination
per_pagequeryintegernoNumber of records per page
searchquerystringnoSearch term to filter subusers by username or email
Response data fieldTypeDescription
dataSubuserWithDetails[]
paginationSubuserPagination
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/subusers" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Server subusers retrieved successfully · 400 Bad request - Missing or invalid UUID short · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server not found · 500 Internal server error - Failed to retrieve subusers

POST/api/user/servers/{uuidShort}/subusers

Auth: Server accessRoute name: session-server-create-subuserController: SubuserController::createSubuserroute source

Create subuser Create a new subuser for a server by email address. The user must exist in the system and not already be a subuser for this server.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID

Request body: SubuserCreateRequest (application/json) · Response data: SubuserWithDetails

Body fieldTypeRequiredDescription
emailstring (email)yesEmail address of user to add as subuser
Response data fieldTypeDescription
idintegerSubuser ID
user_idintegerUser ID
server_idintegerServer ID
permissionsstring[]Array of permission strings
created_atstring (date-time)Creation timestamp
updated_atstring (date-time)Last update timestamp
usernamestringUser username
emailstring (email)User email
first_namestringUser first name
last_namestringUser last name
uuidstringUser UUID
curl -X POST "$PANEL_URL/api/user/servers/$UUID_SHORT/subusers" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"email":""}'

Plugin events: featherpanel:user:server:subuser:created

Responses: 201 Subuser created successfully · 400 Bad request - Missing required fields, invalid email format, user not found, cannot add self, or subuser already exists · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server or user not found · 500 Internal server error - Failed to create subuser

GET/api/user/servers/{uuidShort}/subusers/permissions

Auth: Server accessRoute name: session-server-get-valid-permissionsController: SubuserController::getValidPermissionsroute source

Get valid permissions Retrieve the list of valid permissions that can be assigned to subusers.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID

Response data: PermissionsResponse

Response data fieldTypeDescription
permissionsstring[]Array of available permissions
totalintegerTotal number of permissions
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/subusers/permissions" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Valid permissions retrieved successfully · 400 Bad request - Missing or invalid UUID short · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server not found · 500 Internal server error - Failed to retrieve permissions

GET/api/user/servers/{uuidShort}/subusers/details

Auth: Server accessDefault rate limit: 30 / minute (user-server-subusers)Route name: session-server-get-subusers-detailsController: SubuserController::getSubusersWithDetailsroute source

Get all subusers with details Retrieve all subusers for a server with detailed user information.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
Response data fieldTypeDescription
dataSubuserWithDetails[]
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/subusers/details" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Subusers with details retrieved successfully · 400 Bad request - Missing or invalid UUID short · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server not found · 500 Internal server error - Failed to retrieve subusers

GET/api/user/servers/{uuidShort}/subusers/search-users

Auth: Server accessDefault rate limit: 30 / minute (user-server-subusers)Route name: session-server-search-usersController: SubuserController::searchUsersroute source

Search users for subuser Search for users by email or username to add as subusers. Excludes users who are already subusers for this server.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
searchquerystringyesSearch term for username or email

Response data: UserSearchResponse

Response data fieldTypeDescription
usersUserSearchResult[]
totalintegerTotal number of users found
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/subusers/search-users?search=$SEARCH" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Users found successfully · 400 Bad request - Missing UUID short or search query · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server not found · 500 Internal server error - Failed to search users

GET/api/user/servers/{uuidShort}/subusers/{subuserId}

Auth: Server accessDefault rate limit: 30 / minute (user-server-subusers)Route name: session-server-get-subuserController: SubuserController::getSubuserroute source

Get specific subuser Retrieve details of a specific subuser for a server that the user owns or has subuser access to.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
subuserIdpathintegeryesSubuser ID

Response data: Subuser

Response data fieldTypeDescription
idintegerSubuser ID
user_idintegerUser ID
server_idintegerServer ID
permissionsstring[]Array of permission strings
created_atstring (date-time)Creation timestamp
updated_atstring (date-time)Last update timestamp
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/subusers/$SUBUSER_ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Subuser details retrieved successfully · 400 Bad request - Missing or invalid parameters · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server or subuser not found · 500 Internal server error - Failed to retrieve subuser

DELETE/api/user/servers/{uuidShort}/subusers/{subuserId}

Auth: Server accessRoute name: session-server-delete-subuserController: SubuserController::deleteSubuserroute source

Delete subuser Remove a subuser from a server.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
subuserIdpathintegeryesSubuser ID
Response data fieldTypeDescription
messagestringSuccess message
curl -X DELETE "$PANEL_URL/api/user/servers/$UUID_SHORT/subusers/$SUBUSER_ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:user:server:subuser:deleted

Responses: 200 Subuser deleted successfully · 400 Bad request - Missing or invalid parameters · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server or subuser not found · 500 Internal server error - Failed to delete subuser

GET/api/user/servers/{uuidShort}/subusers/{subuserId}/details

Auth: Server accessRoute name: session-server-get-subuser-detailsController: SubuserController::getSubuserWithDetailsroute source

Get subuser with details Retrieve detailed information about a specific subuser including user and server information.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
subuserIdpathintegeryesSubuser ID

Response data: SubuserWithDetails

Response data fieldTypeDescription
idintegerSubuser ID
user_idintegerUser ID
server_idintegerServer ID
permissionsstring[]Array of permission strings
created_atstring (date-time)Creation timestamp
updated_atstring (date-time)Last update timestamp
usernamestringUser username
emailstring (email)User email
first_namestringUser first name
last_namestringUser last name
uuidstringUser UUID
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/subusers/$SUBUSER_ID/details" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Subuser details retrieved successfully · 400 Bad request - Missing or invalid parameters · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server or subuser not found · 500 Internal server error - Failed to retrieve subuser details

PATCH/api/user/servers/{uuidShort}/subusers/{subuserId}

Auth: Server accessDefault rate limit: 10 / minute (user-server-subusers)Route name: session-server-update-subuserController: SubuserController::updateSubuserroute source
ParameterInTypeRequiredDescription
uuidShortpath-yes
subuserIdpath-yes
curl -X PATCH "$PANEL_URL/api/user/servers/$UUID_SHORT/subusers/$SUBUSER_ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:user:server:subuser:updated