Pular para o conteúdo

O que dá para contratar agora

GET /cloud/catalog

Escopo do token: servers:read. Recurso: Catálogo e cupons.

Locais, planos com estoque por local, sistemas, se a conta está verificada (cartão salvo) e se o provisionamento está disponível.

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.

Janela do terminal
curl "https://dash.halver.com.br/api/v1/cloud/catalog" \
-H "Authorization: Bearer $HALVER_API_TOKEN"

Catálogo.

Campos da resposta
  • available boolean obrigatório

    O motor de provisionamento está configurado.

  • internal_account boolean obrigatório

    Conta de uso interno - contrata sem cartão e sem cobrança.

  • os_images array de object obrigatório
    • code string obrigatório
    • family string obrigatório
    • id string (uuid) obrigatório
    • install_method string obrigatório

      image 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_user string obrigatório

      Usuário de acesso ao sistema instalado.

    • name string obrigatório
    • password_required boolean obrigatório

      O sistema é usado com senha (painel web do Proxmox VE).

    • raid1 boolean obrigatório

      O sistema instala num espelho (RAID 1) de dois discos iguais.

    • storage object obrigatório

      O 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_filesystem string obrigatório

        Um de: zfs, ext4, xfs, "" (vazio).

      • filesystems array de string obrigatório

        Sistemas de arquivos que o instalador grava; vazio nos sistemas de imagem. Um de: zfs, ext4, xfs.

      • levels array de object obrigatório
        • even_disks boolean obrigatório

          O nível usa discos em pares (RAID 10).

        • filesystems array de string obrigatório

          Sistemas de arquivos que oferecem o nível; vazio nos sistemas de imagem. Um de: zfs, ext4, xfs.

        • level string obrigatório

          Um de: single, raid0, raid1, raid10, raidz-1, raidz-2, raidz-3.

        • max_disks integer obrigatório

          0 é sem limite.

        • min_disks integer obrigatório
    • version string obrigatório
  • plans array de object obrigatório
    • active boolean obrigatório
    • bandwidth_mbps integer obrigatório

      Limite de banda; 0 é a porta inteira.

    • boot_slot string

      Disco 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.

    • code string obrigatório
    • cores integer obrigatório
    • cpu string obrigatório
    • cpu_threads integer obrigatório
    • created_at string (date-time) obrigatório
    • disk_slots array de object obrigatório

      Os discos do plano um a um, onde o sistema pode ser instalado.

      • id string obrigatório

        <tipo>-<GB>-<n>, por exemplo ssd-128-2: o segundo SSD de 128 GB do plano.

      • model string obrigatório
      • size_gb integer obrigatório
      • type string obrigatório

        Um de: nvme, ssd, hdd.

    • disks array de object obrigatório

      Discos mínimos que a máquina precisa ter.

      • count integer obrigatório
      • model string
      • size_gb integer obrigatório
      • type string obrigatório

        Um de: nvme, ssd, hdd.

    • id string (uuid) obrigatório
    • memory_gb integer obrigatório
    • monthly_cents integer (int64) obrigatório
    • name string obrigatório
    • port_speed_mbps integer obrigatório

      Velocidade da porta entregue.

    • product_id string (uuid) obrigatório pode ser nulo
    • raid1 boolean obrigatório

      O plano tem dois discos iguais, então o servidor pode espelhá-los (RAID 1).

    • stock object obrigatório

      Máquinas em estoque por id de local.

    • traffic_tb integer obrigatório

      Tráfego mensal em TB; 0 é ilimitado.

  • simulated boolean obrigatório

    O motor é simulado (ambiente de validação) e nenhum servidor é instalado de verdade.

  • sites array de object obrigatório
    • active boolean obrigatório
    • city string obrigatório
    • code string obrigatório
    • country string obrigatório
    • created_at string (date-time) obrigatório
    • id string (uuid) obrigatório
    • name string obrigatório
    • region_id string (uuid) obrigatório

      Região do local; os IPs das máquinas vêm dos blocos dela.

  • verified boolean obrigatório

    A conta tem cartão salvo ou é de uso interno (não precisa).

Exemplo de resposta
{
"available": true,
"internal_account": false,
"os_images": [
{
"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"
}
],
"plans": [
{
"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": "204b6601-0ea2-45a0-b67c-2acb8859dbfd",
"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,
"stock": {
"campo": 0
},
"traffic_tb": 0
}
],
"simulated": false,
"sites": [
{
"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"
}
],
"verified": true
}

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
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
Exemplo de erro
{
"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"
}