Skip to main content
POST
/
api
/
admin
/
servers
curl -X POST "https://panel.example.com/api/admin/servers" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "name": "My Game Server",
    "description": "Production Minecraft server",
    "ownerId": "user-uuid",
    "eggId": "egg-uuid",
    "nodeId": "node-id",
    "allocationId": "allocation-uuid",
    "memory": 2048,
    "swap": 0,
    "disk": 10240,
    "io": 500,
    "cpu": 100,
    "databases": 1,
    "allocations": 0,
    "backups": 3,
    "environment": {
      "MINECRAFT_VERSION": "1.20.1",
      "SERVER_JARFILE": "server.jar"
    },
    "startOnCompletion": true
  }'
{
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "identifier": "a1b2c3d4",
    "name": "My Game Server",
    "status": "installing",
    "createdAt": "2024-01-15T10:30:00Z"
  }
}

Authentication

This endpoint requires admin authentication and the servers:write permission.

Request Body

name
string
required
Server name (1-255 characters)
description
string
Server description
ownerId
string
required
UUID of the server owner
eggId
string
required
UUID of the egg to use
nestId
string
UUID of the nest (optional)
nodeId
string
required
ID of the node to deploy on
allocationId
string
required
UUID of the primary allocation
memory
integer
required
Memory limit in MB (must be positive)
swap
integer
default:"0"
Swap space in MB (minimum: 0)
disk
integer
required
Disk space in MB (must be positive)
io
integer
default:"500"
Block I/O weight (10-1000)
cpu
integer
default:"0"
CPU limit percentage (0 = unlimited)
threads
string
CPU thread pinning (e.g., “0-3,8”)
databases
integer
default:"0"
Database limit (0 = unlimited)
allocations
integer
default:"0"
Additional allocation limit
backups
integer
default:"0"
Backup limit
startup
string
Custom startup command
environment
object
Environment variables as key-value pairs
dockerImage
string
Custom Docker image
skipScripts
boolean
default:"false"
Skip installation scripts
startOnCompletion
boolean
default:"true"
Start server after installation
oomDisabled
boolean
Disable OOM killer

Response

data
object
Created server information
curl -X POST "https://panel.example.com/api/admin/servers" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "name": "My Game Server",
    "description": "Production Minecraft server",
    "ownerId": "user-uuid",
    "eggId": "egg-uuid",
    "nodeId": "node-id",
    "allocationId": "allocation-uuid",
    "memory": 2048,
    "swap": 0,
    "disk": 10240,
    "io": 500,
    "cpu": 100,
    "databases": 1,
    "allocations": 0,
    "backups": 3,
    "environment": {
      "MINECRAFT_VERSION": "1.20.1",
      "SERVER_JARFILE": "server.jar"
    },
    "startOnCompletion": true
  }'
{
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "identifier": "a1b2c3d4",
    "name": "My Game Server",
    "status": "installing",
    "createdAt": "2024-01-15T10:30:00Z"
  }
}

Notes

  • The server will be provisioned asynchronously on Wings
  • The response is returned immediately with status “installing”
  • If provisioning fails, the server status will be updated to “install_failed”
  • A creation email will be sent to the owner if email is configured
  • The allocation must be available and belong to the specified node

Build docs developers (and LLMs) love