Detalha um servidor
GET /cloud/servers/{id}
Escopo do token: servers:read. Recurso: Servidores.
Exemplo de requisição
Seção intitulada “Exemplo de requisição”Os exemplos leem o token da variável de ambiente HALVER_API_TOKEN (um token sc_live_… criado em Desenvolvedores › Tokens de API). Nunca escreva o token no código.
curl "https://dash.halver.com.br/api/v1/cloud/servers/307d7f63-0f00-4d4b-bc28-839d359e13a3" \ -H "Authorization: Bearer $HALVER_API_TOKEN"package main
import ( "fmt" "io" "net/http" "os" "time")
func main() { req, err := http.NewRequest(http.MethodGet, "https://dash.halver.com.br/api/v1/cloud/servers/307d7f63-0f00-4d4b-bc28-839d359e13a3", nil) if err != nil { panic(err) } req.Header.Set("Authorization", "Bearer "+os.Getenv("HALVER_API_TOKEN")) client := &http.Client{Timeout: 30 * time.Second} resp, err := client.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, err := io.ReadAll(resp.Body) if err != nil { panic(err) } fmt.Println(resp.Status) fmt.Println(string(out))}import os
import requests
resp = requests.get( "https://dash.halver.com.br/api/v1/cloud/servers/307d7f63-0f00-4d4b-bc28-839d359e13a3", headers={ "Authorization": f"Bearer {os.environ['HALVER_API_TOKEN']}", }, timeout=30,)resp.raise_for_status()print(resp.json())Parâmetros
Seção intitulada “Parâmetros”Parâmetros do caminho
Seção intitulada “Parâmetros do caminho”-
idstring (uuid) obrigatórioExemplo:
307d7f63-0f00-4d4b-bc28-839d359e13a3.
Respostas
Seção intitulada “Respostas”Servidor com as etapas da operação atual.
Campos da resposta
-
cancel_atstring (date) obrigatório pode ser nuloÚltimo dia da assinatura cancelada (fim do período pago); depois dele a máquina volta ao estoque.
-
contract_idstring (uuid) obrigatório pode ser nulo -
created_atstring (date-time) obrigatório -
descriptionstringDescrição livre do cliente (até 500 caracteres).
-
disk_layoutstring obrigatórioLegado (veja storage) - raid1 quando a última instalação é um RAID 1, senão single. Um de:
single,raid1. -
end_customer_refstring pode ser nuloId do cliente final no sistema do revendedor: agrupa servidores, não é único. Id opaco, sem dado pessoal (nem nome nem CPF), com a mesma regra do
external_id. Nulo quando não informado. -
external_idstring pode ser nuloId do pedido no sistema do revendedor: único na conta entre os servidores não removidos. Id opaco, sem dado pessoal (nem nome nem CPF): de 1 a 128 caracteres entre letras sem acento, números e
. _ : -. Nulo quando não informado. -
first_invoice_idstring (uuid) obrigatório pode ser nuloFatura cobrada na compra.
-
hostnamestring obrigatório -
idstring (uuid) obrigatório -
ipv4string obrigatório -
ipv4_gatewaystring obrigatório -
ipv4_prefixinteger obrigatório -
monthly_centsinteger (int64) obrigatórioO que o servidor custa por mês: a recorrência do contrato dele (com reajustes), não o preço atual do plano, que vale só para servidores novos.
-
operationstring obrigatórioUm de:
deploy,reinstall,wipe,delete,""(vazio). -
operation_idstring (uuid) pode ser nuloA última operação do servidor (deploy, reinstall, wipe ou delete); acompanhe por
GET /cloud/operations/{id}. -
osobject obrigatório-
codestring obrigatório -
familystring obrigatório -
idstring (uuid) obrigatório -
install_methodstring obrigatórioimage grava uma imagem de disco; installer inicia o instalador oficial do sistema (Proxmox VE); none não instala nada (o cliente instala o próprio sistema pela IPMI). Um de:
image,installer,none. -
login_userstring obrigatórioUsuário de acesso ao sistema instalado.
-
namestring obrigatório -
password_requiredboolean obrigatórioO sistema é usado com senha (painel web do Proxmox VE).
-
raid1boolean obrigatórioO sistema instala num espelho (RAID 1) de dois discos iguais.
-
storageobject obrigatórioO que o cliente escolhe nos discos deste sistema. O instalador do Proxmox VE grava ZFS (padrão, recomendado), ext4 ou XFS; ext4 e XFS vão num disco, o ZFS num disco ou nos níveis de RAID. Um sistema de imagem vai num disco (o sistema de arquivos é o da imagem) ou, quando o motor tem a versão dele para espelho, em RAID 1 de dois discos iguais.
-
default_filesystemstring obrigatórioUm de:
zfs,ext4,xfs,""(vazio). -
filesystemsarray de string obrigatórioSistemas de arquivos que o instalador grava; vazio nos sistemas de imagem. Um de:
zfs,ext4,xfs. -
levelsarray de object obrigatório-
even_disksboolean obrigatórioO nível usa discos em pares (RAID 10).
-
filesystemsarray de string obrigatórioSistemas de arquivos que oferecem o nível; vazio nos sistemas de imagem. Um de:
zfs,ext4,xfs. -
levelstring obrigatórioUm de:
single,raid0,raid1,raid10,raidz-1,raidz-2,raidz-3. -
max_disksinteger obrigatório0 é sem limite.
-
min_disksinteger obrigatório
-
-
-
versionstring obrigatório
-
-
password_loginboolean obrigatórioCada instalação gera uma senha e a envia por e-mail.
-
planobject obrigatório-
activeboolean obrigatório -
bandwidth_mbpsinteger obrigatórioLimite de banda; 0 é a porta inteira.
-
boot_slotstringDisco pelo qual o servidor inicia (id de disk_slots): o sistema precisa incluí-lo, sozinho ou num pool de discos iguais. As máquinas iniciam em BIOS legado só pelo primeiro disco. Ausente quando qualquer disco inicia o servidor.
-
codestring obrigatório -
coresinteger obrigatório -
cpustring obrigatório -
cpu_threadsinteger obrigatório -
created_atstring (date-time) obrigatório -
disk_slotsarray de object obrigatórioOs discos do plano um a um, onde o sistema pode ser instalado.
-
idstring obrigatório<tipo>-<GB>-<n>, por exemplo ssd-128-2: o segundo SSD de 128 GB do plano.
-
modelstring obrigatório -
size_gbinteger obrigatório -
typestring obrigatórioUm de:
nvme,ssd,hdd.
-
-
disksarray de object obrigatórioDiscos mínimos que a máquina precisa ter.
-
countinteger obrigatório -
modelstring -
size_gbinteger obrigatório -
typestring obrigatórioUm de:
nvme,ssd,hdd.
-
-
idstring (uuid) obrigatório -
memory_gbinteger obrigatório -
monthly_centsinteger (int64) obrigatório -
namestring obrigatório -
port_speed_mbpsinteger obrigatórioVelocidade da porta entregue.
-
product_idstring (uuid) obrigatório pode ser nulo -
raid1boolean obrigatórioO plano tem dois discos iguais, então o servidor pode espelhá-los (RAID 1).
-
traffic_tbinteger obrigatórioTráfego mensal em TB; 0 é ilimitado.
-
-
powerstring obrigatórioUm de:
on,off,unknown. -
siteobject obrigatório-
activeboolean obrigatório -
citystring obrigatório -
codestring obrigatório -
countrystring obrigatório -
created_atstring (date-time) obrigatório -
idstring (uuid) obrigatório -
namestring obrigatório -
region_idstring (uuid) obrigatórioRegião do local; os IPs das máquinas vêm dos blocos dela.
-
-
ssh_keysinteger obrigatórioQuantidade de chaves instaladas no último deploy.
-
statusstring obrigatórioUm de:
pending_payment,deploying,active,failed,wiping,empty,deleting,deleted. -
stepsarray de object obrigatório-
finished_atstring (date-time) obrigatório pode ser nulo -
messagestring obrigatório -
namestring obrigatórioUm de:
prepare,erase,install,configure,reboot,ready,release. -
started_atstring (date-time) obrigatório pode ser nulo -
statusstring obrigatórioUm de:
pending,running,done,failed.
-
-
storageobject obrigatórioOnde a última instalação pôs o sistema.
-
disksarray de object obrigatório-
idstring obrigatório<tipo>-<GB>-<n>, por exemplo ssd-128-2: o segundo SSD de 128 GB do plano.
-
modelstring obrigatório -
size_gbinteger obrigatório -
typestring obrigatórioUm de:
nvme,ssd,hdd.
-
-
filesystemstring obrigatórioVazio nos sistemas de imagem (o sistema de arquivos é o da imagem). Um de:
zfs,ext4,xfs,""(vazio). -
raidstring obrigatórioUm de:
single,raid0,raid1,raid10,raidz-1,raidz-2,raidz-3. -
summarystring obrigatório
-
-
suspended_atstring (date-time) obrigatório pode ser nuloDesligado por falta de pagamento, com os dados mantidos; volta a ser ligado sozinho quando a fatura é paga. Enquanto isso, power, reinstalação, apagar, cancelar e VPN da IPMI respondem 409
cloud.server_suspended. -
tagsarray de stringTags do cliente, em ordem alfabética e sem repetição.
-
terminated_atstring (date-time) obrigatório pode ser nuloEncerrado na hora pela equipe. O cliente continua vendo a página do servidor (o aviso leva até ela) mesmo depois de removido, só com o texto fixo da categoria.
-
termination_categorystring obrigatórioPor que a equipe encerrou o servidor (vazio quando não foi encerrado pela equipe). Um de:
""(vazio),abuse,fraud,customer_request,internal_test,delinquency,other. -
user_data_sha256string pode ser nuloSHA-256 (hex) do user data das instalações; o conteúdo nunca é devolvido. Nulo sem user data.
-
user_data_sizeintegerTamanho do user data em bytes (0 sem user data).
{ "cancel_at": null, "contract_id": "751e7c9a-fae2-4027-9be3-5728dfce8982", "created_at": "2026-10-20T18:00:00Z", "description": "Servidor de produção", "disk_layout": "raid1", "end_customer_ref": null, "external_id": null, "first_invoice_id": "36d56e13-ffa3-4af3-acc1-14aa538fb0ab", "hostname": "web-01", "id": "307d7f63-0f00-4d4b-bc28-839d359e13a3", "ipv4": "203.0.113.10", "ipv4_gateway": "203.0.113.1", "ipv4_prefix": 29, "monthly_cents": 79900, "operation": "deploy", "operation_id": "38b54c25-1f8d-40fe-8cb1-649ddb710f23", "os": { "code": "ubuntu-24.04", "family": "ubuntu", "id": "180cadfe-7099-445b-9dce-3a86af179a17", "install_method": "image", "login_user": "ubuntu", "name": "Ubuntu 24.04 LTS", "password_required": false, "raid1": true, "storage": { "default_filesystem": "", "filesystems": [], "levels": [ { "even_disks": false, "filesystems": [], "level": "raid1", "max_disks": 2, "min_disks": 2 } ] }, "version": "24.04" }, "password_login": false, "plan": { "active": true, "bandwidth_mbps": 0, "boot_slot": "", "code": "c1.small.ssd", "cores": 4, "cpu": "Intel(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz", "cpu_threads": 8, "created_at": "2026-10-20T18:00:00Z", "disk_slots": [ { "id": "ssd-128-2", "model": "", "size_gb": 128, "type": "ssd" } ], "disks": [ { "count": 2, "model": "", "size_gb": 128, "type": "ssd" } ], "id": "a30bf51c-7749-4ed5-8983-8201f864273b", "memory_gb": 32, "monthly_cents": 79900, "name": "c1.small.ssd · Supermicro X11", "port_speed_mbps": 1000, "product_id": "a3052a82-1c61-48d1-8feb-612bf80ff949", "raid1": true, "traffic_tb": 0 }, "power": "on", "site": { "active": true, "city": "Varginha", "code": "mg-1", "country": "BR", "created_at": "2026-10-20T18:00:00Z", "id": "4afc7034-1b53-4b2a-bc4c-d831d6e39028", "name": "Minas Gerais 01", "region_id": "7991b4f0-3bd8-47f3-bd3c-30b5d9ac664e" }, "ssh_keys": 1, "status": "active", "steps": [ { "finished_at": null, "message": "", "name": "prepare", "started_at": null, "status": "done" } ], "storage": { "disks": [ { "id": "ssd-128-2", "model": "", "size_gb": 128, "type": "ssd" } ], "filesystem": "", "raid": "raid1", "summary": "ZFS RAID 1 em 2× SSD 128 GB" }, "suspended_at": null, "tags": [ "env=prod" ], "terminated_at": null, "termination_category": "", "user_data_sha256": "9f2c4e1b7a3d5f8e0c6b2a4d8e1f3a5c7b9d0e2f4a6c8e0b1d3f5a7c9e1b3d5f", "user_data_size": 92}Todo erro vem como application/problem+json (RFC 9457), com um code estável, a mensagem em português em detail, o motivo de cada campo em errors (nos erros de validação) e o request_id, que você informa ao suporte. Veja a lista completa de códigos.
| Status | Quando | Códigos |
|---|---|---|
| 400 | Requisição inválida (JSON malformado, campo desconhecido, parâmetro inválido ou falha de validação). | validation_failed |
| 401 | Não autenticado (token ausente, inválido ou expirado; credenciais inválidas). | auth.unauthorized |
| 403 | Autenticado, mas sem permissão para a área ou a operação. | api_token.insufficient_scope |
| 404 | Recurso não encontrado (ou fora do escopo do usuário). | server.not_found |
{ "type": "about:blank", "title": "Forbidden", "status": 403, "detail": "o token não tem o escopo servers:read; crie um token com esse escopo em Desenvolvedores › Tokens de API", "code": "api_token.insufficient_scope", "request_id": "6f1c0b2a9e4d7c3b5a8f0e1d"}