Core endpoints (Client API: game servers)
15 FeatherPanel Client API: game servers endpoints from user/server/core.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/core.php. Authentication used here: Signed-in user, 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
Get user servers Retrieve all servers owned by the user or where the user is a subuser, with pagination and search functionality.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | no | Page number for pagination |
limit | query | integer | no | Number of records per page |
search | query | string | no | Search term to filter servers by name or description |
view_all | query | boolean | no | View all servers (admin only - requires ADMIN_SERVERS_VIEW permission) |
Response data field | Type | Description |
|---|---|---|
servers | UserServer[] | |
pagination | UserServerPagination | |
search | ServerSearch |
curl -X GET "$PANEL_URL/api/user/servers" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Responses: 200 User servers retrieved successfully · 401 Unauthorized - User not authenticated · 500 Internal server error - Failed to retrieve servers
GET/api/user/servers/all-others
curl -X GET "$PANEL_URL/api/user/servers/all-others" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"GET/api/user/servers/{uuidShort}
Get server details Retrieve detailed information about a specific server including node, realm, spell, allocation, location, SFTP details, and variables.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
Response data: ServerDetail
Response data field | Type | Description |
|---|---|---|
id | integer | Server ID |
uuid | string | Server UUID |
uuidShort | string | Server short UUID |
name | string | Server name |
description | string | Server description |
status | string | Server status |
memory | integer | Memory limit in MB |
disk | integer | Disk limit in MB |
cpu | integer | CPU limit percentage |
swap | integer | Swap limit in MB |
io | integer | IO limit |
node | object | Node information |
realm | object | Realm information |
spell | object | Spell information |
allocation | object | Allocation information |
location | object | Location information |
sftp | object | |
variables | object[] | Server variables |
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Responses: 200 Server 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 server
GET/api/user/servers/{uuidShort}/resources
Get current resource usage Returns the daemon-reported utilization (disk, memory, CPU) for a server, including while it is offline, together with the configured limits from the panel.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes |
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/resources" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Responses: 200 Resource usage · 404 Server or node not found · 502 Daemon unreachable
POST/api/user/servers/{uuidShort}/jwt
Generate server JWT token Generate a JWT token for Wings API access with user permissions and WebSocket connection details.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
Response data: JwtResponse
Response data field | Type | Description |
|---|---|---|
token | string | JWT token |
expires_at | integer | Token expiration timestamp |
server_uuid | string | Server UUID |
user_uuid | string | User UUID |
permissions | string[] | User permissions |
connection_string | string | WebSocket connection string |
curl -X POST "$PANEL_URL/api/user/servers/$UUID_SHORT/jwt" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Responses: 200 JWT token generated successfully · 400 Bad request - Missing or invalid UUID short · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server or node not found · 500 Internal server error - Failed to generate JWT token
PUT/api/user/servers/{uuidShort}
Update server Update server information including name, description, startup command, Docker image, and variables. Syncs changes with Wings daemon.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
Request body: ServerUpdateRequest (application/json) · Response data: ServerUpdateResponse
| Body field | Type | Required | Description |
|---|---|---|---|
name | string | no | Server name |
description | string | no | Server description |
startup | string | no | Startup command |
image | string | no | Docker image |
spell_id | integer | no | Spell ID to change server spell |
wipe_files | boolean | no | Whether to delete all server files before reinstalling (only applies when changing spell_id) |
auto_start | boolean | no | Start automatically after node reboot/reconnect |
auto_start_delay | integer | no | Extra delay in seconds before auto-start |
variables | object[] | no | Server variables |
Response data field | Type | Description |
|---|---|---|
server | object |
curl -X PUT "$PANEL_URL/api/user/servers/$UUID_SHORT" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"","description":"","startup":"","image":"","spell_id":0,"wipe_files":false,"auto_start":false,"auto_start_delay":0,"variables":[]}'Plugin events: featherpanel:server:reinstall, featherpanel:user:server:updated
Responses: 200 Server updated successfully · 400 Bad request - Missing UUID, invalid data, or validation errors · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server or variable not editable · 404 Not found - Server or node not found · 422 Unprocessable entity - Invalid variable values or unknown variables · 500 Internal server error - Failed to update server
POST/api/user/servers/{uuidShort}/custom-variables
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | - | yes |
curl -X POST "$PANEL_URL/api/user/servers/$UUID_SHORT/custom-variables" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"DELETE/api/user/servers/{uuidShort}/custom-variables/{variableId}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | - | yes | |
variableId | path | - | yes |
curl -X DELETE "$PANEL_URL/api/user/servers/$UUID_SHORT/custom-variables/$VARIABLE_ID" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"DELETE/api/user/servers/{uuidShort}
Delete server Permanently delete a server. Only server owners can delete their servers. This action cannot be undone and will delete all server data, files, databases, and configurations.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
Response data field | Type | Description |
|---|---|---|
message | string | Success message |
curl -X DELETE "$PANEL_URL/api/user/servers/$UUID_SHORT" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Plugin events: featherpanel:server:delete
Responses: 200 Server deleted successfully · 400 Bad request - Invalid server configuration · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server or user is not the server owner · 404 Not found - Server or node not found · 422 Unprocessable Entity - Invalid server data · 500 Internal server error - Failed to delete server
POST/api/user/servers/{uuidShort}/reinstall
Reinstall server Reinstall a server using Wings daemon. This will reset the server to its initial state. Optionally wipe all files before reinstalling.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
| Body field | Type | Required | Description |
|---|---|---|---|
wipe_files | boolean | no | Whether to delete all server files before reinstalling |
Response data field | Type | Description |
|---|---|---|
server | object |
curl -X POST "$PANEL_URL/api/user/servers/$UUID_SHORT/reinstall" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"wipe_files":false}'Plugin events: featherpanel:server:reinstall
Responses: 200 Server reinstalled successfully · 400 Bad request - Missing or invalid UUID short · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server or node not found · 500 Internal server error - Failed to reinstall server
POST/api/user/servers/{uuidShort}/install/abort
Abort server install Abort an in-progress install or reinstall on a Calagopus (wings_rs) node.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
curl -X POST "$PANEL_URL/api/user/servers/$UUID_SHORT/install/abort" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Responses: 200 Install abort requested · 401 Unauthorized · 403 Forbidden · 404 Server or node not found · 500 Internal server error · 501 Daemon feature unsupported
POST/api/user/servers/{uuidShort}/script
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | - | yes |
curl -X POST "$PANEL_URL/api/user/servers/$UUID_SHORT/script" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"GET/api/user/servers/{uuidShort}/daemon-version
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | - | yes |
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/daemon-version" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"POST/api/user/servers/{uuidShort}/ws/broadcast
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | - | yes |
curl -X POST "$PANEL_URL/api/user/servers/$UUID_SHORT/ws/broadcast" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"POST/api/user/servers/{uuidShort}/command
Send console command Send a console command to the server via Wings daemon WebSocket connection.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuidShort | path | string | yes | Server short UUID |
| Body field | Type | Required | Description |
|---|---|---|---|
command | string | yes | Console command to execute |
Response data field | Type | Description |
|---|---|---|
message | string | Success message |
command | string | Command that was sent |
curl -X POST "$PANEL_URL/api/user/servers/$UUID_SHORT/command" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"command":""}'Responses: 200 Command sent successfully · 400 Bad request - Missing command or server offline · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied or insufficient permissions · 404 Not found - Server or node not found · 500 Internal server error - Failed to send command