The Nodes API allows you to manage the physical or virtual machines that host game servers. Each node runs the Wings daemon and can host multiple servers.
List Nodes
curl "https://panel.example.com/api/application/nodes" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Retrieves a paginated list of all nodes on the Panel.
Query Parameters
Number of results per page
Filter nodes by fully qualified domain name
Filter nodes by daemon token ID
Sort by field. Available: id, uuid, memory, disk. Prefix with - for descending
Include related resources. Available: allocations, location, servers
Response
Array of node objects Unique identifier for the node
Whether the node is publicly visible
ID of the associated location
Fully qualified domain name or IP address
Connection scheme (http or https)
Whether the daemon is behind a proxy
Whether the node is in maintenance mode
Memory overallocation percentage
Disk overallocation percentage
Maximum file upload size in MB
Port the daemon listens on
Port for SFTP connections
Base directory for server files
Currently allocated resources Total allocated memory in MB
Total allocated disk in MB
ISO 8601 timestamp of creation
ISO 8601 timestamp of last update
{
"object" : "list" ,
"data" : [
{
"object" : "node" ,
"attributes" : {
"id" : 1 ,
"uuid" : "6d5f8c4e-2b3a-4c9d-8e1f-9a3b4c5d6e7f" ,
"public" : true ,
"name" : "US-1" ,
"description" : "Primary US node" ,
"location_id" : 1 ,
"fqdn" : "node1.example.com" ,
"scheme" : "https" ,
"behind_proxy" : false ,
"maintenance_mode" : false ,
"memory" : 32768 ,
"memory_overallocate" : 0 ,
"disk" : 512000 ,
"disk_overallocate" : 0 ,
"upload_size" : 100 ,
"daemon_listen" : 8080 ,
"daemon_sftp" : 2022 ,
"daemon_base" : "/var/lib/pterodactyl/volumes" ,
"allocated_resources" : {
"memory" : 16384 ,
"disk" : 102400
},
"created_at" : "2024-01-01T00:00:00+00:00" ,
"updated_at" : "2024-03-01T00:00:00+00:00"
}
}
]
}
Get Node Details
curl "https://panel.example.com/api/application/nodes/{node_id}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Retrieves details for a specific node.
Path Parameters
The internal ID of the node
Query Parameters
Include related resources. Available: allocations, location, servers
Get Node Configuration
curl "https://panel.example.com/api/application/nodes/{node_id}/configuration" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Retrieves the Wings configuration for a specific node.
Path Parameters
The internal ID of the node
Get Deployable Nodes
curl "https://panel.example.com/api/application/nodes/deployable" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Retrieves a list of nodes that have available resources for deployment.
Create Node
curl -X POST "https://panel.example.com/api/application/nodes" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "US-2",
"description": "Secondary US node",
"location_id": 1,
"fqdn": "node2.example.com",
"scheme": "https",
"memory": 32768,
"disk": 512000,
"daemon_listen": 8080,
"daemon_sftp": 2022
}'
Creates a new node on the Panel.
Request Body
Display name for the node (1-100 characters)
ID of the location this node belongs to
Fully qualified domain name or IP address
Connection scheme: http or https
Port the daemon listens on (typically 8080)
Port for SFTP connections (typically 2022)
Optional description of the node
Whether the node is publicly visible
Whether the daemon is behind a proxy
Whether to enable maintenance mode
Memory overallocation percentage (-1 to 100)
Disk overallocation percentage (-1 to 100)
Maximum file upload size in MB
Base directory for server files (defaults to /var/lib/pterodactyl/volumes)
Response
Returns the created node object with HTTP status 201 Created.
Update Node
curl -X PATCH "https://panel.example.com/api/application/nodes/{node_id}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "US-2 Updated",
"memory": 65536
}'
Updates an existing node’s configuration.
Path Parameters
The internal ID of the node to update
Request Body
All fields are optional. Only include fields you want to update. Accepts the same fields as Create Node.
Whether to regenerate the daemon secret token
Response
Returns the updated node object.
Delete Node
curl -X DELETE "https://panel.example.com/api/application/nodes/{node_id}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Deletes a node from the Panel. The node must not have any active servers.
Path Parameters
The internal ID of the node to delete
Response
Returns HTTP status 204 No Content on successful deletion.
A node cannot be deleted if it has any servers assigned to it. Delete or transfer the servers first.
Allocations
List Allocations
curl "https://panel.example.com/api/application/nodes/{node_id}/allocations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Retrieves all IP allocations for a specific node.
Path Parameters
The internal ID of the node
Create Allocations
curl -X POST "https://panel.example.com/api/application/nodes/{node_id}/allocations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"ip": "192.168.1.100",
"ports": ["25565", "25566-25570"]
}'
Creates new IP allocations for a node.
Array of ports or port ranges (e.g., ["25565", "25566-25570"])
Optional alias for the IP address
Delete Allocation
curl -X DELETE "https://panel.example.com/api/application/nodes/{node_id}/allocations/{allocation_id}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Deletes a specific allocation. The allocation must not be assigned to a server.
Path Parameters
The internal ID of the node
The internal ID of the allocation to delete