NAV
shell

Introduction

Welcome to the Pterodactyl API documentation. This documentation is unofficial.

The documentation is made for Pterodactyl panel v0.7.

If you find any errors throughout this API reference, please report them.

A special thanks to everyone who has helped contribute!

Other Pterodactyl API wrappers:

If you are a developer another Pterodactyl API wrapper, feel free to contact us and we can add your API wrapper/SDK to the list.

Dashflo - High-Performance Hosting: Try hosting your next project on our powerful, ultrafast and easy-to-use AMD Ryzen 3900X VPS hosting services. Designed specfically for game servers, enhanced with excellent routing and DDoS protection, while just at only €3/GB!

https://dashflo.net/store/virtual-servers

Authentication

To authorize, use this code:

# With shell, you can just pass the correct header with each request
curl "api_endpoint_here"
  -H "Authorization: Bearer meowmeowmeow"
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \

Make sure to replace meowmeowmeow with your API key.

You can obtain an API key from the Account API page within Pterodactyl.

We expect the API key to be included in all API requests to the server in a header that looks like the following:

Authorization: Bearer meowmeowmeow

Ratelimits

To prevent abuse, the Pterodactyl API has a ratelimit in place.

Up to 60 requests are allowed per minute.

The amount of requests left can be found within the reply header.

Header Description
x-ratelimit-limit The amount of API requests allowed per minute.
x-ratelimit-remaining The amount of API requests left.

Request Data Information

curl "https://pterodactyl.app/api/application/users/<user-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X PATCH \
  -d '
  {
      "external_id": "codeco",
      "username": "codeco",
      "email": "codeco@file.properties",
      "first_name": "Updated",
      "last_name": "User",
      "password": "betterPassword",
      "root_admin": true,
      "language": "en"
  }'

All POST & PATCH requests have a table describing the data fields and an example command.

Example:

HTTP Request

PATCH https://pterodactyl.app/api/application/users/<user-id>

Parameter Information Rules
external_id The external id for the account sometimes|nullable|string|max:255|unique:users,external_id
username The username for the account sometimes|between:1,255|unique:users,username
email The email address for the account sometimes|email|unique:users,email
first_name The user's first name sometimes|string|between:1,255
last_name The user's last name sometimes|string|between:1,255
password A plain text input of the desired password sometimes|nullable|string
root_admin Whether the account is an admin sometimes|boolean
language The language for the account sometimes|string (+ in available languages)

Parameter: Name of the parameter.
Information: Description of the parameter.
Rules: Parameter's rules, formated as Laravel's Validation Rules.

API - Client

List all servers

curl "https://pterodactyl.app/api/client" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
   "object":"list",
   "data":[
      {
         "object":"server",
         "attributes":{
            "server_owner":true,
            "identifier":"d3aac109",
            "uuid":"d3aac109-e5a0-4331-b03e-3454f7e136dc",
            "name":"Survival",
            "description":"",
            "limits":{
               "memory":1024,
               "swap":0,
               "disk":5000,
               "io":500,
               "cpu":200
            },
            "feature_limits":{
               "databases":5,
               "allocations":5
            }
         }
      }
   ],
   "meta":{
      "pagination":{
         "total":1,
         "count":1,
         "per_page":25,
         "current_page":1,
         "total_pages":1,
         "links":[

         ]
      }
   }
}

This endpoint retrieves all servers that the user owns, along with information about them.

HTTP Request

GET https://pterodactyl.app/api/client

Get server specific information

curl "https://pterodactyl.app/api/client/servers/<id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
   "object":"server",
   "attributes":{
      "server_owner":true,
      "identifier":"d3aac109",
      "uuid":"d3aac109-e5a0-4331-b03e-3454f7e136dc",
      "name":"Survival",
      "description":"",
      "limits":{
         "memory":1024,
         "swap":0,
         "disk":5000,
         "io":500,
         "cpu":200
      },
      "feature_limits":{
         "databases":5,
         "allocations":5
      }
   }
}

This endpoint retrieves information for the specified server.

HTTP Request

GET https://pterodactyl.app/api/client/servers/<ID>

URL Parameters

Parameter Description
ID The ID of the server that you are requesting.

Get server resource utilization

curl "https://pterodactyl.app/api/client/servers/<id>/utilization" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET

The above command returns JSON structured like this:

{
   "object":"stats",
   "attributes":{
      "state":"on",
      "memory":{
         "current":375,
         "limit":1024
      },
      "cpu":{
         "current":1.522,
         "cores":[
            0.033,
            0.048,
            0.04,
            0,
            0.031,
            0,
            0.021,
            0.024,
            0.249,
            0.042,
            0.007,
            0,
            0.293,
            0.003,
            0.6,
            0.131
         ],
         "limit":200
      },
      "disk":{
         "current":119,
         "limit":5000
      }
   }
}

This endpoint displays resource utilization of the specified server.

HTTP Request

GET https://pterodactyl.app/api/client/servers/<ID>/utilization

URL Parameters

Parameter Description
ID The ID of the server that you are requesting.

Send console command

curl "https://pterodactyl.app/api/client/servers/<id>/command" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST \
  -d '{ "command": "say CodeCo says Hi!" }'

This endpoint sends a command to the server.

You are required to add the Accept: Application/vnd.pterodactyl.v1+json and Content-Type: application/json headers for this endpoint.

If successful, there will be an empty response body.

HTTP Request

POST https://pterodactyl.app/api/client/servers/<ID>/command

URL Parameters

Parameter Description
ID The ID of the server that you are requesting.
command The command that you would like sent to the server.

Send power action

curl "https://pterodactyl.app/api/client/servers/<id>/power" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST \
  -d '{ "signal": "start" }'

This endpoint sends a power signal to the server.

You are required to add the Accept: Application/vnd.pterodactyl.v1+json and Content-Type: application/json headers for this endpoint.

If successful, there will be an empty response body.

HTTP Request

POST https://pterodactyl.app/api/client/servers/<ID>/power

URL Parameters

Parameter Description
ID The ID of the server that you are requesting.
signal The power signal you want to send to the server.

Power Signals

Signal Description
start Sends the startup command to the server.
stop Sends the stop command to the server.
restart Stops the server then immediately starts it straight after.
kill Instantly ends all processes and marks the server as stopped.

API - Application - User

List users

curl "https://pterodactyl.app/api/application/users" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "list",
  "data": [
    {
      "object": "user",
      "attributes": {
        "id": 1,
        "external_id": null,
        "uuid": "c4022c6c-9bf1-4a23-bff9-519cceb38335",
        "username": "codeco",
        "email": "codeco@file.properties",
        "first_name": "Rihan",
        "last_name": "Arfan",
        "language": "en",
        "root_admin": true,
        "2fa": false,
        "created_at": "2018-03-18T15:15:17+00:00",
        "updated_at": "2018-10-16T21:51:21+00:00"
      }
    },
    {
      "object": "user",
      "attributes": {
        "id": 4,
        "external_id": null,
        "uuid": "f253663c-5a45-43a8-b280-3ea3c752b931",
        "username": "wardledeboss",
        "email": "wardle315@gmail.com",
        "first_name": "Harvey",
        "last_name": "Wardle",
        "language": "en",
        "root_admin": false,
        "2fa": false,
        "created_at": "2018-09-29T17:59:45+00:00",
        "updated_at": "2018-10-02T18:59:03+00:00"
      }
    },
    {
      "object": "user",
      "attributes": {
        "id": 5,
        "external_id": null,
        "uuid": "0d8da9a5-6ccd-4b57-9786-70a97a1a55e7",
        "username": "matthewp",
        "email": "me@matthewp.io",
        "first_name": "Matthew",
        "last_name": "Penner",
        "language": "en",
        "root_admin": true,
        "2fa": false,
        "created_at": "2018-09-29T22:39:05+00:00",
        "updated_at": "2018-09-29T22:39:27+00:00"
      }
    },
    {
      "object": "user",
      "attributes": {
        "id": 6,
        "external_id": null,
        "uuid": "d006fe91-3c64-4b0c-81d1-718af2cc384e",
        "username": "rihan554rnk",
        "email": "rihan554@gmail.com",
        "first_name": "Server",
        "last_name": "Subuser",
        "language": "en",
        "root_admin": false,
        "2fa": false,
        "created_at": "2018-10-02T21:26:18+00:00",
        "updated_at": "2018-10-02T21:26:18+00:00"
      }
    }
  ],
  "meta": {
    "pagination": {
      "total": 4,
      "count": 4,
      "per_page": 50,
      "current_page": 1,
      "total_pages": 1,
      "links": []
    }
  }
}

This endpoint retrieves all users along with information about them.

HTTP Request

GET https://pterodactyl.app/api/application/users

Get user information

curl "https://pterodactyl.app/api/application/users/<user-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "user",
  "attributes": {
    "id": 1,
    "external_id": null,
    "uuid": "c4022c6c-9bf1-4a23-bff9-519cceb38335",
    "username": "codeco",
    "email": "codeco@file.properties",
    "first_name": "Rihan",
    "last_name": "Arfan",
    "language": "en",
    "root_admin": true,
    "2fa": false,
    "created_at": "2018-03-18T15:15:17+00:00",
    "updated_at": "2018-10-16T21:51:21+00:00"
  }
}

This endpoint retrieves information for the specified user.

HTTP Request

GET https://pterodactyl.app/api/application/users/<user-id>

Get user by external ID

curl "https://pterodactyl.app/api/application/users/external/<external-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "user",
  "attributes": {
    "id": 1,
    "external_id": "1",
    "uuid": "c4022c6c-9bf1-4a23-bff9-519cceb38335",
    "username": "codeco",
    "email": "codeco@file.properties",
    "first_name": "Rihan",
    "last_name": "Arfan",
    "language": "en",
    "root_admin": true,
    "2fa": false,
    "created_at": "2018-03-18T15:15:17+00:00",
    "updated_at": "2018-10-16T21:51:21+00:00"
  }
}

This endpoint retrieves information for the specified user with the external id.

HTTP Request

GET https://pterodactyl.app/api/application/users/external/<external-id>

Create user

curl "https://pterodactyl.app/api/application/users" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST \
  -d '
  {
      "external_id": "example_ext_id",
      "username": "example",
      "email": "example@example.com",
      "first_name": "John",
      "last_name": "Doe",
      "password": "cat",
      "root_admin": false,
      "language": "en"
  }'

The above command returns JSON structured like this:

{
  "object": "user",
  "attributes": {
    "id": 7,
    "external_id": "example_ext_id",
    "uuid": "68b23b39-f172-4cd3-ba4a-ef5761c01374",
    "username": "example",
    "email": "example@example.com",
    "first_name": "John",
    "last_name": "Doe",
    "language": "en",
    "root_admin": false,
    "2fa": false,
    "created_at": "2018-11-20T03:05:23+00:00",
    "updated_at": "2018-11-20T03:05:23+00:00"
  },
  "meta": {
    "resource": "https://pterodactyl.app/api/application/users/7"
  }
}

This endpoint creates a new user with the provided information.

HTTP Request

POST https://pterodactyl.app/api/application/users

Parameter Information Rules
external_id The external id for the account sometimes|nullable|string|max:255|unique:users,external_id
username The username for the account required|between:1,255|unique:users,username
email The email address for the account required|email|unique:users,email
first_name The user's first name required|string|between:1,255
last_name The user's last name required|string|between:1,255
password A plain text input of the desired password sometimes|nullable|string
root_admin Whether the account is an admin sometimes|boolean
language The language for the account sometimes|string (+ in available languages)

Edit user

curl "https://pterodactyl.app/api/application/users/<user-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X PATCH \
  -d '
  {
      "external_id": "codeco",
      "username": "codeco",
      "email": "codeco@file.properties",
      "first_name": "Updated",
      "last_name": "User",
      "password": "betterPassword",
      "root_admin": true,
      "language": "en"
  }'

The above command returns JSON structured like this:

{
  "object": "user",
  "attributes": {
    "id": 1,
    "external_id": "codeco",
    "uuid": "c4022c6c-9bf1-4a23-bff9-519cceb38335",
    "username": "codeco",
    "email": "codeco@file.properties",
    "first_name": "Updated",
    "last_name": "User",
    "language": "en",
    "root_admin": true,
    "2fa": false,
    "created_at": "2018-03-18T15:15:17+00:00",
    "updated_at": "2018-12-17T19:34:37+00:00"
  }
}

This endpoint edits the specified user with the provided information.

HTTP Request

PATCH https://pterodactyl.app/api/application/users/<user-id>

Parameter Information Rules
external_id The external id for the account sometimes|nullable|string|max:255|unique:users,external_id
username The username for the account required|between:1,255|unique:users,username
email The email address for the account required|email|unique:users,email
first_name The user's first name required|string|between:1,255
last_name The user's last name required|string|between:1,255
password A plain text input of the desired password sometimes|nullable|string
root_admin Whether the account is an admin sometimes|boolean
language The language for the account sometimes|string (+ in available languages)

Delete user

curl "https://pterodactyl.app/api/application/users/<user-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X DELETE

This endpoint deletes the specified user.

HTTP Request

DELETE https://pterodactyl.app/api/application/users/<user-id>

API - Application - Nodes

List nodes

curl "https://pterodactyl.app/api/application/nodes" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "list",
  "data": [
    {
      "object": "node",
      "attributes": {
        "id": 2,
        "public": true,
        "name": "Test",
        "description": "Test",
        "location_id": 1,
        "fqdn": "fsn1.matthewp.io",
        "scheme": "https",
        "behind_proxy": false,
        "maintenance_mode": false,
        "memory": 4096,
        "memory_overallocate": 0,
        "disk": 10000,
        "disk_overallocate": 0,
        "upload_size": 100,
        "daemon_listen": 2096,
        "daemon_sftp": 2022,
        "daemon_base": "/tmp/daemon-data",
        "created_at": "2018-04-06T02:19:33+00:00",
        "updated_at": "2018-10-28T01:13:03+00:00"
      }
    }
  ],
  "meta": {
    "pagination": {
      "total": 1,
      "count": 1,
      "per_page": 50,
      "current_page": 1,
      "total_pages": 1,
      "links": []
    }
  }
}

This endpoint retrieves all nodes on the panel along with information about them.

HTTP Request

GET https://pterodactyl.app/api/application/nodes

Get node information

curl "https://pterodactyl.app/api/application/nodes/<node-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "node",
  "attributes": {
    "id": 2,
    "public": true,
    "name": "Test",
    "description": "Test",
    "location_id": 1,
    "fqdn": "fsn1.matthewp.io",
    "scheme": "https",
    "behind_proxy": false,
    "maintenance_mode": false,
    "memory": 4096,
    "memory_overallocate": 0,
    "disk": 10000,
    "disk_overallocate": 0,
    "upload_size": 100,
    "daemon_listen": 2096,
    "daemon_sftp": 2022,
    "daemon_base": "/tmp/daemon-data",
    "created_at": "2018-04-06T02:19:33+00:00",
    "updated_at": "2018-10-28T01:13:03+00:00"
  }
}

This endpoint retrieves information for the specified node.

HTTP Request

GET https://pterodactyl.app/api/application/nodes/<node-id>

Create node

curl "https://pterodactyl.app/api/application/nodes" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST \
  -d '
  {
    "name": "Test Node",
    "description": "",
    "location_id": 1,
    "public": true,
    "fqdn": "node-01.pterodactyl.app",
    "scheme": "https",
    "behind_proxy": false,
    "memory": 1024,
    "memory_overallocate": 0,
    "disk": 1024,
    "disk_overallocate": 0,
    "daemon_base": "/srv/daemon-data",
    "daemon_listen": "8080",
    "daemon_sftp": "2022",
    "maintenance_mode": false,
    "upload_size": 100,
  }'

The above command returns JSON structured like this:

{
  "object": "node",
  "attributes": {
    "id": 4,
    "public": true,
    "name": "Test Node",
    "description": "",
    "location_id": 1,
    "fqdn": "node-01.pterodactyl.app",
    "scheme": "https",
    "behind_proxy": false,
    "maintenance_mode": false,
    "memory": 1024,
    "memory_overallocate": 0,
    "disk": 1024,
    "disk_overallocate": 0,
    "upload_size": 100,
    "daemon_listen": 8080,
    "daemon_sftp": 2022,
    "daemon_base": "/srv/daemon-data",
    "created_at": "2018-11-20T03:45:26+00:00",
    "updated_at": "2018-11-20T03:45:26+00:00"
  },
  "meta": {
    "resource": "https://pterodactyl.app/api/application/nodes/4"
  }
}

This endpoint creates a new node with the provided information.

HTTP Request

POST https://pterodactyl.app/api/application/nodes

Parameter Information Rules
name The node's name required|regex:/^([\w .-]{1,100})$/
description The node's description sometimes|string
location_id The node's location id required|exists:locations,id
public Whether auto-deployment is enabled for this node sometimes|boolean
fqdn The node's fully qualified domain name required|string
scheme The node's connection scheme required|in:http,https
behind_proxy Whether the node is behind a proxy sometimes|boolean
memory The node's memory in mb required|numeric|min:1
memory_overallocate The node's memory over-allocation in % required|numeric|min:-1
disk The node's disk space in mb required|numeric|min:1
disk_overallocate The node's disk space over-allocation in % required|numeric|min:-1
daemon_base The node's base daemon path sometimes|regex:/^([\/][\d\w.-\/]+)$/
daemon_sftp The node's daemon sftp port required|numeric|between:1,65535
daemon_listen The node's daemon port required|numeric|between:1,65535
maintenance_mode Whether the node is in maintenance mode sometimes|boolean
upload_size The node's upload size limit sometimes|int|between:1,1024

Edit node

curl "https://pterodactyl.app/api/application/nodes/<node-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X PATCH \
  -d '
  {
    "name": "Test Node",
    "description": "Test",
    "location_id": 5,
    "public": true,
    "fqdn": "pdev1.pterodactyl.app",
    "scheme": "https",
    "behind_proxy": false,
    "memory": 2048,
    "memory_overallocate": 0,
    "disk": 1024,
    "disk_overallocate": -1,
    "daemon_base": "/srv/daemon-data",
    "daemon_listen": "8080",
    "daemon_sftp": "2022",
    "maintenance_mode": false,
    "upload_size": 100,
  }'

The above command returns JSON structured like this:

{
  "object": "node",
  "attributes": {
    "id": 2,
    "public": true,
    "name": "Test Node 2",
    "description": "Test",
    "location_id": 5,
    "fqdn": "pdev1.pterodactyl.app",
    "scheme": "https",
    "behind_proxy": false,
    "maintenance_mode": false,
    "memory": 2048,
    "memory_overallocate": 0,
    "disk": 1024,
    "disk_overallocate": -1,
    "upload_size": 100,
    "daemon_listen": 8080,
    "daemon_sftp": 2022,
    "daemon_base": "/srv/daemon-data",
    "created_at": "2018-04-06T02:19:33+00:00",
    "updated_at": "2018-12-17T19:37:26+00:00"
  }
}

This endpoint edits the specified node with the provided information.

HTTP Request

PATCH https://pterodactyl.app/api/application/nodes/<node-id>

Parameter Information Rules
name The node's name required|regex:/^([\w .-]{1,100})$/
description The node's description sometimes|string
location_id The node's location id required|exists:locations,id
public Whether auto-deployment is enabled for this node sometimes|boolean
fqdn The node's fully qualified domain name required|string
scheme The node's connection scheme required|in:http,https
behind_proxy Whether the node is behind a proxy sometimes|boolean
memory The node's memory in mb required|numeric|min:1
memory_overallocate The node's memory over-allocation in % required|numeric|min:-1
disk The node's disk space in mb required|numeric|min:1
disk_overallocate The node's disk space over-allocation in % required|numeric|min:-1
daemon_base The node's base daemon path sometimes|regex:/^([\/][\d\w.-\/]+)$/
daemon_sftp The node's daemon sftp port required|numeric|between:1,65535
daemon_listen The node's daemon port required|numeric|between:1,65535
maintenance_mode Whether the node is in maintenance mode sometimes|boolean
upload_size The node's upload size limit sometimes|int|between:1,1024

Delete node

curl "https://pterodactyl.app/api/application/nodes/<node-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X DELETE

This endpoint deletes the specified node.

HTTP Request

DELETE https://pterodactyl.app/api/application/nodes/<node-id>

List specific node allocations

curl "https://pterodactyl.app/api/application/nodes/<node-id>/allocations" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET

The above command returns JSON structured like this:

{
  "object": "list",
  "data": [
    {
      "object": "allocation",
      "attributes": {
        "id": 3,
        "ip": "195.201.194.74",
        "alias": null,
        "port": 25499,
        "assigned": true
      }
    },
    {
      "object": "allocation",
      "attributes": {
        "id": 4,
        "ip": "195.201.194.74",
        "alias": null,
        "port": 25566,
        "assigned": true
      }
    }
  ],
  "meta": {
    "pagination": {
      "total": 2,
      "count": 2,
      "per_page": 50,
      "current_page": 1,
      "total_pages": 1,
      "links": []
    }
  }
}

This endpoint retrieves all allocations for the specified node, along with information about them.

HTTP Request

GET https://pterodactyl.app/api/application/nodes/<node-id>/allocations

Create allocation

curl "https://pterodactyl.app/api/application/nodes/<node-id>/allocations" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST \
  -d '
  {
    "ip": "1.1.1.1",
    "alias": "one.one.one.one",
    "ports": [
      "4000"
    ]
  }'

This endpoint creates a new allocation using the provided information.

HTTP Request

POST https://pterodactyl.app/api/application/nodes/<node-id>/allocations

Parameter Information Rules
ip The allocation's ip required|string
alias The allocation's alias name sometimes|nullable|string|max:255
ports The allocation ports (array) required|array
ports.* The allocation port string

Delete allocation

curl "https://pterodactyl.app/api/application/nodes/<node-id>/allocations/<allocation-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X DELETE

This endpoint deletes the specified allocation for the specified node.

HTTP Request

DELETE https://pterodactyl.app/api/application/nodes/<node-id>/allocations/<allocation-id>

API - Application - Locations

List locations

curl "https://pterodactyl.app/api/application/locations" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "list",
  "data": [
    {
      "object": "location",
      "attributes": {
        "id": 1,
        "short": "test",
        "long": "test",
        "updated_at": "2018-04-06T02:12:21+00:00",
        "created_at": "2018-04-06T02:12:21+00:00"
      }
    },
    {
      "object": "location",
      "attributes": {
        "id": 2,
        "short": "yes",
        "long": "yes test",
        "updated_at": "2018-04-06T02:12:23+00:00",
        "created_at": "2018-04-06T02:12:23+00:00"
      }
    }
  ],
  "meta": {
    "pagination": {
      "total": 2,
      "count": 2,
      "per_page": 50,
      "current_page": 1,
      "total_pages": 1,
      "links": []
    }
  }
}

This endpoint retrieves all locations on the panel along with information about them.

HTTP Request

GET https://pterodactyl.app/api/application/locations

Get location information

curl "https://pterodactyl.app/api/application/locations/<location-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "location",
  "attributes": {
    "id": 1,
    "short": "test",
    "long": "test",
    "updated_at": "2018-04-06T02:12:21+00:00",
    "created_at": "2018-04-06T02:12:21+00:00"
  }
}

This endpoint retrieves information for the specified location.

HTTP Request

GET https://pterodactyl.app/api/application/locations/<location-id>

Create location

curl "https://pterodactyl.app/api/application/locations" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST \
  -d '{
    "short": "us.datacenter",
    "long": "US Datacenter"
  }'

The above command returns JSON structured like this:

{
  "object": "location",
    "attributes": {
      "id": 3,
      "short": "us.datacenter",
      "long": "US Datacenter",
      "updated_at": "2019-10-06T16:55:48+00:00",
      "created_at": "2019-10-06T16:55:48+00:00"
    },
    "meta": {
      "resource": "https://pterodactyl.app/api/application/locations/3"
    }
}

This endpoint creates a location using the specified information.

HTTP Request

POST https://pterodactyl.app/api/application/locations

Parameter Information Rules
short The location's short name required|string|between:1,60|unique:locations,short
long The location's long name required|string|between:1,255

Edit location

curl "https://pterodactyl.app/api/application/locations/<location-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X PATCH \
  -d '{
    "short": "us.ny.datacenter",
    "long": "US NY Datacenter"
  }'

The above command returns JSON structured like this:

{
  "object": "location",
    "attributes": {
      "id": 3,
      "short": "us.ny.datacenter",
      "long": "US NY Datacenter",
      "updated_at": "2019-10-06T16:57:25+00:00",
      "created_at": "2019-10-06T16:55:48+00:00"
    }
}

This endpoint edits the specified location using the provided information.

HTTP Request

PATCH https://pterodactyl.app/api/application/locations/<location-id>

Parameter Information Rules
short The location's short name required|string|between:1,60|unique:locations,short
long The location's long name required|string|between:1,255

Delete location

curl "https://pterodactyl.app/api/application/locations/<location-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X DELETE 

This endpoint deletes the specified location.

HTTP Request

DELETE https://pterodactyl.app/api/application/locations/<location-id>

API - Application - Servers

Get all servers

curl "https://pterodactyl.app/api/application/servers" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "list",
  "data": [
    {
      "object": "server",
      "attributes": {
        "id": 2,
        "external_id": null,
        "uuid": "47a7052b-f07e-4845-989d-e876e30960f4",
        "identifier": "47a7052b",
        "name": "Eat Cows",
        "description": "",
        "suspended": false,
        "limits": {
          "memory": 2048,
          "swap": -1,
          "disk": 10000,
          "io": 500,
          "cpu": 300
        },
        "feature_limits": {
          "databases": 10,
          "allocations": 0
        },
        "user": 1,
        "node": 2,
        "allocation": 3,
        "nest": 1,
        "egg": 4,
        "pack": null,
        "container": {
          "startup_command": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
          "image": "quay.io/pterodactyl/core:java",
          "installed": true,
          "environment": {
            "SERVER_JARFILE": "server.jar",
            "VANILLA_VERSION": "latest",
            "STARTUP": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
            "P_SERVER_LOCATION": "test",
            "P_SERVER_UUID": "47a7052b-f07e-4845-989d-e876e30960f4"
          }
        },
        "updated_at": "2018-11-20T14:35:00+00:00",
        "created_at": "2018-09-29T22:50:16+00:00"
      }
    },
    {
      "object": "server",
      "attributes": {
        "id": 6,
        "external_id": null,
        "uuid": "6d1567c5-08d4-4ecb-8d5d-0ce1ba6b0b99",
        "identifier": "6d1567c5",
        "name": "Wow",
        "description": "t",
        "suspended": false,
        "limits": {
          "memory": 0,
          "swap": -1,
          "disk": 5000,
          "io": 500,
          "cpu": 200
        },
        "feature_limits": {
          "databases": 0,
          "allocations": 0
        },
        "user": 5,
        "node": 2,
        "allocation": 4,
        "nest": 1,
        "egg": 15,
        "pack": null,
        "container": {
          "startup_command": "./parkertron",
          "image": "quay.io/parkervcp/pterodactyl-images:parkertron",
          "installed": true,
          "environment": {
            "STARTUP": "./parkertron",
            "P_SERVER_LOCATION": "test",
            "P_SERVER_UUID": "6d1567c5-08d4-4ecb-8d5d-0ce1ba6b0b99"
          }
        },
        "updated_at": "2018-11-10T19:52:13+00:00",
        "created_at": "2018-11-10T19:51:23+00:00"
      }
    }
  ],
  "meta": {
    "pagination": {
      "total": 2,
      "count": 2,
      "per_page": 50,
      "current_page": 1,
      "total_pages": 1,
      "links": []
    }
  }
}

This endpoint retrieves all servers along with information about them.

HTTP Request

GET https://pterodactyl.app/api/application/servers

Get server information

curl "https://pterodactyl.app/api/application/servers/<internal-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "server",
  "attributes": {
    "id": 2,
    "external_id": null,
    "uuid": "47a7052b-f07e-4845-989d-e876e30960f4",
    "identifier": "47a7052b",
    "name": "Survival",
    "description": "gsk;ljgkj;hgdakl;gha",
    "suspended": false,
    "limits": {
      "memory": 2048,
      "swap": -1,
      "disk": 10000,
      "io": 500,
      "cpu": 300
    },
    "feature_limits": {
      "databases": 10,
      "allocations": 0
    },
    "user": 1,
    "node": 2,
    "allocation": 3,
    "nest": 1,
    "egg": 4,
    "pack": null,
    "container": {
      "startup_command": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
      "image": "quay.io/pterodactyl/core:java",
      "installed": true,
      "environment": {
        "SERVER_JARFILE": "server.jar",
        "VANILLA_VERSION": "latest",
        "STARTUP": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
        "P_SERVER_LOCATION": "test",
        "P_SERVER_UUID": "47a7052b-f07e-4845-989d-e876e30960f4"
      }
    },
    "updated_at": "2018-11-20T02:52:37+00:00",
    "created_at": "2018-09-29T22:50:16+00:00"
  }
}

This endpoint retrieves information for the specified server.

HTTP Request

GET https://pterodactyl.app/api/application/servers/<internal-id>

Get server by external ID

curl "https://pterodactyl.app/api/application/servers/external/<external-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "server",
  "attributes": {
    "id": 7,
    "external_id": "cow_eater",
    "uuid": "78165af0-4835-405f-b281-07e961bfd0ad",
    "identifier": "78165af0",
    "name": "Eat Cows",
    "description": "ok....",
    "suspended": false,
    "limits": {
      "memory": 1024,
      "swap": 0,
      "disk": 1000,
      "io": 500,
      "cpu": 0
    },
    "feature_limits": {
      "databases": 0,
      "allocations": 0
    },
    "user": 1,
    "node": 2,
    "allocation": 9,
    "nest": 1,
    "egg": 4,
    "pack": null,
    "container": {
      "startup_command": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
      "image": "quay.io/pterodactyl/core:java",
      "installed": true,
      "environment": {
        "SERVER_JARFILE": "server.jar",
        "VANILLA_VERSION": "latest",
        "STARTUP": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
        "P_SERVER_LOCATION": "test",
        "P_SERVER_UUID": "78165af0-4835-405f-b281-07e961bfd0ad"
      }
    },
    "updated_at": "2018-12-17T20:00:16+00:00",
    "created_at": "2018-12-11T21:56:00+00:00"
  }
}

This endpoint retrieves information for the specified server using the external id.

HTTP Request

GET https://pterodactyl.app/api/application/servers/external/<external-id>

Create server

curl "https://pterodactyl.app/api/application/servers" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST \
  -d '{
    "name": "Lobby",
    "user": 1,
    "egg": 3,
    "docker_image": "quay.io/pterodactyl/core:java-glibc",
    "startup": "java -Xms128M -Xmx128M -jar server.jar",
    "environment": {
      "SERVER_JARFILE": "server.jar",
      "BUILD_NUMBER": "latest"
    },
    "limits": {
    "memory": 1024,
      "swap": -1,
      "disk": 10240,
      "io": 500,
      "cpu": 100
    },
    "feature_limits": {
      "databases": 10,
      "allocations": 10
    },
    "allocation": {
      "default": 2,
      "additional": [
        5
      ]
    }
  }'

The above command returns JSON structured like this:

{
  "object": "server",
  "attributes": {
    "id": 53,
    "external_id": "test_server",
    "uuid": "d7bcc254-e218-4522-a7fe-9d2d562ad790",
    "identifier": "d7bcc254",
    "name": "Test",
    "description": "Test server",
    "suspended": false,
    "limits": {
      "memory": 512,
      "swap": 0,
      "disk": 1024,
      "io": 500,
      "cpu": 100
    },
    "feature_limits": {
      "databases": 1,
      "allocations": 2
    },
    "user": 1,
    "node": 1,
    "allocation": 28,
    "nest": 5,
    "egg": 15,
    "pack": 1,
    "container": {
      "startup_command": "java -Xms128M -Xmx 1024M -jar server.jar",
      "image": "quay.io/pterodactyl/core:java-glibc",
      "installed": false,
      "environment": {
        "DL_VERSION": "1.12.2",
        "STARTUP": "java -Xms128M -Xmx 1024M -jar server.jar",
        "P_SERVER_LOCATION": "fr.sys",
        "P_SERVER_UUID": "d7bcc254-e218-4522-a7fe-9d2d562ad790"
      }
    },
    "updated_at": "2019-02-23T11:25:35+00:00",
    "created_at": "2019-02-23T11:25:35+00:00"
  }
}

This endpoint will create a server based on the given json object.

HTTP Request

POST https://pterodactyl.app/api/application/servers

Parameter Information Rules
external_id The server's external id sometimes|nullable|string|between:1,191|unique:servers
name The server's name required|string|min:1|max:255
user The user id of the server owner required|integer|exists:users,id
description The server's description sometimes|string
egg The server's egg id required|exists:eggs,id
pack The server's pack id sometimes|nullable|numeric|min:0
docker_image The server's docker image sometimes|string|max:255
startup The server's startup command required|string
limits The server's limits (array) required|array
limits.memory The server's memory limit required|numeric|min:0
limits.swap The server's swap limit required|numeric|min:-1
limits.disk The server's disk limit required|numeric|min:0
limits.io The server's io limit required|numeric|between:10,1000
limits.cpu The server's cpu limit required|numeric|min:0
feature_limits The server's feature limits (array) required|array
feature_limits.databases The server's database limit present|nullable|integer|min:0
feature_limits.allocations The server's allocation limit present|nullable|integer|min:0
environment The server's environment variables (related to the egg) present|array
allocation The server's allocation ids (array) sometimes|array
allocation.default The server's default allocation id sometimes|bail|unique:servers|exists:allocations,id
allocation.additional The server's additional allocation ids (array) sometimes|array
allocation.additional.* The server's additional allocation id exists:allocations,id
deploy The server's deploy information (array) sometimes|required|array
deploy.locations The server's deploy locations (array) array
deploy.locations.* The server's deploy location integer|min:1
deploy.dedicated_ip The server's dedicated ip required_with:deploy,boolean
deploy.port_range The server's port ranges (array) array
deploy.port_range.* The server's port range string
start_on_completion Whether the server should start once created sometimes|boolean
skip_scripts Whether the server should skip egg scripts sometimes|boolean
oom_disabled Whether the server should have oom killer disabled sometimes|boolean

Update server details

curl "https://pterodactyl.app/api/application/servers/<internal-id>/details" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X PATCH \
  -d '{
    "external_id": "cow_eater",
    "name": "Eat Cows",
    "user": "1",
    "description": "ok...."
  }'

The above command returns JSON structured like this:

{
  "object": "server",
  "attributes": {
    "id": 7,
    "external_id": "cow_eater",
    "uuid": "78165af0-4835-405f-b281-07e961bfd0ad",
    "identifier": "78165af0",
    "name": "Eat Cows",
    "description": "ok....",
    "suspended": false,
    "limits": {
      "memory": 1024,
      "swap": 0,
      "disk": 1000,
      "io": 500,
      "cpu": 0
    },
    "feature_limits": {
      "databases": 0,
      "allocations": 0
    },
    "user": 1,
    "node": 2,
    "allocation": 9,
    "nest": 1,
    "egg": 4,
    "pack": null,
    "container": {
      "startup_command": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
      "image": "quay.io/pterodactyl/core:java",
      "installed": true,
      "environment": {
        "SERVER_JARFILE": "server.jar",
        "VANILLA_VERSION": "latest",
        "STARTUP": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
        "P_SERVER_LOCATION": "test",
        "P_SERVER_UUID": "78165af0-4835-405f-b281-07e961bfd0ad"
      }
    },
    "updated_at": "2018-12-17T20:02:12+00:00",
    "created_at": "2018-12-11T21:56:00+00:00"
  }
}

This endpoint retrieves the details for the specified server.

HTTP Request

PATCH https://pterodactyl.app/api/application/servers/<internal-id>/details

Parameter Information Rules
external_id The server's external id sometimes|nullable|string|between:1,191|unique:servers
name The server's name required|string|min:1|max:255
user The user id of the server owner required|integer|exists:users,id
description The server's description sometimes|nullable|string

Update server build configuration

curl "https://pterodactyl.app/api/application/servers/<internal-id>/build" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X PATCH \
  -d '{
    "allocation": 9,
    "oom_disabled": true,
    "limits": {
      "memory": 2048,
      "swap": -1,
      "disk": 10000,
      "io": 500,
      "cpu": 300
    },
    "add_allocations": [
      15
    ],
    "remove_allocations": [
      3
    ],
    "feature_limits": {
      "databases": 10,
      "allocations": 10
    }
  }

The above command returns JSON structured like this:

{
  "object": "server",
  "attributes": {
    "id": 7,
    "external_id": "1510",
    "uuid": "78165af0-4835-405f-b281-07e961bfd0ad",
    "identifier": "78165af0",
    "name": "Eat Cows",
    "description": "",
    "suspended": false,
    "limits": {
      "memory": 2048,
      "swap": -1,
      "disk": 10000,
      "io": 500,
      "cpu": 300
    },
    "feature_limits": {
      "databases": 10,
      "allocations": 10
    },
    "user": 1,
    "node": 2,
    "allocation": 9,
    "nest": 1,
    "egg": 4,
    "pack": null,
    "container": {
      "startup_command": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
      "image": "quay.io/pterodactyl/core:java",
      "installed": true,
      "environment": {
        "SERVER_JARFILE": "server.jar",
        "VANILLA_VERSION": "latest",
        "STARTUP": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
        "P_SERVER_LOCATION": "test",
        "P_SERVER_UUID": "78165af0-4835-405f-b281-07e961bfd0ad"
      }
    },
    "updated_at": "2018-12-26T16:33:27+00:00",
    "created_at": "2018-12-11T21:56:00+00:00"
  }
}

This endpoint retrieves the build information for the specified server.

HTTP Request

PATCH https://pterodactyl.app/api/application/servers/<internal-id>/build

Parameter Information Rules
allocation The server's default allocation id required|bail|unique:servers|exists:allocations,id
oom_disabled Whether the server should have oom killer disabled sometimes|boolean
limits The server's limits (array) sometimes|array
limits.memory The server's memory limit sometimes|numeric|min:0
limits.swap The server's swap limit sometimes|numeric|min:-1
limits.disk The server's disk limit sometimes|numeric|min:0
limits.io The server's io limit sometimes|numeric|between:10,1000
limits.cpu The server's cpu limit sometimes|numeric|min:0
add_allocations The allocation ids to be added to the server (array) sometimes|bail|array
add_allocations.* The allocation id to be added to the server integer
remove_allocations The allocation ids to be removed from the server (array) sometimes|bail|array
remove_allocations.* The allocation id to be removed from the server integer
feature_limits The server's feature limits (array) required|array
feature_limits.databases The server's database limit present|nullable|integer|min:0
feature_limits.allocations The server's allocation limit sometimes|nullable|integer|min:0
Parameter Information Rules
memory The server's memory limit required_without:limits|numeric|min:0
swap The server's swap limit required_without:limits|numeric|min:-1
disk The server's disk limit required_without:limits|numeric|min:0
io The server's io limit required_without:limits|numeric|between:10,1000
cpu The server's cpu limit required_without:limits|numeric|min:0

Update server startup parameters

curl "https://pterodactyl.app/api/application/servers/<internal-id>/startup" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X PATCH \
  -d '{
    "startup": "java -Xms128M -Xmx1024M -jar paper.jar",
    "environment": [
      "SERVER_JARFILE",
      "DL_VERSION"
    ],
    "egg": 1,
    "pack": 4,
    "image": "quay.io/pterodactyl/core:java",
    "skip_scripts": false
  }

The above command returns JSON structured like this:

{
  "object": "server",
  "attributes": {
    "id": 7,
    "external_id": "1510",
    "uuid": "78165af0-4835-405f-b281-07e961bfd0ad",
    "identifier": "78165af0",
    "name": "Eat Cows",
    "description": "",
    "suspended": false,
    "limits": {
      "memory": 2048,
      "swap": -1,
      "disk": 10000,
      "io": 500,
      "cpu": 300
    },
    "feature_limits": {
      "databases": 10,
      "allocations": 10
    },
    "user": 1,
    "node": 2,
    "allocation": 9,
    "nest": 1,
    "egg": 4,
    "pack": null,
    "container": {
      "startup_command": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
      "image": "quay.io/pterodactyl/core:java",
      "installed": true,
      "environment": {
        "SERVER_JARFILE": "server.jar",
        "VANILLA_VERSION": "latest",
        "STARTUP": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
        "P_SERVER_LOCATION": "test",
        "P_SERVER_UUID": "78165af0-4835-405f-b281-07e961bfd0ad"
      }
    },
    "updated_at": "2018-12-26T16:33:27+00:00",
    "created_at": "2018-12-11T21:56:00+00:00"
  }
}

This endpoint retrieves the startup information for the specified server.

HTTP Request

PATCH https://pterodactyl.app/api/application/servers/<internal-id>/startup

Parameter Information Rules
startup The server's startup command required|string
environment The server's environment variables (related to the egg) present|array
egg The server's egg id required|exists:eggs,id
pack The server's pack id sometimes|nullable|numeric|min:0
image The server's docker image required|string|max:255
skip_scripts Whether the server should skip egg scripts present|boolean

Suspend specific server

curl "https://pterodactyl.app/api/application/servers/<internal-id>/suspend" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST 

This endpoint suspends the specified server.

HTTP Request

POST https://pterodactyl.app/api/application/servers/<internal-id>/suspend

Unsuspend specific server

curl "https://pterodactyl.app/api/application/servers/<internal-id>/unsuspend" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST 

This endpoint unsuspends the specified server.

HTTP Request

POST https://pterodactyl.app/api/application/servers/<internal-id>/unsuspend

Reinstall specific server

curl "https://pterodactyl.app/api/application/servers/<internal-id>/reinstall" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST 

This endpoint reinstalls the specified server.

HTTP Request

POST https://pterodactyl.app/api/application/servers/<internal-id>/reinstall

Rebuild specific server

curl "https://pterodactyl.app/api/application/servers/<internal-id>/rebuild" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST 

This endpoint rebuilds the specified server.

HTTP Request

POST https://pterodactyl.app/api/application/servers/<internal-id>/rebuild

Delete server

curl "https://pterodactyl.app/api/application/servers/<internal-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X DELETE 

This endpoint deletes the specified server.

HTTP Request

DELETE https://pterodactyl.app/api/application/servers/<internal-id>

Forcefully delete server

curl "https://pterodactyl.app/api/application/servers/<internal-id>/force" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X DELETE 

This endpoint forcefully deletes the specified server.

HTTP Request

DELETE https://pterodactyl.app/api/application/servers/<internal-id>/force

Get all a databases from a server

curl "https://pterodactyl.app/api/application/servers/<internal-id>/databases" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "list",
  "data": [
    {
      "object": "server_database",
      "attributes": {
        "id": 6,
        "server": 1,
        "host": 2,
        "database": "s1_test",
        "username": "u1_iff9TGoHFt",
        "remote": "%",
        "created_at": "2019-10-06T15:16:26+02:00",
        "updated_at": "2019-10-06T15:28:26+02:00"
      }
    },
    {
      "object": "server_database",
      "attributes": {
        "id": 7,
        "server": 1,
        "host": 2,
        "database": "s1_db2",
        "username": "u1_tZ14uEvXan",
        "remote": "%",
        "created_at": "2019-10-06T15:28:57+02:00",
        "updated_at": "2019-10-06T15:28:57+02:00"
      }
    }
  ]
}

This endpoint retrieves all the databases for the specified server, along with information about them.

HTTP Request

GET https://pterodactyl.app/api/application/servers/<internal-id>/databases

List specific database from a server

curl "https://pterodactyl.app/api/application/servers/<internal-id>/databases/<database-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "server_database",
  "attributes": {
    "id": 6,
    "server": 1,
    "host": 2,
    "database": "s1_test",
    "username": "u1_iff9TGoHFt",
    "remote": "%",
    "created_at": "2019-10-06T15:16:26+02:00",
    "updated_at": "2019-10-06T15:28:26+02:00"
  }
}

This endpoint retrieves information about the specified database for the specified server.

HTTP Request

GET https://pterodactyl.app/api/application/servers/<internal-id>/databases/<database-id>

Create database for a server

curl "https://pterodactyl.app/api/application/servers/<internal-id>/databases" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST \
  -d '{
    "database": "mydb",
    "remote": "%",
    "host": 2
  }

The above command returns JSON structured like this:

{
  "object": "server_database",
  "attributes": {
    "id": 8,
    "server": 1,
    "host": 2,
    "database": "s1_mydb",
    "username": "u1_9qUoCWnpfS",
    "remote": "%",
    "created_at": "2019-10-06T15:53:31+02:00",
    "updated_at": "2019-10-06T15:53:31+02:00"
  },
  "meta": {
    "resource": "https://pterodactyl.app/api/application/servers/1/databases/8"
  }
}

This endpoint creates a new database on the specified server with the provided information.

HTTP Request

POST https://pterodactyl.app/api/application/servers/<internal-id>/databases

Parameter Information Rules
database The database's name required|string|min:1|max:24 + unique in databases where database_host_id = host
remote The database's remote connection rule required|string|regex:/^[0-9%.]{1,15}$/
host The database's host server id required|integer|exists:database_hosts,id

Reset specific database password

curl "https://pterodactyl.app/api/application/servers/<internal-id>/databases/<database-id>/reset-password" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X POST 

This endpoint edits the specified database on the specified server with the provided information.

HTTP Request

POST https://pterodactyl.app/api/application/servers/<internal-id>/databases/<database-id>/reset-password

Delete database

curl "https://pterodactyl.app/api/application/servers/<internal-id>/databases/<database-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X DELETE 

This endpoint deletes the specified database on the specified server.

HTTP Request

DELETE https://pterodactyl.app/api/application/servers/<internal-id>/databases/<database-id>

API - Application - Nests

List nests

curl "https://pterodactyl.app/api/application/nests" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "list",
  "data": [
    {
      "object": "nest",
      "attributes": {
        "id": 1,
        "uuid": "179a06c9-b5bf-4798-8c0e-9f78e8f1f67f",
        "author": "support@pterodactyl.io",
        "name": "Minecraft",
        "description": "Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!",
        "created_at": "2018-03-18T15:14:37+00:00",
        "updated_at": "2018-03-18T15:14:37+00:00"
      }
    },
    {
      "object": "nest",
      "attributes": {
        "id": 2,
        "uuid": "c389ab01-8b30-4c0f-b2a2-01e79b3611d2",
        "author": "support@pterodactyl.io",
        "name": "Source Engine",
        "description": "Includes support for most Source Dedicated Server games.",
        "created_at": "2018-03-18T15:14:37+00:00",
        "updated_at": "2018-03-18T15:14:37+00:00"
      }
    },
    {
      "object": "nest",
      "attributes": {
        "id": 3,
        "uuid": "8b47c310-ff04-4c10-84c8-133e63f1bf61",
        "author": "support@pterodactyl.io",
        "name": "Voice Servers",
        "description": "Voice servers such as Mumble and Teamspeak 3.",
        "created_at": "2018-03-18T15:14:37+00:00",
        "updated_at": "2018-03-18T15:14:37+00:00"
      }
    },
    {
      "object": "nest",
      "attributes": {
        "id": 4,
        "uuid": "f92cd279-a916-4ede-84ee-900f51048e31",
        "author": "support@pterodactyl.io",
        "name": "Rust",
        "description": "Rust - A game where you must fight to survive.",
        "created_at": "2018-03-18T15:14:37+00:00",
        "updated_at": "2018-03-18T15:14:37+00:00"
      }
    }
  ],
  "meta": {
    "pagination": {
      "total": 4,
      "count": 4,
      "per_page": 50,
      "current_page": 1,
      "total_pages": 1,
      "links": []
    }
  }
}

This endpoint retrieves all nests along with information about them.

HTTP Request

GET https://pterodactyl.app/api/application/nests

Get nest information

curl "https://pterodactyl.app/api/application/nests/<nest-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "nest",
  "attributes": {
    "id": 1,
    "uuid": "179a06c9-b5bf-4798-8c0e-9f78e8f1f67f",
    "author": "support@pterodactyl.io",
    "name": "Minecraft",
    "description": "Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!",
    "created_at": "2018-03-18T15:14:37+00:00",
    "updated_at": "2018-03-18T15:14:37+00:00"
  }
}

This endpoint retrieves information for the specified nest.

HTTP Request

GET https://pterodactyl.app/api/application/nests/<nest-id>

Get eggs in nest

curl "https://pterodactyl.app/api/application/nests/<nest-id>/eggs" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "list",
  "data": [
    {
      "object": "egg",
      "attributes": {
        "id": 1,
        "uuid": "db6323d7-d62f-4278-bb66-db06484b1089",
        "nest": 1,
        "author": "support@pterodactyl.io",
        "description": "Spigot is the most widely-used modded Minecraft server software in the world. It powers many of the top Minecraft server networks around to ensure they can cope with their huge player base and ensure the satisfaction of their players. Spigot works by reducing and eliminating many causes of lag, as well as adding in handy features and settings that help make your job of server administration easier.",
        "docker_image": "quay.io/pterodactyl/core:java-glibc",
        "config": {
          "files": {
            "server.properties": {
              "parser": "properties",
              "find": {
                "server-ip": "0.0.0.0",
                "enable-query": "true",
                "server-port": "{{server.build.default.port}}",
                "query.port": "{{server.build.default.port}}"
              }
            }
          },
          "startup": {
            "done": ")! For help, type ",
            "userInteraction": [
              "Go to eula.txt for more info."
            ]
          },
          "stop": "stop",
          "logs": {
            "custom": false,
            "location": "logs/latest.log"
          },
          "extends": null
        },
        "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
        "script": {
          "privileged": true,
          "install": "#!/bin/ash\r\n# Spigot Installation Script\r\n#\r\n# Server Files: /mnt/server\r\n\r\n## Only download if a path is provided, otherwise continue.\r\nif [ ! -z \"${DL_PATH}\" ]; then\r\n    apk update\r\n    apk add curl\r\n\r\n    cd /mnt/server\r\n\r\n    MODIFIED_DOWNLOAD=`eval echo $(echo ${DL_PATH} | sed -e 's/{{/${/g' -e 's/}}/}/g')`\r\n    curl -sSL -o ${SERVER_JARFILE} ${MODIFIED_DOWNLOAD}\r\nelse\r\n    apk add --no-cache curl git openjdk8 openssl\r\n    \r\n    cd /srv/\r\n    \r\n    wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar\r\n    \r\n    mv BuildTools.jar /srv/\r\n\r\n    java -jar BuildTools.jar --rev ${DL_VERSION}\r\n\r\n    mv spigot-*.jar /mnt/server/${SERVER_JARFILE}\r\nfi",
          "entry": "ash",
          "container": "alpine:3.7",
          "extends": null
        },
        "created_at": "2018-03-18T15:14:37+00:00",
        "updated_at": "2018-07-08T00:56:48+00:00"
      }
    },
    {
      "object": "egg",
      "attributes": {
        "id": 2,
        "uuid": "2f9bfca1-4a41-4302-83e9-0aa868719eb6",
        "nest": 1,
        "author": "support@pterodactyl.io",
        "description": "Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.",
        "docker_image": "quay.io/pterodactyl/core:java",
        "config": {
          "files": {
            "server.properties": {
              "parser": "properties",
              "find": {
                "server-ip": "0.0.0.0",
                "enable-query": "true",
                "server-port": "{{server.build.default.port}}",
                "query.port": "{{server.build.default.port}}"
              }
            }
          },
          "startup": {
            "done": ")! For help, type ",
            "userInteraction": [
              "Go to eula.txt for more info."
            ]
          },
          "stop": "stop",
          "logs": {
            "custom": false,
            "location": "logs/latest.log"
          },
          "extends": null
        },
        "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
        "script": {
          "privileged": true,
          "install": "#!/bin/ash\r\n# Forge Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napk update\r\napk add curl\r\n\r\nif [ -z \"$MC_VERSION\" ] || [ \"$MC_VERSION\" == \"latest\" ]; then\r\n  FORGE_VERSION=$(curl -sl http://files.minecraftforge.net/maven/net/minecraftforge/forge/ | grep -A1 Latest | grep  -o -e '[1]\\.[0-9][0-9]]\\?\\.\\?[0-9]\\?[0-9] - [0-9][0-9]\\.[0-9][0-9]\\.[0-9]\\?[0-9]\\.[0-9][0-9][0-9][0-9]' | sed 's/ //g')\r\nelse\r\n  FORGE_VERSION=$(curl -sl http://files.minecraftforge.net/maven/net/minecraftforge/forge/index_$MC_VERSION.html | grep -A1 Latest | grep  -o -e '[1]\\.[0-9][0-9]]\\?\\.\\?[0-9]\\?[0-9] - [0-9][0-9]\\.[0-9][0-9]\\.[0-9]\\?[0-9]\\.[0-9][0-9][0-9][0-9]' | sed 's/ //g')\r\nfi\r\n\r\ncd /mnt/server\r\n\r\necho -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\ncurl -sS http://files.minecraftforge.net/maven/net/minecraftforge/forge/$FORGE_VERSION/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\ncurl -sS http://files.minecraftforge.net/maven/net/minecraftforge/forge/$FORGE_VERSION/forge-$FORGE_VERSION-universal.jar -o $SERVER_JARFILE\r\n\r\necho -e \"\\nInstalling forge server usint the installer jar file.\\n\"\r\njava -jar installer.jar --installServer\r\n\r\necho -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\nrm -rf installer.jar",
          "entry": "ash",
          "container": "frolvlad/alpine-oraclejdk8:cleaned",
          "extends": null
        },
        "created_at": "2018-03-18T15:14:37+00:00",
        "updated_at": "2018-07-08T00:56:48+00:00"
      }
    },
    {
      "object": "egg",
      "attributes": {
        "id": 3,
        "uuid": "dd105df0-124e-4c1a-8738-caa9e457569f",
        "nest": 1,
        "author": "support@pterodactyl.io",
        "description": "For a long time, Minecraft server owners have had a dream that encompasses a free, easy, and reliable way to connect multiple Minecraft servers together. BungeeCord is the answer to said dream. Whether you are a small server wishing to string multiple game-modes together, or the owner of the ShotBow Network, BungeeCord is the ideal solution for you. With the help of BungeeCord, you will be able to unlock your community's full potential.",
        "docker_image": "quay.io/pterodactyl/core:java",
        "config": {
          "files": {
            "config.yml": {
              "parser": "yaml",
              "find": {
                "listeners[0].query_enabled": true,
                "listeners[0].query_port": "{{server.build.default.port}}",
                "listeners[0].host": "0.0.0.0:{{server.build.default.port}}",
                "servers.*.address": {
                  "127.0.0.1": "{{config.docker.interface}}",
                  "localhost": "{{config.docker.interface}}"
                }
              }
            }
          },
          "startup": {
            "done": "Listening on ",
            "userInteraction": [
              "Listening on /0.0.0.0:25577"
            ]
          },
          "stop": "end",
          "logs": {
            "custom": false,
            "location": "proxy.log.0"
          },
          "extends": null
        },
        "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
        "script": {
          "privileged": true,
          "install": "#!/bin/ash\n# Bungeecord Installation Script\n#\n# Server Files: /mnt/server\napk update\napk add curl\n\ncd /mnt/server\n\nif [ -z \"${BUNGEE_VERSION}\" ] || [ \"${BUNGEE_VERSION}\" == \"latest\" ]; then\n    BUNGEE_VERSION=\"lastStableBuild\"\nfi\n\ncurl -o ${SERVER_JARFILE} https://ci.md-5.net/job/BungeeCord/${BUNGEE_VERSION}/artifact/bootstrap/target/BungeeCord.jar",
          "entry": "ash",
          "container": "alpine:3.4",
          "extends": null
        },
        "created_at": "2018-03-18T15:14:37+00:00",
        "updated_at": "2018-03-18T15:14:37+00:00"
      }
    },
    {
      "object": "egg",
      "attributes": {
        "id": 4,
        "uuid": "56af5379-7255-46af-b693-eb71b1ba4e90",
        "nest": 1,
        "author": "support@pterodactyl.io",
        "description": "Minecraft is a game about placing blocks and going on adventures. Explore randomly generated worlds and build amazing things from the simplest of homes to the grandest of castles. Play in Creative Mode with unlimited resources or mine deep in Survival Mode, crafting weapons and armor to fend off dangerous mobs. Do all this alone or with friends.",
        "docker_image": "quay.io/pterodactyl/core:java",
        "config": {
          "files": {
            "server.properties": {
              "parser": "properties",
              "find": {
                "server-ip": "0.0.0.0",
                "enable-query": "true",
                "server-port": "{{server.build.default.port}}",
                "query.port": "{{server.build.default.port}}"
              }
            }
          },
          "startup": {
            "done": ")! For help, type ",
            "userInteraction": [
              "Go to eula.txt for more info."
            ]
          },
          "stop": "stop",
          "logs": {
            "custom": false,
            "location": "logs/latest.log"
          },
          "extends": null
        },
        "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
        "script": {
          "privileged": true,
          "install": "#!/bin/ash\r\n# Vanilla MC Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napk update\r\napk add curl jq\r\n\r\ncd /mnt/server\r\n\r\nLATEST_VERSION=`curl https://launchermeta.mojang.com/mc/game/version_manifest.json | jq -r '.latest.release'`\r\n\r\nif [ -z \"$VANILLA_VERSION\" ] || [ \"$VANILLA_VERSION\" == \"latest\" ]; then\r\n  MANIFEST_URL=$(curl https://launchermeta.mojang.com/mc/game/version_manifest.json | jq .versions | jq -r '.[] | select(.id == \"'$LATEST_VERSION'\") | .url')\r\nelse\r\n  MANIFEST_URL=$(curl https://launchermeta.mojang.com/mc/game/version_manifest.json | jq .versions | jq -r '.[] | select(.id == \"'$VANILLA_VERSION'\") | .url')\r\nfi\r\n\r\nDOWNLOAD_URL=`curl $MANIFEST_URL | jq .downloads.server | jq -r '. | .url'`\r\n\r\ncurl -o ${SERVER_JARFILE} $DOWNLOAD_URL",
          "entry": "ash",
          "container": "alpine:3.7",
          "extends": null
        },
        "created_at": "2018-03-18T15:14:37+00:00",
        "updated_at": "2018-07-08T00:56:48+00:00"
      }
    },
    {
      "object": "egg",
      "attributes": {
        "id": 5,
        "uuid": "30bf5d10-9f37-4b58-9674-78b73a482e2a",
        "nest": 1,
        "author": "support@pterodactyl.io",
        "description": "SpongeVanilla is the SpongeAPI implementation for Vanilla Minecraft.",
        "docker_image": "quay.io/pterodactyl/core:java-glibc",
        "config": {
          "files": {
            "server.properties": {
              "parser": "properties",
              "find": {
                "server-ip": "0.0.0.0",
                "enable-query": "true",
                "server-port": "{{server.build.default.port}}",
                "query.port": "{{server.build.default.port}}"
              }
            }
          },
          "startup": {
            "done": ")! For help, type ",
            "userInteraction": [
              "Go to eula.txt for more info."
            ]
          },
          "stop": "stop",
          "logs": {
            "custom": false,
            "location": "logs/latest.log"
          },
          "extends": null
        },
        "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
        "script": {
          "privileged": true,
          "install": "#!/bin/ash\n# Sponge Installation Script\n#\n# Server Files: /mnt/server\n\napk update\napk add curl\n\ncd /mnt/server\n\ncurl -sSL \"https://repo.spongepowered.org/maven/org/spongepowered/spongevanilla/${SPONGE_VERSION}/spongevanilla-${SPONGE_VERSION}.jar\" -o ${SERVER_JARFILE}",
          "entry": "ash",
          "container": "alpine:3.4",
          "extends": null
        },
        "created_at": "2018-03-18T15:14:37+00:00",
        "updated_at": "2018-03-18T15:14:37+00:00"
      }
    },
    {
      "object": "egg",
      "attributes": {
        "id": 15,
        "uuid": "21a8b345-0d42-4c26-adc2-b2584a3bac83",
        "nest": 1,
        "author": "parker@parkervcp.com",
        "description": "The stupid chatbot parkertron by Parkervcp.\r\n\r\nhttps://github.com/parkervcp/parkertron",
        "docker_image": "quay.io/parkervcp/pterodactyl-images:parkertron",
        "config": {
          "files": [],
          "startup": {
            "done": "Bot is now running"
          },
          "stop": "^C",
          "logs": {
            "custom": false,
            "location": "logs/latest.log"
          },
          "extends": null
        },
        "startup": "./parkertron",
        "script": {
          "privileged": true,
          "install": "#!/bin/ash\r\n# parkertron Installation Script\r\n#\r\n# Server Files: /mnt/server\r\nexport GOPATH=$HOME/go\r\nexport PATH=$GOROOT/bin:$GOPATH/bin:$PATH\r\n\r\ncd\r\n\r\nmkdir -p go/bin go/src\r\n\r\napk add --no-cache --update go git curl lua-stdlib lua musl-dev g++ libc-dev tesseract-ocr tesseract-ocr-dev\r\n\r\necho \"installing dep for golang dependancies\"\r\n\r\ncurl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh\r\n\r\ncd go/src/\r\n\r\necho \"pulling the parkertron pterodactyl branch\"\r\n\r\ngit clone https://github.com/parkervcp/parkertron.git\r\n\r\ncd parkertron/\r\n\r\ndep ensure\r\n\r\necho \"building parkertron\"\r\n\r\ngo build \r\n\r\necho \"build complete copying parkertron and example configs over\"\r\n\r\ncp parkertron /mnt/server/\r\n\r\nif [ -d \"$DIRECTORY\" ]; then\r\n    echo \"Files exist already\"\r\nelse\r\n    cp -r configs/ /mnt/server/\r\nfi\r\n\r\necho \"Install complete. If you watched this. Congrats.\"",
          "entry": "ash",
          "container": "alpine:3.7",
          "extends": null
        },
        "created_at": "2018-11-10T19:49:41+00:00",
        "updated_at": "2018-11-10T19:49:41+00:00"
      }
    }
  ]
}

This endpoint retrieves all eggs for the specified nest along with information about them.

HTTP Request

GET https://pterodactyl.app/api/application/nests/<nest-id>/eggs

Get specific egg

curl "https://pterodactyl.app/api/application/nests/<nest-id>/eggs/<egg-id>" \
  -H "Authorization: Bearer meowmeowmeow" \
  -H "Content-Type: application/json" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -X GET 

The above command returns JSON structured like this:

{
  "object": "egg",
  "attributes": {
    "id": 1,
    "uuid": "db6323d7-d62f-4278-bb66-db06484b1089",
    "nest": 1,
    "author": "support@pterodactyl.io",
    "description": "Spigot is the most widely-used modded Minecraft server software in the world. It powers many of the top Minecraft server networks around to ensure they can cope with their huge player base and ensure the satisfaction of their players. Spigot works by reducing and eliminating many causes of lag, as well as adding in handy features and settings that help make your job of server administration easier.",
    "docker_image": "quay.io/pterodactyl/core:java-glibc",
    "config": {
      "files": {
        "server.properties": {
          "parser": "properties",
          "find": {
            "server-ip": "0.0.0.0",
            "enable-query": "true",
            "server-port": "{{server.build.default.port}}",
            "query.port": "{{server.build.default.port}}"
          }
        }
      },
      "startup": {
        "done": ")! For help, type ",
        "userInteraction": [
          "Go to eula.txt for more info."
        ]
      },
      "stop": "stop",
      "logs": {
        "custom": false,
        "location": "logs/latest.log"
      },
      "extends": null
    },
    "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
    "script": {
      "privileged": true,
      "install": "#!/bin/ash\r\n# Spigot Installation Script\r\n#\r\n# Server Files: /mnt/server\r\n\r\n## Only download if a path is provided, otherwise continue.\r\nif [ ! -z \"${DL_PATH}\" ]; then\r\n    apk update\r\n    apk add curl\r\n\r\n    cd /mnt/server\r\n\r\n    MODIFIED_DOWNLOAD=`eval echo $(echo ${DL_PATH} | sed -e 's/{{/${/g' -e 's/}}/}/g')`\r\n    curl -sSL -o ${SERVER_JARFILE} ${MODIFIED_DOWNLOAD}\r\nelse\r\n    apk add --no-cache curl git openjdk8 openssl\r\n    \r\n    cd /srv/\r\n    \r\n    wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar\r\n    \r\n    mv BuildTools.jar /srv/\r\n\r\n    java -jar BuildTools.jar --rev ${DL_VERSION}\r\n\r\n    mv spigot-*.jar /mnt/server/${SERVER_JARFILE}\r\nfi",
      "entry": "ash",
      "container": "alpine:3.7",
      "extends": null
    },
    "created_at": "2018-03-18T15:14:37+00:00",
    "updated_at": "2018-07-08T00:56:48+00:00"
  }
}

This endpoint retrieves the specified egg for the specified nest along with information about them.

HTTP Request

GET https://pterodactyl.app/api/application/nests/<nest-id>/eggs/<egg-id>

Errors

The Kittn API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- The kitten requested is hidden for administrators only.
404 Not Found -- The specified kitten could not be found.
405 Method Not Allowed -- You tried to access a kitten with an invalid method.
406 Not Acceptable -- You requested a format that isn't json.
410 Gone -- The kitten requested has been removed from our servers.
418 I'm a teapot.
429 Too Many Requests -- You're requesting too many kittens! Slow down!
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.