Operações dos servidores da conta
GET /cloud/operations
Escopo do token: servers:read. Recurso: Operações.
Deploys, reinstalações, apagamentos e remoções, na ordem em que foram pedidos; server_id filtra um servidor, external_id e end_customer_ref os servidores com essas referências (as atuais de cada servidor). As operações de um servidor removido continuam legíveis. Paginação por cursor opcional.
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/operations?limit=50" \ -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/operations?limit=50", 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/operations?limit=50", 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 de consulta
Seção intitulada “Parâmetros de consulta”-
limitintegerTamanho da página, de 1 a 100. Com
limitoucursora resposta é uma página em ordem de criação (mais antigo primeiro, depois o id) enext_cursoraponta a próxima; sem os dois vem a lista inteira, na ordem de sempre, comnext_cursornulo (compatibilidade). Comcursore semlimit, páginas de 50. De 1 a 100. Veja Paginação. -
cursorstringO
next_cursorda página anterior desta mesma lista (opaco; 400invalid_cursorse não for). Até 200 caracteres. Veja Paginação. -
external_idstringId do pedido no sistema do revendedor, o
external_iddo servidor. Formato:^[A-Za-z0-9._:-]{1,128}$. -
end_customer_refstringId do cliente final no sistema do revendedor, o
end_customer_refdo servidor. Formato:^[A-Za-z0-9._:-]{1,128}$. -
server_idstring (uuid)
Respostas
Seção intitulada “Respostas”Operações.
Campos da resposta
-
itemsarray de object obrigatório-
errorstring obrigatórioResumo da etapa que falhou (vazio sem falha).
-
finished_atstring (date-time) obrigatório pode ser nulo -
idstring (uuid) obrigatório -
requested_atstring (date-time) obrigatório -
server_idstring (uuid) obrigatório -
started_atstring (date-time) obrigatório pode ser nulo -
statusstring obrigatórioUm de:
pending,running,succeeded,failed. -
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.
-
-
typestring obrigatórioUm de:
deploy,reinstall,wipe,delete.
-
-
next_cursorstring obrigatório pode ser nulo
{ "items": [ { "error": "", "finished_at": null, "id": "38b54c25-1f8d-40fe-8cb1-649ddb710f23", "requested_at": "2026-10-20T18:00:00Z", "server_id": "307d7f63-0f00-4d4b-bc28-839d359e13a3", "started_at": null, "status": "succeeded", "steps": [ { "finished_at": null, "message": "", "name": "prepare", "started_at": null, "status": "done" } ], "type": "deploy" } ], "next_cursor": null}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, invalid_cursor |
| 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 |
{ "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"}