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
Get server subusers Retrieve all subusers for a specific server that the user owns or has subuser access to.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
page | query | integer | no | Page number for pagination |
per_page | query | integer | no | Number of records per page |
search | query | string | no | Search term to filter subusers by username or email |
Response data field | Type | Description |
|---|---|---|
data | SubuserWithDetails[] | |
pagination | SubuserPagination |
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
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.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
Request body: SubuserCreateRequest (application/json) · Response data: SubuserWithDetails
| Body field | Type | Required | Description |
|---|---|---|---|
email | string (email) | yes | Email address of user to add as subuser |
Response data field | Type | Description |
|---|---|---|
id | integer | Subuser ID |
user_id | integer | User ID |
server_id | integer | Server ID |
permissions | string[] | Array of permission strings |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
username | string | User username |
email | string (email) | User email |
first_name | string | User first name |
last_name | string | User last name |
uuid | string | User 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
Get valid permissions Retrieve the list of valid permissions that can be assigned to subusers.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
Response data: PermissionsResponse
Response data field | Type | Description |
|---|---|---|
permissions | string[] | Array of available permissions |
total | integer | Total 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
Get all subusers with details Retrieve all subusers for a server with detailed user information.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
Response data field | Type | Description |
|---|---|---|
data | SubuserWithDetails[] |
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
Search users for subuser Search for users by email or username to add as subusers. Excludes users who are already subusers for this server.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
search | query | string | yes | Search term for username or email |
Response data: UserSearchResponse
Response data field | Type | Description |
|---|---|---|
users | UserSearchResult[] | |
total | integer | Total 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}
Get specific subuser Retrieve details of a specific subuser for a server that the user owns or has subuser access to.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
subuserId | path | integer | yes | Subuser ID |
Response data: Subuser
Response data field | Type | Description |
|---|---|---|
id | integer | Subuser ID |
user_id | integer | User ID |
server_id | integer | Server ID |
permissions | string[] | Array of permission strings |
created_at | string (date-time) | Creation timestamp |
updated_at | string (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}
Delete subuser Remove a subuser from a server.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
subuserId | path | integer | yes | Subuser ID |
Response data field | Type | Description |
|---|---|---|
message | string | Success 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
Get subuser with details Retrieve detailed information about a specific subuser including user and server information.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
subuserId | path | integer | yes | Subuser ID |
Response data: SubuserWithDetails
Response data field | Type | Description |
|---|---|---|
id | integer | Subuser ID |
user_id | integer | User ID |
server_id | integer | Server ID |
permissions | string[] | Array of permission strings |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
username | string | User username |
email | string (email) | User email |
first_name | string | User first name |
last_name | string | User last name |
uuid | string | User 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}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | - | yes | |
subuserId | path | - | 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