Servers

Retrieve a server

GET/servers/{serverId}

Full server detail. With remoteState=true the hypervisor is also queried for the live power state.

Request

Authorization
Provide your bearer token in the Authorization header when making requests to protected resources.
Example: Authorization: Bearer ********************
Path Params#
serverIdinteger#required

A valid server ID as shown in VirtFusion.

Example: 1
Query Params#
remoteStateboolean#

Return the remote state of the server.

Example: false

Request Code Samples

curl --location --request GET 'https://cp.domain.com/api/v1/servers/1?remoteState=false' \
--header 'Authorization: Bearer <token>' \
--header 'Accept: application/json'
wget --quiet --output-document=- \
  --method=GET \
  --header='Authorization: Bearer <token>' \
  --header='Accept: application/json' \
  'https://cp.domain.com/api/v1/servers/1?remoteState=false'
http GET 'https://cp.domain.com/api/v1/servers/1?remoteState=false' \
  'Authorization: Bearer <token>' \
  'Accept: application/json'
const response = await fetch("https://cp.domain.com/api/v1/servers/1?remoteState=false", {
    method: "GET",
    headers: {
        "Authorization": "Bearer <token>",
        "Accept": "application/json",
    },
});

const data = await response.json();
console.log(response.status, data);
import axios from "axios";

const response = await axios({
    method: "get",
    url: "https://cp.domain.com/api/v1/servers/1?remoteState=false",
    headers: {
        "Authorization": "Bearer <token>",
        "Accept": "application/json",
    },
});

console.log(response.status, response.data);
const https = require("https");

const req = https.request({
    hostname: "cp.domain.com",
    path: "/api/v1/servers/1?remoteState=false",
    method: "GET",
    headers: {
        "Authorization": "Bearer <token>",
        "Accept": "application/json",
    },
}, (res) => {
    let data = "";
    res.on("data", (chunk) => (data += chunk));
    res.on("end", () => console.log(res.statusCode, JSON.parse(data)));
});

req.on("error", (err) => console.error(err));
req.end();
import requests

url = "https://cp.domain.com/api/v1/servers/1?remoteState=false"
headers = {
    "Authorization": "Bearer <token>",
    "Accept": "application/json",
}

response = requests.request("GET", url, headers=headers)

print(response.status_code)
print(response.json())
import http.client
import json

conn = http.client.HTTPSConnection("cp.domain.com")
headers = {
    "Authorization": "Bearer <token>",
    "Accept": "application/json",
}

conn.request("GET", "/api/v1/servers/1?remoteState=false", None, headers)
response = conn.getresponse()

print(response.status)
print(json.loads(response.read()))
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://cp.domain.com/api/v1/servers/1?remoteState=false',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => array(
        'Authorization: Bearer <token>',
        'Accept: application/json'
    ),
));

$response = curl_exec($curl);
curl_close($curl);

echo $response;
<?php

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client();

$response = $client->request('GET', 'https://cp.domain.com/api/v1/servers/1?remoteState=false', [
    'headers' => [
        'Authorization' => 'Bearer <token>',
        'Accept' => 'application/json',
    ],
]);

echo $response->getStatusCode() . "\n";
echo $response->getBody();
package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    url := "https://cp.domain.com/api/v1/servers/1?remoteState=false"
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Add("Authorization", "Bearer <token>")
    req.Header.Add("Accept", "application/json")

    res, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer res.Body.Close()

    body, _ := io.ReadAll(res.Body)
    fmt.Println(res.StatusCode, string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Main {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://cp.domain.com/api/v1/servers/1?remoteState=false"))
            .header("Authorization", "Bearer <token>")
            .header("Accept", "application/json")
            .method("GET", HttpRequest.BodyPublishers.noBody())
            .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.statusCode());
        System.out.println(response.body());
    }
}
import okhttp3.*;

public class Main {
    public static void main(String[] args) throws Exception {
        OkHttpClient client = new OkHttpClient();

        Request request = new Request.Builder()
            .url("https://cp.domain.com/api/v1/servers/1?remoteState=false")
            .method("GET", null)
            .addHeader("Authorization", "Bearer <token>")
            .addHeader("Accept", "application/json")
            .build();

        try (Response response = client.newCall(request).execute()) {
            System.out.println(response.code());
            System.out.println(response.body().string());
        }
    }
}
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(new HttpMethod("GET"), "https://cp.domain.com/api/v1/servers/1?remoteState=false");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "<token>");
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

var response = await client.SendAsync(request);
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(await response.Content.ReadAsStringAsync());
require "net/http"
require "json"

uri = URI("https://cp.domain.com/api/v1/servers/1?remoteState=false")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer <token>"
request["Accept"] = "application/json"

response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
  http.request(request)
end

puts response.code
puts JSON.pretty_generate(JSON.parse(response.body))
import Foundation

var request = URLRequest(url: URL(string: "https://cp.domain.com/api/v1/servers/1?remoteState=false")!)
request.httpMethod = "GET"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Accept")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data, error == nil else { print(error ?? "request failed"); return }
    print((response as! HTTPURLResponse).statusCode)
    print(String(data: data, encoding: .utf8) ?? "")
}
task.resume()
// Cargo.toml: reqwest = { version = "0.12", features = ["blocking", "json"] }, serde_json = "1"
use reqwest::blocking::Client;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new();
    let response = client
        .request(reqwest::Method::GET, "https://cp.domain.com/api/v1/servers/1?remoteState=false")
        .bearer_auth("<token>")
        .header("Accept", "application/json")
        .send()?;

    println!("{}", response.status());
    let json: serde_json::Value = response.json()?;
    println!("{}", serde_json::to_string_pretty(&json)?);
    Ok(())
}
// Cargo.toml: reqwest = { version = "0.12", features = ["json"] }, tokio = { version = "1", features = ["full"] }, serde_json = "1"
use reqwest::Client;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new();
    let response = client
        .request(reqwest::Method::GET, "https://cp.domain.com/api/v1/servers/1?remoteState=false")
        .bearer_auth("<token>")
        .header("Accept", "application/json")
        .send()
        .await?;

    println!("{}", response.status());
    let json: serde_json::Value = response.json().await?;
    println!("{}", serde_json::to_string_pretty(&json)?);
    Ok(())
}
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
import okhttp3.Request

fun main() {
    val client = OkHttpClient()
    val request = Request.Builder()
        .url("https://cp.domain.com/api/v1/servers/1?remoteState=false")
        .method("GET", null)
        .addHeader("Authorization", "Bearer <token>")
        .addHeader("Accept", "application/json")
        .build()

    client.newCall(request).execute().use { response ->
        println(response.code)
        println(response.body?.string())
    }
}
// pubspec.yaml: http: ^1.2.0
import 'dart:convert';
import 'package:http/http.dart' as http;

Future<void> main() async {
  final request = http.Request('GET', Uri.parse('https://cp.domain.com/api/v1/servers/1?remoteState=false'));
  request.headers['Authorization'] = 'Bearer <token>';
  request.headers['Accept'] = 'application/json';

  final response = await http.Response.fromStream(await request.send());
  print(response.statusCode);
  print(const JsonEncoder.withIndent('  ').convert(jsonDecode(response.body)));
}
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl = curl_easy_init();
    if (!curl) return 1;

    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer <token>");
    headers = curl_slist_append(headers, "Accept: application/json");

    curl_easy_setopt(curl, CURLOPT_URL, "https://cp.domain.com/api/v1/servers/1?remoteState=false");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);

    CURLcode result = curl_easy_perform(curl);
    if (result != CURLE_OK) fprintf(stderr, "%s\n", curl_easy_strerror(result));

    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
    return result == CURLE_OK ? 0 : 1;
}
$headers = @{
    Authorization = "Bearer <token>"
    Accept        = "application/json"
}

$response = Invoke-RestMethod -Uri "https://cp.domain.com/api/v1/servers/1?remoteState=false" -Method GET -Headers $headers
$response | ConvertTo-Json -Depth 10
GET /api/v1/servers/1?remoteState=false HTTP/1.1
Host: cp.domain.com
Authorization: Bearer <token>
Accept: application/json

Responses

200

OK.

#
application/json
object

A server with its full configuration, resources, network and state.

Server fields
idinteger#
ownerIdinteger#
hypervisorIdinteger#
archinteger#
namestring#
selfServiceinteger#
selfServiceSettingsarray[any]#
hostnamestring#nullable
commissionStatusinteger#
uuidstring#
statestring#
migratableboolean#
timezonestring#
migrateLevelinteger#
deleteLevelinteger#
configLevelinteger#
backupLevelinteger#
elevatedboolean#

See GET /servers/{serverId}/elevate.

rescueinteger#

0, or the id of the rescue image the server is booted into. See GET /servers/{serverId}/rescue.

resourcePackIdinteger#nullable
backupManagerobject#
fields
enabledboolean#
resourcePackobject#nullable
elevateIdinteger#nullable
elevateboolean#
destroyableboolean#
rebuildboolean#
suspendedboolean#
protectedboolean#
buildFailedboolean#
primaryNetworkDhcp4boolean#
primaryNetworkDhcp6boolean#
builtstring <date-time>#nullable
createdstring <date-time>#
updatedstring <date-time>#
trafficobject#
fields
publicobject#
fields
countMethodinteger#
policyobject#
fields
directioninteger#
actioninteger#
throttleIninteger#
throttleOutinteger#
alert1integer#
alert2integer#
sourceobject#
fields
directionstring#
actionstring#
throttleInstring#
throttleOutstring#
alert1string#
alert2string#
currentPeriodobject#
fields
startstring <date-time>#
endstring <date-time>#
limitinteger#
settingsobject#
fields
osTemplateInstallboolean#
osTemplateInstallIdinteger#
encryptedPasswordstring#
backupPlaninteger#nullable
uefiboolean#
uefiTypeinteger#
cloudInitboolean#
cloudInitTypeinteger#
configany#

Shape varies; see the example.

userConfigarray[any]#
bootOrderarray[string]#
tpmTypeinteger#
fsFreezeinteger#
networkBootboolean#
bootMenuinteger#
customISOinteger#
securityDriverinteger#
memBalloonobject#
fields
modelinteger#
autoDeflateinteger#
freePageReportinginteger#
hypervobject#
fields
enabledboolean#
passthroughboolean#
relaxedinteger#
vapicinteger#
spinlocksinteger#
vpindexinteger#
runtimeinteger#
synicinteger#
stimerinteger#
resetinteger#
vendorIdinteger#
frequenciesinteger#
reenlightenmentinteger#
tlbflushinteger#
ipiinteger#
evmcsinteger#
vendorIdValuestring#
spinlocksValueinteger#
clockEnabledinteger#
extendedobject#
fields
cpuFlagsobject#
fields
topoextstring#
svmstring#
vmxstring#
machineTypestring#
pciPortsinteger#
resourcesobject#
fields
memoryinteger#
storageinteger#
trafficinteger#
cpuCoresinteger#
trafficCountDirectioninteger#

Which direction counts towards the allowance.

ValueMeaning
0Inherit from the hypervisor, then the global setting
1Inbound and outbound
2Inbound only
3Outbound only
Since 7.1.0
trafficLimitActioninteger#

What happens when the allowance is reached.

ValueMeaning
1Nothing
2Throttle the network
nullInherit
Since 7.1.0
trafficLimitThrottleIninteger#nullable

Inbound throttle speed in kB/s; null inherits.

Since 7.1.0
trafficLimitThrottleOutinteger#nullable

Outbound throttle speed in kB/s; null inherits.

Since 7.1.0
trafficLimitNotification1integer#nullable

First usage alert as a percentage of the allowance; null inherits.

Since 7.1.0
trafficLimitNotification2integer#nullable

Second usage alert as a percentage of the allowance; null inherits.

Since 7.1.0
decryptedPasswordstring#
cpuobject#
fields
typestring#
coresinteger#
typeExactstring#
sharesinteger#
throttleinteger#
topologyobject#
fields
enabledboolean#
socketsinteger#
coresinteger#
threadsinteger#
diesinteger#
customXMLobject#
fields
domainobject#
fields
xmlstring#
enabledboolean#
osobject#
fields
xmlstring#
enabledboolean#
devicesobject#
fields
xmlstring#
enabledboolean#
featuresobject#
fields
xmlstring#
enabledboolean#
clockobject#
fields
xmlstring#
enabledboolean#
cpuTuneobject#
fields
xmlstring#
enabledboolean#
qemuCommandlinearray[any]#
qemuAgentobject#
fields
osobject#
fields
screenstring#
mediaobject#
fields
isoMountedboolean#
isoTypestring#
isoNamestring#
isoFilenamestring#
isoUrlstring#
isoDownloadboolean#
backupPlanobject#
fields
idinteger#nullable
namestring#nullable
vncobject#
fields
ipstring#
portinteger#
enabledboolean#
networkobject#
fields
interfacesarray[object]#
item fields
typestring#
idinteger#
orderinteger#
enabledboolean#
taginteger#
namestring#
driverinteger#nullable

The network interface model; null uses the hypervisor default.

ValueMeaning
1virtio
2e1000
3rtl8139
processQueuesboolean#nullable
macstring#
ipv4ToMacboolean#nullable
ipv6ToMacboolean#nullable
inTrafficCountboolean#
outTrafficCountboolean#
inAverageinteger#
inPeakinteger#
inBurstinteger#
outAverageinteger#
outPeakinteger#
outBurstinteger#
ipFilterboolean#
vlansarray[any]#
ipFilterTypestring#nullable
portIsolatedboolean#
ipv4_resolver_1integer#
ipv4_resolver_2integer#
ipv6_resolver_1integer#
ipv6_resolver_2integer#
networkProfileinteger#
dhcpV4integer#
dhcpV6integer#
firewallEnabledboolean#
hypervisorNetworkinteger#
isNatboolean#
natboolean#
firewallarray[any]#
hypervisorConnectivityobject#
fields
typestring#
idinteger#
bridgestring#
mtuinteger#nullable
primaryboolean#
defaultboolean#
ipWhitelistarray[object]#
item fields
typeinteger#
idinteger#
ipstring#
maskinteger#
actionsarray[any]#
ipv4array[object]#
item fields
idinteger#
orderinteger#
enabledboolean#
blockIdinteger#
addressstring#
gatewaystring#
netmaskstring#
resolver1string#
resolver2string#
rdnsstring#nullable
macstring#nullable
ipv6array[object]#
item fields
idinteger#
blockobject#
fields
idinteger#
namestring#
orderinteger#
enabledboolean#
addressesarray[any]#
addressesDetailedarray[any]#
subnetstring#
cidrinteger#
exhaustedboolean#
gatewaystring#
resolver1string#
resolver2string#
routeNetboolean#
secondaryInterfacesarray[object]#
item fields
typestring#
idinteger#
enabledboolean#
orderinteger#
taginteger#
namestring#
driverinteger#

The network interface model; null uses the hypervisor default.

ValueMeaning
1virtio
2e1000
3rtl8139
processQueuesboolean#nullable
macstring#
ipv4ToMacboolean#nullable
ipv6ToMacboolean#nullable
inTrafficCountboolean#
outTrafficCountboolean#
inAverageinteger#
inPeakinteger#
inBurstinteger#
outAverageinteger#
outPeakinteger#
outBurstinteger#
ipFilterboolean#
vlansarray[any]#
ipFilterTypestring#
portIsolatedboolean#
ipv4_resolver_1integer#
ipv4_resolver_2integer#
ipv6_resolver_1integer#
ipv6_resolver_2integer#
networkProfileinteger#
dhcpV4integer#
dhcpV6integer#
firewallEnabledboolean#
hypervisorNetworkinteger#
isNatboolean#
natboolean#
firewallarray[any]#
hypervisorConnectivityobject#
fields
typestring#
idinteger#
bridgestring#
mtuinteger#nullable
primaryboolean#
defaultboolean#
ipWhitelistarray[any]#
actionsarray[any]#
ipv4array[object]#
item fields
idinteger#
orderinteger#
enabledboolean#
addressstring#
gatewaystring#
netmaskstring#
resolver1string#
resolver2string#
rdnsstring#nullable
macstring#nullable
ipv6array[object]#
item fields
idinteger#
blockobject#
fields
idinteger#
namestring#
orderinteger#
enabledboolean#
addressesarray[any]#
addressesDetailedarray[any]#
subnetstring#
cidrinteger#
exhaustedboolean#
gatewaystring#
resolver1string#
resolver2string#
routeNetboolean#
storagearray[object]#
item fields
typestring#
_idinteger#
idinteger#
cachestring#nullable
busstring#nullable
capacityinteger#
drivestring#
datastoreDiskIdinteger#nullable
filesystemstring#nullable
iopsobject#
fields
readinteger#nullable
writeinteger#nullable
bytesobject#
fields
readinteger#nullable
writeinteger#nullable
profileinteger#
statusinteger#
enabledboolean#
primaryboolean#
createdstring <date-time>#
updatedstring <date-time>#
datastorearray[any]#
namestring#
filenamestring#
hypervisorStorageIdinteger#nullable
localboolean#
locationTypestring#
pathstring#
hypervisorAssetsarray[any]#
hypervisorobject#
fields
idinteger#
ipstring#
hostnamestring#nullable
portinteger#
maintenanceboolean#
groupIdinteger#
groupobject#
fields
namestring#
iconstring#nullable
timezonestring#
forceIPv6boolean#
vncListenTypeinteger#
displayNamestring#nullable
cpuSetstring#nullable
nfTypeinteger#

The network filter (firewall) implementation for servers on the hypervisor.

ValueMeaning
0None
1Libvirt
2Native standard
3Native performance, IPv4
4Native performance, IPv4 and IPv6
5Native privacy (experimental)
backupStorageTypeinteger#

Which backup storage the hypervisor may use.

ValueMeaning
1None
2Directly assigned storage only
3Group assigned storage only
4Group and directly assigned storage
defaultDiskTypestring#
defaultDiskCacheTypestring#
defaultCPUstring#
defaultMachineTypestring#
createdstring <date-time>#
updatedstring <date-time>#
namestring#
dataDirstring#
resourcesobject#
fields
serversobject#
fields
unitsstring#
maxinteger#
allocatedinteger#
freeinteger#
percentinteger#nullable
memoryobject#
fields
unitsstring#
maxinteger#
allocatedinteger#
freeinteger#
percentnumber#
cpuCoresobject#
fields
unitsstring#
maxinteger#
allocatedinteger#
freeinteger#
percentnumber#
localStorageobject#
fields
enabledinteger#
namestring#
storageTypeinteger#
unitsstring#
maxinteger#
allocatedinteger#
freeinteger#
percentnumber#
otherStoragearray[object]#
item fields
idinteger#
namestring#
enabledinteger#
pathstring#nullable
unitsstring#
storageTypeinteger#
isDatastoreboolean#
maxinteger#
allocatedinteger#
freeinteger#
percentnumber#
ownerobject#
fields
idinteger#
adminboolean#
extRelationIdinteger#nullable
namestring#
emailstring#
timezonestring#
suspendedboolean#
twoFactorAuthboolean#
createdstring <date-time>#
updatedstring <date-time>#
sshKeysarray[object]#
item fields
typestring#
idinteger#
ownerIdinteger#
namestring#
publicstring#
enabledboolean#
createdstring <date-time>#
sharedUsersarray[any]#
tasksobject#
fields
activeboolean#
lastOnstring#nullable
actionsobject#
fields
pendingarray[object]#
item fields
idinteger#
actionstring#
requiresarray[string]#
collectedboolean#
completeboolean#
failedboolean#
payloadobject#
fields
diskobject#
fields
idinteger#
disk_storage_idinteger#nullable
createdstring <date-time>#
remoteStateboolean#
Example
{
    "data": {
        "id": 69,
        "ownerId": 1,
        "hypervisorId": 6,
        "arch": 1,
        "name": "Elliptical Way",
        "selfService": 0,
        "selfServiceSettings": [],
        "hostname": null,
        "commissionStatus": 3,
        "uuid": "b9fd9092-7200-4a24-96d4-76aedd664274",
        "state": "complete",
        "migratable": true,
        "timezone": "_default",
        "migrateLevel": 0,
        "deleteLevel": 0,
        "configLevel": 0,
        "backupLevel": 0,
        "elevated": false,
        "rescue": 0,
        "resourcePackId": null,
        "backupManager": {
            "enabled": false
        },
        "resourcePack": null,
        "elevateId": null,
        "elevate": false,
        "destroyable": true,
        "rebuild": false,
        "suspended": false,
        "protected": false,
        "buildFailed": false,
        "primaryNetworkDhcp4": false,
        "primaryNetworkDhcp6": false,
        "built": "2025-01-15T15:00:49+00:00",
        "created": "2024-12-06T21:25:58+00:00",
        "updated": "2025-01-15T23:17:49+00:00",
        "traffic": {
            "public": {
                "countMethod": 1,
                "policy": {
                    "direction": 1,
                    "action": 2,
                    "throttleIn": 625,
                    "throttleOut": 625,
                    "alert1": 80,
                    "alert2": 95,
                    "source": {
                        "direction": "global",
                        "action": "hypervisor",
                        "throttleIn": "global",
                        "throttleOut": "global",
                        "alert1": "global",
                        "alert2": "global"
                    }
                },
                "currentPeriod": {
                    "start": "2025-01-06T00:00:00.000000Z",
                    "end": "2025-02-05T23:59:59.999999Z",
                    "limit": 20000
                }
            }
        },
        "settings": {
            "osTemplateInstall": true,
            "osTemplateInstallId": 49,
            "encryptedPassword": "eyJpdiI6IkNtT0ZmUEQ4Q2ZuNW5yUWVXZUcvWWc9PSIsInZhbHVlIjoibHJmMTNHZXpqV3lneFUrZEZ3eThSWEZVbVk5TDlBYTJQbXpPbFRvcmd0OD0iLCJtYWMiOiI1NTNhMGVmNzBlZWViZWI3NjkyMmYzYmM3NWFjMDY3ZTlmZmE4ZDE3NDI2YzliMjY0ODM4YzQzMDViMWY3MTI1IiwidGFnIjoiIn0=",
            "backupPlan": null,
            "uefi": false,
            "uefiType": 0,
            "cloudInit": true,
            "cloudInitType": 1,
            "config": {
                "cloud.init": {
                    "on.network": {
                        "netplan_routes_v4": true,
                        "netplan_routes_v6": true
                    },
                    "on.network.libvirtrouted": {
                        "netplan_routes_v4": true,
                        "netplan_routes_v6": true
                    },
                    "on.all": {
                        "user.data": {
                            "runcmd": [
                                "DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get --option=Dpkg::Options::=--force-confold --option=Dpkg::options::=--force-unsafe-io --assume-yes --quiet update",
                                "DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get --option=Dpkg::Options::=--force-confold --option=Dpkg::options::=--force-unsafe-io --assume-yes --quiet install qemu-guest-agent",
                                "/usr/bin/systemctl enable qemu-guest-agent",
                                "/usr/bin/systemctl start qemu-guest-agent",
                                "DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get --option=Dpkg::Options::=--force-confold --option=Dpkg::options::=--force-unsafe-io --assume-yes --quiet dist-upgrade"
                            ]
                        }
                    },
                    "on.password": {
                        "user.data": {
                            "runcmd": [
                                "/usr/bin/sed -i \"s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g\" /etc/ssh/sshd_config",
                                "/usr/bin/sed -i \"s/PasswordAuthentication no/PasswordAuthentication yes/g\" /etc/ssh/sshd_config",
                                "/usr/bin/systemctl restart sshd"
                            ]
                        }
                    },
                    "on.sshkey": {
                        "user.data": []
                    }
                }
            },
            "userConfig": [],
            "bootOrder": [
                "hd",
                "cdrom"
            ],
            "tpmType": 0,
            "fsFreeze": 1,
            "networkBoot": false,
            "bootMenu": 1,
            "customISO": 1,
            "securityDriver": 3,
            "memBalloon": {
                "model": 1,
                "autoDeflate": 0,
                "freePageReporting": 0
            },
            "hyperv": {
                "enabled": false,
                "passthrough": false,
                "relaxed": 0,
                "vapic": 0,
                "spinlocks": 0,
                "vpindex": 0,
                "runtime": 0,
                "synic": 0,
                "stimer": 0,
                "reset": 0,
                "vendorId": 0,
                "frequencies": 0,
                "reenlightenment": 0,
                "tlbflush": 0,
                "ipi": 0,
                "evmcs": 0,
                "vendorIdValue": "KVM VM",
                "spinlocksValue": 8191,
                "clockEnabled": 0
            },
            "extended": {
                "cpuFlags": {
                    "topoext": "1",
                    "svm": "1",
                    "vmx": "1"
                }
            },
            "machineType": "inherit",
            "pciPorts": 16,
            "resources": {
                "memory": 1024,
                "storage": 11,
                "traffic": 20000,
                "cpuCores": 2,
                "trafficCountDirection": 0,
                "trafficLimitAction": 2,
                "trafficLimitThrottleIn": null,
                "trafficLimitThrottleOut": null,
                "trafficLimitNotification1": null,
                "trafficLimitNotification2": null
            }
        },
        "cpu": {
            "cores": 2,
            "type": "inherit",
            "typeExact": "host-model",
            "shares": 1024,
            "throttle": 0,
            "topology": {
                "enabled": false,
                "sockets": 1,
                "cores": 1,
                "threads": 1,
                "dies": 1
            }
        },
        "customXML": {
            "domain": {
                "xml": "",
                "enabled": false
            },
            "os": {
                "xml": "",
                "enabled": false
            },
            "devices": {
                "xml": "",
                "enabled": false
            },
            "features": {
                "xml": "",
                "enabled": false
            },
            "clock": {
                "xml": "",
                "enabled": false
            },
            "cpuTune": {
                "xml": "",
                "enabled": false
            }
        },
        "qemuCommandline": [],
        "qemuAgent": {
            "os": {
                "screen": "iVBORw0KGgoAAAANSUhEUgAAAJYAAABTCAAAAABYT6E5AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElNRQfpARESACl1ShbSAAAB0klEQVRo3u3VS2/TQBAA4NlZr9eP+N04DmmKqxZFBQRC6oX/wN9G4s6l0ENFKQQoSVw7deT4xaFpRTkgkNKIivksreWd9e5oVqsFIH+N/UmUrdrrz9//tMaMxK8rSaEgAICGGnAAuGpAv+sy8f3wUYnBttibW2Wz33X9qfayOJhVXvydx8nzYLDMjcfZTrZTdH1tlHXxQbWXx1PhGD23lYVymD7LDHt7st7SKWGlxSguWRvtvq70yWjqST8YnmilCxB9GzdD8zwcnZrClKGZIna81jzMpWE97OfKWH0DArj24shac7VYlJuJNy9qgd4ZDOczYaXmhcLNeXQKgyJBP80VN40mbmp1vixYkMu5lXU/gK1Vjc+PwVwY1dNj++Ndb+u/ga0eAAbXr1UA2E0XA3Z18m4N/3mW/0UkIu4Aoio6jAP05E3EtRGYcJABbjgn5dVRrTpJ6G0t+btIme1e5IbNB2VwVn8qpB4Xvfe6G791TjabFla5Y1iG7etfz3WXMVW1jGU7kBKeMDBs4H1w1c9qteFqMdaqDTZc1AtE1mDVqnUN2HC+NW5FC20/Kctmw0ndQ7fuZ0IIIYQQQgghhBBCCCGEEEIIIYQQQgghhNwTPwDlF4AYGPA7/gAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNS0wMS0xN1QxODowMDo0MSswMDowMA+ZFQkAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjUtMDEtMTdUMTg6MDA6NDErMDA6MDB+xK21AAAAAElFTkSuQmCC"
            }
        },
        "media": {
            "isoMounted": false,
            "isoType": "local",
            "isoName": "",
            "isoFilename": "",
            "isoUrl": "",
            "isoDownload": false
        },
        "backupPlan": {
            "id": null,
            "name": null
        },
        "vnc": {
            "ip": "192.168.4.2",
            "port": 5903,
            "enabled": false
        },
        "network": {
            "interfaces": [
                {
                    "id": 69,
                    "order": 1,
                    "enabled": true,
                    "tag": 4618706442,
                    "name": "ens3",
                    "type": "public",
                    "driver": 1,
                    "processQueues": null,
                    "mac": "00:E7:FB:01:87:14",
                    "ipv4ToMac": null,
                    "ipv6ToMac": null,
                    "inTrafficCount": true,
                    "outTrafficCount": false,
                    "inAverage": 0,
                    "inPeak": 0,
                    "inBurst": 0,
                    "outAverage": 0,
                    "outPeak": 0,
                    "outBurst": 0,
                    "ipFilter": false,
                    "vlans": [],
                    "ipFilterType": null,
                    "portIsolated": false,
                    "ipv4_resolver_1": 1,
                    "ipv4_resolver_2": 2,
                    "ipv6_resolver_1": 1,
                    "ipv6_resolver_2": 2,
                    "networkProfile": 0,
                    "dhcpV4": 0,
                    "dhcpV6": 0,
                    "firewallEnabled": false,
                    "hypervisorNetwork": 6,
                    "isNat": false,
                    "nat": false,
                    "firewall": [],
                    "hypervisorConnectivity": {
                        "id": 6,
                        "type": "simpleBridge",
                        "bridge": "br0",
                        "mtu": null,
                        "primary": true,
                        "default": true
                    },
                    "ipWhitelist": [],
                    "actions": [],
                    "ipv4": [
                        {
                            "id": 33,
                            "order": 1,
                            "enabled": true,
                            "blockId": 1,
                            "address": "192.168.4.32",
                            "gateway": "192.168.4.1",
                            "netmask": "255.255.254.0",
                            "resolver1": "8.8.8.8",
                            "resolver2": "8.8.4.4",
                            "rdns": null,
                            "mac": null
                        },
                        {
                            "id": 36,
                            "order": 2,
                            "enabled": true,
                            "blockId": 1,
                            "address": "192.168.4.35",
                            "gateway": "192.168.4.1",
                            "netmask": "255.255.254.0",
                            "resolver1": "8.8.8.8",
                            "resolver2": "8.8.4.4",
                            "rdns": null,
                            "mac": null
                        }
                    ],
                    "ipv6": [
                        {
                            "id": 502,
                            "block": {
                                "id": 5,
                                "name": "V6 For BHV 1,3"
                            },
                            "order": 1,
                            "enabled": true,
                            "addresses": [],
                            "addressesDetailed": [],
                            "subnet": "2001:db8:abcd:12:2::",
                            "cidr": 80,
                            "exhausted": false,
                            "gateway": "2001:db8:abcd:12::1",
                            "resolver1": "2001:4860:4860::8888",
                            "resolver2": "2001:4860:4860::8844",
                            "routeNet": false
                        },
                        {
                            "id": 505,
                            "block": {
                                "id": 5,
                                "name": "V6 For BHV 1,3"
                            },
                            "order": 1,
                            "enabled": true,
                            "addresses": [],
                            "addressesDetailed": [],
                            "subnet": "2001:db8:abcd:12:5::",
                            "cidr": 80,
                            "exhausted": false,
                            "gateway": "2001:db8:abcd:12::1",
                            "resolver1": "2001:4860:4860::8888",
                            "resolver2": "2001:4860:4860::8844",
                            "routeNet": false
                        },
                        {
                            "id": 506,
                            "block": {
                                "id": 5,
                                "name": "V6 For BHV 1,3"
                            },
                            "order": 1,
                            "enabled": true,
                            "addresses": [],
                            "addressesDetailed": [],
                            "subnet": "2001:db8:abcd:12:6::",
                            "cidr": 80,
                            "exhausted": false,
                            "gateway": "2001:db8:abcd:12::1",
                            "resolver1": "2001:4860:4860::8888",
                            "resolver2": "2001:4860:4860::8844",
                            "routeNet": false
                        },
                        {
                            "id": 507,
                            "block": {
                                "id": 5,
                                "name": "V6 For BHV 1,3"
                            },
                            "order": 1,
                            "enabled": true,
                            "addresses": [],
                            "addressesDetailed": [],
                            "subnet": "2001:db8:abcd:12:7::",
                            "cidr": 80,
                            "exhausted": false,
                            "gateway": "2001:db8:abcd:12::1",
                            "resolver1": "2001:4860:4860::8888",
                            "resolver2": "2001:4860:4860::8844",
                            "routeNet": false
                        },
                        {
                            "id": 508,
                            "block": {
                                "id": 5,
                                "name": "V6 For BHV 1,3"
                            },
                            "order": 1,
                            "enabled": true,
                            "addresses": [],
                            "addressesDetailed": [],
                            "subnet": "2001:db8:abcd:12:8::",
                            "cidr": 80,
                            "exhausted": false,
                            "gateway": "2001:db8:abcd:12::1",
                            "resolver1": "2001:4860:4860::8888",
                            "resolver2": "2001:4860:4860::8844",
                            "routeNet": false
                        },
                        {
                            "id": 509,
                            "block": {
                                "id": 5,
                                "name": "V6 For BHV 1,3"
                            },
                            "order": 1,
                            "enabled": true,
                            "addresses": [],
                            "addressesDetailed": [],
                            "subnet": "2001:db8:abcd:12:9::",
                            "cidr": 80,
                            "exhausted": false,
                            "gateway": "2001:db8:abcd:12::1",
                            "resolver1": "2001:4860:4860::8888",
                            "resolver2": "2001:4860:4860::8844",
                            "routeNet": false
                        }
                    ]
                }
            ],
            "secondaryInterfaces": [
                {
                    "id": 4,
                    "enabled": true,
                    "order": 1,
                    "tag": 3933491695,
                    "name": "eth1",
                    "type": "private",
                    "driver": 1,
                    "processQueues": null,
                    "mac": "00:F0:4A:C6:3F:08",
                    "ipv4ToMac": null,
                    "ipv6ToMac": null,
                    "inTrafficCount": true,
                    "outTrafficCount": false,
                    "inAverage": 0,
                    "inPeak": 0,
                    "inBurst": 0,
                    "outAverage": 0,
                    "outPeak": 0,
                    "outBurst": 0,
                    "ipFilter": true,
                    "vlans": [],
                    "ipFilterType": "4-6",
                    "portIsolated": false,
                    "ipv4_resolver_1": 1,
                    "ipv4_resolver_2": 2,
                    "ipv6_resolver_1": 1,
                    "ipv6_resolver_2": 2,
                    "networkProfile": 0,
                    "dhcpV4": 0,
                    "dhcpV6": 0,
                    "firewallEnabled": false,
                    "hypervisorNetwork": 6,
                    "isNat": false,
                    "nat": false,
                    "firewall": [],
                    "hypervisorConnectivity": {
                        "id": 6,
                        "type": "simpleBridge",
                        "bridge": "br0",
                        "mtu": null,
                        "primary": true,
                        "default": true
                    },
                    "ipWhitelist": [],
                    "actions": [],
                    "ipv4": [
                        {
                            "id": 34,
                            "order": 1,
                            "enabled": true,
                            "address": "192.168.4.33",
                            "gateway": "192.168.4.1",
                            "netmask": "255.255.254.0",
                            "resolver1": "8.8.8.8",
                            "resolver2": "8.8.4.4",
                            "rdns": null,
                            "mac": null
                        },
                        {
                            "id": 35,
                            "order": 2,
                            "enabled": true,
                            "address": "192.168.4.34",
                            "gateway": "192.168.4.1",
                            "netmask": "255.255.254.0",
                            "resolver1": "8.8.8.8",
                            "resolver2": "8.8.4.4",
                            "rdns": null,
                            "mac": null
                        }
                    ],
                    "ipv6": [
                        {
                            "id": 503,
                            "block": {
                                "id": 5,
                                "name": "V6 For BHV 1,3"
                            },
                            "order": 1,
                            "enabled": true,
                            "addresses": [],
                            "addressesDetailed": [],
                            "subnet": "2001:db8:abcd:12:3::",
                            "cidr": 80,
                            "exhausted": false,
                            "gateway": "2001:db8:abcd:12::1",
                            "resolver1": "2001:4860:4860::8888",
                            "resolver2": "2001:4860:4860::8844",
                            "routeNet": false
                        },
                        {
                            "id": 504,
                            "block": {
                                "id": 5,
                                "name": "V6 For BHV 1,3"
                            },
                            "order": 1,
                            "enabled": true,
                            "addresses": [],
                            "addressesDetailed": [],
                            "subnet": "2001:db8:abcd:12:4::",
                            "cidr": 80,
                            "exhausted": false,
                            "gateway": "2001:db8:abcd:12::1",
                            "resolver1": "2001:4860:4860::8888",
                            "resolver2": "2001:4860:4860::8844",
                            "routeNet": false
                        }
                    ]
                }
            ]
        },
        "storage": [
            {
                "_id": 80,
                "id": 1,
                "cache": null,
                "bus": null,
                "capacity": 11,
                "drive": "a",
                "datastoreDiskId": null,
                "filesystem": null,
                "iops": {
                    "read": null,
                    "write": null
                },
                "bytes": {
                    "read": null,
                    "write": null
                },
                "type": "qcow2",
                "profile": 1,
                "status": 3,
                "enabled": true,
                "primary": true,
                "created": "2024-12-06T21:25:58+00:00",
                "updated": "2025-01-07T22:26:16+00:00",
                "datastore": [],
                "name": "b9fd9092-7200-4a24-96d4-76aedd664274_1",
                "filename": "b9fd9092-7200-4a24-96d4-76aedd664274_1.img",
                "hypervisorStorageId": null,
                "local": true,
                "locationType": "mountpoint",
                "path": "/home/vf-data/disk"
            }
        ],
        "hypervisorAssets": [],
        "hypervisor": {
            "id": 6,
            "ip": "192.168.4.2",
            "hostname": null,
            "port": 8892,
            "maintenance": false,
            "groupId": 2,
            "group": {
                "name": "Test",
                "icon": null
            },
            "timezone": "Europe/London",
            "forceIPv6": false,
            "vncListenType": 1,
            "displayName": null,
            "cpuSet": null,
            "nfType": 4,
            "backupStorageType": 2,
            "defaultDiskType": "inherit",
            "defaultDiskCacheType": "inherit",
            "defaultCPU": "inherit",
            "defaultMachineType": "inherit",
            "created": "2024-03-30T09:53:38+00:00",
            "updated": "2024-12-06T21:25:54+00:00",
            "name": "BHV 1",
            "dataDir": "/home/vf-data",
            "resources": {
                "servers": {
                    "units": "#",
                    "max": 0,
                    "allocated": 5,
                    "free": -5,
                    "percent": null
                },
                "memory": {
                    "units": "MB",
                    "max": 29419,
                    "allocated": 7168,
                    "free": 22251,
                    "percent": 24.4
                },
                "cpuCores": {
                    "units": "#",
                    "max": 128,
                    "allocated": 6,
                    "free": 122,
                    "percent": 4.7
                },
                "localStorage": {
                    "enabled": 1,
                    "name": "Local (Default mountpoint)",
                    "storageType": 1,
                    "units": "GB",
                    "max": 1000,
                    "allocated": 141,
                    "free": 859,
                    "percent": 14.1
                },
                "otherStorage": []
            }
        },
        "owner": {
            "id": 1,
            "admin": true,
            "extRelationId": null,
            "name": "Jon Doe",
            "email": "jon@doe.com",
            "timezone": "Europe/London",
            "suspended": false,
            "twoFactorAuth": false,
            "created": "2024-03-12T22:22:09+00:00",
            "updated": "2025-01-15T11:01:18+00:00"
        },
        "sshKeys": [
            {
                "id": 1,
                "ownerId": 1,
                "type": "OpenSSH",
                "name": "Test Key",
                "public": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC+JdL4fWELBWGAknSu0PwVpDDOlORxy9z7eVnZphZXBzYLMnux+ZogVLns6+O6NDE8JmWvP9RIg3SIga7RDOkW9UCdLzRu0jF2ALL7CK1huo1Ih0PDM9ZbFDy2Fd7a4DTvUX6923fQyW0PWRtyL11R4c9NUqzejKp5kW8vHfPQjzwb1hGIKvkSYkI0Auq4JJhlvjjnoK7Z8t5mpDrVfNTrVqevPgsW5Xwnq8R+02XywrY+Q/wnpxDs4Ujb2aA61A0x5J0xcZQpTQHoJNj77J3VmPI7Ry7Q8hPbTSLGZbN+gODr0lOaL5TdbvM3bnus5JvoqgRoszzPcTiNMZAe3v9UM8hiXise54b8rsc2M9MQ4olPu7TrROZbcw+9q4m6cV+dfVU/NRFkf27YRa4oZNKehHsMiupDyoISgSl4qSB8YXAWsX03oC/gzpB2YJIqEL1Y/SmKYEhgr0cplkvGZy6C/Q9cJHyHlMPtEBPexgcjXC9QrDZ4n2cmde3TuSRMctawcat7Nuq08C8fGHaGHr8iAeage3o/ODVOt0rhBu69PknzQeVBdlwK3+p1dH6PnMzNNBhWyNZT/NqB2eS6K8lYpOQ47byXPwYsRLvStUjpZRdikOT7D31T5g8FwOThQ+6WX+xfMD7CSLsSKCn/FhlinbVbG2IhCLH3B30Akw5bUw==",
                "enabled": true,
                "created": "2024-03-13T20:28:32+00:00"
            }
        ],
        "sharedUsers": [],
        "tasks": {
            "active": false,
            "lastOn": "2025-01-15 15:00:49",
            "actions": {
                "pending": []
            }
        },
        "remoteState": false
    }
}
401

The bearer token is missing, invalid, or expired. The response has no body.

#
No response body.
429

Too many requests. Either the token's requests per minute are used up (see the `X-RateL…

#
application/json

Too many requests. Either the token's requests per minute are used up (see the X-RateLimit-* headers) or the calling address has failed authentication 10 times in a minute (the body then includes retry_after_seconds). Retry-After gives the seconds to wait.

object
errorsarray[string]#
retry_after_secondsinteger#

Seconds to wait before retrying. Present on the failed-authentication limit only.

Response headers
Retry-Afterinteger

Seconds to wait before retrying.

X-RateLimit-Limitinteger

The token's requests per minute (token limit only).

X-RateLimit-Remaininginteger

Requests left in the current minute (token limit only).

X-RateLimit-Resetinteger

Unix timestamp at which the minute resets (token limit only).

Examples
{
    "errors": [
        "Too Many Requests"
    ]
}
{
    "errors": [
        "Too many authentication attempts. Try again later."
    ],
    "retry_after_seconds": 42
}