# Reiniciar a aplicação

POST /admin/restart

Reinicia o servidor inteiro: todas as inboxes caem e voltam sozinhas, sem QR code de novo.

Use só em instabilidade geral; para uma inbox, use `POST /inbox/reset`. A resposta `202` sai antes: o reinício começa meio segundo depois. Até o servidor voltar, nenhuma rota responde; com muitas inboxes, a volta pode levar alguns minutos.

**Erro no formato v1.** Esta rota é a mesma do v1 (mesmo handler), então o erro sai no formato antigo, `{"error": "texto"}`, sem o código estável do `OrkesioError`. É a exceção ao padrão da Orkesio; trate pelo status HTTP.

## Autenticação

```json
[
  {
    "admintoken": []
  }
]
```

```json
{
  "admintoken": {
    "name": "admintoken",
    "type": "apiKey",
    "in": "header",
    "description": "Token de administrador para endpoints administrativos"
  }
}
```

## Parâmetros

```json
[
  {
    "name": "reason",
    "in": "query",
    "required": false,
    "schema": {
      "type": "string"
    },
    "description": "Motivo, só para o registro do servidor (padrão `manual_restart_endpoint`).",
    "example": "deploy"
  }
]
```

## Respostas

```json
{
  "202": {
    "description": "Reinício agendado.",
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "success",
            "message",
            "reason",
            "delay_ms",
            "timestamp"
          ],
          "properties": {
            "success": {
              "type": "boolean",
              "description": "Sempre `true`."
            },
            "message": {
              "type": "string",
              "description": "`Restart scheduled`."
            },
            "reason": {
              "type": "string",
              "description": "O `reason` enviado, ou `manual_restart_endpoint`."
            },
            "delay_ms": {
              "type": "integer",
              "description": "Quanto falta para o reinício começar, em milissegundos (`500`)."
            },
            "timestamp": {
              "type": "integer",
              "format": "int64",
              "description": "Quando o pedido foi aceito, em milissegundos Unix."
            }
          }
        },
        "example": {
          "success": true,
          "message": "Restart scheduled",
          "reason": "manual_restart_endpoint",
          "delay_ms": 500,
          "timestamp": 1760702400000
        }
      }
    }
  },
  "401": {
    "description": "`admintoken` ausente ou inválido.",
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "error": {
              "type": "string"
            }
          }
        },
        "example": {
          "error": "Unauthorized"
        }
      }
    }
  },
  "429": {
    "description": "Muitas chamadas de admin seguidas; espere o `Retry-After`.",
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "error": {
              "type": "string"
            }
          }
        },
        "example": {
          "error": "rate limit exceeded"
        }
      }
    }
  }
}
```

**Estado:** Disponível

**Formato:** o mesmo da API v1 (caminho, campos e erros no padrão antigo).

## Compatibilidade de canais

| Canal | Compatível | Observação |
|---|---|---|
| WhatsApp (Web) | Sim |  |
| WhatsApp (API oficial) | Sim |  |
| Instagram | Sim |  |
| Messenger | Sim |  |
| Telegram | Sim |  |

## Eventos que esta rota gera

O que chega no seu webhook (ou em `GET /events`) depois desta rota.

### [`inbox.status`](/webhook/inbox.status): cada inbox, ao reconectar depois do reinício (`connecting` e `connected`)

```json
{
  "id": "evt_01JAB3K9ZQ7V0M4T8R2X6WYD5H",
  "type": "inbox.status",
  "created_at": "2026-10-17T12:00:00.000Z",
  "inbox": {
    "id": "r0269625d29bfbd",
    "name": "loja",
    "phone": "5511888888888",
    "channel": "whatsapp_web"
  },
  "data": {
    "status": "connected"
  }
}
```

## Antes e depois (uazapi → Orkesio)

Na uazapi: `POST /admin/restart`.

- Sem mudança: a mesma rota e o mesmo formato da uazapi.

## Guias relacionados

[Visão geral](/docs/overview) · [O que funciona em cada canal](/docs/canais) · [O que muda da uazapi](/docs/o-que-muda)
