Referência de API

Integre GPUs de topo de linha à sua aplicação. Simples, rápido e confiável.

O uso da API é gratuito — você paga apenas pelo tempo de GPU que usar, por hora, em reais. Crie sua conta, gere uma API key e comece em segundos.

URL base

Todos os endpoints ficam sob a URL base abaixo e respondem em JSON:

https://gpubrasil.com.br

Autenticação

Autentique com uma API key no header Authorization. A key não expira e pode ser revogada a qualquer momento no painel. Trate-a como uma senha — quem tiver a key pode criar e apagar instâncias na sua conta.

Authorization: Bearer gpub_live_suachaveaqui

Alternativamente, você pode enviar a key no header x-api-key.

Gere sua API key no painel

Por segurança, as API keys são geradas e gerenciadas dentro da sua conta — na seção API Keys do painel. A chave em claro é exibida uma única vez, no ambiente autenticado.

Abrir painel → API Keys

Endpoints

Fluxo completo

O ciclo de vida de uma instância é: escolher a GPU → criar → consultar status/conexão → (opcional) parar/iniciar → deletar. Nos exemplos abaixo, defina sua chave em uma variável de ambiente:

export GPUB_API_KEY="gpub_live_suachaveaqui"

1. Listar GPUs e preços

Retorna o catálogo com preço por hora (em R$) e o gpu_key que você usa para criar a instância. Não exige autenticação.

curl -s "https://gpubrasil.com.br/api/gpus"

Resposta (resumo):
{
  "gpus": [
    { "model": "NVIDIA H100 PCIe 80GB", "gpu_key": "premium_H100-80G-PCIe",
      "pricePerHourBrl": 19.88, "provider": "premium" },
    { "model": "RTX 4090", "gpu_key": "economic_RTX_4090",
      "pricePerHourBrl": 3.34, "provider": "economic" }
  ]
}

Dica: use /api/gpus/available para ver também a quantidade disponível em tempo real.

2. Criar instância

Use o gpuModel = gpu_key obtido no passo 1. O deploy roda em segundo plano; a resposta volta na hora com um instanceId e status creating.

curl -X POST "https://gpubrasil.com.br/api/instances/deploy" \
  -H "Authorization: Bearer $GPUB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "minha-vm",
    "gpuModel": "premium_H100-80G-PCIe",
    "vcpuCount": 8,
    "ramGb": 64,
    "storageGb": 100
  }'

Resposta:
{
  "success": true,
  "instance": { "instanceId": "abc123", "name": "minha-vm", "status": "creating" },
  "chargedAmount": 19.88,
  "currency": "R$",
  "message": "Instância sendo criada..."
}

Campos: gpuModel (obrigatório), vcpuCount (mín. 2), ramGb (mín. 8), storageGb (mín. 40), name, e opcionalmente sshKey e templateId (template 1-clique).

3. Status e dados de conexão SSH

Consulte pelo instanceId. Quando o status virar running, o objeto connection traz IP, porta e o comando SSH pronto.

curl -s "https://gpubrasil.com.br/api/instances/abc123" \
  -H "Authorization: Bearer $GPUB_API_KEY"

Resposta:
{
  "id": "abc123",
  "name": "minha-vm",
  "status": "running",
  "gpu_model": "premium_H100-80G-PCIe",
  "connection": {
    "ip": "203.0.113.42",
    "port": 22,
    "user": "ubuntu",
    "sshCommand": "ssh -i ~/.ssh/your_key -p 22 ubuntu@203.0.113.42"
  },
  "resources": { "vcpuCount": 8, "ramGb": 64, "storageGb": 100 },
  "pricing": { "hourlyRateBrl": 19.88 }
}

4. Listar suas instâncias

curl -s "https://gpubrasil.com.br/api/instances" \
  -H "Authorization: Bearer $GPUB_API_KEY"

5. Parar e iniciar (opcional)

Pausar interrompe a cobrança por uso mantendo a instância; iniciar volta a ligá-la.

curl -X POST "https://gpubrasil.com.br/api/instances/abc123/stop" \
  -H "Authorization: Bearer $GPUB_API_KEY"

curl -X POST "https://gpubrasil.com.br/api/instances/abc123/start" \
  -H "Authorization: Bearer $GPUB_API_KEY"

6. Deletar instância

Destrói a instância no provedor e encerra a cobrança. É o endpoint que você perguntou — ele existe e é definitivo.

curl -X DELETE "https://gpubrasil.com.br/api/instances/abc123" \
  -H "Authorization: Bearer $GPUB_API_KEY"

Resposta:
{ "success": true, "message": "Instância removida" }

Se a instância ainda estiver sendo criada, o provedor pode recusar a deleção (HTTP 409) — tente de novo em alguns minutos.

Códigos de Resposta

200 · OK

Requisição bem-sucedida

201 · Criado

Instância/recurso criado

400 · Erro

Parâmetros inválidos ou saldo insuficiente

401 · Não autorizado

API key ausente, inválida ou revogada

403 · Proibido

Ação não permitida para esta credencial

404 · Não encontrado

Instância/recurso inexistente

409 · Conflito

Instância ainda sendo criada — tente depois

500 · Erro interno

Erro no servidor