Na conta Cloud, cada cliente seu é um usuário do painel, criado debaixo da sua conta. Aqui estão os endpoints para listar, criar, editar e apagar esses usuários, e o link de login único que abre o painel do cliente sem pedir senha.

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

  1. Listar os clientes da conta — act=users
  2. Criar um cliente — act=adduser
  3. Alterar e-mail ou senha de um cliente — act=edituser
  4. Apagar um cliente — act=users
  5. Gerar link de acesso sem senha (SSO) — act=sso

Listar os clientes da conta

Ação: act=users · Método: POST · Exclusivo do usuário Cloud

Lista os usuários criados debaixo da sua conta Cloud, com a cota de cada um.

Parâmetros

ParâmetroOndeTipoObrigatórioDescrição
subuseridcorpo (POST)lista de númerosnãoFiltra pelos ids informados, separados por vírgula. Sem ele, vêm todos.
uidcorpo (POST)númeronãoId do usuário cujos subusuários serão listados. A tabela oficial o marca como obrigatório, mas nenhum exemplo oficial o envia.

Exemplos

curl

curl -sS "https://$VIRT_HOST:4083/index.php?act=users&api=json&apikey=$VIRT_KEY&apipass=$VIRT_PASS" \
  --data-urlencode 'subuserid=25,26'

PHP

$r = virt_api('users', [], [
    'subuserid' => '25,26',
]);
print_r($r);

Python

r = virt_api("users", post={
    "subuserid": "25,26",
})
print(r)

Node.js

const r = await virtApi('users', {}, {
  subuserid: '25,26',
});
console.log(r);

Resposta

user_list traz os clientes indexados pelo id. Cada um tem email, o tipo de conta (type), o usuário pai (pid), a data de criação (date_created), os limites de cota (num_vs, space, ram, bandwidth, num_cores, num_ipv4…) e, quando houver, suspended e suspend_reason.

Cuidados

  • Guarde o id (uid) de cada cliente no seu sistema: ele é o que liga o cliente às VPS que você cria para ele.

Documentação oficial: List User.


Criar um cliente

Ação: act=adduser · Método: POST · Exclusivo do usuário Cloud

Cria um usuário do painel debaixo da sua conta. É o cliente que depois recebe VPS e acessa o painel com a sua marca.

Parâmetros

ParâmetroOndeTipoObrigatórioDescrição
addusercorpo (POST)1simConfirma a criação.
user_emailcorpo (POST)textosimE-mail do cliente; é o login dele no painel.
user_passwordcorpo (POST)textosimSenha de acesso do cliente ao painel.
pidcorpo (POST)númeronãoId de um usuário existente, para criar o novo debaixo dele.

Exemplos

curl

curl -sS "https://$VIRT_HOST:4083/index.php?act=adduser&api=json&apikey=$VIRT_KEY&apipass=$VIRT_PASS" \
  --data-urlencode 'adduser=1' \
  --data-urlencode 'user_email=cliente@exemplo.com.br' \
  --data-urlencode 'user_password=Senha-Do-Cliente-2026'

PHP

$r = virt_api('adduser', [], [
    'adduser' => '1',
    'user_email' => 'cliente@exemplo.com.br',
    'user_password' => 'Senha-Do-Cliente-2026',
]);
print_r($r);

Python

r = virt_api("adduser", post={
    "adduser": "1",
    "user_email": "cliente@exemplo.com.br",
    "user_password": "Senha-Do-Cliente-2026",
})
print(r)

Node.js

const r = await virtApi('adduser', {}, {
  adduser: '1',
  user_email: 'cliente@exemplo.com.br',
  user_password: 'Senha-Do-Cliente-2026',
});
console.log(r);

Resposta

done indica que o usuário foi criado. Para descobrir o id dele, liste os clientes e procure pelo e-mail.

Cuidados

  • A tabela da documentação oficial diz act=addusers; o exemplo dela e o SDK oficial usam act=adduser, como aqui.
  • O exemplo em curl da documentação oficial chama a porta 4082, sem HTTPS. Use sempre a 4083, com HTTPS: a senha do cliente viaja nesta chamada.

Documentação oficial: Add User.


Alterar e-mail ou senha de um cliente

Ação: act=edituser · Método: POST · Exclusivo do usuário Cloud

Muda o e-mail de login e a senha de um cliente da sua conta.

Parâmetros

ParâmetroOndeTipoObrigatórioDescrição
uidURLnúmerosimId do cliente.
editusercorpo (POST)1simConfirma a alteração.
user_emailcorpo (POST)textosimE-mail de login.
user_passwordcorpo (POST)textosimSenha nova.

Exemplos

curl

curl -sS "https://$VIRT_HOST:4083/index.php?act=edituser&uid=25&api=json&apikey=$VIRT_KEY&apipass=$VIRT_PASS" \
  --data-urlencode 'edituser=1' \
  --data-urlencode 'user_email=cliente@exemplo.com.br' \
  --data-urlencode 'user_password=Outra-Senha-2026'

PHP

$r = virt_api('edituser', [
    'uid' => '25',
], [
    'edituser' => '1',
    'user_email' => 'cliente@exemplo.com.br',
    'user_password' => 'Outra-Senha-2026',
]);
print_r($r);

Python

r = virt_api("edituser", get={
    "uid": "25",
}, post={
    "edituser": "1",
    "user_email": "cliente@exemplo.com.br",
    "user_password": "Outra-Senha-2026",
})
print(r)

Node.js

const r = await virtApi('edituser', {
  uid: '25',
}, {
  edituser: '1',
  user_email: 'cliente@exemplo.com.br',
  user_password: 'Outra-Senha-2026',
});
console.log(r);

Resposta

done indica que o cliente foi alterado; edit_user traz os dados dele.

Cuidados

  • Os dois campos são obrigatórios: para mudar só o e-mail, mande também a senha (e vice-versa).

Documentação oficial: Edit User.


Apagar um cliente

Ação: act=users · Método: GET · Exclusivo do usuário Cloud

Remove um cliente da sua conta.

Parâmetros

ParâmetroOndeTipoObrigatórioDescrição
deleteURLnúmerosimId do cliente a apagar.

Exemplos

curl

curl -sS "https://$VIRT_HOST:4083/index.php?act=users&delete=25&api=json&apikey=$VIRT_KEY&apipass=$VIRT_PASS"

PHP

$r = virt_api('users', [
    'delete' => '25',
]);
print_r($r);

Python

r = virt_api("users", get={
    "delete": "25",
})
print(r)

Node.js

const r = await virtApi('users', {
  delete: '25',
});
console.log(r);

Resposta

done confirma a remoção; msg traz o texto de retorno, e user_list a lista já sem o cliente.

Cuidados

  • É a mesma ação de listar (act=users): o que muda é o delete na URL. Confira o id antes — não há confirmação.
  • Apague ou transfira as VPS do cliente antes; a documentação oficial não diz o que acontece com elas.

Documentação oficial: Delete User.


Gerar link de acesso sem senha (SSO)

Ação: act=sso · Método: GET

Gera um link que abre o painel de uma VPS já autenticado. Serve para pôr um botão "Gerenciar servidor" na sua área do cliente, sem o cliente digitar senha.

Parâmetros

ParâmetroOndeTipoObrigatórioDescrição
svsURLnúmerosimId da VPS.

Exemplos

curl

curl -sS "https://$VIRT_HOST:4083/index.php?act=sso&svs=101&api=json&apikey=$VIRT_KEY&apipass=$VIRT_PASS"

PHP

$r = virt_api('sso', [
    'svs' => '101',
]);
print_r($r);

Python

r = virt_api("sso", get={
    "svs": "101",
})
print(r)

Node.js

const r = await virtApi('sso', {
  svs: '101',
});
console.log(r);

Resposta

O link de acesso. A documentação oficial não mostra o formato da resposta: confira o nome do campo na primeira chamada antes de montar o botão.

Cuidados

  • A tabela oficial manda svs na URL; o exemplo em curl dela manda no corpo. Este artigo segue a tabela.
  • Gere o link na hora do clique, no seu servidor, e não guarde: é uma credencial de acesso ao painel.

Documentação oficial: Single Sign On (SSO).


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.