> ## Documentation Index
> Fetch the complete documentation index at: https://developer.wabox.me/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Wabox é uma API não-oficial de WhatsApp (aparelho vinculado). Tudo é snake_case; a base é https://api.wabox.me/instances/{instance_id}/token/{token}.
> Envios respondem { id, message_id, wabox_id, status: "queued" } na hora; o resultado real chega no webhook delivery. Envios não são idempotentes: confira GET /queue antes de repetir.
> Sempre verifique X-Wabox-Signature (HMAC-SHA256 de "<t>.<corpo cru>") nos webhooks e deduplique por event_id.
> Botões, listas, carrossel e catálogo são best effort e não renderizam no WhatsApp Web/Desktop. Não existem: chamadas, listas de transmissão, histórico de mensagens, instância mobile.
> Não invente endpoints ou campos: use o OpenAPI em https://api.wabox.me/openapi.json.

# Introdução à API

> Base URL, autenticação, formato dos dados e como usar o playground.

## Base URL

Toda rota da API pública fica sob a instância:

```text theme={"system"}
https://api.wabox.me/instances/{instance_id}/token/{token}
```

`instance_id` e `token` estão no painel, em **Credenciais** da instância. O token é a senha da instância: não o exponha em front-end nem em URLs públicas, e [gere um novo](/security/credential-rotation) se vazar.

Se o workspace tiver o [`Client-Token`](/security/client-token) ativado, envie também o header `Client-Token: <valor>` em todas as chamadas.

## Formato

* **JSON** em requests (`Content-Type: application/json`) e responses.
* **`snake_case`** em parâmetros, body, response e webhooks.
* Datas em **ISO-8601 UTC** (`2026-09-03T14:20:00.000Z`). Exceção herdada da z-api: `momment` nos webhooks é epoch em milissegundos.
* `phone`: só dígitos com DDI e DDD (`5511988887777`), ou um id de grupo (`...-group`), canal (`...@newsletter`), LID (`...@lid`) ou `status@broadcast`. Veja [Identificadores](/guides/identifiers).
* Erros: `{ "error": { "code": "...", "message": "..." } }` — lista em [Erros](/api-reference/errors).

## Dois tipos de endpoint

<Tabs>
  <Tab title="Envios (fila)">
    `POST /send-*`, reações, encaminhar, fixar, apagar, enquetes. Respondem **200** na hora com:

    ```json theme={"system"}
    { "id": "3EB0A9C6D2F1E4B5A7C8", "message_id": "3EB0A9C6D2F1E4B5A7C8", "wabox_id": "wbx_01J5Q8ZK3M4N5P6Q7R8S9T0M01", "status": "queued" }
    ```

    A mensagem entra na fila da instância e sai depois de um intervalo aleatório (anti-ban). O resultado chega no webhook [`delivery`](/api-reference/webhooks/delivery). Funcionam mesmo com a instância desconectada (a fila espera a reconexão), salvo se `disable_enqueue_when_disconnected` estiver ligado.
  </Tab>

  <Tab title="Ações imediatas">
    Consultas e administração: status, contatos, grupos, perfil, chats, privacidade, catálogo, `read-message`, `send-presence`. Executam na hora contra o aparelho e **exigem instância conectada** — caso contrário `409 instance_not_connected`. Nada é persistido.
  </Tab>
</Tabs>

## Playground

Cada página de endpoint tem um painel **Try it**. Preencha `instance_id` e `token` uma vez; os campos ficam salvos no navegador. As chamadas saem direto do seu navegador para `api.wabox.me` — nada passa por servidores da documentação.

<Warning>
  As mensagens enviadas pelo playground são reais. Use um número seu como `phone`.
</Warning>

## Compatibilidade com a z-api

Rotas no formato da z-api (`/create-group`, `/profile-picture`, `/modify-chat`, `/tags`…) continuam funcionando como aliases, mas a referência documenta só a rota canônica. A lista completa está em [Tabela de rotas](/migration/route-mapping).

## Especificação OpenAPI

Esta referência é gerada do código que roda em produção. O arquivo está disponível em [`openapi.json`](/openapi.json) — importe no Postman, Insomnia ou gere um cliente com o OpenAPI Generator. Veja [Postman e clientes](/resources/postman).
