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
- Listar os clientes da conta —
act=users - Criar um cliente —
act=adduser - Alterar e-mail ou senha de um cliente —
act=edituser - Apagar um cliente —
act=users - 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âmetro | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
subuserid | corpo (POST) | lista de números | não | Filtra pelos ids informados, separados por vírgula. Sem ele, vêm todos. |
uid | corpo (POST) | número | não | Id 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âmetro | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
adduser | corpo (POST) | 1 | sim | Confirma a criação. |
user_email | corpo (POST) | texto | sim | E-mail do cliente; é o login dele no painel. |
user_password | corpo (POST) | texto | sim | Senha de acesso do cliente ao painel. |
pid | corpo (POST) | número | não | Id 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 usamact=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âmetro | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
uid | URL | número | sim | Id do cliente. |
edituser | corpo (POST) | 1 | sim | Confirma a alteração. |
user_email | corpo (POST) | texto | sim | E-mail de login. |
user_password | corpo (POST) | texto | sim | Senha 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âmetro | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
delete | URL | número | sim | Id 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 é odeletena 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â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=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
svsna 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.