O ciclo de vida da VPS na conta Cloud: listar, ver os detalhes, criar dentro da cota, mudar recursos, apagar e configurar o escalonamento vertical.
Antes de começar, veja API do Virtualizor para revendedores: primeiros passos: lá estão a chave de API, o formato da chamada e as funções virt_api usadas nos exemplos em PHP, Python e Node.js.
Neste artigo
- Listar as VPS —
act=listvs - Ver os detalhes de uma VPS —
act=vpsmanage - Criar uma VPS —
act=create - Mudar os recursos de uma VPS —
act=editvm - Apagar uma VPS —
act=listvs - Configurar o escalonamento vertical —
act=vpsmanage
Listar as VPS
Ação: act=listvs · Método: GET
Lista as VPS que a conta enxerga, com os recursos e o estado de cada uma.
Parâmetros
Nenhum além da ação e da autenticação.
Exemplos
curl
curl -sS "https://$VIRT_HOST:4083/index.php?act=listvs&api=json&apikey=$VIRT_KEY&apipass=$VIRT_PASS"PHP
$r = virt_api('listvs');
print_r($r);Python
r = virt_api("listvs")
print(r)Node.js
const r = await virtApi('listvs');
console.log(r);Resposta
As VPS indexadas pelo id (vpsid). Cada uma traz hostname, o dono (uid), o sistema (os_name, osid), a virtualização (virt), os recursos (ram, space, cores, bandwidth, swap), o estado de suspensão (suspended, nw_suspended, suspend_reason) e a configuração de VNC.
Cuidados
- Esta mesma ação, com parâmetros a mais na URL, apaga, suspende e reativa VPS (veja Apagar uma VPS e o artigo de energia e suspensão). Ao montar a URL no seu código, confira os parâmetros antes de chamar.
Documentação oficial: List VPS.
Ver os detalhes de uma VPS
Ação: act=vpsmanage · Método: GET
Devolve o estado e os detalhes de uma VPS: se está ligada, há quanto tempo, IPs, sistema e consumo de banda.
Parâmetros
| Parâmetro | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
svs | URL | número | sim | Id da VPS. |
Exemplos
curl
curl -sS "https://$VIRT_HOST:4083/index.php?act=vpsmanage&svs=101&api=json&apikey=$VIRT_KEY&apipass=$VIRT_PASS"PHP
$r = virt_api('vpsmanage', [
'svs' => '101',
]);
print_r($r);Python
r = virt_api("vpsmanage", get={
"svs": "101",
})
print(r)Node.js
const r = await virtApi('vpsmanage', {
svs: '101',
});
console.log(r);Resposta
info traz hostname, status (ligada ou não), uptime, ip e ip_count, o sistema em os (nome, distribuição, osid) e bandwidth, com o limite, o usado e o consumo dia a dia.
Documentação oficial: VPS Info.
Criar uma VPS
Ação: act=create · Método: POST · Exclusivo do usuário Cloud
Cria uma VPS para um cliente, descontando os recursos da cota da sua conta Cloud. Sem addvs, nada é criado: a resposta traz os dados da tela de criação, como a cota livre e a lista de sistemas.
Parâmetros
| Parâmetro | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
addvs | corpo (POST) | 1 | sim | Confirma a criação. |
virt | corpo (POST) | texto | sim | Virtualização. As permitidas para a sua conta vêm em allowed_virts na cota. |
uid | corpo (POST) | número | sim | Id do cliente que vai ser dono da VPS. |
hostname | corpo (POST) | texto | sim | Hostname da VPS. |
rootpass | corpo (POST) | texto | sim | Senha do root. |
osid | corpo (POST) | número | sim | Id do sistema operacional. A lista com os ids vem em ostemplates na resposta desta mesma ação. |
space | corpo (POST) | número | sim | Disco, na mesma unidade da cota (resources.space). |
ram | corpo (POST) | número | sim | RAM, em MB. |
cores | corpo (POST) | número | sim | Núcleos de CPU. |
ips | corpo (POST) | número | sim | Quantos IPv4 a VPS recebe. |
bandwidth | corpo (POST) | número | sim | Banda mensal; 0 é ilimitada (segundo a documentação da API de administrador). |
swapram | corpo (POST) | número | não | Swap, em MB. Só KVM e Xen. |
sgid | corpo (POST) | número | não | Grupo de servidores onde a VPS será criada. |
ipv6 | corpo (POST) | número | não | Quantos IPv6 a VPS recebe. |
ipv6_subnet | corpo (POST) | número | não | Quantas sub-redes IPv6 a VPS recebe. |
ips_int | corpo (POST) | número | não | Quantos IPs internos a VPS recebe. |
cpu | corpo (POST) | número | não | Peso de CPU da VPS em relação às outras. |
cpu_percent | corpo (POST) | número | não | Fatia de CPU, em porcentagem. |
vnc | corpo (POST) | 0 ou 1 | não | 1 liga o console VNC. |
vncpass | corpo (POST) | texto | não | Senha do VNC. |
band_suspend | corpo (POST) | 0 ou 1 | não | 1 suspende a VPS quando ela passa da banda. |
osreinstall_limit | corpo (POST) | número | não | Quantas reinstalações de sistema o cliente pode fazer. |
iso | corpo (POST) | texto | não | Criar a partir de uma ISO do servidor, em vez de um sistema pronto. |
boot | corpo (POST) | texto | não | Ordem de boot. |
bios | corpo (POST) | texto | não | seabios (padrão) ou uefi. Só KVM, e só vale no boot por ISO. |
nic | corpo (POST) | texto | não | Tipo da placa de rede virtual. |
mg | corpo (POST) | texto | não | Grupo de mídia, para filtrar os sistemas oferecidos. |
ssh_options | corpo (POST) | texto | não | Como pôr chave SSH na VPS: add_ssh_keys (manda a chave em sshkey), generate_keys (manda o par gerado em sshkey e private_key) ou use_ssh_keys (usa chaves já guardadas, em existing_key[]). |
sshkey | corpo (POST) | texto | não | Chave pública SSH. |
private_key | corpo (POST) | texto | não | Chave privada; obrigatória com generate_keys. |
existing_key[] | corpo (POST) | lista de textos | não | Chaves públicas já guardadas na conta; obrigatória com use_ssh_keys. Repita o campo para cada chave. |
shadow | corpo (POST) | número | não | Memória shadow. Só Xen HVM. |
burst | corpo (POST) | número | não | RAM de burst. Só OpenVZ. |
tuntap | corpo (POST) | 0 ou 1 | não | Liga TUN/TAP. Só OpenVZ. |
io | corpo (POST) | número | não | Prioridade de disco. Só OpenVZ. |
Exemplos
curl
curl -sS "https://$VIRT_HOST:4083/index.php?act=create&api=json&apikey=$VIRT_KEY&apipass=$VIRT_PASS" \
--data-urlencode 'addvs=1' \
--data-urlencode 'virt=kvm' \
--data-urlencode 'uid=25' \
--data-urlencode 'hostname=vps1.exemplo.com.br' \
--data-urlencode 'rootpass=Senha-Root-Forte-2026' \
--data-urlencode 'osid=ID_DO_SISTEMA' \
--data-urlencode 'space=20' \
--data-urlencode 'ram=2048' \
--data-urlencode 'cores=2' \
--data-urlencode 'ips=1' \
--data-urlencode 'bandwidth=0'PHP
$r = virt_api('create', [], [
'addvs' => '1',
'virt' => 'kvm',
'uid' => '25',
'hostname' => 'vps1.exemplo.com.br',
'rootpass' => 'Senha-Root-Forte-2026',
'osid' => 'ID_DO_SISTEMA',
'space' => '20',
'ram' => '2048',
'cores' => '2',
'ips' => '1',
'bandwidth' => '0',
]);
print_r($r);Python
r = virt_api("create", post={
"addvs": "1",
"virt": "kvm",
"uid": "25",
"hostname": "vps1.exemplo.com.br",
"rootpass": "Senha-Root-Forte-2026",
"osid": "ID_DO_SISTEMA",
"space": "20",
"ram": "2048",
"cores": "2",
"ips": "1",
"bandwidth": "0",
})
print(r)Node.js
const r = await virtApi('create', {}, {
addvs: '1',
virt: 'kvm',
uid: '25',
hostname: 'vps1.exemplo.com.br',
rootpass: 'Senha-Root-Forte-2026',
osid: 'ID_DO_SISTEMA',
space: '20',
ram: '2048',
cores: '2',
ips: '1',
bandwidth: '0',
});
console.log(r);Resposta
vpsid é o id da VPS criada — guarde-o. A resposta também traz resources (a cota) e usage (o uso, já com a VPS nova), users e ostemplates.
Cuidados
- A documentação oficial não diz quais campos são obrigatórios nesta chamada. Os marcados como "sim" aqui são os que aparecem em todos os exemplos oficiais.
- Os recursos pedidos são conferidos contra a cota da conta, diz a documentação oficial. Consulte a cota antes de criar.
- O exemplo em curl da documentação oficial manda
swap; a tabela e o exemplo em PHP usamswapram. Este artigo segue a tabela. - A senha do root vai no corpo da chamada: use sempre HTTPS (porta 4083) e não registre o corpo em log.
Documentação oficial: Create VM.
Mudar os recursos de uma VPS
Ação: act=editvm · Método: POST · Exclusivo do usuário Cloud
Altera hostname, disco, RAM, núcleos, banda, IPs e VNC de uma VPS da conta. A diferença entra ou sai da cota.
Parâmetros
| Parâmetro | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
vid | URL | número | sim | Id da VPS. |
editvm | corpo (POST) | 1 | sim | Confirma a alteração. |
uid | corpo (POST) | número | sim | Id do cliente dono da VPS. |
hostname | corpo (POST) | texto | sim | Hostname. |
space | corpo (POST) | número | sim | Disco, na mesma unidade da cota. |
ram | corpo (POST) | número | sim | RAM, em MB. |
cores | corpo (POST) | número | sim | Núcleos de CPU. |
bandwidth | corpo (POST) | número | sim | Banda mensal; 0 é ilimitada. |
swapram | corpo (POST) | número | sim | Swap, em MB. |
vnc | corpo (POST) | 0 ou 1 | sim | 1 mantém o console VNC ligado. |
ips | corpo (POST) | número | sim | Quantos IPv4. |
rootpass | corpo (POST) | texto | não | Senha nova do root, se quiser trocar junto. |
ips_int | corpo (POST) | número | não | Quantos IPs internos. |
ipv6 | corpo (POST) | número | não | Quantos IPv6. |
ipv6_subnet | corpo (POST) | número | não | Quantas sub-redes IPv6. |
burst | corpo (POST) | número | não | RAM de burst. Só OpenVZ. |
Exemplos
curl
curl -sS "https://$VIRT_HOST:4083/index.php?act=editvm&vid=101&api=json&apikey=$VIRT_KEY&apipass=$VIRT_PASS" \
--data-urlencode 'editvm=1' \
--data-urlencode 'uid=25' \
--data-urlencode 'hostname=vps1.exemplo.com.br' \
--data-urlencode 'space=40' \
--data-urlencode 'ram=4096' \
--data-urlencode 'cores=4' \
--data-urlencode 'bandwidth=0' \
--data-urlencode 'swapram=1024' \
--data-urlencode 'vnc=1' \
--data-urlencode 'ips=1'PHP
$r = virt_api('editvm', [
'vid' => '101',
], [
'editvm' => '1',
'uid' => '25',
'hostname' => 'vps1.exemplo.com.br',
'space' => '40',
'ram' => '4096',
'cores' => '4',
'bandwidth' => '0',
'swapram' => '1024',
'vnc' => '1',
'ips' => '1',
]);
print_r($r);Python
r = virt_api("editvm", get={
"vid": "101",
}, post={
"editvm": "1",
"uid": "25",
"hostname": "vps1.exemplo.com.br",
"space": "40",
"ram": "4096",
"cores": "4",
"bandwidth": "0",
"swapram": "1024",
"vnc": "1",
"ips": "1",
})
print(r)Node.js
const r = await virtApi('editvm', {
vid: '101',
}, {
editvm: '1',
uid: '25',
hostname: 'vps1.exemplo.com.br',
space: '40',
ram: '4096',
cores: '4',
bandwidth: '0',
swapram: '1024',
vnc: '1',
ips: '1',
});
console.log(r);Resposta
done indica que a VPS foi alterada; done_msg traz a mensagem e vps os dados novos. resources e usage mostram a cota depois da mudança.
Cuidados
- A tabela oficial marca como obrigatórios hostname, disco, RAM, núcleos, banda, swap, VNC e IPs: mande todos, mesmo os que não mudam.
- O id da VPS vai na URL como
vid— e nãosvs, como na maioria das outras ações. A tabela oficial também o lista no corpo; o exemplo dela manda só na URL, como aqui. - O exemplo em curl da documentação oficial manda
swap; a tabela e o exemplo em PHP usamswapram. - Reduzir o disco de uma VPS em uso pode corromper o sistema de arquivos dela.
Documentação oficial: Edit VM.
Apagar uma VPS
Ação: act=listvs · Método: GET · Exclusivo do usuário Cloud
Apaga uma VPS de vez, com o disco, e devolve os recursos dela à cota.
Parâmetros
| Parâmetro | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
delvs | URL | número | sim | Id da VPS a apagar. |
Exemplos
curl
curl -sS "https://$VIRT_HOST:4083/index.php?act=listvs&delvs=101&api=json&apikey=$VIRT_KEY&apipass=$VIRT_PASS"PHP
$r = virt_api('listvs', [
'delvs' => '101',
]);
print_r($r);Python
r = virt_api("listvs", get={
"delvs": "101",
})
print(r)Node.js
const r = await virtApi('listvs', {
delvs: '101',
});
console.log(r);Resposta
done confirma; delvs repete o id apagado e vs traz a lista de VPS que sobrou.
Cuidados
- Não tem volta e não pede confirmação: é a mesma ação de listar VPS, com
delvsna URL. Confira o id duas vezes no seu código. - Faça backup antes, se o cliente puder querer os dados.
- A tabela oficial lista
delvscomo parâmetro POST; o exemplo oficial e o SDK mandam pela URL, como aqui.
Documentação oficial: Delete VM.
Configurar o escalonamento vertical
Ação: act=vpsmanage · Método: POST
Define de quanto em quanto a RAM e os núcleos da VPS sobem ou descem quando o escalonamento vertical age. Disponível a partir do Virtualizor 3.1.3.
Parâmetros
| Parâmetro | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
svs | URL | número | sim | Id da VPS. |
save_ver_data | corpo (POST) | 1 | sim | Confirma a gravação. |
vs_ver_ram_inc_by | corpo (POST) | número | sim | Passo da RAM, em GB. |
vs_ver_cpu_inc_by | corpo (POST) | número | sim | Passo da CPU, em núcleos. |
Exemplos
curl
curl -sS "https://$VIRT_HOST:4083/index.php?act=vpsmanage&svs=101&api=json&apikey=$VIRT_KEY&apipass=$VIRT_PASS" \
--data-urlencode 'save_ver_data=1' \
--data-urlencode 'vs_ver_ram_inc_by=2' \
--data-urlencode 'vs_ver_cpu_inc_by=1'PHP
$r = virt_api('vpsmanage', [
'svs' => '101',
], [
'save_ver_data' => '1',
'vs_ver_ram_inc_by' => '2',
'vs_ver_cpu_inc_by' => '1',
]);
print_r($r);Python
r = virt_api("vpsmanage", get={
"svs": "101",
}, post={
"save_ver_data": "1",
"vs_ver_ram_inc_by": "2",
"vs_ver_cpu_inc_by": "1",
})
print(r)Node.js
const r = await virtApi('vpsmanage', {
svs: '101',
}, {
save_ver_data: '1',
vs_ver_ram_inc_by: '2',
vs_ver_cpu_inc_by: '1',
});
console.log(r);Resposta
ver_done confirma que os dados foram gravados.
Cuidados
- O campo
save_ver_datanão aparece na tabela da documentação oficial, só no exemplo em curl dela. Sem ele, a chamada vira a de detalhes da VPS (act=vpsmanage) e nada é gravado.
Documentação oficial: Vertical Scaling Data.
Texto da Vitt Host, escrito a partir da documentação oficial da Virtualizor, lida em 07/10/2026. Onde a documentação oficial se contradiz, o artigo segue os exemplos dela e aponta a diferença em Cuidados.