Skip to main content
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

per_page
integer
default:"50"
Number of results per page
filter[uuid]
string
Filter nodes by UUID
filter[name]
string
Filter nodes by name
filter[fqdn]
string
Filter nodes by fully qualified domain name
filter[daemon_token_id]
string
Filter nodes by daemon token ID
sort
string
Sort by field. Available: id, uuid, memory, disk. Prefix with - for descending
include
string
Include related resources. Available: allocations, location, servers

Response

object
string
Always list
data
array
Array of node objects
{
  "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

node_id
integer
required
The internal ID of the node

Query Parameters

include
string
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

node_id
integer
required
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

name
string
required
Display name for the node (1-100 characters)
location_id
integer
required
ID of the location this node belongs to
fqdn
string
required
Fully qualified domain name or IP address
scheme
string
required
Connection scheme: http or https
memory
integer
required
Total memory in MB
disk
integer
required
Total disk space in MB
daemon_listen
integer
required
Port the daemon listens on (typically 8080)
daemon_sftp
integer
required
Port for SFTP connections (typically 2022)
description
string
Optional description of the node
public
boolean
default:true
Whether the node is publicly visible
behind_proxy
boolean
default:false
Whether the daemon is behind a proxy
maintenance_mode
boolean
default:false
Whether to enable maintenance mode
memory_overallocate
integer
default:0
Memory overallocation percentage (-1 to 100)
disk_overallocate
integer
default:0
Disk overallocation percentage (-1 to 100)
upload_size
integer
default:100
Maximum file upload size in MB
daemon_base
string
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

node_id
integer
required
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.
reset_secret
boolean
default:false
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

node_id
integer
required
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

node_id
integer
required
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.
ip
string
required
IP address to allocate
ports
array
required
Array of ports or port ranges (e.g., ["25565", "25566-25570"])
alias
string
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

node_id
integer
required
The internal ID of the node
allocation_id
integer
required
The internal ID of the allocation to delete

Build docs developers (and LLMs) love