Ploi API
Ploi API

Create server

Creates a new server in your account. To be able to do this properly you will need 3 key values: plan, region and credential.

These values are available here: Get server providers

You will also need to have server providers added to your account to be able to retrieve these. Setup new server providers in your account here: Server providers

POST api/servers

Required scopes:

Create servers


Parameter Type Status Description
name string optional The server name, cannot contain any special characters and is alpha-numeric, if left empty a random name will be used
plan string required The plan ID to install the server with
region string required The region where to install the server with
credential integer required The server provider from your account - Get server providers
type string required Type of the server to install, must be either: server, load-balancer, database-server or redis-server
database_type string required The type of database to install, must be either: none, mysql, mariadb, postgresql or postgresql13
webserver_type string required The type of webserver to install, must be either: nginx or nginx-apache
os_type string optional The OS version, defaults to the latest version available, available options: ubuntu-18-04-lts, ubuntu-20-04-lts, ubuntu-22-04-lts, ubuntu-24-04-lts
php_version string required The PHP version installed, only applicable on the server type. Must be any of these values: 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, 8.3
description string optional Allows you to send in an additional description for your server as note
install_monitoring boolean optional Allows you to install Ploi monitoring as well, requires Pro plan or higher
webhook_url url optional This URL gets triggered by Ploi when installation has completed, you can use this for your own system, this will only send 1 signal, there is no retry schedule, it will contain a ID of the server that is finished installing (contents of this URL down in this document)

Example request:

curl -X POST "" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
   --data '{ 
         "name": "awesome-server", 
         "plan": "1xCPU-1GB", 
         "region": "nl-ams1", 
         "credential": 1, 
         "type": "server", 
         "database_type": "mysql", 
         "webserver_type" : "nginx" 

Example response:

Content-Type: application/json

    "data": {
        "id": 2,
        "status": "created",
        "type": "server",
        "name": "awesome-server",
        "ip_address": "",
        "php_version": 7.1,
        "mysql_version": 5.7,
        "sites_count": 0,
        "monitoring": false,
        "status_id": 0,
        "created_at": "2019-01-01 09:00:00"

Contents of webhook URL data (optional webhook_url field)

Example response:

Content-Type: application/json

  "message": "Server installation has completed",
  "server": {
    "id": 1,
    "name": "calm-breeze"