Skip to content

POST Create or update server

This API call creates a server or updates it with the given information.

Location

/api/v1/servers/

Permissions required

servers RW

Body parameters

Parameter Type Required Description
server_vm_host_id string yes Unique id of the vm
server_vm_host_name string no Name of the vm
company_uuid string no Company_uuid from companies
server_power_state enum ['Running', 'Off'] no If the vm is on or off
server_state enum ['new', 'active', 'deleted', 'trial', 'disabled'] no Server state. 'new' is the default
server_hostname string no Hostname of the server
server_os string no Server operating system
server_cpu int no Amount of cpu used by the server
server_memory int no Amount of memory used by the server in MB
server_memory_demand int no Amount memory demand by the server in MB
server_disks array no Array of the servers disks
server_ipv4 array no Array of the ipv4 addresses in a list
server_ipv6 json no Array of the ipv6 addresses in a list
server_vm_generation int no VM machine generation or version
server_vm_snapshot int no Amount of snapshots made of the vm
server_licenses json no Array of the server licenses
server_backup json no Array of the server backups
server_description string no description of the server

Note

If the current server_state is new and the posted server_state is deleted, the server will be permanently deleted. Otherwise, if the current state is not new, the server_state will simply be updated to deleted without permanent removal."

server_disks parameters

Parameter Type Required Description
disk_name string yes Name of the disk
disk_space float yes The file space of the vhd that is reserved.
disk_used float yes the real space used on the server for the vhd file. Can be used for dynamically sized disks.
disk_location string yes The real location of the vhd file.

server_licenses parameters

When posting server_licenses, you must include a prefix before each license name. Use + to add or register a license, and - to ensure the license is not registered in Sentri. This ensures that any license a server no longer has is automatically removed from Sentri.

Parameter Type Required Description
license name string yes Name of a license
license type string yes Type the license like, super-plus or plus. If this is not applicable, name it the same as the license name

server_backup parameters

When posting server_backup, you must include a prefix before each backup name. Use + to add or register a backup, and - to ensure the backup is not registered in Sentri. This ensures that any backup a server no longer has is automatically removed from Sentri.

Parameter Type Required Description
backup name string yes Name of the backup
backup type string yes Type of the backup. You can put here yes or the type of the backup.

Example Body (json)

{
        "server_vm_id": "00155d001d3f",
        "server_vm_host_name": "web01.test.example.nl",
        "server_power_state": "Running",
        "server_state": "new",
        "server_hostname": "web01.test.example.nl",
        "server_os": "AlmaLinux 10.1",
        "server_cpu": 1,
        "server_memory": 2048,
        "server_memory_demand": 1267,
        "server_disks": [
                { 
                    "disk_name": "server_datadisk.vhdx",
                    "disk_space": "150",
                    "disk_used": "140.5",
                    "disk_location": "C:\\ClusterStorage\\vol07\\web01.test\\VHD\\"
                }
        ],
        "server_ipv4": [
                "123.12.34.113",
                "123.12.34.134"
        ],
        "server_ipv6": [
                "2a01:4c66:4:2:44::1",
                "2a01:4c66:4:2:45::2"
        ],
        "server_vm_generation": 2,
        "server_vm_snapshot": 1,
        "server_licenses": [
                { "+directadmin": "Discounted Standard" },
                { "+cpguard": "cpguard" },
                { "-installatron": "none" }
        ],
        "server_backup": [
                { "+borg": "yes" }
        ],
        "server_description": "test web server"
}

Multiple servers

It is possible to post multiple servers in one request. Put the different servers in an array like below:

{
    "servers": [
        {
            "server_vm_id": "00155d001d3d",
            "server_vm_host_name": "web01.test.example.nl"
        },
        {
            "server_vm_id": "00155d001d3f",
            "server_vm_host_name": "web02.test.example.nl"
        }
    ]
}

Example Request

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://sentri.nl/api/v1/servers/',
  CURLOPT_HTTPHEADER => [  
    "Authorization: Bearer <API your Bearer token>",    
  ],
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => '<json payload body>',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Example Response

"Server(s) modified or updated successfully."

Known errors or issues.

None are known at the time. If you do encounter issues and get an http code in return, check the response codes on this page.