Skip to main content
The Servers API allows you to create, configure, and manage game servers on the Panel. This includes managing server resources, startup parameters, and server state.

List Servers

curl "https://panel.example.com/api/application/servers" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Retrieves a paginated list of all servers on the Panel.

Query Parameters

per_page
integer
default:"50"
Number of results per page
filter[uuid]
string
Filter servers by UUID
filter[uuidShort]
string
Filter servers by short UUID
filter[name]
string
Filter servers by name
filter[description]
string
Filter servers by description
filter[image]
string
Filter servers by Docker image
filter[external_id]
string
Filter servers by external identifier
sort
string
Sort by field. Available: id, uuid. Prefix with - for descending
include
string
Include related resources. Available: allocations, user, subusers, nest, egg, variables, location, node, databases

Response

object
string
Always list
data
array
Array of server objects (see Get Server Details for structure)

Get Server Details

curl "https://panel.example.com/api/application/servers/{server_id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Retrieves details for a specific server.

Path Parameters

server_id
integer
required
The internal ID of the server

Response

{
  "object": "server",
  "attributes": {
    "id": 1,
    "external_id": null,
    "uuid": "8d4f8c5e-2b7a-4c9d-8e1f-9a3b4c5d6e7f",
    "identifier": "8d4f8c5e",
    "name": "My Minecraft Server",
    "description": "A vanilla Minecraft server",
    "status": "running",
    "suspended": false,
    "limits": {
      "memory": 2048,
      "swap": 0,
      "disk": 10240,
      "io": 500,
      "cpu": 100,
      "threads": null,
      "oom_disabled": true
    },
    "feature_limits": {
      "databases": 1,
      "allocations": 1,
      "backups": 3
    },
    "user": 1,
    "node": 1,
    "allocation": 1,
    "nest": 1,
    "egg": 1,
    "container": {
      "startup_command": "java -Xms128M -Xmx2048M -jar server.jar",
      "image": "ghcr.io/pterodactyl/yolks:java_17",
      "installed": 1,
      "environment": {
        "SERVER_JARFILE": "server.jar",
        "VANILLA_VERSION": "latest"
      }
    },
    "updated_at": "2024-03-04T00:00:00+00:00",
    "created_at": "2024-01-01T00:00:00+00:00"
  }
}

Get Server by External ID

curl "https://panel.example.com/api/application/servers/external/{external_id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Retrieves a server by its external identifier.

Path Parameters

external_id
string
required
The external identifier of the server

Create Server

curl -X POST "https://panel.example.com/api/application/servers" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My Server",
    "user": 1,
    "egg": 1,
    "docker_image": "ghcr.io/pterodactyl/yolks:java_17",
    "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
    "environment": {
      "SERVER_JARFILE": "server.jar",
      "VANILLA_VERSION": "latest"
    },
    "limits": {
      "memory": 2048,
      "swap": 0,
      "disk": 10240,
      "io": 500,
      "cpu": 100
    },
    "feature_limits": {
      "databases": 1,
      "allocations": 1,
      "backups": 3
    },
    "allocation": {
      "default": 1
    }
  }'
Creates a new server on the Panel.

Request Body

name
string
required
Server display name
user
integer
required
ID of the user who will own the server
egg
integer
required
ID of the egg to use for this server
docker_image
string
required
Docker image to use for the server
startup
string
required
Server startup command
environment
object
required
Environment variables for the server (egg-specific)
limits
object
required
Resource limits for the server
feature_limits
object
required
Feature limits for the server
allocation
object
Allocation settings (required if not using deployment)
deploy
object
Automatic deployment settings (alternative to manual allocation)
description
string
Server description
external_id
string
External identifier for third-party integrations
skip_scripts
boolean
default:false
Whether to skip the egg installation script
oom_disabled
boolean
Whether to disable the OOM killer
start_on_completion
boolean
default:false
Whether to start the server after installation completes

Response

Returns the created server object with HTTP status 201 Created.

Update Server Details

curl -X PATCH "https://panel.example.com/api/application/servers/{server_id}/details" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Server Name",
    "description": "Updated description"
  }'
Updates basic server details like name, description, and owner.

Path Parameters

server_id
integer
required
The internal ID of the server

Request Body

name
string
New server name
description
string
New server description
user
integer
New owner user ID
external_id
string
New external identifier

Update Server Build

curl -X PATCH "https://panel.example.com/api/application/servers/{server_id}/build" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "limits": {
      "memory": 4096,
      "swap": 0,
      "disk": 20480,
      "io": 500,
      "cpu": 200
    },
    "feature_limits": {
      "databases": 2,
      "allocations": 2,
      "backups": 5
    }
  }'
Updates server resource limits and allocations.

Path Parameters

server_id
integer
required
The internal ID of the server

Request Body

allocation
integer
Primary allocation ID
limits
object
Resource limits (same structure as Create Server)
feature_limits
object
Feature limits (same structure as Create Server)
add_allocations
array
Array of allocation IDs to add
remove_allocations
array
Array of allocation IDs to remove

Update Server Startup

curl -X PATCH "https://panel.example.com/api/application/servers/{server_id}/startup" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
    "environment": {
      "SERVER_JARFILE": "server.jar",
      "VANILLA_VERSION": "1.20.4"
    },
    "egg": 1,
    "image": "ghcr.io/pterodactyl/yolks:java_17"
  }'
Updates server startup configuration including the egg, Docker image, and environment variables.

Path Parameters

server_id
integer
required
The internal ID of the server

Request Body

startup
string
Server startup command
environment
object
Environment variables
egg
integer
Egg ID
image
string
Docker image
skip_scripts
boolean
Whether to skip scripts on reinstall

Suspend Server

curl -X POST "https://panel.example.com/api/application/servers/{server_id}/suspend" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Suspends a server, preventing it from being started.

Path Parameters

server_id
integer
required
The internal ID of the server

Unsuspend Server

curl -X POST "https://panel.example.com/api/application/servers/{server_id}/unsuspend" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Unsuspends a server, allowing it to be started.

Path Parameters

server_id
integer
required
The internal ID of the server

Reinstall Server

curl -X POST "https://panel.example.com/api/application/servers/{server_id}/reinstall" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Triggers a reinstall of the server, running the egg installation script.

Path Parameters

server_id
integer
required
The internal ID of the server
Reinstalling a server will stop it and may result in data loss. Ensure backups are created first.

Delete Server

curl -X DELETE "https://panel.example.com/api/application/servers/{server_id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Deletes a server from the Panel.

Path Parameters

server_id
integer
required
The internal ID of the server to delete

Force Delete

curl -X DELETE "https://panel.example.com/api/application/servers/{server_id}/force" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Force deletes a server, bypassing daemon checks.

Response

Returns HTTP status 204 No Content on successful deletion.

Server Databases

For managing server databases via the Application API, see the dedicated Server Databases endpoint documentation. This includes:
  • Listing all databases for a server
  • Creating new databases
  • Resetting database passwords
  • Deleting databases
Server owners can also manage databases via the Client API Databases endpoints.

Build docs developers (and LLMs) love