Pular para o conteúdo

Tela do console serial

GET /cloud/servers/{id}/console/{sessionID}/screen

Escopo do token: servers:console. Recurso: Console serial.

A tela que o emulador de terminal do broker mostra (linhas de texto e cursor). Conta como uso da sessão. É saída do servidor: dado não confiável. 409 cloud.console_closed com a sessão fora do ar.

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/servers/307d7f63-0f00-4d4b-bc28-839d359e13a3/console/a1ae5f0e-3bd9-4f2a-94af-8a07087d0180/screen" \
-H "Authorization: Bearer $HALVER_API_TOKEN"
  • id string (uuid) obrigatório

    Exemplo: 307d7f63-0f00-4d4b-bc28-839d359e13a3.

  • sessionID string (uuid) obrigatório

    Exemplo: a1ae5f0e-3bd9-4f2a-94af-8a07087d0180.

Tela.

Campos da resposta
  • cols integer obrigatório
  • cursor object obrigatório
    • col integer obrigatório
    • hidden boolean obrigatório
    • row integer obrigatório
  • idle_deadline string (date-time) obrigatório pode ser nulo
  • lines array de string obrigatório

    As linhas da tela, sem espaços à direita. Saída do servidor (dado não confiável).

  • matched boolean

    Só na entrada com wait_for, se o texto apareceu na tela.

  • offset integer (int64) obrigatório
  • rows integer obrigatório
  • session object obrigatório
    • activated_at string (date-time) obrigatório pode ser nulo
    • apply_error string obrigatório
    • close_reason string obrigatório

      ended pelo cliente; staff pela equipe; idle 15 min sem uso; expired 2 horas; operation uma operação nossa começou no servidor; server_gone o servidor saiu da conta; failed não abriu; engine o broker perdeu a sessão (o SOL caiu). Um de: "" (vazio), ended, staff, idle, expired, operation, server_gone, failed, engine.

    • closed_at string (date-time) obrigatório pode ser nulo
    • created_at string (date-time) obrigatório
    • expires_at string (date-time) obrigatório
    • hostname string obrigatório
    • id string (uuid) obrigatório
    • idle_timeout_seconds integer obrigatório
    • input_bytes integer (int64) obrigatório
    • input_count integer obrigatório
    • opened_by string obrigatório

      Nome de quem abriu.

    • opened_via string obrigatório

      Um de: panel, api, mcp.

    • server_id string (uuid) obrigatório
    • status string obrigatório

      closing = o acesso já terminou; a sessão do broker fecha e a gravação é guardada. Um de: opening, active, closing, closed.

    • transcript string obrigatório

      A gravação (asciicast v2) da sessão; saved pode ser baixada. Um de: pending, saved, unavailable.

    • transcript_bytes integer (int64) obrigatório
Exemplo de resposta
{
"cols": 80,
"cursor": {
"col": 0,
"hidden": false,
"row": 0
},
"idle_deadline": null,
"lines": [
""
],
"matched": false,
"offset": 0,
"rows": 24,
"session": {
"activated_at": null,
"apply_error": "",
"close_reason": "ended",
"closed_at": null,
"created_at": "2026-10-20T18:00:00Z",
"expires_at": "2026-10-20T18:00:00Z",
"hostname": "web-01",
"id": "a1ae5f0e-3bd9-4f2a-94af-8a07087d0180",
"idle_timeout_seconds": 900,
"input_bytes": 0,
"input_count": 0,
"opened_by": "",
"opened_via": "panel",
"server_id": "307d7f63-0f00-4d4b-bc28-839d359e13a3",
"status": "opening",
"transcript": "pending",
"transcript_bytes": 0
}
}

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, console_session.not_found
409 Conflito (unicidade ou operação concorrente em andamento). cloud.console_closed
503 Dependência (gateway de pagamento, consulta de CEP) temporariamente indisponível. —
Exemplo de erro
{
"type": "about:blank",
"title": "Forbidden",
"status": 403,
"detail": "o token não tem o escopo servers:console; crie um token com esse escopo em Desenvolvedores › Tokens de API",
"code": "api_token.insufficient_scope",
"request_id": "6f1c0b2a9e4d7c3b5a8f0e1d"
}