Download OpenAPI specification:
Tenantos API
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "name": "Admin Alias Role ",
- "id": 6,
- "assignedUsers": [
- {
- "userId": 11,
- "fullname": "Admin Alias User",
- "username": "exampleAliasUser"
}
], - "notDeleteable": 0,
- "notAssignable": 0,
- "ownedBy": {
- "userId": 1,
- "fullname": "Mable White",
- "username": "adm"
}, - "ownerUserId": 1,
- "type": "user_created",
- "permissions": [ ],
- "isAliasRole": 1
}
], - "message": "success"
}The available permissions can be requested via the api/permissions endpoint.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string |
| permissionlist | Array of strings Array of single permissions. |
| permissionsets | Array of strings Array of permission groups. |
| userId | integer |
{- "name": "est",
- "permissionlist": [
- "servers.update.param.tags",
- "servers.apiOutput.param.tags"
], - "permissionsets": [
- "Manage Server Description"
], - "userId": 4
}| id required | integer Example: 6 The ID of the role. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": null,
- "message": "success"
}The available permissions can be requested via the api/permissions endpoint.
| id required | integer Example: 6 The ID of the role. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name | string |
| permissionlist | Array of strings Array of single permissions. |
| permissionsets | Array of strings Array of permission groups. |
| serversIndexDisablePermissionChecks | boolean |
{- "name": "recusandae",
- "permissionlist": [
- "servers.update.param.tags",
- "servers.apiOutput.param.tags"
], - "permissionsets": [
- "Manage Server Description"
], - "serversIndexDisablePermissionChecks": true
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 11,
- "name": "Admin Alias User",
- "email": null,
- "created_at": "2025-08-25T15:19:02.000000Z",
- "root_owner": 1,
- "username": "exampleAliasUser",
- "accountstatus": "enabled",
- "isParentAccountSuspended": 0,
- "isSharedAccess": true,
- "sharedUserId": 1,
- "realOrSharedUserId": 1,
- "role_id": 6,
- "role_name": "Admin Alias Role ",
- "root_owner_username": "adm",
- "lastlogin": {
- "date": "Never",
- "ip": "-"
}, - "canCreateSubUsers": 1,
- "description": null,
- "user_alias_assignments": [ ]
}
], - "message": "success"
}API parameters are the same as for the POST api/users endpoint.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| id required | string Example: quia The ID of the aliasUser. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
object | |
| accountstatus | string Must be one of |
| role_id | integer |
{- "user_alias_assignments": [ ],
- "accountstatus": "disabled",
- "role_id": 3
}| brand required | string Example: ipsam The brand. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: multipart/form-data |
| Accept | string Example: application/json |
| lightlogo | string <binary> Must be an image. Must not be greater than 512 kilobytes. |
| darklogo | string <binary> Must be an image. Must not be greater than 512 kilobytes. |
| favicon | string <binary> Must be an image. Must not be greater than 512 kilobytes. |
| brand required | string Example: maxime The brand. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| lightlogo | boolean |
| darklogo | boolean |
| favicon | boolean |
{- "lightlogo": true,
- "darklogo": true,
- "favicon": true
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "user_id": 1,
- "domain": "domain.com",
- "login_page_text": "Server Management",
- "top_navbar_header_title": "Tenantos",
- "page_title": "Control",
- "color_scheme": {
- "light": {
- "primary": "#0C47A0",
- "...": "..."
}, - "dark": {
- "primary": "#536DFE",
- "...": "..."
}
}, - "languageOverrides": [ ],
- "languageData": [
- {
- "en-us": {
- "common_table_nodata_reload": "No data available. Reload?",
- "...": "..."
}
}
], - "navbar_text_instead_logo": 0,
- "navbar_logo_always_dark": 1,
- "loginpage_text_instead_logo": 0,
- "loginpage_logo_always_dark": 0,
- "loginpage_logo_above_form": 0,
- "loginpage_show_text_within_form": 0,
- "navbar_logo_max_height": 30,
- "loginpage_logo_max_height": 40,
- "theme_flat_buttons": 0,
- "theme_cards_elevation": 3,
- "theme_cards_outlined": 0,
- "theme_top_bar_full_length": 0,
- "theme_serverpage_notes_importantNotes_showOnTop": 0,
- "default_theme_mode": "light",
- "availableLanguages": [
- {
- "languageName": "English",
- "languageCode": "en-us"
}
], - "defaultColorScheme": {
- "light": {
- "primary": "#0C47A0",
- "...": "..."
}, - "dark": {
- "primary": "#536DFE",
- "...": "..."
}
}, - "logos": {
- "favicon": {
- "publicPath": "/storage/brands/1/logos/favicon_673930630b2c9.png"
}, - "lightlogo": {
- "publicPath": "/storage/brands/1/logos/lightlogo_3e6ed656923ef.png"
}, - "darklogo": {
- "publicPath": "/storage/brands/1/logos/darklogo_e4c15c2d3b6e5.png"
}
}
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| domain required | string The domain for the new brand. |
{- "domain": "app.domain.com"
}| id required | integer Example: 1 The ID of the brand. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "user_id": 1,
- "domain": "domain.com",
- "login_page_text": "Server Management",
- "top_navbar_header_title": "Tenantos",
- "page_title": "Control",
- "color_scheme": {
- "light": {
- "primary": "#0C47A0",
- "...": "..."
}, - "dark": {
- "primary": "#536DFE",
- "...": "..."
}
}, - "languageOverrides": [ ],
- "languageData": [
- {
- "en-us": {
- "common_table_nodata_reload": "No data available. Reload?",
- "...": "..."
}
}
], - "navbar_text_instead_logo": 0,
- "navbar_logo_always_dark": 1,
- "loginpage_text_instead_logo": 0,
- "loginpage_logo_always_dark": 0,
- "loginpage_logo_above_form": 0,
- "loginpage_show_text_within_form": 0,
- "navbar_logo_max_height": 30,
- "loginpage_logo_max_height": 40,
- "theme_flat_buttons": 0,
- "theme_cards_elevation": 3,
- "theme_cards_outlined": 0,
- "theme_top_bar_full_length": 0,
- "theme_serverpage_notes_importantNotes_showOnTop": 0,
- "default_theme_mode": "light",
- "availableLanguages": [
- {
- "languageName": "English",
- "languageCode": "en-us"
}
], - "defaultColorScheme": {
- "light": {
- "primary": "#0C47A0",
- "...": "..."
}, - "dark": {
- "primary": "#536DFE",
- "...": "..."
}
}, - "logos": {
- "favicon": {
- "publicPath": "/storage/brands/1/logos/favicon_673930630b2c9.png"
}, - "lightlogo": {
- "publicPath": "/storage/brands/1/logos/lightlogo_3e6ed656923ef.png"
}, - "darklogo": {
- "publicPath": "/storage/brands/1/logos/darklogo_e4c15c2d3b6e5.png"
}
}
}, - "message": "success"
}| id required | integer Example: 1 The ID of the brand. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| login_page_text | string Text which is shown above the login form. |
| page_title | string The page title. |
| top_navbar_header_title | string Text which is shown at the left sidebar. |
object Custom color scheme for this brand. | |
| user_id | integer The owner of the brand. The owner is usually a reseller. |
| languageOverrides | object The owner of the brand. The owner is usually a reseller. |
| navbar_text_instead_logo | boolean |
| navbar_logo_always_dark | boolean |
| loginpage_text_instead_logo | boolean |
| loginpage_logo_always_dark | boolean |
| loginpage_logo_above_form | boolean |
| loginpage_show_text_within_form | boolean |
| navbar_logo_max_height | integer |
| loginpage_logo_max_height | integer |
| theme_flat_buttons | boolean |
| theme_cards_elevation | integer Must be at least 0. Must not be greater than 25. |
| theme_cards_outlined | boolean |
| theme_top_bar_full_length | boolean |
| theme_serverpage_notes_importantNotes_showOnTop | boolean |
| default_theme_mode | string Must be one of |
Array of objects |
{- "login_page_text": "Login To App",
- "page_title": "Tenantos",
- "top_navbar_header_title": "Tenantos",
- "color_scheme": {
- "dark": {
- "primary": "#536DFE"
}, - "light": {
- "primary": "#0C47A0"
}
}, - "user_id": 14,
- "languageOverrides": {
- "en-us": {
- "common_table_nodata_reload": "No data available. Reload?"
}
}, - "navbar_text_instead_logo": true,
- "navbar_logo_always_dark": false,
- "loginpage_text_instead_logo": true,
- "loginpage_logo_always_dark": false,
- "loginpage_logo_above_form": true,
- "loginpage_show_text_within_form": true,
- "navbar_logo_max_height": 4,
- "loginpage_logo_max_height": 6,
- "theme_flat_buttons": true,
- "theme_cards_elevation": 19,
- "theme_cards_outlined": false,
- "theme_top_bar_full_length": true,
- "theme_serverpage_notes_importantNotes_showOnTop": true,
- "default_theme_mode": "dark",
- "availableLanguages": [
- [ ]
]
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "provider": "proxmox",
- "name": "host-01",
- "apiUrl": "proxmox01.domain.com",
- "apiUser": "root",
- "apiPassword": "**************",
- "meta": null,
- "isStandaloneRdnsProvider": [ ],
- "usage": {
- "serverIds": [
- 2,
- 3,
- 4,
- 5
]
}
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| provider required | string Must be one of |
| name required | string User definable name. Should be an easily identifiable name. |
| apiUrl | string |
| apiUser | string |
| apiPassword | string |
| meta | Array of strings Depending on the provider, additional meta information must be set. |
{- "provider": "novoserve",
- "name": "Host-01",
- "apiUrl": "proxmox01.domain.com",
- "apiUser": "root",
- "apiPassword": "secret",
- "meta": [ ]
}| id required | integer Example: 1 The ID of the provider. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "provider": "proxmox",
- "name": "Host 01",
- "apiUrl": "proxmox01.domain.com",
- "apiUser": "root",
- "apiPassword": "**************",
- "meta": null,
- "providerDetails": {
- "nodes": [
- {
- "value": "host01",
- "name": "host01"
}, - {
- "value": "host02",
- "name": "host02"
}
], - "storages": {
- "host01": [
- {
- "shared": 0,
- "used": 1719563468800,
- "content": [
- "snippets",
- "images",
- "iso",
- "rootdir",
- "vztmpl",
- "backup"
], - "used_fraction": 0.88166787539109,
- "type": "dir",
- "total": 1950352867328,
- "avail": 220859899904,
- "enabled": 1,
- "storage": "local",
- "active": 1,
- "backendId": "local"
}
], - "host02": [
- {
- "avail": 87191961600,
- "active": 1,
- "total": 468513751040,
- "enabled": 1,
- "content": [
- "iso",
- "snippets",
- "vztmpl",
- "rootdir",
- "images",
- "backup"
], - "storage": "local",
- "used_fraction": 0.81182432845931,
- "type": "dir",
- "used": 380350861312,
- "shared": 0,
- "backendId": "local"
}
]
}, - "networks": {
- "host02": [
- {
- "bridge_stp": "off",
- "bridge_ports": "enp2s0",
- "options": [
- "hwaddress 44:aa:5b:2c:3c:dc",
- "pointopoint 192.168.100.1",
- "bridge_hello 2",
- "bridge_maxage 12"
], - "cidr": "10.10.11.10/24",
- "address": "10.10.11.10",
- "type": "bridge",
- "autostart": 1,
- "method6": "manual",
- "iface": "vmbr0",
- "bridge_fd": "1",
- "families": [
- "inet"
], - "priority": 4,
- "method": "static",
- "netmask": "32",
- "gateway": "10.10.11.1",
- "active": 1,
- "backendId": "vmbr0"
}, - {
- "method6": "manual",
- "autostart": 1,
- "type": "bridge",
- "mtu": "1400",
- "bridge_fd": 0,
- "iface": "vmbr2",
- "bridge_ports": "enp2s0.4000",
- "bridge_stp": "off",
- "address": "10.10.11.2",
- "cidr": "10.10.11.2/24",
- "method": "static",
- "active": 1,
- "netmask": "24",
- "priority": 6,
- "families": [
- "inet"
], - "backendId": "vmbr2"
}
], - "host01": [
- {
- "netmask": "29",
- "bridge_fd": "0",
- "bridge_ports": "",
- "address": "10.20.10.5",
- "active": 1,
- "autostart": 1,
- "cidr": "10.20.10.5/24",
- "method6": "manual",
- "bridge_stp": "off",
- "iface": "vmbr0",
- "families": [
- "inet"
], - "type": "bridge",
- "method": "static",
- "priority": 12,
- "backendId": "vmbr3"
}
]
}, - "haGroups": [
- {
- "group": "ha-group-ceph-1",
- "comment": "Ceph nodes"
}, - {
- "group": "ha-group-nfs-1",
- "comment": "NFS, only for dev"
}
]
}, - "nodeResources": {
- "host01": {
- "cpuCores": 8,
- "cpuUtil": 0.013366336633663,
- "maxMem": 33523425280,
- "usedMem": 25098756096,
- "freeMem": 8424669184,
- "memUsagePercentage": 74.869306720199,
- "uptime": 54516143,
- "status": "online"
}, - "host02": {
- "cpuCores": 8,
- "cpuUtil": 0.51030339000754,
- "maxMem": 67213066240,
- "usedMem": 43491606528,
- "freeMem": 23721459712,
- "memUsagePercentage": 64.707071051785,
- "uptime": 54137712,
- "status": "online"
}
}, - "availableVpsBalancerPlans": [
- {
- "id": 1,
- "created_at": "2023-05-03T21:11:53.000000Z",
- "updated_at": "2023-05-03T21:11:53.000000Z",
- "planname": "Balancer #1",
- "cpuPriority": 2,
- "cpuRequireIdlePercentage": 30,
- "storagePriority": 1,
- "storageReserveFreeAmount": 20,
- "ramPriority": 1.5,
- "ramReserveFreeAmount": 10,
- "vmCountPriority": 1,
- "vmMaxAmount": 50,
- "nodeMustMatchRegex": "/^node[0-9]+$/",
- "nodeMustNotMatchRegex": "/^gluster[0-9]+$/"
}
], - "isStandaloneRdnsProvider": [ ],
- "usage": {
- "serverIds": [
- 2,
- 3,
- 4,
- 5
]
}
}, - "message": "success"
}| id required | integer Example: 1 The ID of the provider. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name | string User definable name. Should be an easily identifiable name. |
| apiUrl | string |
| apiUser | string |
| apiPassword | string |
| meta | Array of strings Depending on the provider, additional meta information must be set. |
{- "name": "Host-01",
- "apiUrl": "proxmox01.domain.com",
- "apiUser": "root",
- "apiPassword": "secret",
- "meta": [ ]
}To some objects files can be attached (e.g. server comments). This endpoint is used to download and delete these files.
| fileId required | string Example: voluptatem |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "message": "Exception",
- "result": "Access to this file denied or file not found."
}These API endpoints are, by default, only accessible as admin and are not intended for normal users.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| mode required | string Must be one of |
| ips required | Array of strings An array of IPs or subnets with CIDR where the action should be performed: |
| type required | string Must be one of singleIp or subnet. Use singleIp if the listed values at the "ips" param are IP addresses, or subnet if the values are subnets. |
{- "mode": "reserve",
- "ips": [
- "10.10.10.28",
- "10.10.10.29"
], - "type": "singleIp"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| adminIp required | string Must be a valid IP address or a subnet with CIDR. |
| type required | string Must be one of singleIp or subnet. |
{- "adminIp": "10.10.10.20",
- "type": "singleIp"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| adminIp required | string Must be a valid IP address or a subnet with CIDR. |
| type required | string Must be one of singleIp or subnet. |
{- "adminIp": "10.10.10.20",
- "type": "singleIp"
}If a user wants to create a comment for an IP, the PUT api/servers/{server_id}/ipassignments/{id} endpoint can be used.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| comment | string The comment to store. Leave blank to remove the existing comment. |
| adminIp required | string Must be a valid IP address or a subnet with CIDR. |
| type required | string Must be one of singleIp or subnet. |
{- "comment": "VPN IP",
- "adminIp": "10.10.10.20",
- "type": "singleIp"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| adminIp required | string |
| type required | string Must be one of |
{- "adminIp": "quasi",
- "type": "subnet"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "name": "Disk Type",
- "type": "dropdown",
- "availableValues": [
- {
- "id": "1",
- "value": "HDD"
}, - {
- "id": "2",
- "value": "SSD"
}, - {
- "id": "3",
- "value": "NVMe"
}
], - "notdeletable": 1,
- "created_at": "2021-12-25T23:14:22.000000Z",
- "updated_at": "2021-12-25T23:14:22.000000Z"
}, - {
- "id": 2,
- "name": "Cores",
- "type": "input",
- "availableValues": [ ],
- "notdeletable": 1,
- "created_at": "2021-12-27T00:00:00.000000Z",
- "updated_at": "2021-12-27T22:41:28.000000Z"
}, - {
- "id": 3,
- "name": "MHz Turbo",
- "type": "input",
- "availableValues": [ ],
- "notdeletable": 1,
- "created_at": "2021-12-27T00:00:00.000000Z",
- "updated_at": "2021-12-27T22:41:30.000000Z"
}, - {
- "id": 4,
- "name": "MHz Normal",
- "type": "input",
- "availableValues": [ ],
- "notdeletable": 1,
- "created_at": "2021-12-27T00:00:00.000000Z",
- "updated_at": "2021-12-27T22:41:32.000000Z"
}, - {
- "id": 5,
- "name": "Threads",
- "type": "input",
- "availableValues": [ ],
- "notdeletable": 1,
- "created_at": "2021-12-27T00:00:00.000000Z",
- "updated_at": "2021-12-27T22:41:33.000000Z"
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string The name of the custom field. |
| type required | string Must be one of input, checkbox, or dropdown. |
| availableValues | Array of strings If the type is dropdown, the submitted values are attached to the custom field. |
{- "name": "Datacenter",
- "type": "dropdown",
- "availableValues": [
- "Datacenter-1",
- "Datacenter-2"
]
}| id required | integer Example: 1 The ID of the inventory component custom field. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "name": "Disk Type",
- "type": "dropdown",
- "availableValues": [
- {
- "id": "1",
- "value": "HDD"
}, - {
- "id": "2",
- "value": "SSD"
}, - {
- "id": "3",
- "value": "NVMe"
}
], - "notdeletable": 1,
- "created_at": "2021-12-25T23:14:22.000000Z",
- "updated_at": "2021-12-25T23:14:22.000000Z"
}, - "message": "success"
}| id required | integer Example: 1 The ID of the inventory component custom field. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name | string The name of the custom field. |
| type | string Must be one of input, checkbox, or dropdown. |
| availableValues | Array of strings If the type is dropdown, the submitted values are attached to the custom field. |
{- "name": "Datacenter",
- "type": "dropdown",
- "availableValues": [
- "Datacenter-1",
- "Datacenter-2"
]
}| id required | integer Example: 1 The ID of the inventory component custom field. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "created_at": "2025-08-25T15:17:58.000000Z",
- "updated_at": "2025-08-25T15:17:58.000000Z",
- "componentname": "cpu",
- "description": "CPU Model",
- "notdeletable": 1,
- "groupname": "Hardware",
- "valueType": "MHz",
- "customfieldsRelations": [
- 2,
- 3,
- 4,
- 5
], - "customfields": [
- {
- "field_id": 2,
- "name": "Cores",
- "type": "input",
- "values": [ ]
}, - {
- "field_id": 3,
- "name": "MHz Turbo",
- "type": "input",
- "values": [ ]
}, - {
- "field_id": 4,
- "name": "MHz Normal",
- "type": "input",
- "values": [ ]
}, - {
- "field_id": 5,
- "name": "Threads",
- "type": "input",
- "values": [ ]
}
]
}, - {
- "id": 2,
- "created_at": "2025-08-25T15:17:58.000000Z",
- "updated_at": "2025-08-25T15:17:58.000000Z",
- "componentname": "memory",
- "description": "RAM",
- "notdeletable": 1,
- "groupname": "Hardware",
- "valueType": "mb",
- "customfieldsRelations": [ ],
- "customfields": [ ]
}, - {
- "id": 3,
- "created_at": "2025-08-25T15:17:58.000000Z",
- "updated_at": "2025-08-25T15:17:58.000000Z",
- "componentname": "system",
- "description": "System",
- "notdeletable": 1,
- "groupname": "Hardware",
- "valueType": "text",
- "customfieldsRelations": [ ],
- "customfields": [ ]
}, - {
- "id": 4,
- "created_at": "2025-08-25T15:17:58.000000Z",
- "updated_at": "2025-08-25T15:17:58.000000Z",
- "componentname": "bios",
- "description": "BIOS",
- "notdeletable": 1,
- "groupname": "Hardware",
- "valueType": "text",
- "customfieldsRelations": [ ],
- "customfields": [ ]
}, - {
- "id": 5,
- "created_at": "2025-08-25T15:17:58.000000Z",
- "updated_at": "2025-08-25T15:17:58.000000Z",
- "componentname": "storage_controller",
- "description": "Storage Controller",
- "notdeletable": 1,
- "groupname": "Hardware",
- "valueType": "text",
- "customfieldsRelations": [ ],
- "customfields": [ ]
}, - {
- "id": 6,
- "created_at": "2025-08-25T15:17:58.000000Z",
- "updated_at": "2025-08-25T15:17:58.000000Z",
- "componentname": "mainboard",
- "description": "Mainboard Model",
- "notdeletable": 1,
- "groupname": "Hardware",
- "valueType": "text",
- "customfieldsRelations": [ ],
- "customfields": [ ]
}, - {
- "id": 7,
- "created_at": "2025-08-25T15:17:58.000000Z",
- "updated_at": "2025-08-25T15:18:27.000000Z",
- "componentname": "disk",
- "description": "Disk",
- "notdeletable": 1,
- "groupname": "Hardware",
- "valueType": "mib",
- "customfieldsRelations": [
- 1
], - "customfields": [
- {
- "field_id": 1,
- "name": "Disk Type",
- "type": "dropdown",
- "values": [
- {
- "id": "1",
- "value": "HDD"
}, - {
- "id": "2",
- "value": "SSD"
}, - {
- "id": "3",
- "value": "NVMe"
}
]
}
]
}, - {
- "id": 8,
- "created_at": "2025-08-25T15:17:58.000000Z",
- "updated_at": "2025-08-25T15:17:58.000000Z",
- "componentname": "nic",
- "description": "NIC",
- "notdeletable": 1,
- "groupname": "Hardware",
- "valueType": "text",
- "customfieldsRelations": [ ],
- "customfields": [ ]
}, - {
- "id": 9,
- "created_at": "2025-08-25T15:18:28.000000Z",
- "updated_at": "2025-08-25T15:18:28.000000Z",
- "componentname": "raid_controller",
- "description": "RAID Controller",
- "notdeletable": 1,
- "groupname": "Hardware",
- "valueType": "text",
- "customfieldsRelations": [ ],
- "customfields": [ ]
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| groupname required | string The name of the group. For example, "Hardware". Any name can be entered. |
| description required | string A short description. |
| componentname required | string The name of the component. |
| customfieldsRelations | Array of strings Multiple custom fields can be attached to a component. |
| valueType required | string The type of the value. Must be one of text, mb (megabyte) or MHz. |
{- "groupname": "Software",
- "description": "Software licenses",
- "componentname": "Software name",
- "customfieldsRelations": [
- 1,
- 3
], - "valueType": "text"
}| id required | integer Example: 1 The ID of the inventory component. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "created_at": "2025-08-25T15:17:58.000000Z",
- "updated_at": "2025-08-25T15:17:58.000000Z",
- "componentname": "cpu",
- "description": "CPU Model",
- "notdeletable": 1,
- "groupname": "Hardware",
- "valueType": "MHz",
- "customfieldsRelations": [
- 2,
- 3,
- 4,
- 5
], - "customfields": [
- {
- "field_id": 2,
- "name": "Cores",
- "type": "input",
- "values": [ ]
}, - {
- "field_id": 3,
- "name": "MHz Turbo",
- "type": "input",
- "values": [ ]
}, - {
- "field_id": 4,
- "name": "MHz Normal",
- "type": "input",
- "values": [ ]
}, - {
- "field_id": 5,
- "name": "Threads",
- "type": "input",
- "values": [ ]
}
]
}, - "message": "success"
}| id required | integer Example: 1 The ID of the inventory component. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| groupname | string The name of the group. For example, "Hardware". Any name can be entered. |
| description | string A short description. |
| componentname | string The name of the component. |
| customfieldsRelations | Array of strings Multiple custom fields can be attached to a component. |
| valueType | string The type of the value. Must be one of text, mb (megabyte) or MHz. |
{- "groupname": "Software",
- "description": "Software licenses",
- "componentname": "Software name",
- "customfieldsRelations": [
- 1,
- 3
], - "valueType": "text"
}Tests if the connection between the Tenantos main server and the network device does work.
| networkDevice required | integer Example: 8 The ID of the network device. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| useCache | boolean The last status of network devices is cached for at least 15 minutes. Submit true to receive the cached status (for faster response). |
{- "useCache": true
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "id": 1,
- "name": "EX3200",
- "host": "192.168.188.223",
- "deviceType": "snmp_switch",
- "snmpCommunity": "Aks8gkjsa8a2",
- "snmpVersion": "2c",
- "agentId": 1,
- "features": [
- "bw_collection"
], - "meta": {
- "cachePorts": true
}, - "username": "",
- "password": "",
- "port": null,
- "statusCache": [ ],
- "snmpAuthAlgo": null,
- "snmpAuthLevel": null,
- "snmpCryptoAlgo": null,
- "snmpCryptoPassword": "",
- "enableAdvancedManagement": 1,
- "managementVendor": "juniperSsh",
- "managementPort": "22",
- "managementUser": "root",
- "managementPassword": "secret",
- "rootType": "snmp_switch",
- "extendedDetailsAvailable": true
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| deviceType required | string Must be one of snmp_switch, telejetDigiOne, apc, apcCpdu, racktivityEnergySwitch, racktivityPowerManager, cyberpowerAts, cyberpowerEpdu2, dellrPdu, enlogicv1, intertechSw, intertechSm, intertechSa, azepdu, geistV5, raritanDominionSX, raritanDominionKXII, raritanDominionKXIII, raritanDominionPduMib1, sentry4, sentry3, or ipoman. |
| name required | string |
| host required | string The hostname or IP of the device. |
| port | integer This field is required when deviceType is telejetDigiOne. Must be between 1 and 65535. |
| username | string This field is required when deviceType is telejetDigiOne. |
| password | string Optional field. Currently only available for telejet. |
| snmpCommunity | string This field is required when deviceType is snmp_switch, apc, apcCpdu, racktivityEnergySwitch, racktivityPowerManager, cyberpowerAts, cyberpowerEpdu2, dellrPdu, enlogicv1, intertechSw, intertechSm, intertechSa, azepdu, geistV5, raritanDominionPduMib1, sentry4, sentry3, or ipoman. |
| snmpVersion | string This field is required when deviceType is snmp_switch. The SNMP version for PDUs is detected automatically. |
| snmpAuthAlgo | string Must be one of |
| snmpAuthLevel | string Must be one of |
| snmpCryptoAlgo | string Must be one of |
| snmpCryptoPassword | string The SNMP v3 crypto password. Only used if SNMP v3 is used. |
| enableAdvancedManagement | boolean |
| managementVendor | string |
| managementPort | integer Must be between 0 and 65535. |
| managementUser | string |
| managementPassword | string |
| agentId required | integer The specificated agent will handle the connection. |
| features | Array of strings Some devices have additional features available. |
| meta | object Some devices support additional meta flags. |
{- "deviceType": "snmp_switch",
- "name": "nisi",
- "host": "switch01.domain.com",
- "port": null,
- "username": null,
- "password": null,
- "snmpCommunity": "et",
- "snmpVersion": "2c",
- "snmpAuthAlgo": null,
- "snmpAuthLevel": null,
- "snmpCryptoAlgo": null,
- "snmpCryptoPassword": null,
- "enableAdvancedManagement": false,
- "managementVendor": "tempora",
- "managementPort": 50454,
- "managementUser": "modi",
- "managementPassword": "ratione",
- "agentId": 1,
- "features": [
- "bw_collection"
], - "meta": {
- "flip_in_out": "true"
}
}| id required | integer Example: 2 The ID of the network device. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 3,
- "name": "EdgeSwitch WZ",
- "host": "192.168.188.215",
- "deviceType": "snmp_switch",
- "snmpCommunity": "secret",
- "snmpVersion": "2c",
- "agentId": 1,
- "features": [
- "bw_collection"
], - "meta": {
- "cachePorts": true
}, - "username": "",
- "password": "",
- "port": null,
- "statusCache": [ ],
- "snmpAuthAlgo": null,
- "snmpAuthLevel": null,
- "snmpCryptoAlgo": null,
- "snmpCryptoPassword": "",
- "enableAdvancedManagement": null,
- "managementVendor": null,
- "managementPort": null,
- "managementUser": "",
- "managementPassword": "",
- "ports": [
- {
- "id": 1,
- "name": "GigabitEthernet1",
- "assignments": [ ]
}, - {
- "id": 1007,
- "name": "LAG8",
- "assignments": [ ]
}
], - "rootType": "snmp_switch",
- "extendedDetailsAvailable": true
}, - "message": "success"
}| id required | integer Example: 2 The ID of the network device. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| deviceType | string Must be one of snmp_switch, telejetDigiOne, apc, apcCpdu, racktivityEnergySwitch, racktivityPowerManager, cyberpowerAts, cyberpowerEpdu2, dellrPdu, raritanDominionPduMib1, sentry4, sentry3, enlogicv1, intertechSw, intertechSm, intertechSa, azepdu, geistV5, raritanDominionSX, raritanDominionKXII, raritanDominionKXIII, or ipoman. |
| name | string |
| host | string The hostname or IP of the device. |
| port | integer This field is required when deviceType is telejetDigiOne. Must be between 1 and 65535. |
| username | string This field is required when deviceType is telejetDigiOne. |
| password | string Optional field. Currently only available for telejet. |
| snmpCommunity | string This field is required when deviceType is snmp_switch, apc, apcCpdu, racktivityEnergySwitch, racktivityPowerManager, cyberpowerAts, cyberpowerEpdu2, dellrPdu, enlogicv1, intertechSw, intertechSm, intertechSa, azepdu, geistV5, raritanDominionPduMib1, sentry4, sentry3, or ipoman. |
| snmpAuthAlgo | string Must be one of |
| snmpAuthLevel | string Must be one of |
| snmpCryptoAlgo | string Must be one of |
| snmpCryptoPassword | string The SNMP v3 crypto password. Only used if SNMP v3 is used. |
| snmpVersion | string This field is required when deviceType is snmp_switch. The SNMP version for PDUs is detected automatically. |
| enableAdvancedManagement | boolean |
| managementVendor | string |
| managementPort | integer Must be between 0 and 65535. |
| managementUser | string |
| managementPassword | string |
| agentId | integer The specificated agent will handle the connection. |
| features | Array of strings Some devices have additional features available. |
| meta | object Some devices support additional meta flags. |
{- "deviceType": "snmp_switch",
- "name": "eos",
- "host": "switch01.domain.com",
- "port": null,
- "username": null,
- "password": null,
- "snmpCommunity": "laborum",
- "snmpAuthAlgo": null,
- "snmpAuthLevel": null,
- "snmpCryptoAlgo": null,
- "snmpCryptoPassword": null,
- "snmpVersion": "2c",
- "enableAdvancedManagement": true,
- "managementVendor": "eveniet",
- "managementPort": 31852,
- "managementUser": "repellendus",
- "managementPassword": "velit",
- "agentId": 1,
- "features": [
- "bw_collection"
], - "meta": {
- "flip_in_out": "true"
}
}| networkDevice required | integer Examples:
Optional parameter. The ID of the network device. |
| networkDeviceAction required | string Examples:
Optional parameter. The action to execute. Use |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "clearCache": {
- "requestBody": [ ]
}, - "getFeatures": {
- "requestBody": [ ]
}, - "getStatistics": {
- "requestBody": {
- "portIds": {
- "type": "array",
- "required": false,
- "example": [
- "1",
- "2",
- "3"
]
}, - "mode": {
- "type": "string",
- "required": false,
- "example": "text or graph"
}, - "groupBy": {
- "type": "string",
- "required": false,
- "example": "1d"
}, - "from": {
- "type": "datetime",
- "required": false,
- "example": "2024-08-02 09:12:27"
}, - "to": {
- "type": "datetime",
- "required": false,
- "example": "2024-09-02 09:12:27"
}
}
}, - "setPortEnabled": {
- "requestBody": {
- "portId": {
- "type": "string",
- "required": true,
- "example": "ge-0/0/1"
}
}
}, - "setPortDisabled": {
- "requestBody": {
- "portId": {
- "type": "string",
- "required": true,
- "example": "ge-0/0/1"
}
}
}, - "setInterfaceDescription": {
- "requestBody": {
- "portId": {
- "type": "string",
- "required": true,
- "example": "ge-0/0/1"
}, - "description": {
- "type": "string",
- "required": true,
- "example": "Uplink to core switch"
}
}
}, - "deleteVlanFromInterface": {
- "requestBody": {
- "portId": {
- "type": "string",
- "required": true,
- "example": "ge-0/0/1"
}, - "vlanId": {
- "type": "integer",
- "required": true,
- "example": 100
}
}
}, - "updateInterface": {
- "requestBody": {
- "portId": {
- "type": "string",
- "required": true,
- "example": "ge-0/0/1"
}, - "portAdminStatus": {
- "type": "string",
- "required": false,
- "example": "enabled"
}, - "trunkNativeVlan": {
- "type": "string",
- "required": false,
- "example": "0"
}, - "trunkVlans": {
- "type": "array",
- "required": false,
- "example": [
- 10,
- 20,
- 30
]
}, - "accessVlan": {
- "type": "string",
- "required": false,
- "example": "0"
}, - "description": {
- "type": "string",
- "required": false,
- "example": "Uplink to core switch"
}
}
}, - "updateVlan": {
- "requestBody": {
- "id": {
- "type": "string|integer",
- "required": true,
- "example": "30"
}, - "name": {
- "type": "string",
- "required": false,
- "example": "vlan30"
}, - "l3Ips": {
- "type": "array",
- "required": false,
- "example": [
- "10.10.10.1/24",
- "10.10.11.1/24"
]
}
}
}, - "createVlan": {
- "requestBody": {
- "id": {
- "type": "string|integer",
- "required": true,
- "example": "30"
}, - "name": {
- "type": "string",
- "required": true,
- "example": "vlan30"
}, - "l3Ips": {
- "type": "array",
- "required": false,
- "example": [
- "10.10.10.1/24",
- "10.10.11.1/24"
]
}
}
}, - "getActionLogs": {
- "requestBody": [ ]
}
}, - "message": "success"
}| networkDevice required | string Example: assumenda The networkDevice. |
| id required | integer Example: 2 The ID of the network device. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 2,
- "created_at": "2024-09-01T22:11:49.000000Z",
- "updated_at": "2024-09-01T22:11:49.000000Z",
- "name": "USG 3G",
- "host": "192.168.188.1",
- "deviceType": "snmp_switch",
- "snmpCommunity": "secret",
- "snmpVersion": "2c",
- "agentId": 1,
- "features": [
- "bw_collection"
], - "meta": {
- "cachePorts": true
}, - "username": "",
- "password": "",
- "port": null,
- "statusCache": {
- "content": {
- "success": 1,
- "result": "EdgeOS v4.4.57.5578372.230112.0823"
}, - "time": 1725264053
}, - "snmpAuthAlgo": null,
- "snmpAuthLevel": null,
- "snmpCryptoAlgo": null,
- "snmpCryptoPassword": "",
- "enableAdvancedManagement": null,
- "managementVendor": null,
- "managementPort": null,
- "managementUser": "",
- "managementPassword": "",
- "ports": [
- {
- "id": 1,
- "name": "lo",
- "assignments": [ ]
}, - {
- "id": 2,
- "name": "eth0",
- "assignments": [
- {
- "type": "server",
- "relId": 2,
- "connectionId": 25
}, - {
- "type": "server",
- "relId": 61,
- "connectionId": 26
}
]
}
], - "extendedDetails": {
- "ports": [
- {
- "name": "lo",
- "portOperStatus": "1",
- "portAdminStatus": "1",
- "description": "lo",
- "alias": "lo",
- "linkSpeed": "10",
- "ifType": "24",
- "id": 1,
- "assignments": [ ]
}, - {
- "name": "eth0",
- "portOperStatus": "1",
- "portAdminStatus": "1",
- "description": "eth0",
- "alias": "WAN",
- "linkSpeed": "1000",
- "ifType": "6",
- "id": 2,
- "assignments": [
- {
- "type": "server",
- "relId": 2,
- "connectionId": 25
}, - {
- "type": "server",
- "relId": 61,
- "connectionId": 26
}
]
}
], - "advancedManagementAvailable": 0
}, - "rootType": "snmp_switch",
- "extendedDetailsAvailable": true
}, - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "app_version": "1.0.36",
- "updateAvailable": 0,
- "updateVersion": "1.0.36"
}, - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- "Africa/Abidjan",
- "Africa/Accra",
- "..."
], - "message": "success"
}This endpoint provides a simple and resource-efficient way to check if the API is reachable.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": "pong",
- "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "format": "DD.MM.YYYY HH:mm:ss",
- "example": "25.08.2025 15:29:17"
}, - {
- "format": "DD/MM/YYYY HH:mm:ss",
- "example": "25/08/2025 15:29:17"
}, - {
- "format": "DD-MM-YYYY HH:mm:ss",
- "example": "25-08-2025 15:29:17"
}, - {
- "format": "MM.DD.YYYY HH:mm:ss",
- "example": "08.25.2025 15:29:17"
}, - {
- "format": "MM/DD/YYYY HH:mm:ss",
- "example": "08/25/2025 15:29:17"
}, - {
- "format": "MM-DD-YYYY HH:mm:ss",
- "example": "08-25-2025 15:29:17"
}, - {
- "format": "YYYY.MM.DD HH:mm:ss",
- "example": "2025.08.25 15:29:17"
}, - {
- "format": "YYYY/MM/DD HH:mm:ss",
- "example": "2025/08/25 15:29:17"
}, - {
- "format": "YYYY-MM-DD HH:mm:ss",
- "example": "2025-08-25 15:29:17"
}
], - "message": "success"
}This endpoint is queried by the browser after logging in into the Tenantos web interface. The response contains various settings for the user interface, such as which checkboxes should be activated by default.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "precheck_addserver_redirect_to_server": "off",
- "show_server_id_on_server_detail_page": "off",
- "precheck_adduser_redirect_to_user": "off",
- "precheck_deleteserver_delete_vm_on_node": "off",
- "server_console_show_dialog": "on",
- "ui_connection_assignments_dont_show_already_assigned_items": "off",
- "precheck_networkgraph_show_summary": "off",
- "networkgraphs_show_total_p95th_line": "off",
- "password_hide_ipmipass": "show",
- "ui_users_allow_power_actions_during_pxe_boot": "off",
- "ui_admins_allow_power_actions_during_pxe_boot": "off",
- "suspension_default_network_action": "off",
- "suspension_default_power_action": "off",
- "suspension_affect_all_network_ports": "off",
- "suspension_actions_in_background": "off",
- "ui_pxemanager_hide_disabled_pxeprofiles": "off",
- "ui_pxemanager_hide_disabled_disklayouts": "off",
- "ui_pxemanager_hide_disabled_scripts": "off",
- "ui_password_hide_passwords_generally_by_default": "off"
}, - "message": "success"
}This endpoint is queried by the browser before and after logging into the Tenantos interface. The response contains the language files and may differ depending on the brand/domain.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "en-us": {
- "common_table_nodata_reload": "No data available. Reload?",
- "common_table_placeholder_search": "Search...",
- "...": "..."
}
}, - "message": "success"
}This endpoint is queried by the browser before logging into the Tenantos interface. The response contains various settings for the user interface, such as the color scheme and various texts. The response may differ depending on the brand/domain.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "top_navbar_header_title": "Tenantos",
- "page_title": "Control",
- "login_page_text": "Server Management",
- "theme_dark": {
- "primary": "#536DFE",
- "...": "..."
}, - "theme_light": {
- "primary": "#0C47A0",
- "...": "..."
}
}, - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "frontend_version": "897701fbf2f63c25509aa6f5d846e00430b3090dda1cb121b1a4f94391691e48"
}, - "message": "success"
}| pxeProfileId required | integer Example: 16 The ID of the PXE profile which should be duplicated. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string |
{- "name": "sit"
}| pxeScriptId required | integer Example: 18 The ID of the PXE script which should be duplicated. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string |
{- "name": "eaque"
}| pxeDisklayoutId required | integer Example: 9 The ID of the PXE script which should be duplicated. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string |
{- "name": "est"
}Normally the available profiles are queried via the api/servers/{server}/provisioning/getProfiles endpoint, but there are situations where all available profiles need to be queried (e.g. for billing integrations).
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| type required | string Must be one of |
{- "type": "pxe"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 2,
- "tags": [
- "preseed",
- "kickstart"
], - "disklayout": "",
- "name": "Auto RAID",
- "isDisabled": 0,
- "isStockTemplate": 1,
- "internal_key": "auto_raid",
- "isAutoRaid": 1,
- "min_disks": null,
- "offer_if_has_tag": [ ],
- "dont_offer_if_has_tag": [ ],
- "offer_if_user_has_role": [ ],
- "dont_offer_if_user_has_role": [ ],
- "allow_for_vps": 1,
- "allow_for_dedicated": 1
}, - {
- "id": 4,
- "tags": [
- "kickstart",
- "preseed"
], - "disklayout": "",
- "name": "RAID 1",
- "isDisabled": 0,
- "isStockTemplate": 1,
- "internal_key": "auto_raid_1",
- "isAutoRaid": 1,
- "min_disks": 2,
- "offer_if_has_tag": [ ],
- "dont_offer_if_has_tag": [ ],
- "offer_if_user_has_role": [ ],
- "dont_offer_if_user_has_role": [ ],
- "allow_for_vps": 1,
- "allow_for_dedicated": 1
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| tags required | Array of strings Must have at least 1 item. The disk layout is linked to the operating systems via tags. |
| disklayout | string The kickstart or preseed configuration. |
| name required | string |
| min_disks | integer The profile will only be offered if the server has the specificated minimum amount of disks. Leave empty to always offer. |
| isDisabled | boolean |
| offer_if_has_tag | Array of strings |
| dont_offer_if_has_tag | Array of strings |
| offer_if_user_has_role | Array of strings |
| dont_offer_if_user_has_role | Array of strings |
| allow_for_vps | boolean |
| allow_for_dedicated | boolean |
| hw_raid_handling | string Must be one of |
{- "tags": [
- "kickstart"
], - "disklayout": "autopart --type=lvm",
- "name": "accusamus",
- "min_disks": 3,
- "isDisabled": true,
- "offer_if_has_tag": [
- "rerum"
], - "dont_offer_if_has_tag": [
- "odit"
], - "offer_if_user_has_role": [
- null
], - "dont_offer_if_user_has_role": [
- null
], - "allow_for_vps": true,
- "allow_for_dedicated": false,
- "hw_raid_handling": "dont_offer_if_hw_raid"
}| id required | integer Example: 2 The ID of the disk layout. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 2,
- "tags": [
- "preseed",
- "kickstart"
], - "disklayout": "",
- "name": "Auto RAID",
- "isDisabled": 0,
- "isStockTemplate": 1,
- "internal_key": "auto_raid",
- "isAutoRaid": 1,
- "min_disks": null,
- "offer_if_has_tag": [ ],
- "dont_offer_if_has_tag": [ ],
- "offer_if_user_has_role": [ ],
- "dont_offer_if_user_has_role": [ ],
- "allow_for_vps": 1,
- "allow_for_dedicated": 1
}, - "message": "success"
}| id required | integer Example: 2 The ID of the disk layout. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| tags | Array of strings The disk layout is linked to the operating systems via tags. |
| disklayout | string The kickstart or preseed configuration. |
| name | string |
| min_disks | integer The profile will only be offered if the server has the specificated minimum amount of disks. Leave empty to always offer. |
| isDisabled | boolean |
| offer_if_has_tag | Array of strings |
| dont_offer_if_has_tag | Array of strings |
| offer_if_user_has_role | Array of strings |
| dont_offer_if_user_has_role | Array of strings |
| partition_size_boot | integer Must be at least 100. |
| partition_size_efi | integer Must be at least 100. |
| allow_for_vps | boolean |
| allow_for_dedicated | boolean |
| hw_raid_handling | string Must be one of |
{- "tags": [
- "kickstart"
], - "disklayout": "autopart --type=lvm",
- "name": "adipisci",
- "min_disks": 3,
- "isDisabled": true,
- "offer_if_has_tag": [
- "alias"
], - "dont_offer_if_has_tag": [
- "et"
], - "offer_if_user_has_role": [
- null
], - "dont_offer_if_user_has_role": [
- null
], - "partition_size_boot": 13,
- "partition_size_efi": 94,
- "allow_for_vps": true,
- "allow_for_dedicated": false,
- "hw_raid_handling": "always_offer"
}Deletes all cached OS data from all remote agents for this profile. Tenantos caches the files necessary for the installation of the respective operating system.
Windows operating system installation files cannot be deleted because Windows is imported from an ISO and not downloaded from a remote server.
| pxeProfileId required | integer Example: 1 The ID of the PXE profile. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": "ok",
- "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 2,
- "tags": [
- "kickstart",
- "centos"
], - "osName": "CentOS 8",
- "pxeConfig": "...",
- "pxeType": "kickstart",
- "networkConfigMode": null,
- "defaultDiskLayout": "...",
- "customPostScript": "",
- "customFirstBoot": "",
- "packages": "...",
- "language": "en_US",
- "autoInstallTemplate": "...",
- "timezone": "Etc/UTC",
- "mirrorUrl": "...",
- "cacheDirectory": "centos8",
- "httpdirectory": "",
- "version": null,
- "isStockTemplate": 1,
- "isDisabled": 0,
- "allow_ssh_keys": 1,
- "default_disklayout_template": 2,
- "enforced_default_disklayout_template": 0,
- "default_run_scripts": [
- 1
], - "enforced_default_run_scripts": 1,
- "default_run_scripts_hide_others": 0,
- "allow_set_hostname": 1,
- "set_root_password": 1,
- "mark_installation_completed_event": "firstBootAfterScriptExecution",
- "pxe_file_caching_policy": "smartCaching",
- "configure_all_ipvfour_ask_user": null,
- "configure_all_ipvfour_enforce": 1,
- "configure_ipvfour_even_if_outside_of_gateway": 1,
- "configure_all_ipvsix_ask_user": null,
- "configure_all_ipvsix_enforce": 1,
- "offer_if_has_tag": [ ],
- "dont_offer_if_has_tag": [ ],
- "offer_if_user_has_role": [ ],
- "dont_offer_if_user_has_role": [ ],
- "windows_activation_key": null,
- "windows_use_empty_activation_key": null,
- "windows_key_location_userdata": null,
- "windows_key_location_specialize": null,
- "windows_skip_oobe": null,
- "windows_bypass_system_requirements_check": null,
- "allow_for_vps": 1,
- "allow_for_dedicated": 1,
- "fallback_to_default_disklayout_if_unset": 1,
- "pxe_enable_comboot": null,
- "licensekey": null,
- "additionalDriversUrl": null,
- "disklayouts": [
- {
- "id": 2,
- "name": "Auto RAID"
}
], - "scripts": [
- {
- "id": 1,
- "name": "System Upgrade"
}
], - "isRescue": 0
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| tags required | Array of strings |
| osName required | string |
| pxeType required | string Must be one of |
| pxeConfig required | string The iPXE boot configuration. |
| defaultDiskLayout | string optional The disk layout configuration. |
| packages | string A list of packages which should be installed. |
| language | string |
| autoInstallTemplate | string The answer file for the OS installer. |
| timezone | string |
| mirrorUrl | string The URL to the OS mirror. |
| additionalDriversUrl | string Must be a valid URL. |
| cacheDirectory required | string The OS files will be stored in this directory. |
| networkConfigMode | string Must be a valid network mode. |
| httpdirectory | string |
| version | string The version of the operating system. Only required for Ubuntu / Windows. |
| customFirstBoot | string Script will be executed on first operating system boot. |
| customPostScript | string Script will be executed on after the installation has been completed, but within the installer environment. |
| isDisabled | boolean |
| allow_ssh_keys | boolean |
| allow_set_hostname | boolean |
| allow_for_vps | boolean |
| allow_for_dedicated | boolean |
| set_root_password | boolean |
| updateServerHardwareInventory | boolean |
| mark_installation_completed_event | string Must be one of |
| default_disklayout_template | integer |
| fallback_to_default_disklayout_if_unset | boolean |
| enforced_default_disklayout_template | boolean |
| default_run_scripts | Array of strings |
| enforced_default_run_scripts | boolean |
| default_run_scripts_hide_others | boolean |
| configure_all_ipvfour_ask_user | boolean |
| configure_all_ipvfour_enforce | boolean |
| configure_ipvfour_even_if_outside_of_gateway | boolean |
| configure_all_ipvsix_ask_user | boolean |
| configure_all_ipvsix_enforce | boolean |
| offer_if_has_tag | Array of strings |
| dont_offer_if_has_tag | Array of strings |
| offer_if_user_has_role | Array of strings |
| dont_offer_if_user_has_role | Array of strings |
| windows_activation_key | string |
| windows_use_empty_activation_key | boolean |
| windows_key_location_userdata | boolean |
| windows_key_location_specialize | boolean |
| windows_bypass_system_requirements_check | boolean |
| windows_skip_oobe | boolean |
| pxe_enable_comboot | boolean |
| ipxe_bios_file | string |
| ipxe_efi_file | string |
| licensekey | string |
| keep_dhcp_minutes | integer Must be at least 1. Must not be greater than 6000. |
| pxe_file_caching_policy | string Must be one of |
{- "tags": [
- "kickstart "
], - "osName": "nobis",
- "pxeType": "kickstart",
- "pxeConfig": "#!ipxe",
- "defaultDiskLayout": "autopart --type=lvm",
- "packages": "kexec-tools",
- "language": "sequi",
- "autoInstallTemplate": "network --bootproto=static",
- "timezone": "sed",
- "cacheDirectory": "centos8",
- "networkConfigMode": "default",
- "httpdirectory": "vel",
- "version": "voluptate",
- "customFirstBoot": "touch /root/123",
- "customPostScript": "touch /root/123",
- "isDisabled": true,
- "allow_ssh_keys": true,
- "allow_set_hostname": true,
- "allow_for_vps": true,
- "allow_for_dedicated": false,
- "set_root_password": true,
- "updateServerHardwareInventory": false,
- "mark_installation_completed_event": "firstBootAfterScriptExecution",
- "default_disklayout_template": 4,
- "fallback_to_default_disklayout_if_unset": false,
- "enforced_default_disklayout_template": false,
- "default_run_scripts": [
- "nulla"
], - "enforced_default_run_scripts": true,
- "default_run_scripts_hide_others": false,
- "configure_all_ipvfour_ask_user": false,
- "configure_all_ipvfour_enforce": true,
- "configure_ipvfour_even_if_outside_of_gateway": true,
- "configure_all_ipvsix_ask_user": true,
- "configure_all_ipvsix_enforce": false,
- "offer_if_has_tag": [
- "aut"
], - "dont_offer_if_has_tag": [
- "ex"
], - "offer_if_user_has_role": [
- null
], - "dont_offer_if_user_has_role": [
- null
], - "windows_activation_key": "ipsam",
- "windows_use_empty_activation_key": false,
- "windows_key_location_userdata": false,
- "windows_key_location_specialize": false,
- "windows_bypass_system_requirements_check": true,
- "windows_skip_oobe": true,
- "pxe_enable_comboot": true,
- "ipxe_bios_file": "facere",
- "ipxe_efi_file": "atque",
- "licensekey": "voluptatem",
- "keep_dhcp_minutes": 4340,
- "pxe_file_caching_policy": "keepAsLongAsPossible"
}| id required | integer Example: 2 The ID of the PXE profile. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 2,
- "tags": [
- "kickstart",
- "centos"
], - "osName": "CentOS 8",
- "pxeConfig": "...",
- "pxeType": "kickstart",
- "networkConfigMode": null,
- "defaultDiskLayout": "...",
- "customPostScript": "",
- "customFirstBoot": "",
- "packages": "...",
- "language": "en_US",
- "autoInstallTemplate": "...",
- "timezone": "Etc/UTC",
- "mirrorUrl": "...",
- "cacheDirectory": "centos8",
- "httpdirectory": "",
- "version": null,
- "isStockTemplate": 1,
- "isDisabled": 0,
- "allow_ssh_keys": 1,
- "default_disklayout_template": 2,
- "enforced_default_disklayout_template": 0,
- "default_run_scripts": [
- 1
], - "enforced_default_run_scripts": 1,
- "default_run_scripts_hide_others": 0,
- "allow_set_hostname": 1,
- "set_root_password": 1,
- "mark_installation_completed_event": "firstBootAfterScriptExecution",
- "pxe_file_caching_policy": "smartCaching",
- "configure_all_ipvfour_ask_user": null,
- "configure_all_ipvfour_enforce": 1,
- "configure_ipvfour_even_if_outside_of_gateway": null,
- "configure_all_ipvsix_ask_user": null,
- "configure_all_ipvsix_enforce": 1,
- "offer_if_has_tag": [ ],
- "dont_offer_if_has_tag": [ ],
- "offer_if_user_has_role": [ ],
- "dont_offer_if_user_has_role": [ ],
- "windows_activation_key": null,
- "windows_use_empty_activation_key": null,
- "windows_key_location_userdata": null,
- "windows_key_location_specialize": null,
- "windows_skip_oobe": null,
- "windows_bypass_system_requirements_check": null,
- "allow_for_vps": 1,
- "allow_for_dedicated": 1,
- "fallback_to_default_disklayout_if_unset": 1,
- "pxe_enable_comboot": null,
- "licensekey": null,
- "additionalDriversUrl": null,
- "disklayouts": [
- {
- "id": 2,
- "name": "Auto RAID"
}
], - "scripts": [
- {
- "id": 1,
- "name": "System Upgrade"
}
], - "isRescue": 0
}, - "message": "success"
}| id required | integer Example: 2 The ID of the PXE profile. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| tags | Array of strings |
| osName | string |
| pxeType required | string Must be one of |
| pxeConfig | string The iPXE boot configuration. |
| defaultDiskLayout | string optional The disk layout configuration. |
| packages | string A list of packages which should be installed. |
| language | string |
| autoInstallTemplate | string The answer file for the OS installer. |
| timezone | string |
| mirrorUrl | string The URL to the OS mirror. |
| additionalDriversUrl | string Must be a valid URL. |
| cacheDirectory | string The OS files will be stored in this directory. |
| networkConfigMode | string |
| httpdirectory | string |
| version | string The version of the operating system. Only required for Ubuntu / Windows. |
| customFirstBoot | string Script will be executed on first operating system boot. |
| customPostScript | string Script will be executed on after the installation has been completed, but within the installer environment. |
| isDisabled | boolean |
| allow_ssh_keys | boolean |
| allow_for_vps | boolean |
| allow_for_dedicated | boolean |
| allow_set_hostname | boolean |
| set_root_password | boolean |
| updateServerHardwareInventory | boolean |
| mark_installation_completed_event | string Must be one of |
| default_disklayout_template | integer |
| fallback_to_default_disklayout_if_unset | boolean |
| enforced_default_disklayout_template | boolean |
| default_run_scripts | Array of strings |
| enforced_default_run_scripts | boolean |
| default_run_scripts_hide_others | boolean |
| configure_all_ipvfour_ask_user | boolean |
| configure_all_ipvfour_enforce | boolean |
| configure_ipvfour_even_if_outside_of_gateway | boolean |
| configure_all_ipvsix_ask_user | boolean |
| configure_all_ipvsix_enforce | boolean |
| offer_if_has_tag | Array of strings |
| dont_offer_if_has_tag | Array of strings |
| offer_if_user_has_role | Array of strings |
| dont_offer_if_user_has_role | Array of strings |
| windows_activation_key | string |
| windows_use_empty_activation_key | boolean |
| windows_key_location_userdata | boolean |
| windows_key_location_specialize | boolean |
| windows_bypass_system_requirements_check | boolean |
| windows_skip_oobe | boolean |
| pxe_enable_comboot | boolean |
| ipxe_bios_file | string |
| ipxe_efi_file | string |
| licensekey | string |
| keep_dhcp_minutes | integer Must be at least 1. Must not be greater than 6000. |
| pxe_file_caching_policy | string Must be one of |
{- "tags": [
- "kickstart "
], - "osName": "rerum",
- "pxeType": "kickstart",
- "pxeConfig": "#!ipxe",
- "defaultDiskLayout": "autopart --type=lvm",
- "packages": "kexec-tools",
- "language": "iste",
- "autoInstallTemplate": "network --bootproto=static",
- "timezone": "sint",
- "cacheDirectory": "centos8",
- "networkConfigMode": "ex",
- "httpdirectory": "at",
- "version": "atque",
- "customFirstBoot": "touch /root/123",
- "customPostScript": "touch /root/123",
- "isDisabled": false,
- "allow_ssh_keys": true,
- "allow_for_vps": true,
- "allow_for_dedicated": true,
- "allow_set_hostname": true,
- "set_root_password": true,
- "updateServerHardwareInventory": false,
- "mark_installation_completed_event": "firstBootBeforeScriptExecution",
- "default_disklayout_template": 4,
- "fallback_to_default_disklayout_if_unset": true,
- "enforced_default_disklayout_template": false,
- "default_run_scripts": [
- "quo"
], - "enforced_default_run_scripts": true,
- "default_run_scripts_hide_others": true,
- "configure_all_ipvfour_ask_user": true,
- "configure_all_ipvfour_enforce": true,
- "configure_ipvfour_even_if_outside_of_gateway": false,
- "configure_all_ipvsix_ask_user": true,
- "configure_all_ipvsix_enforce": false,
- "offer_if_has_tag": [
- "voluptatem"
], - "dont_offer_if_has_tag": [
- "modi"
], - "offer_if_user_has_role": [
- null
], - "dont_offer_if_user_has_role": [
- null
], - "windows_activation_key": "omnis",
- "windows_use_empty_activation_key": true,
- "windows_key_location_userdata": false,
- "windows_key_location_specialize": false,
- "windows_bypass_system_requirements_check": true,
- "windows_skip_oobe": true,
- "pxe_enable_comboot": false,
- "ipxe_bios_file": "error",
- "ipxe_efi_file": "rerum",
- "licensekey": "labore",
- "keep_dhcp_minutes": 1174,
- "pxe_file_caching_policy": "dailyCleanup"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "tags": [
- "kickstart",
- "preseed",
- "openvz 7"
], - "script": "...",
- "name": "System Upgrade",
- "isDisabled": 0,
- "isStockTemplate": 1,
- "offer_if_has_tag": [ ],
- "dont_offer_if_has_tag": [ ],
- "offer_if_user_has_role": [ ],
- "dont_offer_if_user_has_role": [ ],
- "allow_for_vps": 1,
- "allow_for_dedicated": 1
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| tags required | Array of strings The script is linked to the operating systems via tags. |
| script required | string Script will be executed on after the installation has been completed. |
| name required | string |
| isDisabled | boolean |
| offer_if_has_tag | Array of strings |
| dont_offer_if_has_tag | Array of strings |
| offer_if_user_has_role | Array of strings |
| dont_offer_if_user_has_role | Array of strings |
| allow_for_vps | boolean |
| allow_for_dedicated | boolean |
{- "tags": [
- "kickstart"
], - "script": "touch /root/123",
- "name": "quo",
- "isDisabled": true,
- "offer_if_has_tag": [
- "adipisci"
], - "dont_offer_if_has_tag": [
- "sit"
], - "offer_if_user_has_role": [
- null
], - "dont_offer_if_user_has_role": [
- null
], - "allow_for_vps": false,
- "allow_for_dedicated": false
}| id required | integer Example: 1 The ID of the PXE script. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| tags | Array of strings The script is linked to the operating systems via tags. |
| script | string Script will be executed on after the installation has been completed. |
| name | string |
| isDisabled | boolean |
| offer_if_has_tag | Array of strings |
| dont_offer_if_has_tag | Array of strings |
| offer_if_user_has_role | Array of strings |
| dont_offer_if_user_has_role | Array of strings |
| allow_for_vps | boolean |
| allow_for_dedicated | boolean |
{- "tags": [
- "kickstart"
], - "script": "touch /root/123",
- "name": "eaque",
- "isDisabled": true,
- "offer_if_has_tag": [
- "expedita"
], - "dont_offer_if_has_tag": [
- "necessitatibus"
], - "offer_if_user_has_role": [
- null
], - "dont_offer_if_user_has_role": [
- null
], - "allow_for_vps": true,
- "allow_for_dedicated": true
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| editions required | Array of strings The specificated editions will be imported. |
| cacheDirectory required | string The Windows files will be placed in the specificated directory, regex: |
| language required | string The language which should be imported. |
| mode required | string Must be one of |
{- "editions": [
- "Windows Server 2022 SERVERSTANDARD"
], - "cacheDirectory": "win2k22",
- "language": "en-us",
- "mode": "iso"
}Lists all available Windows versions of the ISO.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| mode required | string Must be one of |
{- "mode": "iso"
}{- "result": {
- "data": [
- {
- "build": "Windows Server 2022 SERVERSTANDARDCORE",
- "name": "Windows Server 2022 Standard Evaluation",
- "languages": [
- "en-us"
], - "size": "4810.42 MB"
}
]
}, - "message": "success"
}Tests if the connection between the Tenantos main server and the remote agent does work.
| agentId required | integer Example: 1 The ID of the agent. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| useCache | boolean The last status is cached for at least 15 minutes. Submit true to receive the cached status (for faster response). |
{- "useCache": true
}| agentId required | integer Example: 1 The ID of the agent. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "deviceId": 1,
- "name": "USG 3G",
- "rootType": "Network Device",
- "assignmentType": "snmp_switch",
- "features": [
- "bw_collection"
]
}, - {
- "deviceId": 1,
- "name": "server-001",
- "rootType": "Server",
- "assignmentType": "ipmi",
- "features": [
- "power_management"
]
}, - {
- "deviceId": 1,
- "name": "server-001",
- "rootType": "Server",
- "assignmentType": "pxe",
- "features": [
- "installation"
]
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string |
| downloadUrl required | string The URL to the ISO file. |
{- "name": "cum",
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "name": "Local Agent",
- "ip": "10.99.1.5",
- "hostname": "local-agent.domain.com",
- "sshport": 22,
- "installStatus": 1
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string |
| hostname required | string |
| password required | string |
| sshport required | integer |
| ip required | string |
{- "name": "non",
- "hostname": "cum",
- "password": "inventore",
- "sshport": 10,
- "ip": "in"
}| id required | integer Example: 1 The ID of the agent. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "name": "Local Agent",
- "ip": "10.99.1.5",
- "hostname": "local-agent.domain.com",
- "sshport": 22,
- "installStatus": 1
}, - "message": "success"
}| id required | integer Example: 1 The ID of the agent. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name | string |
| hostname | string |
| sshport | integer |
| ip | string |
{- "name": "saepe",
- "hostname": "consequatur",
- "sshport": 6,
- "ip": null
}Documentation: https://documentation.tenantos.com/Tenantos/remote-agents/manage-remote-agents/#redeploying-remote-agents
Reprovisions a remote agent by reinstalling the agent software on the target server. This can be used to install on a new server or reinstall on the same server.
| agentId required | integer Example: 2 The ID of the agent to reprovision. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string The name of the agent. |
| hostname required | string The hostname of the target server. |
| ip required | string The IP address of the target server. |
| sshport required | integer The SSH port of the target server. |
| password | string optional The root password for the target server (required if SSH key is not already installed). |
{- "name": "veritatis",
- "hostname": "quia",
- "ip": "quia",
- "sshport": 11,
- "password": "voluptatem"
}Feature: https://documentation.tenantos.com/Tenantos/ip-manager/rdns-servers/
These API endpoints are, by default, only accessible as admin and are not intended for normal users.
Removes the assigned RDNS server from the subnet.
| subnet required | integer Example: 3 The ID of the subnet. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
Assigns a RDNS server to the subnet.
| subnet required | integer Example: 3 The ID of the subnet. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| serverId required | integer The ID of the RDNS server. |
{- "serverId": 1
}Shows the current assigned RDNS server.
| subnet_id required | integer Example: 1 The ID of the subnet. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{ }The features of this endpoint depends on the RDNS provider. For example, at PowerDNS, it is possible to create a reverse DNS zone using this endpoint.
| provider required | integer Example: 1 The ID of the RDNS provider. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
An alternative way to assign a RDNS server to a subnet. The other way to do it is using the POST api/subnets/{subnet}/rdnsAssignment endpoint.
| provider required | integer Example: 1 The ID of the RDNS server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| subnet required | string Must be a valid subnet (without CIDR). |
{- "subnet": "10.10.10.0"
}Get the RDNS entry. Users can query the RDNS entry via the POST api/servers/{server}/ipassignments/rdns endpoint.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| adminIp required | string Must be a valid IP address. |
{- "adminIp": "8.100.62.132"
}Set the RDNS entry. Users can set the RDNS entry via the PUT api/servers/{server_id}/ipassignments/{id} endpoint.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| ptrRecord | string |
| adminIp required | string Must be a valid IP address. |
| setPtrTemplate | boolean If set to true, the RDNS entry will be set to the default value. Default is false. |
{- "ptrRecord": "aut",
- "adminIp": "52.77.102.18",
- "setPtrTemplate": false
}Delete the RDNS entry. Users can delete the RDNS entry via the PUT api/servers/{server_id}/ipassignments/{id} endpoint.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| adminIp required | string Must be a valid IP address. |
{- "adminIp": "113.11.160.146"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| withStatusCheck | boolean |
{- "withStatusCheck": false
}{- "result": [
- {
- "id": 1,
- "provider": "powerdns",
- "providerName": "PowerDNS",
- "serverName": "ns1.tenantos.com",
- "detailedAssignments": [
- {
- "subnet": "10.10.10.0",
- "id": 1
}
], - "assignments": [
- "10.10.10.0"
], - "configurationFeatures": [
- "createZone",
- "assignSubnets"
], - "data": {
- "serverName": "ns1.tenantos.com",
- "mysql_host": "10.10.10.2",
- "mysql_port": 9000,
- "mysql_username": "root",
- "mysql_password": "iIinhf327jahJHJge",
- "mysql_database": "powerdns",
- "record_ttl": 86400
}
}
], - "message": "success"
}The body differs depending on the RDNS provider. Please add the provider via the interface to find out the required parameters.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| type required | string The RDNS provider. |
| data required | object The access details for the RDNS provider. |
{- "type": "PowerDNS",
- "data": {
- "serverName": "ns1.tenantos.com",
- "mysql_host": "10.10.10.2",
- "mysql_port": 9000,
- "mysql_username": "root",
- "mysql_password": "secret",
- "mysql_database": "powerdns"
}
}| id required | integer Example: 1 The ID of the RDNS provider. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| withStatusCheck | boolean |
{- "withStatusCheck": true
}{- "result": {
- "id": 1,
- "provider": "powerdns",
- "providerName": "PowerDNS",
- "serverName": "ns1.tenantos.com",
- "detailedAssignments": [
- {
- "subnet": "10.10.10.0",
- "id": 1
}
], - "assignments": [
- "10.10.10.0"
], - "configurationFeatures": [
- "createZone",
- "assignSubnets"
], - "data": {
- "serverName": "ns1.tenantos.com",
- "mysql_host": "10.10.10.2",
- "mysql_port": 9000,
- "mysql_username": "root",
- "mysql_password": "iIinhf327jahJHJge",
- "mysql_database": "powerdns",
- "record_ttl": 86400
}, - "status": {
- "success": true
}
}, - "message": "success"
}| id required | integer Example: 1 The ID of the RDNS provider. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| data | Array of strings |
{- "data": [
- "rerum"
]
}| provider required | string Example: voluptatibus The provider. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "name": "admin ",
- "id": 1,
- "isAliasRole": 0,
- "assignedUsers": [
- {
- "userId": 1,
- "fullname": "Carlotta West",
- "username": "adm"
}
], - "notDeleteable": 1,
- "notAssignable": 0,
- "serversIndexDisablePermissionChecks": 0,
- "ownedBy": {
- "userId": 1,
- "fullname": "Carlotta West",
- "username": "adm"
}, - "ownerUserId": 1,
- "type": "user_created",
- "permissions": [ ]
}, - {
- "name": "reseller ",
- "id": 2,
- "isAliasRole": 0,
- "assignedUsers": [
- {
- "userId": 2,
- "fullname": "Alexie Reichel",
- "username": "christiansen.conner2549195"
}
], - "notDeleteable": 0,
- "notAssignable": 0,
- "serversIndexDisablePermissionChecks": 0,
- "ownedBy": {
- "userId": 1,
- "fullname": "Carlotta West",
- "username": "adm"
}, - "ownerUserId": 1,
- "type": "user_created",
- "permissions": [ ]
}, - {
- "name": "user ",
- "id": 3,
- "isAliasRole": 0,
- "assignedUsers": [
- {
- "userId": 3,
- "fullname": "Shanel Mayer",
- "username": "marquis662975871"
}
], - "notDeleteable": 0,
- "notAssignable": 0,
- "serversIndexDisablePermissionChecks": 0,
- "ownedBy": {
- "userId": 1,
- "fullname": "Carlotta West",
- "username": "adm"
}, - "ownerUserId": 1,
- "type": "user_created",
- "permissions": [ ]
}, - {
- "name": "Default Subreseller Template Role For Resellers ",
- "id": 4,
- "isAliasRole": 0,
- "assignedUsers": [ ],
- "notDeleteable": 1,
- "notAssignable": 1,
- "ownedBy": {
- "userId": 1,
- "fullname": "Carlotta West",
- "username": "adm"
}, - "ownerUserId": 1,
- "type": "reseller_template",
- "permissions": [ ]
}, - {
- "name": "Default User Role Template For Resellers ",
- "id": 5,
- "isAliasRole": 0,
- "assignedUsers": [ ],
- "notDeleteable": 1,
- "notAssignable": 1,
- "serversIndexDisablePermissionChecks": 0,
- "ownedBy": {
- "userId": 1,
- "fullname": "Carlotta West",
- "username": "adm"
}, - "ownerUserId": 1,
- "type": "user_template",
- "permissions": [ ]
}
], - "message": "success"
}The available permissions can be requested via the api/permissions endpoint.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string |
| permissionlist | Array of strings Array of single permissions. |
| permissionsets | Array of strings Array of permission groups. |
{- "name": "laborum",
- "permissionlist": [
- "servers.update.param.tags",
- "servers.apiOutput.param.tags"
], - "permissionsets": [
- "Manage Server Description"
]
}| id required | integer Example: 1 The ID of the role. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "name": "admin ",
- "id": 1,
- "isAliasRole": 0,
- "assignedUsers": [
- {
- "userId": 1,
- "fullname": "Carlotta West",
- "username": "adm"
}
], - "notDeleteable": 1,
- "notAssignable": 0,
- "serversIndexDisablePermissionChecks": 0,
- "ownedBy": {
- "userId": 1,
- "fullname": "Carlotta West",
- "username": "adm"
}, - "ownerUserId": 1,
- "type": "user_created",
- "permissions": [
- {
- "id": 1,
- "name": "system.version"
}, - {
- "id": "...",
- "name": "..."
}
]
}, - "message": "success"
}The available permissions can be requested via the api/permissions endpoint.
| id required | integer Example: 1 The ID of the role. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name | string |
| permissionlist | Array of strings Array of single permissions. |
| permissionsets | Array of strings Array of permission groups. |
| serversIndexDisablePermissionChecks | boolean |
{- "name": "inventore",
- "permissionlist": [
- "servers.update.param.tags",
- "servers.apiOutput.param.tags"
], - "permissionsets": [
- "Manage Server Description"
], - "serversIndexDisablePermissionChecks": true
}Returns a list of the available permissions and the group names.
Group names (permissionsets) can be found at the "name" key and the individual permissions (permissionlist) at the apiEndpoint, apiUpdateFields and apiOutput fields.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| userId | integer If specified, the permissions of the user with the given ID will be returned. |
{- "userId": 6
}{- "result": [
- {
- "name": "View System Version",
- "permissions": {
- "apiEndpoint": [
- "system.version"
], - "apiUpdateFields": [ ],
- "apiOutput": [
- "system.apiOutput.param.app_version",
- "system.apiOutput.param.updateAvailable",
- "system.apiOutput.param.updateVersion"
], - "isDangerousAliasUserPermissionSet": false
}, - "permission_level": "admin"
}, - {
- "...": "..."
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| text required | string The search term. |
{- "text": "server-001"
}{- "result": [
- {
- "id": 61,
- "match": "server-001",
- "matchedFields": [
- "Servername"
], - "desc": "hostname.com",
- "path": "/servers/61",
- "group": "Servers",
- "uuid": "servers-635bced823ff5"
}
], - "message": "success"
}| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 2,
- "name": "ADMIN",
- "callin": true,
- "linkAuth": true,
- "ipmiMsg": true,
- "privilegeName": "ADMINISTRATOR",
- "privilegeId": 4
}, - {
- "id": 3,
- "name": "tos_61_8",
- "callin": false,
- "linkAuth": false,
- "ipmiMsg": true,
- "privilegeName": "OPERATOR",
- "privilegeId": 3
}
], - "message": "success"
}| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| username required | string |
| channelAccessSettings | string The channel access settings for the user. |
| dontFailIfUserExists | boolean |
{- "username": "qui",
- "channelAccessSettings": "ipmi=off callin=off link=off privilege=3",
- "dontFailIfUserExists": false
}This is the recommended API endpoint to create IPMI users.
This endpoints automatically handles edge cases which you would have to handle manually if you use the createUser/setUserPassword/setUserPrivilege/enableUser endpoints.
Using this endpoint, it is also possible to update an existing IPMI user: Set dontFailIfUserExists to true and use the listUsers endpoint if you need to know if the user already exists.
To update an IPMI user, you can also use the updateUser endpoint.
| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| username required | string |
| password required | string |
| privilege required | integer The privilege level of the IPMI user. |
| channelAccessSettings | string The channel access settings for the user. |
| dontFailIfUserExists | boolean |
| dontFailIfPasswordChangeFailed | boolean Only takes effect if |
| dontChangePasswordIfUserExists | boolean |
{- "username": "alias",
- "password": "aspernatur",
- "privilege": 3,
- "channelAccessSettings": "ipmi=off callin=off link=off privilege=3",
- "dontFailIfUserExists": false,
- "dontFailIfPasswordChangeFailed": false,
- "dontChangePasswordIfUserExists": true
}| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| slot required | integer The IPMI slot ID of the user (see |
| username | string |
| password | string |
| privilege required | integer The privilege level of the IPMI user. |
| channelAccessSettings | string The channel access settings for the user. |
{- "slot": 1,
- "username": "libero",
- "password": "voluptatem",
- "privilege": 3,
- "channelAccessSettings": "ipmi=off callin=off link=off privilege=3"
}| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| slot | integer The IPMI slot ID of the user (see |
| username | string This field is required when |
{- "slot": 1,
- "username": "ut"
}| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| slot | integer The IPMI slot ID of the user (see |
| username | string This field is required when |
| withoutSlotCheck | boolean Set to true to skip the verification of whether the slot exists. The default value is true. When executing multiple API commands for the same IPMI user, you may choose to verify the user's existence only once to improve performance. |
{- "slot": 1,
- "username": "quisquam",
- "withoutSlotCheck": false
}| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| slot | integer The IPMI slot ID of the user (see |
| username | string This field is required when |
| withoutSlotCheck | boolean Set to true to skip the verification of whether the slot exists. The default value is true. When executing multiple API commands for the same IPMI user, you may choose to verify the user's existence only once to improve performance. |
{- "slot": 1,
- "username": "quia",
- "withoutSlotCheck": false
}| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| slot | integer The IPMI slot ID of the user (see |
| username | string This field is required when |
| password | string |
| withoutSlotCheck | boolean Set to true to skip the verification of whether the slot exists. The default value is true. When executing multiple API commands for the same IPMI user, you may choose to verify the user's existence only once to improve performance. |
{- "slot": 1,
- "username": "modi",
- "password": "ea",
- "withoutSlotCheck": true
}| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| slot | integer The IPMI slot ID of the user (see |
| username | string This field is required when |
| privilege required | integer Must be one of |
| withoutSlotCheck | boolean Set to true to skip the verification of whether the slot exists. The default value is true. When executing multiple API commands for the same IPMI user, you may choose to verify the user's existence only once to improve performance. |
{- "slot": 1,
- "username": "dolorem",
- "privilege": "4",
- "withoutSlotCheck": true
}| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| slot | required The IPMI slot ID of the user (see |
| username | string This field is required when |
| withoutSlotCheck | boolean Set to true to skip the verification of whether the slot exists. The default value is true. When executing multiple API commands for the same IPMI user, you may choose to verify the user's existence only once to improve performance. |
| accessSettings required | string The channel access settings for the user. |
{- "slot": "1",
- "username": "voluptatem",
- "withoutSlotCheck": false,
- "accessSettings": "ipmi=off callin=off link=off privilege=3"
}List all backups for a server.
| server_id required | string Example: quisquam The ID of the server. |
| server required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "backups": [
- {
- "backupId": "3dd47d5913_vzdump-qemu-2017-2025_08_03-22_34_20.vma.zst",
- "name": "3dd47d5913_vzdump-qemu-2017-2025_08_03-22_34_20.vma.zst",
- "size": 2721123,
- "created": 1754253260,
- "format": "vma.zst",
- "note": "",
- "storage": "local",
- "isDeleting": false,
- "isRestoring": false,
- "deleteTaskId": null,
- "restoreTaskId": null
}
], - "notifications": [ ],
- "activeTasks": {
- "hasAnyActiveTask": false,
- "runningTask": null,
- "activeCreateBackupTask": null,
- "activeDeleteBackupTasks": [ ],
- "activeRestoreBackupTask": null
}, - "meta": {
- "maxBackups": 3,
- "defaultBackupStorage": "local",
- "defaultBackupMode": "snapshot",
- "defaultBackupCompression": "zstd",
- "availableBackupStorages": [
- {
- "id": "local",
- "name": "local"
}
], - "availableBackupModes": [
- "snapshot",
- "suspend",
- "stop"
], - "availableBackupCompression": [
- "zstd"
], - "backupsEnabled": true,
- "ui": {
- "create": {
- "storage": {
- "type": "select",
- "label": "Storage",
- "required": true,
- "options": [
- {
- "id": "local",
- "name": "local"
}
], - "tooltip": "",
- "placeholder": "",
- "default": "local"
}, - "mode": {
- "type": "select",
- "label": "Backup Mode",
- "required": true,
- "options": [
- {
- "id": "snapshot",
- "name": "Snapshot (fastest)"
}, - {
- "id": "suspend",
- "name": "Suspend (consistent)"
}, - {
- "id": "stop",
- "name": "Stop (most consistent)"
}
], - "tooltip": "",
- "placeholder": "",
- "default": "snapshot"
}, - "compression": {
- "type": "select",
- "label": "Compression",
- "required": true,
- "tooltip": "",
- "placeholder": "",
- "options": [
- {
- "id": "zstd",
- "name": "ZSTD (best)"
}
], - "default": "zstd"
}, - "notes": {
- "type": "text",
- "label": "Note",
- "required": false,
- "maxLength": 100,
- "tooltip": "",
- "placeholder": "Enter a short description",
- "default": ""
}
}
}, - "canCreateUnlimitedBackups": false
}
}, - "message": "success"
}Delete a backup.
| server_id required | string Example: quisquam The ID of the server. |
| server required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| backupId required | string The backup ID to delete. |
{- "backupId": "vzdump-qemu-100-2024_01_15.vma.gz"
}Create a new backup for the server.
| server required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| options | Array of strings Dynamic backup options based on provider configuration. See |
{- "options": [
- "ut"
]
}Restore a backup.
| server required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| backupId required | string The backup ID to restore. |
{- "backupId": "vzdump-qemu-100-2024_01_15.vma.gz"
}Check if backups are supported for this server.
| server required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "available": true
}, - "message": "success"
}Find a server by the IP address. At the moment, only IPv4 addresses are supported.
| ip required | string Example: 10.10.10.30 Get server by IPv4 address. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 61,
- "hostname": "hostname.com",
- "servername": "server-001",
- "user_id": 8,
- "os": "CentOS 8",
- "servertype": "auto",
- "suspendedUserIds": [ ],
- "primaryip": "10.10.10.30",
- "reinstallationprovider": "pxe",
- "powerprovider": {
- "type": "ipmi",
- "supportedFeatures": [
- "getPowerStatus",
- "setPowerOff",
- "setPowerOn",
- "setPowerReset",
- "setPowerCycle",
- "setBootType",
- "setBmcReset",
- "executeCustomCommand"
]
}, - "consoleprovider": {
- "type": "ipmi",
- "supportedConsoleMode": "standard"
}, - "owner_realname": "Tania Metz",
- "tags": [
- "Internal"
], - "description": "Database server",
- "reinstallationRunning": 0,
- "diskwipeRunning": 0,
- "rescueBootRunning": 0,
- "hardwarecollectRunning": 0,
- "passwordResetRunning": 0,
- "detailedHardwareInformation": {
- "mainboard": {
- "model": "MAG X570 TOMAHAWK WIFI (MS-7C84)",
- "value": "1.0",
- "count": 1,
- "valueType": "text",
- "details": [
- {
- "model": "MAG X570 TOMAHAWK WIFI (MS-7C84)",
- "size": "1.0"
}
]
}, - "memory": {
- "model": "multiple",
- "value": 65536,
- "count": 4,
- "valueType": "mb",
- "details": [
- {
- "model": "CMH32GX4M2Z3200C16",
- "size": "16384"
}, - {
- "model": "CMW32GX4M2C3200C16",
- "size": "16384"
}, - {
- "model": "CMH32GX4M2Z3200C16",
- "size": "16384"
}, - {
- "model": "CMW32GX4M2C3200C16",
- "size": "16384"
}
]
}, - "cpu": {
- "model": "AMD Ryzen 9 3900XT",
- "value": "2200",
- "count": 1,
- "valueType": "MHz",
- "cores": "12",
- "threads": "24",
- "mhzTurbo": 4775
}, - "disk": {
- "model": "multiple",
- "value": 2842540,
- "count": 4,
- "valueType": "mib",
- "details": [
- {
- "model": "Samsung SSD 860 EVO 500GB",
- "size": "476940"
}, - {
- "model": "SanDisk SDSSDHII480G",
- "size": "457862"
}, - {
- "model": "WDS100T3X0C-00SJG0",
- "size": "953869"
}, - {
- "model": "WDS100T3X0C-00SJG0",
- "size": "953869"
}
]
}
}, - "ownerChain": [
- {
- "userId": 1,
- "name": "Mable White",
- "username": "adm",
- "type": "admin",
- "assignmentDate": "2021-08-25 15:18:01"
}, - {
- "userId": 8,
- "name": "Tania Metz",
- "username": "ziemann.bridget1588383",
- "type": "enduser",
- "assignmentDate": "2021-08-25 15:18:01"
}
], - "typeOfServer": "dedicated",
- "cachedPowerstatus": "offline",
- "backendDeletable": 0,
- "assignmentDate": "2021-08-25 15:18:01",
- "isExternalServer": 0,
- "postReinstallationActionAvailable": "",
- "trafficStatistics": {
- "1d": "2.15",
- "7d": "119.28",
- "14d": "191.14",
- "30d": "422.04",
- "95th_in_30d": "3.88",
- "95th_out_30d": "0.19",
- "95th_total_30d": "4.12"
}, - "lastBwrate": {
- "in": "0.04",
- "out": "0.04"
}, - "isSuspended": 0,
- "ipassignments": [
- {
- "updated_at": "2025-08-25T15:15:47.000000Z",
- "ip": "10.10.10.30",
- "primary_ip": 1,
- "ipAttributes": {
- "isIpv4": 1,
- "isIpv6": 0,
- "isSubnet": 0
}, - "subnetinformation": {
- "subnet": "10.10.10.0",
- "netmask": "255.255.255.0",
- "gw": "10.10.10.1",
- "type": "v4",
- "subnetOwnedByUser": true
}
}
]
}, - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 61,
- "hostname": "hostname.com",
- "servername": "server-001",
- "user_id": 8,
- "os": "CentOS 8",
- "servertype": "auto",
- "suspendedUserIds": [ ],
- "primaryip": "10.10.10.30",
- "reinstallationprovider": "pxe",
- "powerprovider": {
- "type": "ipmi",
- "supportedFeatures": [
- "getPowerStatus",
- "setPowerOff",
- "setPowerOn",
- "setPowerReset",
- "setPowerCycle",
- "setBootType",
- "setBmcReset",
- "executeCustomCommand"
]
}, - "consoleprovider": {
- "type": "ipmi"
}, - "owner_realname": "Dr. Sabryna Tromp V",
- "tags": [
- "Internal"
], - "description": "Database server",
- "reinstallationRunning": 0,
- "diskwipeRunning": 0,
- "rescueBootRunning": 0,
- "hardwarecollectRunning": 0,
- "passwordResetRunning": 0,
- "detailedHardwareInformation": {
- "mainboard": {
- "model": "MAG X570 TOMAHAWK WIFI (MS-7C84)",
- "value": "1.0",
- "count": 1,
- "valueType": "text",
- "details": [
- {
- "model": "MAG X570 TOMAHAWK WIFI (MS-7C84)",
- "size": "1.0"
}
]
}, - "memory": {
- "model": "CMW32GX4M2C3200C16",
- "value": 65536,
- "count": 4,
- "valueType": "mb",
- "details": [
- {
- "model": "CMH32GX4M2Z3200C16",
- "size": "16384"
}, - {
- "model": "CMW32GX4M2C3200C16",
- "size": "16384"
}, - {
- "model": "CMH32GX4M2Z3200C16",
- "size": "16384"
}, - {
- "model": "CMW32GX4M2C3200C16",
- "size": "16384"
}
]
}, - "cpu": {
- "model": "AMD Ryzen 9 3900XT",
- "value": "2200",
- "count": 1,
- "valueType": "MHz",
- "cores": "12"
}, - "disk": {
- "model": "multiple",
- "value": 2842540,
- "count": 4,
- "valueType": "mb",
- "details": [
- {
- "model": "Samsung SSD 860 EVO 500GB",
- "size": "476940"
}, - {
- "model": "SanDisk SDSSDHII480G",
- "size": "457862"
}, - {
- "model": "WDS100T3X0C-00SJG0",
- "size": "953869"
}, - {
- "model": "WDS100T3X0C-00SJG0",
- "size": "953869"
}
]
}
}, - "ownerChain": [
- {
- "userId": 1,
- "name": "Dr. Eva Flatley",
- "username": "adm",
- "type": "admin",
- "assignmentDate": "2021-10-20 21:38:59"
}, - {
- "userId": 8,
- "name": "Dr. Sabryna Tromp V",
- "username": "nigel742503837",
- "type": "enduser",
- "assignmentDate": "2021-10-20 21:38:59"
}
], - "typeOfServer": "dedicated",
- "cachedPowerstatus": "online",
- "backendDeletable": 0,
- "assignmentDate": "2021-10-20 21:38:59",
- "isExternalServer": 0,
- "postReinstallationActionAvailable": "",
- "trafficStatistics": {
- "1d": "8.24",
- "7d": "790.71",
- "14d": "941.83",
- "30d": "1783.39",
- "95th_in_30d": "5.49",
- "95th_out_30d": "0.19",
- "95th_total_30d": "5.63"
}, - "lastBwrate": {
- "in": "0.10",
- "out": "3.10"
}, - "ipassignments": [
- {
- "updated_at": "2022-10-20T21:38:15.000000Z",
- "ip": "10.10.10.30",
- "primary_ip": 1,
- "ipAttributes": {
- "isIpv4": 1,
- "isIpv6": 0,
- "isSubnet": 0
}, - "subnetinformation": {
- "cidr": 24,
- "subnet": "10.10.10.0",
- "netmask": "255.255.255.0",
- "gw": "10.10.10.1",
- "type": "v4",
- "rdnsAvailable": 1,
- "vlanAutomationAvailable": false,
- "subnetOwnedByUser": true,
- "rootSubnetId": null,
- "isExternalProvider": 0
}
}
]
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| hostname required | string Must not be greater than 255 characters. |
| servername required | string Must not be greater than 255 characters. |
| user_id | string |
| description | string |
| tags | Array of strings |
| os | string |
| servertype | string Must be one of |
| vpsplan | integer Only specify if a virtual server, based on the plan ID, should be created. |
| overrideVpsResources | Array of strings Only specify if a virtual server, based on the plan ID, should be created and you want to override the resources. See: https://documentation.tenantos.com/billing-whmcs/configurable-options/vps-resource-overrides/ |
| config | object Specify to add connections to the server in one go. |
Array of objects |
{- "hostname": "hostname.com",
- "servername": "server-001",
- "user_id": null,
- "description": "enim",
- "tags": [
- "veniam"
], - "os": "nemo",
- "servertype": "auto",
- "vpsplan": null,
- "overrideVpsResources": null,
- "config": {
- "agentId": 1,
- "ipmi_ip": "10.10.10.99",
- "ipmi_user": "ADMIN",
- "ipmi_password": "ADMIN",
- "pxe_mac": "aa:bb:cc:dd:ee:ff",
- "enable_pxe": true,
- "enable_ipmi_console": true,
- "enable_ipmi_powermanagement": true,
- "enable_permanent_dhcp": true
}, - "ipassignments": [
- [ ]
]
}| id required | integer Example: 61 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 61,
- "hostname": "hostname.com",
- "servername": "server-001",
- "user_id": 8,
- "os": "CentOS 8",
- "servertype": "auto",
- "suspendedUserIds": [ ],
- "primaryip": "10.10.10.30",
- "reinstallationprovider": "pxe",
- "powerprovider": {
- "type": "ipmi",
- "supportedFeatures": [
- "getPowerStatus",
- "setPowerOff",
- "setPowerOn",
- "setPowerReset",
- "setPowerCycle",
- "setBootType",
- "setBmcReset",
- "executeCustomCommand"
]
}, - "consoleprovider": {
- "type": "ipmi"
}, - "owner_realname": "Dejah Leannon",
- "tags": [
- "Internal"
], - "description": "Database server",
- "reinstallationRunning": 0,
- "diskwipeRunning": 0,
- "rescueBootRunning": 0,
- "hardwarecollectRunning": 0,
- "passwordResetRunning": 0,
- "detailedHardwareInformation": {
- "mainboard": {
- "model": "MAG X570 TOMAHAWK WIFI (MS-7C84)",
- "value": "1.0",
- "count": 1,
- "valueType": "text",
- "details": [
- {
- "model": "MAG X570 TOMAHAWK WIFI (MS-7C84)",
- "size": "1.0"
}
]
}, - "memory": {
- "model": "CMW32GX4M2C3200C16",
- "value": 65536,
- "count": 4,
- "valueType": "mb",
- "details": [
- {
- "model": "CMH32GX4M2Z3200C16",
- "size": "16384"
}, - {
- "model": "CMW32GX4M2C3200C16",
- "size": "16384"
}, - {
- "model": "CMH32GX4M2Z3200C16",
- "size": "16384"
}, - {
- "model": "CMW32GX4M2C3200C16",
- "size": "16384"
}
]
}, - "cpu": {
- "model": "AMD Ryzen 9 3900XT",
- "value": "2200",
- "count": 1,
- "valueType": "MHz",
- "cores": "12"
}, - "disk": {
- "model": "multiple",
- "value": 2842540,
- "count": 4,
- "valueType": "mb",
- "details": [
- {
- "model": "Samsung SSD 860 EVO 500GB",
- "size": "476940"
}, - {
- "model": "SanDisk SDSSDHII480G",
- "size": "457862"
}, - {
- "model": "WDS100T3X0C-00SJG0",
- "size": "953869"
}, - {
- "model": "WDS100T3X0C-00SJG0",
- "size": "953869"
}
]
}
}, - "ownerChain": [
- {
- "userId": 1,
- "name": "Viva Botsford",
- "username": "adm",
- "type": "admin",
- "assignmentDate": "2021-10-21 19:29:10"
}, - {
- "userId": 8,
- "name": "Dejah Leannon",
- "username": "esmeralda44314938",
- "type": "enduser",
- "assignmentDate": "2021-10-21 19:29:10"
}
], - "typeOfServer": "dedicated",
- "cachedPowerstatus": "online",
- "backendDeletable": 0,
- "assignmentDate": "2021-10-21 19:29:10",
- "isExternalServer": 0,
- "postReinstallationActionAvailable": "",
- "trafficStatistics": {
- "1d": "8.24",
- "7d": "790.71",
- "14d": "941.83",
- "30d": "1783.39",
- "95th_in_30d": "5.49",
- "95th_out_30d": "0.19",
- "95th_total_30d": "5.63"
}, - "lastBwrate": {
- "in": "0.10",
- "out": "3.10"
}, - "ipassignments": [
- {
- "updated_at": "2022-10-21T19:28:25.000000Z",
- "ip": "10.10.10.30",
- "primary_ip": 1,
- "ipAttributes": {
- "isIpv4": 1,
- "isIpv6": 0,
- "isSubnet": 0
}, - "subnetinformation": {
- "cidr": 24,
- "subnet": "10.10.10.0",
- "netmask": "255.255.255.0",
- "gw": "10.10.10.1",
- "type": "v4",
- "rdnsAvailable": 1,
- "vlanAutomationAvailable": false,
- "subnetOwnedByUser": true,
- "rootSubnetId": null,
- "isExternalProvider": 0
}
}
]
}, - "message": "success"
}| id required | integer Example: 61 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| hostname | string Must not be greater than 255 characters. |
| servername | string Must not be greater than 255 characters. |
| user_id | integer |
| description | string |
| tags | Array of strings |
| os | string |
| servertype | string Must be one of |
| suspendUserIds | Array of integers |
Array of objects | |
| suspendPowerAction | string Must be one of |
| suspendNetworkPortAction | string Must be one of |
{- "hostname": "hostname.com",
- "servername": "server-001",
- "user_id": 11,
- "description": "labore",
- "tags": [
- "corporis"
], - "os": "harum",
- "servertype": "dedicated",
- "suspendUserIds": [
- 8
], - "assignmentDates": [
- [ ]
], - "suspendPowerAction": "setPowerOn",
- "suspendNetworkPortAction": "enable"
}| id required | integer Example: 61 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| destroy | boolean If server is a VM, the server will be deleted on the hypervisor (e.g. Proxmox) |
{- "destroy": false
}Generates a NoVNC session and returns a link to open the console.
For security reasons, the console can only be opened by the specificated IP. If no IP has been specificated, the console is bound to the requestor IP.
| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| authorizedIp required | string Must be a valid IP address. The console is only reachable by the specificated IP. |
| consoleMode | string Must be one of |
{- "authorizedIp": "10.0.0.10",
- "consoleMode": "standard"
}{- "result": {
- "token": "fa5ed6be6666631b7e53e0968d47b03dd92cb8ae",
}, - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| tags required | Array of strings An array of tags. Only servers which own all of the specified tags will be returned (= AND query, not OR). A list of all available tags can be received via the |
{- "tags": [
- "Clients",
- "Damaged"
]
}| server_id required | integer Example: 61 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "created_at": "2023-11-17T21:29:07.000000Z",
- "updated_at": "2024-08-10T21:29:07.000000Z",
- "comment": "<p>Server is broken</p>",
- "sticky": 1,
- "user_id": 1,
- "clientname": "Viva Botsford"
}
], - "message": "success"
}| server required | integer Example: 8 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: multipart/form-data |
| Accept | string Example: application/json |
| comment required | string |
| sticky | boolean |
| user_id | integer |
| attachments | Array of strings <binary> [ items <binary > ] Must be a file. Must not be greater than 50120 kilobytes. |
| server_id required | integer Example: 61 The ID of the server. |
| id required | integer Example: 1 The ID of the comment. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "created_at": "2023-11-17T21:29:07.000000Z",
- "updated_at": "2024-08-10T21:29:07.000000Z",
- "comment": "<p>Server is broken</p>",
- "sticky": 1,
- "user_id": 1
}, - "message": "success"
}| server_id required | integer Example: 61 The ID of the server. |
| id required | integer Example: 1 The ID of the comment. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| comment | string |
| sticky | boolean |
| user_id | integer |
{- "comment": "veniam",
- "sticky": true,
- "user_id": 2
}| server_id required | integer Example: 61 The ID of the server. |
| id required | integer Example: 1 The ID of the comment. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
Verifies if the connection details are working. Connection testing does not work with every connection. IPMI connection tests are supported.
| server required | integer Example: 61 The ID of the server. |
| testConnectionId required | integer Example: 21 The ID of the connection. Not all connections support testing. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": "online",
- "message": "success"
}| server_id required | integer Example: 61 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 21,
- "agentId": 1,
- "serverId": 61,
- "types": [
- "power_management",
- "remote_console"
], - "agentAssignmentsRelationId": 21,
- "agent_details": {
- "id": 1,
- "name": "Local Agent",
- "hostname": "local-agent.domain.com"
}, - "related_data": {
- "id": 21,
- "type": "ipmi",
- "meta": {
- "username": "ADMIN",
- "password": "ADMIN",
- "ip": "10.10.10.101",
- "javaVersion": "auto",
- "bmcPort": "623"
}
}
}, - {
- "id": 22,
- "agentId": 1,
- "serverId": 61,
- "types": [
- "installation"
], - "agentAssignmentsRelationId": 22,
- "agent_details": {
- "id": 1,
- "name": "Local Agent",
- "hostname": "local-agent.domain.com"
}, - "related_data": {
- "id": 22,
- "type": "pxe",
- "meta": [ ]
}
}, - {
- "id": 23,
- "agentId": 1,
- "serverId": 61,
- "types": [
- "dhcp"
], - "agentAssignmentsRelationId": 23,
- "agent_details": {
- "id": 1,
- "name": "Local Agent",
- "hostname": "local-agent.domain.com"
}, - "related_data": {
- "id": 23,
- "type": "dhcp",
- "meta": {
- "pxe_mac": "00:50:56:86:E1:A3"
}
}
}, - {
- "id": 26,
- "agentId": 0,
- "serverId": 61,
- "types": [ ],
- "agentAssignmentsRelationId": 26,
- "agent_details": null,
- "related_data": {
- "id": 26,
- "type": "snmp_switch",
- "meta": {
- "switchId": 2,
- "portId": 2
}
}
}
], - "message": "success"
}| server required | integer Example: 7 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| agentId required | integer |
| types | Array of strings Specify the allowed features / types for this connection. |
required | object |
{- "agentId": 6,
- "types": [
- "power_management",
- "remote_console"
], - "connectionDetails": {
- "meta": {
- "ip": "192.168.171.200",
- "username": "admin",
- "password": "admin",
- "javaVersion": "auto"
}, - "type": "ipmi"
}
}| server_id required | integer Example: 61 The ID of the server. |
| id required | integer Example: 23 The ID of the connection. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 23,
- "agentId": 1,
- "serverId": 61,
- "types": [
- "dhcp"
], - "agentAssignmentsRelationId": 23,
- "agent_details": {
- "id": 1,
- "name": "Local Agent",
- "hostname": "local-agent.domain.com"
}, - "related_data": {
- "id": 23,
- "type": "dhcp",
- "meta": {
- "pxe_mac": "00:50:56:86:E1:A3"
}
}
}, - "message": "success"
}| server_id required | integer Example: 61 The ID of the server. |
| id required | integer Example: 23 The ID of the connection. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| agentId | integer |
| types | Array of strings Specify the allowed features / types for this connection. |
object |
{- "agentId": 5,
- "types": [
- "power_management",
- "remote_console"
], - "connectionDetails": {
- "meta": {
- "ip": "192.168.171.200",
- "username": "admin",
- "password": "admin",
- "javaVersion": "auto"
}, - "type": "ipmi"
}
}| server_id required | integer Example: 61 The ID of the server. |
| id required | integer Example: 23 The ID of the connection. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| server required | integer Example: 1 The ID of the server. |
| testConnectionId required | integer Example: 24 The ID of the connection. |
| serverConnectionAction required | string Example: getSupportedActions The action to execute. Use |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "powerActions": [
- "getPowerStatus",
- "setPowerOff",
- "setPowerOn",
- "setPowerReset"
]
}, - "message": "success"
}Get the RDNS entry of an IP address.
| server required | integer Example: 61 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| ip | string Must be a valid IP address which is assigned to this server. |
{- "ip": "10.10.10.30"
}{- "result": {
- "ptrRecord": "server-001.com"
}, - "message": "success"
}Receives a list of subnets from which IPs can be assigned to the server. Subnets are not always available to all servers.
Alias: GET api/virtualization/ipassignments/getAssignableSubnets - used to set the subnets in VPS plans.
| server required | integer Example: 1 The ID of the server (optional if called via |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "subnet": "10.10.10.0/24",
- "type": {
- "hasChildSubnets": 0,
- "amountOfDirectChilds": 0,
- "hasSubIps": 1,
- "amountOfSubIps": 263,
- "type": "v4"
}, - "usageStatistics": {
- "free": 68,
- "reserved": 25,
- "used": 170,
- "totalUsed": 195,
- "totalIps": 263,
- "usedPercentage": 74.14
}, - "vlanAutomationAvailable": false,
- "ownerChain": [
- {
- "userId": 1,
- "name": "Mable White",
- "username": "adm"
}
], - "isDirectOwner": true
}
], - "message": "success"
}Receives a list of available IPs of the subnet.
| server required | integer Example: 7 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| subnets_id required | integer |
{- "subnets_id": 12
}Receives a list of subnets from which IPs can be assigned to the server. Subnets are not always available to all servers.
Alias: GET api/virtualization/ipassignments/getAssignableSubnets - used to set the subnets in VPS plans.
| server required | integer Example: 1 The ID of the server (optional if called via |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "subnet": "10.10.10.0/24",
- "type": {
- "hasChildSubnets": 0,
- "amountOfDirectChilds": 0,
- "hasSubIps": 1,
- "amountOfSubIps": 263,
- "type": "v4"
}, - "usageStatistics": {
- "free": 68,
- "reserved": 25,
- "used": 170,
- "totalUsed": 195,
- "totalIps": 263,
- "usedPercentage": 74.14
}, - "vlanAutomationAvailable": false,
- "ownerChain": [
- {
- "userId": 1,
- "name": "Mable White",
- "username": "adm"
}
], - "isDirectOwner": true
}
], - "message": "success"
}| server_id required | integer Example: 61 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 32,
- "updated_at": "2022-10-21T19:28:25.000000Z",
- "ip": "10.10.10.30",
- "primary_ip": 1,
- "description": null,
- "ipAttributes": {
- "isIpv4": 1,
- "isIpv6": 0,
- "isSubnet": 0
}, - "subnetinformation": {
- "cidr": 24,
- "subnet": "10.10.10.0",
- "netmask": "255.255.255.0",
- "gw": "10.10.10.1",
- "type": "v4",
- "rdnsAvailable": 1,
- "vlanAutomationAvailable": false,
- "subnetOwnedByUser": true,
- "rootSubnetId": null,
- "isExternalProvider": 0
}
}
], - "message": "success"
}| server required | integer Example: 18 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| subnets_id required | integer |
| ips required | Array of strings An array of IP addresses which will be assigned to the server. |
| description | string |
| performVlanActions | string Must be one of |
{- "subnets_id": 1,
- "ips": [
- "10.10.10.20",
- "10.10.10.21"
], - "description": "porro",
- "performVlanActions": "none"
}| server_id required | integer Example: 61 The ID of the server. |
| id required | integer The ID of the IP assignment. However, actually the "ip" body parameter is used for identification. The id parameter must not be empty, but can be any integer or string. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| description | string |
| primary_ip | boolean |
| ptrRecord | string |
| setPtrTemplate | boolean If set to true, the RDNS entry will be set to the default value. Default is false. |
| subnetIp | string Only used if |
| ip required | string Must be a IP/subnet which is assigned to the server. If the value is a subnet, it must be the subnet with CIDR (e.g. aaab:bbbb:cccc:aaaa::/52) |
{- "description": "quia",
- "primary_ip": true,
- "ptrRecord": "et",
- "setPtrTemplate": false,
- "subnetIp": null,
- "ip": "10.10.10.30"
}| server_id required | integer Example: 61 The ID of the server. |
| id required | integer The ID of the IP assignment. However, actually the "ip" body parameter is used for identification. The id parameter must not be empty, but can be any integer or string. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| ip | string Required if |
| ips | Array of strings Required if |
| performVlanActions | string Must be one of |
{- "ip": "10.10.10.4",
- "ips": null,
- "performVlanActions": "none"
}| server required | string Example: debitis The server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
Array of objects | |
Array of objects | |
Array of objects | |
Array of objects | |
object | |
object |
{- "ipv4Addresses": [
- [ ]
], - "ipv6Addresses": [
- [ ]
], - "ipv4Subnets": [
- [ ]
], - "ipv6Subnets": [
- [ ]
], - "performVlanActions": [ ],
- "deleteExistingIpAssignments": [ ]
}Summarized overview of the hardware inventory.
| server_id required | integer Example: 61 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "mainboard": {
- "model": "MAG X570 TOMAHAWK WIFI (MS-7C84)",
- "value": "1.0",
- "count": 1,
- "valueType": "text",
- "details": null
}, - "memory": {
- "model": "CMW32GX4M2C3200C16",
- "value": 65536,
- "count": 4,
- "valueType": "mb",
- "details": null
}, - "cpu": {
- "model": "AMD Ryzen 9 3900XT",
- "value": "2200",
- "count": 1,
- "valueType": "MHz",
- "cores": "12"
}, - "disk": {
- "model": "multiple",
- "value": 2842540,
- "count": 4,
- "valueType": "mb",
- "details": null
}
}, - "message": "success"
}More detailled summary of the hardware inventory.
| server required | integer Example: 61 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "mainboard": {
- "model": "MAG X570 TOMAHAWK WIFI (MS-7C84)",
- "value": "1.0",
- "count": 1,
- "valueType": "text",
- "details": [
- {
- "model": "MAG X570 TOMAHAWK WIFI (MS-7C84)",
- "size": "1.0"
}
]
}, - "memory": {
- "model": "CMW32GX4M2C3200C16",
- "value": 65536,
- "count": 4,
- "valueType": "mb",
- "details": [
- {
- "model": "CMH32GX4M2Z3200C16",
- "size": "16384"
}, - {
- "model": "CMW32GX4M2C3200C16",
- "size": "16384"
}, - {
- "model": "CMH32GX4M2Z3200C16",
- "size": "16384"
}, - {
- "model": "CMW32GX4M2C3200C16",
- "size": "16384"
}
]
}, - "cpu": {
- "model": "AMD Ryzen 9 3900XT",
- "value": "2200",
- "count": 1,
- "valueType": "MHz",
- "cores": "12"
}, - "disk": {
- "model": "multiple",
- "value": 2842540,
- "count": 4,
- "valueType": "mb",
- "details": [
- {
- "model": "Samsung SSD 860 EVO 500GB",
- "size": "476940"
}, - {
- "model": "SanDisk SDSSDHII480G",
- "size": "457862"
}, - {
- "model": "WDS100T3X0C-00SJG0",
- "size": "953869"
}, - {
- "model": "WDS100T3X0C-00SJG0",
- "size": "953869"
}
]
}
}, - "message": "success"
}Returns a shell command which can be executed on linux servers to collect information about the server hardware without rebooting.
| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": "wget -qO - https://domain.com/api/scripts/hwdetect | bash -s 'https://domain.com/api/servers/inventory/callback/40b219a00840e8a242c4bd12ec1a3f43'",
- "message": "success"
}Complete list of the server hardware inventory.
| server_id required | integer Example: 61 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 12,
- "created_at": "2022-10-20T21:23:50.000000Z",
- "updated_at": "2022-10-20T21:23:50.000000Z",
- "model": "MAG X570 TOMAHAWK WIFI (MS-7C84)",
- "value": "1.0",
- "serial": "K317253975",
- "description": "",
- "server_id": 61,
- "customfields": null,
- "root_component": {
- "id": 6,
- "description": "Mainboard Model",
- "valueType": "text"
}
}, - {
- "id": 13,
- "created_at": "2022-10-20T21:23:50.000000Z",
- "updated_at": "2022-10-20T21:23:50.000000Z",
- "model": "American Megatrends Inc.",
- "value": "1.00",
- "serial": "04/11/2020",
- "description": "",
- "server_id": 61,
- "customfields": null,
- "root_component": {
- "id": 4,
- "description": "BIOS",
- "valueType": "text"
}
}
], - "message": "success"
}| server required | integer Example: 4 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| model | string |
| value | string |
| serial | string |
| inventorycomponent_id required | integer The ID of the root component. |
| description | string |
| customfields | Array of strings An array of custom fields, if the root component has custom fields assigned. |
{- "model": "Samsung SSD 860 EVO",
- "value": "476940",
- "serial": "S1Z2NB1K736669A",
- "inventorycomponent_id": 7,
- "description": "Second SSD",
- "customfields": null
}| server_id required | integer Example: 61 The ID of the server. |
| id required | integer Example: 32 The ID of the inventory. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 32,
- "created_at": "2022-10-20T21:23:50.000000Z",
- "updated_at": "2022-10-20T21:23:50.000000Z",
- "model": "WDS100T3X0C-00SJG0",
- "value": "953869",
- "serial": "192306800431",
- "description": "",
- "server_id": 61,
- "customfields": [
- {
- "fieldId": 1,
- "value": "3"
}
], - "root_component": {
- "id": 7,
- "description": "Disk",
- "valueType": "mb",
- "customfields": [
- {
- "values": [ ]
}
]
}
}, - "message": "success"
}| server_id required | integer Example: 61 The ID of the server. |
| id required | integer Example: 32 The ID of the inventory. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| model | string |
| value | string |
| serial | string |
| inventorycomponent_id | integer The ID of the root component. |
| description | string |
| customfields | Array of strings An array of custom fields, if the root component has custom fields assigned. |
{- "model": "Samsung SSD 860 EVO",
- "value": "476940",
- "serial": "S1Z2NB1K736669A",
- "inventorycomponent_id": 7,
- "description": "Second SSD",
- "customfields": null
}| server_id required | integer Example: 61 The ID of the server. |
| id required | integer Example: 32 The ID of the inventory. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| server required | string Example: aut The server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| performVlanActions | string Must be one of |
{- "performVlanActions": "none"
}Get manageable network ports for a server
| server required | integer Example: 16 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "hasManageablePorts": true
}, - "message": "success"
}| server required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| profileId required | integer The OS profile ID. |
| rootpassword required | string Must be at least 8 characters. |
| disklayoutId | integer The ID of the disk layout. |
| runScripts | Array of strings Array of script IDs which will be executed after installation. |
| userprovidedDiskLayout | string Overrides the default disk layout with a custom provided layout. |
| hostname | string Must be a valid hostname and not be greater than 255 characters. |
| sshkeys | Array of strings An array of SSH keys. |
| configure_all_ipvfour | boolean |
| configure_all_ipvsix | boolean |
| installPowerAction | string Must be one of |
{- "profileId": 1,
- "rootpassword": "secretpassword",
- "disklayoutId": 1,
- "runScripts": [
- 1,
- 2
], - "userprovidedDiskLayout": "autopart --type=lvm",
- "hostname": "my.hostname.com",
- "sshkeys": [
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCPMKW3XDPL0k257n8IBrmJrhSTOfczRjD5V5nou8uYCg1HJHnaCtdgPPdCQPfg5jYVKP5MCsgFBbfCWXv8GgDZAI905Yel46ZcRBkC0JKVkkc53I+wS/zmwfxXzvkV6GRbCISnc1n98+wE4z+Qtg9FV+VAhJzinTCYFo9TV7hwkz7V5e+pj9/5NgfVbFy0H8B2aXqp1F6A7ENBXNrbejXdTyo3lVIq1/tHKfv6mcVmR4b4w7EVI4bvDMDdHeEKfMCvDUG359ElVp7gla5M0kohCCWtgLSchR/6NTEIa6rAFhsmCHCfIE6q959Ff+KUR40e8yzulZtp3NPu8ukUjJtkBA5c4lAE2UUNldyqkWiE8sWAr+GlMjU0UkB3xzB0ID53EKH93WoIapjAnpDYxah8dOdyfk2cSmkdSe8DFNLeWffi8j3Ea9XeCQnMa/VTcSarspnCKL8RG5LL8vGy//0Cs6QXQDn/gCTR2McTPbiiks2sFVWCaIIbgkTs9fGFuhM= root"
], - "configure_all_ipvfour": false,
- "configure_all_ipvsix": false,
- "installPowerAction": "noRestart"
}| server required | integer Example: 61 The ID of the server. |
| withoutPowerReset required | integer Examples:
Optional parameter. By default, aborting an installation will trigger a power reset. Setting this parameter to 1 doesn't reset the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": "ok",
- "message": "success"
}| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "installProgress": [ ],
- "completed": 0,
- "canCancelInstallation": 1,
- "running": 1,
- "step": 1
}, - "message": "success"
}With some providers (e.g. OVH), a post action can be executed after the installation is complete. In the case of OVH, the post action is to request the credentials (for SSH, etc.) after the installation has been completed.
This endpoint is not used for PXE based installations.
| server required | integer Example: 10 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "postTask": [
- {
- "type": "SSH",
- "url": "ssh://ns2114132.ip-34-144-0.eu",
- "username": "root",
- "password": "EH9HMSQ22gfvsjIQ2",
- "serverMainIp": "34.144.0.0"
}
], - "postTaskAction": "getPassword"
}, - "message": "success"
}Returns a list of installable operating systems for the server. The list also contains the rescue systems (see isRescue).
| server required | integer Example: 61 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "name": "CentOS 7",
- "disklayouts": [
- {
- "id": 2,
- "name": "Automatic Partitioning"
}, - {
- "id": 4,
- "name": "RAID 1"
}, - {
- "id": 5,
- "name": "RAID 5"
}, - {
- "id": 6,
- "name": "RAID 10"
}, - {
- "id": 7,
- "name": "RAID 0"
}, - {
- "id": 8,
- "name": "Install on largest disk"
}, - {
- "id": 9,
- "name": "Install on smallest disk"
}
], - "scripts": [
- {
- "id": 2,
- "name": "Install Nextcloud"
}
], - "isRescue": 0,
- "isPasswordResetProfile": 0,
- "features": {
- "0": 1,
- "follow_install_progress": 1,
- "allow_ssh_keys": 1,
- "allow_set_hostname": 1,
- "set_root_password": 1
}, - "default_disklayout_template": 2,
- "default_run_scripts": [
- 1
], - "groupname": "CentOS",
- "grouplogo": "/storage/oslogos/centos.png"
}
], - "message": "success"
}Returns the path to the logo of the OS.
| server required | integer Example: 13 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| os required | string The name of the operating system. |
{- "os": "debian"
}| server required | integer Example: 1 The ID of the server. |
| serverPowerMethod required | string Example: setPowerOn The power method. Must be one of powerprovider.supportedFeatures (see |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| method | null (ignore the |
| params | string This field is required when serverPowerMethod is |
| noFailover | boolean If set to true and IPMI or AMT in combination with a PDU is used, the power action will not fallback to the PDU if IPMI/AMT fails. Default is false. |
{- "method": null,
- "params": "aut",
- "noFailover": null
}{- "result": "executed",
- "message": "success"
}| server required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| command required | string The BMC command. |
{- "command": "chassis status"
}{- "result": "System Power : on\nPower Overload : false\nPower Interlock : inactive\nMain Power Fault : false\nPower Control Fault : false\nPower Restore Policy : always-off\nLast Power Event : \nChassis Intrusion : inactive\nFront-Panel Lockout : inactive\nDrive Fault : false\nCooling/Fan Fault : false",
- "message": "success"
}Receive the current virtual server resources.
| server_id required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "cpu": {
- "cores": 2,
- "sockets": 2,
- "cpulimit": "128",
- "cpuunits": "",
- "vcpus": 2
}, - "disks": [
- {
- "size": "32",
- "name": "local:2017/vm-2017-disk-1.qcow2,discard=on,size=32G",
- "id": "scsi0"
}
], - "memory": {
- "memory": 3400,
- "balloon": ""
}
}, - "message": "success"
}| server_id required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
If no planId is set: Send an object with the new configuration of the VM. The available keys differ for each virtualization type (Proxmox, VMware).
To update the resources by changing the VPS plan, send a request with following body: { "planId": ID }
{- "cpu": {
- "cores": "2",
- "sockets": "2",
- "cpulimit": "128",
- "cpuunits": ""
}, - "disks": [
- {
- "size": "32",
- "name": "local:2017/vm-2017-disk-1.qcow2,discard=on,size=32G",
- "id": "scsi0"
}
], - "memory": {
- "memory": 3400,
- "balloon": ""
}
}List all snapshots for a server.
| server_id required | string Example: ipsam The ID of the server. |
| server required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "snapshots": [
- {
- "snapshotId": "test",
- "name": "test",
- "description": "",
- "created": 1756135351,
- "parent": "beforeUpgrade",
- "includesMemory": false,
- "size": 0,
- "isCurrent": true,
- "isDeleting": false,
- "isRollingBack": false,
- "deleteTaskId": null,
- "rollbackTaskId": null
}, - {
- "snapshotId": "beforeUpgrade",
- "name": "beforeUpgrade",
- "description": "",
- "created": 1756128772,
- "parent": null,
- "includesMemory": false,
- "size": 0,
- "isCurrent": false,
- "isDeleting": false,
- "isRollingBack": false,
- "deleteTaskId": null,
- "rollbackTaskId": null
}
], - "notifications": [ ],
- "activeTasks": {
- "hasAnyActiveTask": false,
- "runningTask": null,
- "activeCreateSnapshotTask": null,
- "activeDeleteSnapshotTasks": [ ],
- "activeRollbackSnapshotTask": null
}, - "meta": {
- "maxSnapshots": 3,
- "defaultSnapshotMode": "snapshot",
- "defaultSnapshotIncludeMemory": true,
- "snapshotsEnabled": true,
- "ui": {
- "create": {
- "name": {
- "type": "text",
- "label": "Snapshot Name",
- "required": true,
- "maxLength": 40,
- "default": "",
- "validationRegex": "^[a-zA-Z][a-zA-Z0-9_]*$",
- "validationMessage": "Must start with a letter. Allowed characters: A-Z, a-z, 0-9, _",
- "tooltip": "",
- "placeholder": "Enter a short name"
}, - "description": {
- "type": "text",
- "label": "Description",
- "required": false,
- "maxLength": 100,
- "default": "",
- "tooltip": "",
- "placeholder": "Enter a short snapshot description"
}, - "includeMemory": {
- "type": "checkbox",
- "label": "Include VM Memory State",
- "tooltip": "Saves the current RAM state along with the disk state. This allows you to restore the VM to its exact running state. Note: The VM may be briefly unresponsive during snapshot creation but will continue running.",
- "required": false,
- "default": true
}
}
}, - "canCreateUnlimitedSnapshots": false
}
}, - "message": "success"
}Delete a snapshot.
| server_id required | string Example: ipsam The ID of the server. |
| server required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| snapshotId required | string The snapshot ID to delete. |
{- "snapshotId": "snapshot1"
}Create a new snapshot for the server.
| server required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| options | Array of strings Dynamic snapshot options based on provider configuration. See |
{- "options": [
- "asperiores"
]
}Rollback to a snapshot.
| server required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| snapshotId required | string The snapshot ID to rollback to. |
{- "snapshotId": "snapshot1"
}Check if snapshots are supported for this server.
| server required | integer Example: 2 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "available": true
}, - "message": "success"
}| server required | integer Example: 9 The ID of the server. |
| statsMode required | string Example: text Must be one of graph, or text. "graph" does return values for a graph (5 minute interval), "text" returns a summary for each day. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| from | string Must be a valid date. |
| to | string Must be a valid date. |
| predefined | string Must be one of |
| user_id | integer |
| groupBy | string Must be one of |
| summary | boolean Does add a |
{- "from": "2025-08-25T15:29:15",
- "to": "2025-08-25T15:29:15",
- "predefined": "24h",
- "user_id": 7,
- "groupBy": "1mo",
- "summary": true
}| server required | integer Example: 2 The ID of the server. |
| statsMode required | string Example: text Must be one of graph, or text. As of now, graph and text returns the same values. This behavior may change in the future. If detailed information is required, graph mode is recommended. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| from | string Must be a valid date. |
| to | string Must be a valid date. |
| predefined | string Must be one of |
| user_id | integer |
{- "from": "2025-08-25T15:29:15",
- "to": "2025-08-25T15:29:15",
- "predefined": "14days",
- "user_id": 15
}| server required | integer Example: 1 The ID of the server. |
| statsMode required | string Example: graph Must be one of graph, or text. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| from | string Must be a valid date. |
| to | string Must be a valid date. |
| predefined | string Must be one of |
| user_id | integer |
{- "from": "2025-08-25T15:29:15",
- "to": "2025-08-25T15:29:15",
- "predefined": "1h",
- "user_id": 1
}| server required | integer Example: 4 The ID of the server. |
| statsMode required | string Example: graph Must be one of graph, or text. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| from | string Must be a valid date. |
| to | string Must be a valid date. |
| predefined | string Must be one of |
| user_id | integer |
{- "from": "2025-08-25T15:29:15",
- "to": "2025-08-25T15:29:15",
- "predefined": "1h",
- "user_id": 5
}| server required | integer Example: 2 The ID of the server. |
| statsMode required | string Example: graph Must be one of graph, or text. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| from | string Must be a valid date. |
| to | string Must be a valid date. |
| predefined | string Must be one of |
| user_id | integer |
{- "from": "2025-08-25T15:29:15",
- "to": "2025-08-25T15:29:15",
- "predefined": "14days",
- "user_id": 5
}| server required | integer Example: 1 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| predefined | string The time range to check for stats availability. Default is last 24 hours. |
| user_id | integer The user ID to check stats for. If not provided, uses the current user's ID. |
{- "predefined": "1h",
- "user_id": 1
}{- "result": {
- "available": [
- "bandwidth",
- "cpu",
- "memory",
- "diskio"
]
}, - "message": "success"
}| subnetId required | integer Example: 1 The ID of the subnet. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "subnet": "10.10.10.0",
- "cidr": 24,
- "netmask": "255.255.255.0",
- "gw": "10.10.10.1",
- "type": "v4",
- "priority": null,
- "reserved": 0,
- "offer_if_server_has_tag": [ ],
- "dont_offer_if_server_has_tag": [ ],
- "only_if_server_has_remote_agents": [ ],
- "apply_restrictions_to_childs": 0,
- "dns_resolvers": [
- "65.108.22.20",
- "10.10.10.13"
], - "enable_switch_automation": null,
- "copy_network_automation_configuration_to_childs": null,
- "vlan_mode": null,
- "access_vlan_generation_mode": null,
- "static_access_vlan_id": null,
- "range_start_access_vlan_id": null,
- "range_end_access_vlan_id": null,
- "trunk_vlans": null,
- "vlan_layer3_mode": null,
- "vlan_layer3_ip": null,
- "reuse_access_vlan": null,
- "use_existing_port_access_vlan": null,
- "vlan_remove_layer3_ip_on_unassign": null,
- "rdnsAvailable": 1,
- "rdnsServerId": 1,
- "usageStatistics": {
- "free": 68,
- "reserved": 25,
- "used": 170,
- "totalIps": 263,
- "usedPercentage": 74.14
}, - "description": null,
- "subnetAttributes": {
- "hasChildSubnets": 0,
- "amountOfDirectChilds": 0,
- "hasSubIps": 1,
- "amountOfSubIps": 263,
- "type": "v4"
}, - "vlanAutomationAvailable": false,
- "ips": [
- {
- "...": "..."
}, - {
- "ip": "10.10.10.99",
- "reserved": 0,
- "servers_id": 1,
- "description": null,
- "servers_owner_realname": "Prof. Ernestina Beahan I",
- "servers_owner_id": 10,
- "servername": "the-server-name",
- "rdns_entry": ""
}
], - "childSubnets": [ ],
- "rdnsFeatures": {
- "canManageUnassignedIPs": 1,
- "canManageAssignedIPs": 1
}
}, - "message": "success"
}Split a subnet into smaller parts. Only available for IPv6.
| subnetId required | integer Example: 19 The ID of the subnet. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| mode required | string Must be one of subnet or singleIps. |
| toPrefix | integer This field is required when mode is subnet. The target prefix size. |
| gateway_method | string This field is required when mode is subnet. Must be one of first, last, or custom. |
| gateway_custom | string This field is required when gateway_method is custom. |
| toAmount | integer Required if |
| listOfIps | Array of strings Required if |
| generateIps | boolean |
| reserve_gateway_ip | boolean Defaults to true if not set. |
| reserve_broadcast_ip | boolean Defaults to true if not set. |
| reserve_network_address | boolean Defaults to true if not set. |
| reserve_first_usable_ip | boolean Defaults to false if not set. |
| reserve_last_usable_ip | boolean Defaults to false if not set. |
| copy_network_automation_configuration_to_childs | boolean |
{- "mode": "subnet",
- "toPrefix": 64,
- "gateway_method": "first",
- "gateway_custom": null,
- "toAmount": 100,
- "listOfIps": null,
- "generateIps": false,
- "reserve_gateway_ip": null,
- "reserve_broadcast_ip": null,
- "reserve_network_address": null,
- "reserve_first_usable_ip": null,
- "reserve_last_usable_ip": null,
- "copy_network_automation_configuration_to_childs": true
}| subnetId required | integer Example: 1 The ID of the subnet. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| updateRdns | boolean |
| updateResolvers | boolean |
| updateRestrictions | boolean |
| updateSubnetOwners | boolean |
| updateNetworkAutomationSettings | boolean |
| updateDynamicIpAssignmentsSetting | boolean |
{- "updateRdns": false,
- "updateResolvers": false,
- "updateRestrictions": true,
- "updateSubnetOwners": false,
- "updateNetworkAutomationSettings": false,
- "updateDynamicIpAssignmentsSetting": true
}Returns a list of available IPs (unassigned, not reserved).
| subnetId required | integer Example: 1 The ID of the subnet. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 33,
- "ip": "10.10.10.31"
}, - {
- "...": "..."
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "subnet": "10.10.10.0",
- "cidr": 24,
- "netmask": "255.255.255.0",
- "gw": "10.10.10.1",
- "type": "v4",
- "priority": null,
- "rootSubnetId": null,
- "isExternalProvider": 0,
- "reserved": 0,
- "offer_if_server_has_tag": [ ],
- "dont_offer_if_server_has_tag": [ ],
- "only_if_server_has_remote_agents": [ ],
- "apply_restrictions_to_childs": 0,
- "dns_resolvers": [
- "65.108.22.20",
- "10.10.10.13"
], - "enable_switch_automation": null,
- "vlan_mode": null,
- "access_vlan_generation_mode": null,
- "static_access_vlan_id": null,
- "range_start_access_vlan_id": null,
- "range_end_access_vlan_id": null,
- "trunk_vlans": [ ],
- "vlan_layer3_mode": null,
- "vlan_layer3_ip": null,
- "reuse_access_vlan": null,
- "use_existing_port_access_vlan": null,
- "vlan_remove_layer3_ip_on_unassign": null,
- "userId": 1,
- "copy_network_automation_configuration_to_childs": null,
- "exclude_from_dynamic_ip_assignments": null,
- "rdnsAvailable": 1,
- "rdnsServerId": 1,
- "usageStatistics": {
- "free": 68,
- "reserved": 25,
- "used": 170,
- "totalIps": 263,
- "usedPercentage": 74.14
}, - "description": null,
- "subnetAttributes": {
- "hasChildSubnets": 0,
- "amountOfDirectChilds": 0,
- "hasSubIps": 1,
- "amountOfSubIps": 263,
- "type": "v4"
}, - "vlanAutomationAvailable": false,
- "ownerChain": [
- {
- "userId": 1,
- "name": "Mable White",
- "username": "adm"
}
], - "subnetOwnedByUser": true
}, - {
- "id": 2,
- "subnet": "64:ff9b:2::",
- "cidr": 48,
- "netmask": "",
- "gw": "64:ff9b:2::1",
- "type": "v6",
- "priority": null,
- "rootSubnetId": null,
- "isExternalProvider": 0,
- "reserved": 0,
- "offer_if_server_has_tag": [ ],
- "dont_offer_if_server_has_tag": [ ],
- "only_if_server_has_remote_agents": [ ],
- "apply_restrictions_to_childs": 0,
- "dns_resolvers": [
- "aaaa:bbbb::1",
- "aaaa:bbbc::2"
], - "enable_switch_automation": null,
- "vlan_mode": null,
- "access_vlan_generation_mode": null,
- "static_access_vlan_id": null,
- "range_start_access_vlan_id": null,
- "range_end_access_vlan_id": null,
- "trunk_vlans": [ ],
- "vlan_layer3_mode": null,
- "vlan_layer3_ip": null,
- "reuse_access_vlan": null,
- "use_existing_port_access_vlan": null,
- "vlan_remove_layer3_ip_on_unassign": null,
- "userId": 1,
- "copy_network_automation_configuration_to_childs": null,
- "exclude_from_dynamic_ip_assignments": null,
- "rdnsAvailable": 0,
- "rdnsServerId": null,
- "usageStatistics": {
- "free": 0,
- "reserved": 0,
- "used": 0,
- "totalIps": 0,
- "usedPercentage": 0
}, - "description": null,
- "subnetAttributes": {
- "hasChildSubnets": 0,
- "amountOfDirectChilds": 0,
- "hasSubIps": 0,
- "amountOfSubIps": 0,
- "type": "v6"
}, - "vlanAutomationAvailable": false,
- "ownerChain": [
- {
- "userId": 1,
- "name": "Mable White",
- "username": "adm"
}
], - "subnetOwnedByUser": true
}, - {
- "id": 3,
- "subnet": "64:ff9b:1::",
- "cidr": 48,
- "netmask": "",
- "gw": "64:ff9b:1::1",
- "type": "v6",
- "priority": null,
- "rootSubnetId": null,
- "isExternalProvider": 0,
- "reserved": 0,
- "offer_if_server_has_tag": [ ],
- "dont_offer_if_server_has_tag": [ ],
- "only_if_server_has_remote_agents": [ ],
- "apply_restrictions_to_childs": 0,
- "dns_resolvers": [
- "aaaa:bbbb::1",
- "aaaa:bbbc::2"
], - "enable_switch_automation": null,
- "vlan_mode": null,
- "access_vlan_generation_mode": null,
- "static_access_vlan_id": null,
- "range_start_access_vlan_id": null,
- "range_end_access_vlan_id": null,
- "trunk_vlans": [ ],
- "vlan_layer3_mode": null,
- "vlan_layer3_ip": null,
- "reuse_access_vlan": null,
- "use_existing_port_access_vlan": null,
- "vlan_remove_layer3_ip_on_unassign": null,
- "userId": 1,
- "copy_network_automation_configuration_to_childs": null,
- "exclude_from_dynamic_ip_assignments": null,
- "rdnsAvailable": 0,
- "rdnsServerId": null,
- "usageStatistics": {
- "free": 0,
- "reserved": 0,
- "used": 0,
- "totalIps": 0,
- "usedPercentage": 0
}, - "description": null,
- "subnetAttributes": {
- "hasChildSubnets": 0,
- "amountOfDirectChilds": 0,
- "hasSubIps": 0,
- "amountOfSubIps": 0,
- "type": "v6"
}, - "vlanAutomationAvailable": false,
- "ownerChain": [
- {
- "userId": 1,
- "name": "Mable White",
- "username": "adm"
}
], - "subnetOwnedByUser": true
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| subnet required | string Must be a valid IP address (network address). |
| cidr required | integer The CIDR notation, optional if netmask is set. |
| userId | integer |
| netmask required | string The netmask, optional if cidr is set. |
| gw required | string The gateway IP. |
| type required | string Must be one of v4 or v6. |
| description | string Subnet description. |
| priority | integer Subnet priority. Used for virtual server provisioning. |
| offer_if_server_has_tag | Array of strings |
| dont_offer_if_server_has_tag | Array of strings |
| only_if_server_has_remote_agents | Array of integers |
| dns_resolvers | Array of strings An unique array of IPv4 and/or IPv6 addresses. If not empty, a minimum of two is required and a maximum of three allowed. Defaults to Google DNS. |
| generateIps | boolean |
| enable_switch_automation | boolean |
| copy_network_automation_configuration_to_childs | boolean |
| vlan_mode | string Must be one of |
| access_vlan_generation_mode | string Must be one of |
| static_access_vlan_id | integer |
| range_start_access_vlan_id | integer Must be at least 1. |
| range_end_access_vlan_id | integer Must not be greater than 4094. |
| trunk_vlans | Array of integers Must be at least 1. Must not be greater than 4094. |
| vlan_layer3_mode | string Must be one of |
| vlan_layer3_ip | string |
| reuse_access_vlan | boolean |
| use_existing_port_access_vlan | boolean |
| vlan_remove_layer3_ip_on_unassign | boolean |
| reserve_gateway_ip | boolean Defaults to true if not set. |
| reserve_broadcast_ip | boolean Defaults to true if not set. |
| reserve_network_address | boolean Defaults to true if not set. |
| reserve_first_usable_ip | boolean Defaults to false if not set. |
| reserve_last_usable_ip | boolean Defaults to false if not set. |
| exclude_from_dynamic_ip_assignments | boolean |
{- "subnet": "10.10.11.0",
- "cidr": 24,
- "userId": 12,
- "netmask": "255.255.255.0",
- "gw": "10.10.11.1",
- "type": "v4",
- "description": null,
- "priority": null,
- "offer_if_server_has_tag": [
- "adipisci"
], - "dont_offer_if_server_has_tag": [
- "fugit"
], - "only_if_server_has_remote_agents": [
- 7
], - "dns_resolvers": [
- "1.1.1.1",
- "1.0.0.1",
- "8.8.8.8"
], - "generateIps": true,
- "enable_switch_automation": false,
- "copy_network_automation_configuration_to_childs": true,
- "vlan_mode": "access",
- "access_vlan_generation_mode": "fixed",
- "static_access_vlan_id": 8,
- "range_start_access_vlan_id": 1,
- "range_end_access_vlan_id": 2884,
- "trunk_vlans": [
- 1441
], - "vlan_layer3_mode": "custom",
- "vlan_layer3_ip": "est",
- "reuse_access_vlan": false,
- "use_existing_port_access_vlan": true,
- "vlan_remove_layer3_ip_on_unassign": true,
- "reserve_gateway_ip": null,
- "reserve_broadcast_ip": null,
- "reserve_network_address": null,
- "reserve_first_usable_ip": null,
- "reserve_last_usable_ip": null,
- "exclude_from_dynamic_ip_assignments": false
}| id required | integer Example: 1 The ID of the subnet. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "subnet": "10.10.10.0",
- "cidr": 24,
- "netmask": "255.255.255.0",
- "gw": "10.10.10.1",
- "type": "v4",
- "priority": null,
- "rootSubnetId": null,
- "isExternalProvider": 0,
- "reserved": 0,
- "offer_if_server_has_tag": [ ],
- "dont_offer_if_server_has_tag": [ ],
- "only_if_server_has_remote_agents": [ ],
- "apply_restrictions_to_childs": 0,
- "dns_resolvers": [
- "65.108.22.20",
- "10.10.10.13"
], - "enable_switch_automation": null,
- "vlan_mode": null,
- "access_vlan_generation_mode": null,
- "static_access_vlan_id": null,
- "range_start_access_vlan_id": null,
- "range_end_access_vlan_id": null,
- "trunk_vlans": [ ],
- "vlan_layer3_mode": null,
- "vlan_layer3_ip": null,
- "reuse_access_vlan": null,
- "use_existing_port_access_vlan": null,
- "vlan_remove_layer3_ip_on_unassign": null,
- "userId": 1,
- "copy_network_automation_configuration_to_childs": null,
- "exclude_from_dynamic_ip_assignments": null,
- "rdnsAvailable": 1,
- "rdnsServerId": 1,
- "usageStatistics": {
- "free": 68,
- "reserved": 25,
- "used": 170,
- "totalIps": 263,
- "usedPercentage": 74.14
}, - "description": null,
- "subnetAttributes": {
- "hasChildSubnets": 0,
- "amountOfDirectChilds": 0,
- "hasSubIps": 1,
- "amountOfSubIps": 263,
- "type": "v4"
}, - "vlanAutomationAvailable": false,
- "ownerChain": [
- {
- "userId": 1,
- "name": "Mable White",
- "username": "adm"
}
], - "subnetOwnedByUser": true
}, - "message": "success"
}| id required | integer Example: 1 The ID of the subnet. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| gw | string Must be a valid IP address. |
| userId | integer |
| description | string |
| priority | integer |
| offer_if_server_has_tag | Array of strings |
| dont_offer_if_server_has_tag | Array of strings |
| only_if_server_has_remote_agents | Array of integers |
| dns_resolvers | Array of strings An unique array of IPv4 and/or IPv6 addresses. If not empty, a minimum of two is required and a maximum of three allowed. |
| enable_switch_automation | boolean |
| copy_network_automation_configuration_to_childs | boolean |
| vlan_mode | string Must be one of |
| access_vlan_generation_mode | string Must be one of |
| static_access_vlan_id | integer |
| range_start_access_vlan_id | integer Must be at least 1. |
| range_end_access_vlan_id | integer Must not be greater than 4094. |
| trunk_vlans | Array of integers Must be at least 1. Must not be greater than 4094. |
| vlan_layer3_mode | string Must be one of |
| vlan_layer3_ip | string |
| reuse_access_vlan | boolean |
| use_existing_port_access_vlan | boolean |
| vlan_remove_layer3_ip_on_unassign | boolean |
| exclude_from_dynamic_ip_assignments | boolean |
{- "gw": "174.69.12.140",
- "userId": 14,
- "description": "officia",
- "priority": 18,
- "offer_if_server_has_tag": [
- "ipsa"
], - "dont_offer_if_server_has_tag": [
- "modi"
], - "only_if_server_has_remote_agents": [
- 8
], - "dns_resolvers": [
- "1.1.1.1",
- "1.0.0.1",
- "8.8.8.8"
], - "enable_switch_automation": true,
- "copy_network_automation_configuration_to_childs": true,
- "vlan_mode": "access",
- "access_vlan_generation_mode": "fixed",
- "static_access_vlan_id": 4,
- "range_start_access_vlan_id": 0,
- "range_end_access_vlan_id": 2610,
- "trunk_vlans": [
- 3142
], - "vlan_layer3_mode": "custom",
- "vlan_layer3_ip": "natus",
- "reuse_access_vlan": false,
- "use_existing_port_access_vlan": true,
- "vlan_remove_layer3_ip_on_unassign": false,
- "exclude_from_dynamic_ip_assignments": true
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 2,
- "name": "FTP #1",
- "provider": "ftp",
- "configuration": {
- "host": "10.10.3.1",
- "username": "backup",
- "password": "password",
- "port": 21,
- "ssl": true,
- "timeout": 10,
- "root": ""
}, - "last_backup_date": "2025-08-25 15:18:51",
- "last_status_message": "success",
- "retention": 1,
- "enabled": 0
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string |
| provider required | string Must be one of |
| configuration | Array of strings This field is required when |
| retention required | integer Must be at least 1. Must not be greater than 9999. |
| enabled required | boolean |
{- "name": "placeat",
- "provider": "local",
- "configuration": null,
- "retention": 4021,
- "enabled": true
}| id required | integer Example: 2 The ID of the storage. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 2,
- "name": "FTP #1",
- "provider": "ftp",
- "configuration": {
- "host": "10.10.3.1",
- "username": "backup",
- "password": "password",
- "port": 21,
- "ssl": true,
- "timeout": 10,
- "root": ""
}, - "last_backup_date": "2023-01-11 12:37:04",
- "last_status_message": "success",
- "retention": 1,
- "enabled": 0
}, - "message": "success"
}| id required | integer Example: 2 The ID of the storage. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name | string |
| configuration | array. |
| retention | integer Must be at least 1. Must not be greater than 9999. |
| enabled | boolean |
{- "name": "nihil",
- "configuration": null,
- "retention": 3521,
- "enabled": false
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "created_at": "2025-08-25T15:18:48.000000Z",
- "archive_size": 6351460,
- "script_log": "Mon 25 Aug 2025 03:18:48 PM UTC: [START] Creating backup of the local database\nMon 25 Aug 2025 03:18:48 PM UTC: [END] Creating backup of the local database\nMon 25 Aug 2025 03:18:48 PM UTC: [START] Copying essential files\nMon 25 Aug 2025 03:18:51 PM UTC: [END] Copying essential files\nMon 25 Aug 2025 03:18:51 PM UTC: [START] Creating backup archive\nMon 25 Aug 2025 03:18:51 PM UTC: [END] Creating backup archive\n/var/www/storage/system_backups/app-5b0ea187cb-1756135131.tar.gz",
- "tasks_log": [
- {
- "date": "2025-08-25 15:18:48",
- "message": "Task pending",
- "type": "info"
}, - {
- "date": "2025-08-25 15:18:48",
- "message": "Backup started",
- "type": "info"
}, - {
- "date": "2025-08-25 15:18:51",
- "message": "Backup archive created",
- "type": "info"
}, - {
- "date": "2025-08-25 15:18:51",
- "message": "local: Started retention task",
- "type": "info"
}, - {
- "date": "2025-08-25 15:18:51",
- "message": "local: Deleting file app-5b0ea187cb-1754323895.tar.gz",
- "type": "info"
}, - {
- "date": "2025-08-25 15:18:51",
- "message": "local: Retention task completed",
- "type": "info"
}, - {
- "date": "2025-08-25 15:18:51",
- "message": "Backup ended",
- "type": "info"
}
], - "current_status": "Executed",
- "result": "Done",
- "warning": 0,
- "error": 0,
- "end_date": "2025-08-25 15:18:51"
}
], - "message": "success"
}| backupTaskId required | integer Example: 1 The ID of the backup task. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "created_at": "2025-08-25T15:18:48.000000Z",
- "archive_size": 6351460,
- "script_log": "Mon 25 Aug 2025 03:18:48 PM UTC: [START] Creating backup of the local database\nMon 25 Aug 2025 03:18:48 PM UTC: [END] Creating backup of the local database\nMon 25 Aug 2025 03:18:48 PM UTC: [START] Copying essential files\nMon 25 Aug 2025 03:18:51 PM UTC: [END] Copying essential files\nMon 25 Aug 2025 03:18:51 PM UTC: [START] Creating backup archive\nMon 25 Aug 2025 03:18:51 PM UTC: [END] Creating backup archive\n/var/www/storage/system_backups/app-5b0ea187cb-1756135131.tar.gz",
- "tasks_log": [
- {
- "date": "2025-08-25 15:18:48",
- "message": "Task pending",
- "type": "info"
}, - {
- "date": "2025-08-25 15:18:48",
- "message": "Backup started",
- "type": "info"
}, - {
- "date": "2025-08-25 15:18:51",
- "message": "Backup archive created",
- "type": "info"
}, - {
- "date": "2025-08-25 15:18:51",
- "message": "local: Started retention task",
- "type": "info"
}, - {
- "date": "2025-08-25 15:18:51",
- "message": "local: Deleting file app-5b0ea187cb-1754323895.tar.gz",
- "type": "info"
}, - {
- "date": "2025-08-25 15:18:51",
- "message": "local: Retention task completed",
- "type": "info"
}, - {
- "date": "2025-08-25 15:18:51",
- "message": "Backup ended",
- "type": "info"
}
], - "current_status": "Executed",
- "result": "Done",
- "warning": 0,
- "error": 0,
- "end_date": "2025-08-25 15:18:51"
}, - "message": "success"
}| server_id required | integer Example: 20 The ID of the server. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1812,
- "userId": "1",
- "relationId": "1",
- "relationType": "servers",
- "rootId": "1",
- "rootType": "serverPower",
- "description": "Executed Power Action setPowerOff",
- "modelchanges": [ ],
- "userIp": "192.168.22.59",
- "visibleFor": "all",
- "loglevel": "info",
- "postdata": "",
- "created_at": "2022-10-21T16:56:21.000000Z",
- "updated_at": "2022-10-21T16:56:21.000000Z",
- "endpoint": "/api/servers/1/power/setPowerOff",
- "method": "GET",
- "requestSource": "web",
- "userDetails": {
- "username": "adm",
- "name": "Mrs. Adelia Murphy",
- "id": 1
}, - "meta": {
- "href": "/servers/1",
- "text": "server-01"
}
}
], - "message": "success"
}| limit required | integer Examples:
Optional parameter. Limit the returned results. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 2262,
- "userId": "1",
- "relationId": "",
- "relationType": "",
- "rootId": "1",
- "rootType": "subnet",
- "description": "Updated Subnet 10.10.10.0",
- "modelchanges": {
- "only_if_server_has_remote_agents": {
- "original": [
- 1
], - "changes": "[]"
}
}, - "userIp": "192.168.155.48",
- "visibleFor": "all",
- "loglevel": "info",
- "postdata": "{\"only_if_server_has_remote_agents\":[]}",
- "created_at": "2022-10-21T17:58:19.000000Z",
- "updated_at": "2022-10-21T17:58:19.000000Z",
- "endpoint": "/api/subnets/1",
- "method": "PUT",
- "requestSource": "web",
- "userDetails": {
- "username": "adm",
- "name": "Mrs. Adelia Murphy",
- "id": 1
}, - "meta": {
- "text": "ID: 1"
}
}
], - "message": "success"
}| agentId required | integer Examples:
Optional parameter. optional The ID of the agent. |
| limit required | integer Examples:
Optional parameter. Limit the returned results. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 7950,
- "userId": "system",
- "relationId": "",
- "relationType": "",
- "rootId": "1",
- "rootType": "servers",
- "description": "Aborted PXE provisioning",
- "modelchanges": "[]",
- "userIp": "-",
- "visibleFor": "admin",
- "loglevel": "info",
- "postdata": "\"\"",
- "created_at": "2022-10-21 16:56:18",
- "updated_at": "2022-10-21 16:56:18",
- "agentId": 1,
- "agentName": "Local Agent",
- "userDetails": {
- "username": "System",
- "name": "system",
- "id": "System"
}, - "meta": {
- "href": "/servers/1",
- "text": "server-001"
}
}
], - "message": "success"
}| limit required | integer Examples:
Optional parameter. Limit the returned results. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1810,
- "userId": "system",
- "relationId": "",
- "relationType": "",
- "rootId": "1",
- "rootType": "agents",
- "description": "Regenerated DHCP Configuration",
- "modelchanges": [ ],
- "userIp": "-",
- "visibleFor": "admin",
- "loglevel": "info",
- "postdata": "",
- "created_at": "2022-10-21T16:56:19.000000Z",
- "updated_at": "2022-10-21T16:56:19.000000Z",
- "endpoint": "/api/servers/1/provisioning/stopReinstallation",
- "method": "GET",
- "requestSource": "web",
- "userDetails": {
- "username": "System",
- "name": "system",
- "id": "System"
}, - "meta": {
- "href": "",
- "text": ""
}
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 2,
- "setting": "delete_rdns_entry_when_delete_ip",
- "value": "on",
- "created_at": "2022-10-21T09:43:03.000000Z",
- "updated_at": "2022-10-21T09:43:03.000000Z"
}, - {
- "...": "..."
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| settings required | object Key value array of settings. |
{- "settings": [
- {
- "delete_rdns_entry_when_delete_ip": "off"
}
]
}| settingname required | string Example: default_datetime_format The name of the setting. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": "DD.MM.YYYY HH:mm:ss",
- "message": "success"
}Get task status and details for polling operations. Currently only used for server backups and snapshots.
Get details of a specific task.
| id required | integer Example: 1 The ID of the task. |
| task required | integer Example: 123 The ID of the task. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "action": "createSnapshot",
- "status": "running",
- "progress": 0,
- "message": null,
- "created_at": "2025-08-25T15:22:31.000000Z",
- "updated_at": "2025-08-25T15:22:31.000000Z"
}, - "message": "success"
}| impersonateUserId required | integer Example: 2 The user ID which you want to impersonate. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| userId | integer |
| withOwnedUsersData | boolean |
| limitOwnedUsersDataToIds | Array of integers |
{- "userId": 15,
- "withOwnedUsersData": false,
- "limitOwnedUsersDataToIds": [
- 1,
- 10,
- 20
]
}Receive information about the current logged in user.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "id": 1,
- "name": "Dr. Eva Flatley",
- "timezone": "Europe/Berlin",
- "datetimeFormat": "DD.MM.YYYY HH:mm:ss",
- "darkmode": null,
- "sshkeys": [ ],
- "prefs": [ ],
- "currentIp": "10.12.13.14",
- "language": "en-us",
- "isSharedAccess": false,
- "sharedUserId": null,
- "realOrSharedUserId": 1,
- "permissions": [
- "system.version",
- "system.apiOutput.param.app_version",
- "..."
]
}| impersonateUserId required | integer Example: 2 Stop impersonating the user ID. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "message": "success"
}| user required | integer Example: 1 The ID of the user. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "name": "WHMCS",
- "created_at": "2022-03-27T10:24:42.000000Z",
- "last_used": "2025-08-25T15:29:14.000000Z",
- "allowedHosts": [ ]
}, - {
- "id": 2,
- "name": "Docs auth",
- "created_at": "2022-10-27T06:48:44.000000Z",
- "last_used": null,
- "allowedHosts": [ ]
}
], - "message": "success"
}| user required | integer Example: 1 The ID of the user. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string |
| allowedHosts | Array of strings Must be an array of valid IP addresses. Usage will be restricted to the specified IPs. Leave empty to allow all IPs. |
{- "name": "recusandae",
- "allowedHosts": [
- "10.10.12.10"
]
}| user required | integer Example: 1 The ID of the user. |
| id required | integer Example: 2 The ID of the token. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "name": "WHMCS",
- "created_at": "2022-03-27T10:24:42.000000Z",
- "last_used": "2025-08-25T15:29:14.000000Z",
- "allowedHosts": [ ]
}, - "message": "success"
}| user required | integer Example: 1 The ID of the user. |
| id required | integer Example: 2 The ID of the token. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| user required | integer Example: 1 The ID of the user. |
| id required | integer Example: 2 The ID of the token. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string |
| allowedHosts | Array of strings Must be an array of valid IP addresses. Usage will be restricted to the specified IPs. Leave empty to allow all IPs. |
{- "name": "ea",
- "allowedHosts": [
- "10.10.12.10"
]
}| user required | integer Example: 1 The ID of the user. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "created_at": "2025-08-25T15:18:48.000000Z",
- "name": "Ansible",
- "pubkey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCPMKW3XDPL0k257n8IBrmJrhSTOfczRjD5V5nou8uYCg1HJHnaCtdgPPdCQPfg5jYVKP5MCsgFBbfCWXv8GgDZAI905Yel46ZcRBkC0JKVkkc53I+wS/zmwfxXzvkV6GRbCISnc1n98+wE4z+Qtg9FV+VAhJzinTCYFo9TV7hwkz7V5e+pj9/5NgfVbFy0H8B2aXqp1F6A7ENBXNrbejXdTyo3lVIq1/tHKfv6mcVmR4b4w7EVI4bvDMDdHeEKfMCvDUG359ElVp7gla5M0kohCCWtgLSchR/6NTEIa6rAFhsmCHCfIE6q959Ff+KUR40e8yzulZtp3NPu8ukUjJtkBA5c4lAE2UUNldyqkWiE8sWAr+GlMjU0UkB3xzB0ID53EKH93WoIapjAnpDYxah8dOdyfk2cSmkdSe8DFNLeWffi8j3Ea9XeCQnMa/VTcSarspnCKL8RG5LL8vGy//0Cs6QXQDn/gCTR2McTPbiiks2sFVWCaIIbgkTs9fGFuhM= root@ansible",
- "userid": 1,
- "description": "Ansible SSH Key"
}
], - "message": "success"
}| user required | integer Example: 1 The ID of the user. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string |
| pubkey required | string The public SSH key. |
| description | string |
{- "name": "reiciendis",
- "pubkey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCPMKW3XDPL0k257n8IBrmJrhSTOfczRjD5V5nou8uYCg1HJHnaCtdgPPdCQPfg5jYVKP5MCsgFBbfCWXv8GgDZAI905Yel46ZcRBkC0JKVkkc53I+wS/zmwfxXzvkV6GRbCISnc1n98+wE4z+Qtg9FV+VAhJzinTCYFo9TV7hwkz7V5e+pj9/5NgfVbFy0H8B2aXqp1F6A7ENBXNrbejXdTyo3lVIq1/tHKfv6mcVmR4b4w7EVI4bvDMDdHeEKfMCvDUG359ElVp7gla5M0kohCCWtgLSchR/6NTEIa6rAFhsmCHCfIE6q959Ff+KUR40e8yzulZtp3NPu8ukUjJtkBA5c4lAE2UUNldyqkWiE8sWAr+GlMjU0UkB3xzB0ID53EKH93WoIapjAnpDYxah8dOdyfk2cSmkdSe8DFNLeWffi8j3Ea9XeCQnMa/VTcSarspnCKL8RG5LL8vGy//0Cs6QXQDn/gCTR2McTPbiiks2sFVWCaIIbgkTs9fGFuhM=",
- "description": "delectus"
}| user required | integer Example: 1 The ID of the user. |
| id required | integer Example: 1 The ID of the SSH key. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "created_at": "2025-08-25T15:18:48.000000Z",
- "name": "Ansible",
- "pubkey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCPMKW3XDPL0k257n8IBrmJrhSTOfczRjD5V5nou8uYCg1HJHnaCtdgPPdCQPfg5jYVKP5MCsgFBbfCWXv8GgDZAI905Yel46ZcRBkC0JKVkkc53I+wS/zmwfxXzvkV6GRbCISnc1n98+wE4z+Qtg9FV+VAhJzinTCYFo9TV7hwkz7V5e+pj9/5NgfVbFy0H8B2aXqp1F6A7ENBXNrbejXdTyo3lVIq1/tHKfv6mcVmR4b4w7EVI4bvDMDdHeEKfMCvDUG359ElVp7gla5M0kohCCWtgLSchR/6NTEIa6rAFhsmCHCfIE6q959Ff+KUR40e8yzulZtp3NPu8ukUjJtkBA5c4lAE2UUNldyqkWiE8sWAr+GlMjU0UkB3xzB0ID53EKH93WoIapjAnpDYxah8dOdyfk2cSmkdSe8DFNLeWffi8j3Ea9XeCQnMa/VTcSarspnCKL8RG5LL8vGy//0Cs6QXQDn/gCTR2McTPbiiks2sFVWCaIIbgkTs9fGFuhM= root@ansible",
- "userid": 1,
- "description": "Ansible SSH Key"
}, - "message": "success"
}| user required | integer Example: 1 The ID of the user. |
| id required | integer Example: 1 The ID of the SSH key. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name | string |
| pubkey | string The new public SSH key. |
| description | string |
{- "name": "fugit",
- "pubkey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCPMKW3XDPL0k257n8IBrmJrhSTOfczRjD5V5nou8uYCg1HJHnaCtdgPPdCQPfg5jYVKP5MCsgFBbfCWXv8GgDZAI905Yel46ZcRBkC0JKVkkc53I+wS/zmwfxXzvkV6GRbCISnc1n98+wE4z+Qtg9FV+VAhJzinTCYFo9TV7hwkz7V5e+pj9/5NgfVbFy0H8B2aXqp1F6A7ENBXNrbejXdTyo3lVIq1/tHKfv6mcVmR4b4w7EVI4bvDMDdHeEKfMCvDUG359ElVp7gla5M0kohCCWtgLSchR/6NTEIa6rAFhsmCHCfIE6q959Ff+KUR40e8yzulZtp3NPu8ukUjJtkBA5c4lAE2UUNldyqkWiE8sWAr+GlMjU0UkB3xzB0ID53EKH93WoIapjAnpDYxah8dOdyfk2cSmkdSe8DFNLeWffi8j3Ea9XeCQnMa/VTcSarspnCKL8RG5LL8vGy//0Cs6QXQDn/gCTR2McTPbiiks2sFVWCaIIbgkTs9fGFuhM=",
- "description": "illo"
}| user required | integer Example: 1 The ID of the user. |
| id required | integer Example: 1 The ID of the SSH key. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| user required | integer Example: 1 The user. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| code required | string |
{- "code": "quasi"
}| user required | integer Example: 1 The ID of the user. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": "ok",
- "message": "success"
}Generates an one-time login link. Login via: https://domain.com/tokenLogin/$authToken
| user required | integer Example: 3 The ID of the user. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| endpoint | string The endpoint where the browser will be redirected after opening the login URL. |
| validForSeconds | integer |
{- "endpoint": "/servers",
- "validForSeconds": 9
}{- "result": {
- "authToken": "1e4304d1ff81b3194c288a39e954d1122efc80a5a198ac05a6b9db21409d8223ed4cb44179d075eae08d6941dde2738bcb17",
- "validUntil": 1666430700
}, - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 3,
- "name": "Ellie Mraz",
- "email": "233592_celine67@example.org",
- "two_factor_confirmed": 0,
- "created_at": "2022-10-21T19:28:24.000000Z",
- "root_owner": 1,
- "username": "keenan.rutherford1929810",
- "accountstatus": "enabled",
- "timezone": "Europe/Berlin",
- "datetimeFormat": "DD.MM.YYYY HH:mm:ss",
- "darkmode": null,
- "prefs": [ ],
- "allowedHosts": [
- "10.12.13.10"
], - "isSharedAccess": false,
- "sharedUserId": null,
- "realOrSharedUserId": 3,
- "role_id": 3,
- "role_name": "user ",
- "root_owner_username": "adm",
- "lastlogin": {
- "date": "Never",
- "ip": "-"
}, - "canCreateSubUsers": 0,
- "description": null,
- "subUsers": [ ],
- "permissions": [ ]
}, - {
- "id": 2,
- "name": "Magnus Kessler",
- "email": "421483_toy.gerhold@example.net",
- "two_factor_confirmed": 0,
- "created_at": "2022-10-21T19:28:24.000000Z",
- "root_owner": 1,
- "username": "fadel.cecil2797368",
- "accountstatus": "enabled",
- "timezone": "Europe/Berlin",
- "datetimeFormat": "DD.MM.YYYY HH:mm:ss",
- "darkmode": null,
- "prefs": [ ],
- "allowedHosts": [ ],
- "isSharedAccess": false,
- "sharedUserId": null,
- "realOrSharedUserId": 2,
- "role_id": 2,
- "role_name": "reseller ",
- "root_owner_username": "adm",
- "lastlogin": {
- "date": "Never",
- "ip": "-"
}, - "canCreateSubUsers": 1,
- "description": null,
- "subUsers": [ ],
- "permissions": [ ]
}, - {
- "id": 1,
- "name": "Viva Botsford",
- "email": "admin@admin.com",
- "two_factor_confirmed": 0,
- "created_at": "2022-10-21T19:28:24.000000Z",
- "root_owner": 1,
- "username": "adm",
- "accountstatus": "enabled",
- "isParentAccountSuspended": false,
- "timezone": "Europe/Berlin",
- "datetimeFormat": "DD.MM.YYYY HH:mm:ss",
- "darkmode": null,
- "prefs": [ ],
- "allowedHosts": [ ],
- "isSharedAccess": false,
- "sharedUserId": null,
- "realOrSharedUserId": 1,
- "role_id": 1,
- "role_name": "admin ",
- "root_owner_username": "adm",
- "lastlogin": {
- "ip": "127.0.0.1",
- "date": "2022-10-21T19:32:52.000000Z"
}, - "canCreateSubUsers": 1,
- "description": null,
- "subUsers": {
- "1": 2,
- "2": 3,
- "3": 4,
- "4": 5,
- "5": 6,
- "6": 7,
- "7": 8,
- "8": 9,
- "9": 10,
- "10": 12
}, - "permissions": [ ]
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name required | string |
string Must be a valid email address. | |
| password required | string |
| root_owner | integer |
| description | string |
| username required | string Must not be greater than 255 characters. |
| role_id | integer |
| accountstatus | string Must be one of |
| timezone | string Must be a valid time zone, such as |
| datetimeFormat | string |
| darkmode | string Must be one of |
| allowedHosts | Array of strings Must be an array of valid IP addresses. Login will be restricted to the specified IPs. Leave empty to allow all IPs. |
| language | string |
| sessionTimeout | string |
{- "name": "iste",
- "email": "ismael59@example.org",
- "password": "similique",
- "root_owner": 10,
- "description": "nam",
- "username": "zuskpxhvdkxhnytwumiwzhnehokvxqrvqifveopjgfzjrmiriskpczuxlmajdotbnipbctcgnxqzrcwpmgdywkfmvhklmesbcvlqjwcnhhmlfnmnypcaohmomdfngoygyagnsbydmyradyhilvsypjztyovlielivlfdwnughxsklnxknyxwgtipjqobulrrdexsibcprbapnriekmgcjbcccbmdrnyemduvyalhmflehwbufxgzajreawcqxch",
- "role_id": 14,
- "accountstatus": "disabled",
- "timezone": "Asia/Macau",
- "datetimeFormat": "nisi",
- "darkmode": "0",
- "allowedHosts": [
- "consectetur"
], - "language": "qui",
- "sessionTimeout": null
}| id required | integer Example: 1 The ID of the user. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "name": "Dr. Eva Flatley",
- "email": "admin@admin.com",
- "two_factor_confirmed": 0,
- "created_at": "2022-10-20T21:38:15.000000Z",
- "root_owner": 1,
- "username": "adm",
- "accountstatus": "enabled",
- "timezone": "Europe/Berlin",
- "datetimeFormat": "DD.MM.YYYY HH:mm:ss",
- "darkmode": null,
- "prefs": [ ],
- "allowedHosts": [
- "10.12.10.13"
], - "isSharedAccess": false,
- "sharedUserId": null,
- "realOrSharedUserId": 1,
- "role_id": 1,
- "role_name": "admin ",
- "root_owner_username": "adm",
- "lastlogin": {
- "ip": "192.168.166.5",
- "date": "2022-10-20T22:12:21.000000Z"
}, - "canCreateSubUsers": 1,
- "description": null,
- "subUsers": {
- "1": 2,
- "2": 3
}, - "roles": [
- [ ]
], - "permissions": [
- "inventorycomponents.index",
- "inventorycomponents.show",
- "..."
]
}, - "message": "success"
}| id required | integer Example: 1 The ID of the user. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| name | string |
string Must be a valid email address. | |
| password | string |
| root_owner | integer |
| description | string |
| username | string Must not be greater than 255 characters. |
| accountstatus | string Must be one of |
| role_id | integer |
| timezone | string Must be a valid time zone, such as |
| datetimeFormat | string |
| darkmode | string Must be one of |
| prefs | object Table prefs. |
| allowedHosts | Array of strings Must be an array of valid IP addresses. Login will be restricted to the specified IPs. Leave empty to allow all IPs. |
| language | string |
| sessionTimeout | string |
{- "name": "sed",
- "email": "tess61@example.com",
- "password": "placeat",
- "root_owner": 8,
- "description": "soluta",
- "username": "spwbtxbgipbtdheoyjyjsvamcgtzfyhajlynvsarzhehmekgowoghkwdkmxrzjbmowhfjclwgxrsztnzxcsctyijszwwsyooxzkzanrstbajdpbpramcuuvfappkdktddeifvzfxxspskozogavteorcvka",
- "accountstatus": "enabled",
- "role_id": 8,
- "timezone": "Europe/Budapest",
- "datetimeFormat": "ratione",
- "darkmode": "1",
- "prefs": null,
- "allowedHosts": [
- "quidem"
], - "language": "quaerat",
- "sessionTimeout": null
}| user_id required | integer Example: 6 The ID of the user. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "created_at": "2025-08-25T15:18:51.000000Z",
- "ip": "127.0.0.1",
- "userAgent": "Symfony"
}, - {
- "created_at": "2025-08-25T15:18:48.000000Z",
- "ip": "192.168.174.20",
- "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36"
}
], - "message": "success"
}| user_id required | integer Example: 9 The ID of the user. |
| limit required | integer Examples:
Optional parameter. Limit the returned results. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 479,
- "request": "{\"tags\":[\"Internal\",\"New\"]}",
- "response": "{\"result\":{\"id\":61,\"hostname\":\"hostname.com\",\"...\":\"...\"}",
- "endpoint": "/api/servers/61",
- "method": "PUT",
- "statuscode": "200",
- "ip": "192.168.174.100",
- "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
- "created_at": "2022-10-20T22:03:55.000000Z",
- "requestSource": "web"
}
], - "message": "success"
}Verify the login details of a user account via the API.
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| identify required | string The username or email of the user. |
| password required | string The password of the user. |
| two_factor_code | string The two-factor authentication code. |
{- "identify": "magni",
- "password": "quia",
- "two_factor_code": "123456"
}{- "result": {
- "result": "success",
- "twoFactorAuthEnabled": false,
- "twoFactorAuthPassed": null,
- "userId": 1
}, - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "created_at": "2022-10-21T09:43:54.000000Z",
- "updated_at": "2022-10-21T09:43:54.000000Z",
- "planname": "VPS PLAN #1",
- "planconfig": {
- "bios": "seabios",
- "display": "std",
- "machine": "pc-i440fx",
- "scsi_controller": "virtio-scsi-pci",
- "qemu_version": "6.0",
- "os_type": "l26",
- "ifaces": {
- "iface0": {
- "network_type": "virtio",
- "interface": "vmbr1",
- "subnets": [
- 1
], - "amount_ipv4": "1",
- "firewall": true,
- "ipspoof_filter": true
}
}, - "disks": {
- "disk0": {
- "disk_bus": "scsi",
- "disk_cache": "none",
- "discard": 1,
- "storage": "local",
- "disk_size": "20",
- "disk_format": "qcow2"
}
}, - "cpu_type": "kvm64",
- "cpu_flags": [
- "aes"
], - "cpu_units": 1024,
- "memory_ballooning": 1,
- "features": {
- "enable_console_access": 1,
- "enable_power_control": 1,
- "auto_sync_hw": 1
}, - "firewall": {
- "policy_in": "ACCEPT",
- "policy_out": "ACCEPT"
}, - "agent": {
- "pxeAgent": 1,
- "pxe_iface": "iface0",
- "dhcpAgent": 1
}, - "sockets": "2",
- "cores": "4",
- "memory": "1024",
- "memory_min": "1024",
- "node": "host-01",
- "startVmid": "9000",
- "additionalHardware": {
- "cdrom": {
- "cdrom0": {
- "bus": "none"
}
}
}, - "backup": {
- "enabled": 0,
- "availableBackupStorages": [
- "pbs-01",
- "local"
], - "defaultBackupStorage": null,
- "defaultBackupMode": null,
- "defaultBackupCompression": null,
- "maxBackups": "5"
}, - "snapshot": {
- "enabled": false,
- "maxSnapshots": null
}
}, - "providerId": 1,
- "summary": {
- "totalDiskSpace": 20,
- "cpucores": 8,
- "memory": "1024",
- "disks": [
- "20"
], - "node": "host-01",
- "provider": {
- "name": "proxmox-cluster",
- "provider": "proxmox",
- "id": 1
}, - "virtualization": "Proxmox KVM"
}
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| planname required | string |
| planconfig required | object The plan configuration. |
| providerId required | integer |
{- "planname": "et",
- "planconfig": [
- {
- "information": "See GET api/virtualization/vpsplans/{id} for a list of values - values may differ depending on the virtualization platform"
}
], - "providerId": 3
}| id required | integer Example: 1 The ID of the VPS plan. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "created_at": "2022-10-21T09:43:54.000000Z",
- "updated_at": "2022-10-21T09:43:54.000000Z",
- "planname": "VPS PLAN #1",
- "planconfig": {
- "bios": "seabios",
- "display": "std",
- "machine": "pc-i440fx",
- "scsi_controller": "virtio-scsi-pci",
- "qemu_version": "6.0",
- "os_type": "l26",
- "ifaces": {
- "iface0": {
- "network_type": "virtio",
- "interface": "vmbr1",
- "subnets": [
- 1
], - "amount_ipv4": "1",
- "firewall": true,
- "ipspoof_filter": true
}
}, - "disks": {
- "disk0": {
- "disk_bus": "scsi",
- "disk_cache": "none",
- "discard": 1,
- "storage": "local",
- "disk_size": "20",
- "disk_format": "qcow2"
}
}, - "cpu_type": "kvm64",
- "cpu_flags": [
- "aes"
], - "cpu_units": 1024,
- "memory_ballooning": 1,
- "features": {
- "enable_console_access": 1,
- "enable_power_control": 1,
- "auto_sync_hw": 1
}, - "firewall": {
- "policy_in": "ACCEPT",
- "policy_out": "ACCEPT"
}, - "agent": {
- "pxeAgent": 1,
- "pxe_iface": "iface0",
- "dhcpAgent": 1
}, - "sockets": "2",
- "cores": "4",
- "memory": "1024",
- "memory_min": "1024",
- "node": "host-01",
- "startVmid": "9000"
}, - "additionalHardware": {
- "cdrom": {
- "cdrom0": {
- "bus": "none"
}
}
}, - "backup": {
- "enabled": 0,
- "availableBackupStorages": [
- "pbs-01",
- "local"
], - "defaultBackupStorage": null,
- "defaultBackupMode": null,
- "defaultBackupCompression": null,
- "maxBackups": "5"
}, - "snapshot": {
- "enabled": false,
- "maxSnapshots": null
}, - "providerId": 1
}, - "message": "success"
}| id required | integer Example: 1 The ID of the VPS plan. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| planname required | string |
| planconfig required | object The plan configuration. |
| providerId required | integer |
{- "planname": "omnis",
- "planconfig": [
- {
- "information": "See GET api/virtualization/vpsplans/{id} for a list of values - values may differ depending on the virtualization platform"
}
], - "providerId": 15
}| vpsplan required | integer Example: 1 The ID of the VPS plan. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 211,
- "created_at": "2022-10-21T19:01:52.000000Z",
- "updated_at": "2022-10-21T19:01:52.000000Z",
- "planname": "VPS PLAN #1 (Duplicated)",
- "planconfig": {
- "bios": "seabios",
- "display": "std",
- "machine": "pc-i440fx",
- "scsi_controller": "virtio-scsi-pci",
- "qemu_version": "6.0",
- "os_type": "l26",
- "ifaces": {
- "iface0": {
- "network_type": "virtio",
- "interface": "vmbr1",
- "subnets": [
- 1
], - "amount_ipv4": "1",
- "firewall": true,
- "ipspoof_filter": true
}
}, - "disks": {
- "disk0": {
- "disk_bus": "scsi",
- "disk_cache": "none",
- "discard": 1,
- "storage": "local",
- "disk_size": "20",
- "disk_format": "qcow2"
}
}, - "cpu_type": "kvm64",
- "cpu_flags": [
- "aes"
], - "cpu_units": 1024,
- "memory_ballooning": 1,
- "features": {
- "enable_console_access": 1,
- "enable_power_control": 1,
- "auto_sync_hw": 1
}, - "firewall": {
- "policy_in": "ACCEPT",
- "policy_out": "ACCEPT"
}, - "agent": {
- "pxeAgent": 1,
- "pxe_iface": "iface0",
- "dhcpAgent": 1
}, - "sockets": "2",
- "cores": "4",
- "memory": "1024",
- "memory_min": "1024",
- "node": "host03",
- "startVmid": "9000"
}, - "providerId": 1
}, - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| providerId required | integer |
| cpuPriority | number Must be at least 0.01. Must not be greater than 99999. |
| cpuRequireIdlePercentage | number Must be at least 0.01. Must not be greater than 100. |
| storagePriority | number Must be at least 0.01. Must not be greater than 99999. |
| storageReserveFreeAmount | integer |
| ramPriority | number Must be at least 0.01. Must not be greater than 99999. |
| ramReserveFreeAmount | integer |
| vmCountPriority | number Must be at least 0.01. Must not be greater than 99999. |
| vmMaxAmount | integer Must be at least 1. Must not be greater than 999999. |
| vmMaxAmountPerCore | number Must be at least 0.01. Must not be greater than 99999. |
| diskSize | integer |
| ramSize | integer |
| nodeMustMatchRegex | string Must not be greater than 65535 characters. |
| nodeMustNotMatchRegex | string Must not be greater than 65535 characters. |
Array of objects |
{- "providerId": 11,
- "cpuPriority": 38711,
- "cpuRequireIdlePercentage": 52,
- "storagePriority": 91940,
- "storageReserveFreeAmount": 20,
- "ramPriority": 90929,
- "ramReserveFreeAmount": 14,
- "vmCountPriority": 64617,
- "vmMaxAmount": 788215,
- "vmMaxAmountPerCore": 15436,
- "diskSize": 4,
- "ramSize": 19,
- "nodeMustMatchRegex": "/^node[0-9]+$/",
- "nodeMustNotMatchRegex": "/^gluster[0-9]+$/",
- "storages": [
- [ ]
]
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": [
- {
- "id": 1,
- "created_at": "2025-08-25T15:18:51.000000Z",
- "updated_at": "2025-08-25T15:18:51.000000Z",
- "planname": "Balancer #1",
- "cpuPriority": 2,
- "cpuRequireIdlePercentage": 30,
- "storagePriority": 1,
- "storageReserveFreeAmount": 20,
- "ramPriority": 1.5,
- "ramReserveFreeAmount": 10,
- "vmCountPriority": 1,
- "vmMaxAmount": 50,
- "nodeMustMatchRegex": "/^node[0-9]+$/",
- "nodeMustNotMatchRegex": "/^gluster[0-9]+$/",
- "vmMaxAmountPerCore": null
}
], - "message": "success"
}| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| planname required | string Must not be greater than 255 characters. |
| cpuPriority | number Must be at least 0.01. Must not be greater than 99999. |
| cpuRequireIdlePercentage | number Must be at least 0.01. Must not be greater than 100. |
| storagePriority | number Must be at least 0.01. Must not be greater than 99999. |
| storageReserveFreeAmount | integer |
| ramPriority | number Must be at least 0.01. Must not be greater than 99999. |
| ramReserveFreeAmount | integer |
| vmCountPriority | number Must be at least 0.01. Must not be greater than 99999. |
| vmMaxAmount | integer Must be at least 1. Must not be greater than 999999. |
| vmMaxAmountPerCore | number Must be at least 0.01. Must not be greater than 99999. |
| nodeMustMatchRegex | string Must not be greater than 65535 characters. |
| nodeMustNotMatchRegex | string Must not be greater than 65535 characters. |
{- "planname": "aqcexvwfrgerkyajqjkodwvosabtrihnrgjwahiztwmqnqmkultnxxwckrcxmskkcicmtmkewgkhxvssblqpeyrtttowepxdefkkvhztdbpnoovwvfhsqdhvpxmzkv",
- "cpuPriority": 33401,
- "cpuRequireIdlePercentage": 42,
- "storagePriority": 17793,
- "storageReserveFreeAmount": 1,
- "ramPriority": 2739,
- "ramReserveFreeAmount": 16,
- "vmCountPriority": 23647,
- "vmMaxAmount": 800077,
- "vmMaxAmountPerCore": 22710,
- "nodeMustMatchRegex": "/^node[0-9]+$/",
- "nodeMustNotMatchRegex": "/^gluster[0-9]+$/"
}| id required | integer Example: 1 The ID of the VPS balancer plan. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
{- "result": {
- "id": 1,
- "created_at": "2025-08-25T15:18:51.000000Z",
- "updated_at": "2025-08-25T15:18:51.000000Z",
- "planname": "Balancer #1",
- "cpuPriority": 2,
- "cpuRequireIdlePercentage": 30,
- "storagePriority": 1,
- "storageReserveFreeAmount": 20,
- "ramPriority": 1.5,
- "ramReserveFreeAmount": 10,
- "vmCountPriority": 1,
- "vmMaxAmount": 50,
- "nodeMustMatchRegex": "/^node[0-9]+$/",
- "nodeMustNotMatchRegex": "/^gluster[0-9]+$/",
- "vmMaxAmountPerCore": null
}, - "message": "success"
}| id required | integer Example: 1 The ID of the VPS balancer plan. |
| Authorization | string Example: Bearer {YOUR_AUTH_KEY} |
| Content-Type | string Example: application/json |
| Accept | string Example: application/json |
| planname | string Must not be greater than 255 characters. |
| cpuPriority | number Must be at least 0.01. Must not be greater than 99999. |
| cpuRequireIdlePercentage | number Must be at least 0.01. Must not be greater than 100. |
| storagePriority | number Must be at least 0.01. Must not be greater than 99999. |
| storageReserveFreeAmount | integer |
| ramPriority | number Must be at least 0.01. Must not be greater than 99999. |
| ramReserveFreeAmount | integer |
| vmCountPriority | number Must be at least 0.01. Must not be greater than 99999. |
| vmMaxAmount | integer Must be at least 1. Must not be greater than 999999. |
| vmMaxAmountPerCore | number Must be at least 0.01. Must not be greater than 99999. |
| nodeMustMatchRegex | string Must not be greater than 65535 characters. |
| nodeMustNotMatchRegex | string Must not be greater than 65535 characters. |
{- "planname": "dgbnueceljwnmbmenrtckzzxguweoiqjlenvtimalolhqfcmqgkdmraeqkwrzppsloqbludqnyheziqymllwlvdevyrejnkteiazsrgmkxjcnylqkotgxs",
- "cpuPriority": 86490,
- "cpuRequireIdlePercentage": 97,
- "storagePriority": 94664,
- "storageReserveFreeAmount": 16,
- "ramPriority": 70052,
- "ramReserveFreeAmount": 5,
- "vmCountPriority": 22512,
- "vmMaxAmount": 800937,
- "vmMaxAmountPerCore": 11417,
- "nodeMustMatchRegex": "/^node[0-9]+$/",
- "nodeMustNotMatchRegex": "/^gluster[0-9]+$/"
}