# API Grapnel — documentação para desenvolvedores

> Integre links, analytics, leads e WhatsApp à sua aplicação. Esta referência descreve as operações públicas da API v1.

Página canônica: [Documentação da API Grapnel](https://grapnel.com.br/docs).
Contrato completo com campos, exemplos, paginação e respostas: [OpenAPI JSON](https://grapnel.com.br/docs/openapi.json).

## Como autenticar uma integração?

A API usa a base `https://grapnel.com.br/api/v1`. Crie uma chave no painel, em [Agentes de IA](https://grapnel.com.br/whatsapp-manager/agentes), com a conta proprietária e envie `Authorization: Bearer SUA_CHAVE`. Cada chave acessa apenas os recursos da própria conta e os escopos concedidos. Ela vale para todas as instâncias ou só para as escolhidas: as demais respondem 404 e não aparecem nas listas, na API e no MCP. Use HTTPS e mantenha a chave no servidor, nunca em URLs, código do navegador ou repositórios públicos.

No [Swagger](https://grapnel.com.br/docs/swagger), cole somente a chave em **Authorize**. Ela não é salva entre recargas. Os testes interativos executam operações reais na sua conta. Também é possível importar o OpenAPI no Postman ou Insomnia.

## Como consultar os links da conta?

Defina GRAPNEL_API_KEY no ambiente do servidor e execute este exemplo para Bash com a permissão `links:read`:

```bash
curl --fail-with-body 'https://grapnel.com.br/api/v1/links?limit=20' \
  -H "Authorization: Bearer $GRAPNEL_API_KEY"
```

## Como criar ou editar um link?

Use `POST /links` com `links:write`, `Content-Type: application/json` e `Idempotency-Key`. Para editar, envie apenas os campos alterados a `PATCH /links/{id}`. Este corpo cria um link para uma URL externa; os campos de destinos WhatsApp estão no contrato OpenAPI:

```json
{"name":"Campanha","slug":"campanha-site","destinationType":"custom_url","customUrl":"https://example.com"}
```

## Como listar grupos, consultar mensagens e enviar ao grupo?

A instância deve estar conectada e a conta deve ter acesso ativo. Use `GET /instances/{id}/groups` com `whatsapp:read` para obter o `jid` do grupo. Defina GRAPNEL_INSTANCE_ID no servidor com o UUID da instância da sua conta e consulte o histórico usando o JID retornado:

```bash
curl --get --fail-with-body "https://grapnel.com.br/api/v1/instances/$GRAPNEL_INSTANCE_ID/groups/messages" \
  -H "Authorization: Bearer $GRAPNEL_API_KEY" \
  --data-urlencode 'groupjid=120363123456789@g.us' \
  --data-urlencode 'limit=20' \
  --data-urlencode 'offset=0'
```

`groupjid` é obrigatório. `limit` aceita 1 a 100 (padrão 50) e `offset` aceita 0 a 100000 (padrão 0). O retorno contém `messages` com texto e metadados, quando disponíveis: `messageid`, `chatid`, `sender`, `senderName`, `fromMe`, `isGroup`, `messageType`, `status` e `messageTimestamp` (milissegundos desde Unix epoch). O conteúdo bruto, arquivos de mídia e credenciais do provedor são omitidos.

Em `pagination`, use `next_offset` na próxima consulta enquanto `has_more` for verdadeiro. O histórico começa pelas mensagens mais recentes e depende do armazenamento do provedor, que mantém até sete dias. Mensagens novas podem deslocar páginas; deduplique por `messageid`. A consulta não marca mensagens como lidas e não exige `Idempotency-Key`.

Para enviar ao grupo, use `POST /instances/{id}/messages/text` com `whatsapp:write`, `Content-Type: application/json`, `Idempotency-Key` e o JID no campo `number`:

```json
{"number":"120363123456789@g.us","text":"Olá, pessoal!"}
```

O envio depende das permissões do número no grupo. HTTP 202 confirma aceitação, sem confirmação de entrega.

## Como ler conversas individuais?

Com `chats:read`, `GET /instances/{id}/chats` lista as conversas da mais recente para a mais antiga (`type=direct` ou `type=group`), com nome, não lidas e horário da última mensagem. `GET /instances/{id}/chats/messages` lê uma conversa individual pelo `chatid` retornado ou pelo número com DDI:

```bash
curl --get --fail-with-body "https://grapnel.com.br/api/v1/instances/$GRAPNEL_INSTANCE_ID/chats/messages" \
  -H "Authorization: Bearer $GRAPNEL_API_KEY" \
  --data-urlencode 'chatid=5562999999999' \
  --data-urlencode 'limit=20'
```

Os campos, a paginação e os limites seguem a consulta de grupos. A consulta não marca mensagens como lidas e não exige `Idempotency-Key`.

## Como usar todas as operações do WhatsApp?

Todas as operações de instância do provedor de conexão estão em `/instances/{id}/whatsapp/…`, com o mesmo caminho em kebab-case (por exemplo, `/group/inviteInfo` vira `/group/invite-info`): mensagens, reações, edição e exclusão, chamadas, presença, contatos, etiquetas, bloqueios, grupos, comunidades, canais, perfil, privacidade, Business, campanhas, respostas rápidas, chatbot e agentes. Cada operação está no contrato OpenAPI com campos, exemplo e permissão.

- Permissões: `whatsapp:read`, `whatsapp:write`, `chats:read`, `chats:write`, `groups:write`, `settings:read`, `settings:write` e `campaigns:write`.
- Escritas exigem `Idempotency-Key`; consultas via POST não exigem.
- Mídia aceita base64, data URI ou URL pública do storage Grapnel; URLs externas são recusadas. Corpo máximo: 4 MiB.
- Credenciais do provedor nunca aparecem nas respostas. Conexão, desconexão, status e webhooks continuam nas operações próprias da Grapnel.

```bash
curl --fail-with-body "https://grapnel.com.br/api/v1/instances/$GRAPNEL_INSTANCE_ID/whatsapp/message/react" \
  -H "Authorization: Bearer $GRAPNEL_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: reacao-pedido-123' \
  -d '{"number":"5562999999999","id":"ID_DA_MENSAGEM","text":"👍"}'
```

## Como conectar agentes de IA por MCP?

O servidor MCP da Grapnel fica em `https://grapnel.com.br/api/mcp` (Streamable HTTP, sem estado). Autentique com `Authorization: Bearer SUA_CHAVE`; o agente vê apenas as ferramentas liberadas pelas permissões da chave. Cada chamada passa pela API v1: conta no limite de 60 requisições por minuto, aparece nos logs e aceita `idempotency_key` em escritas. Compatível com MCP 2026-07-28 e com as versões 2025-11-25 a 2024-11-05.

Ferramentas: `list_instances`, `get_instance_status`, `list_chats`, `read_chat_messages`, `list_groups`, `read_group_messages`, `get_chat_info`, `send_text` (com `reply_to` para citar), `send_media`, `send_presence`, `react_to_message` e `mark_chat_read`. Webhooks: `list_message_webhooks`, `configure_message_webhook` (um ou vários números), `disable_message_webhook` e `list_webhook_deliveries`. Para qualquer outra operação do WhatsApp, use `whatsapp_operations`, `whatsapp_operation_schema` e `whatsapp_call`.

### Claude Code

Terminal.

```
claude mcp add --transport http grapnel https://grapnel.com.br/api/mcp \
  --header "Authorization: Bearer $GRAPNEL_API_KEY"
```

### Codex (CLI e IDE)

Terminal ou ~/.codex/config.toml.

```
codex mcp add grapnel --url https://grapnel.com.br/api/mcp \
  --bearer-token-env-var GRAPNEL_API_KEY
```

### OpenBot

Configurações → servidores MCP → novo servidor HTTP.

URL https://grapnel.com.br/api/mcp e cabeçalho Authorization com o valor Bearer SUA_CHAVE. O OpenBot repassa o servidor para Claude, Codex, Grok, OpenCode, Gemini, Cursor e Cline.

### Grok Bot

Conversa com o agente.

Peça para adicionar um servidor MCP personalizado com a URL https://grapnel.com.br/api/mcp e o cabeçalho Authorization: Bearer SUA_CHAVE.

### Cline

cline_mcp_settings.json.

```
{
  "mcpServers": {
    "grapnel": {
      "type": "streamableHttp",
      "url": "https://grapnel.com.br/api/mcp",
      "headers": { "Authorization": "Bearer SUA_CHAVE" }
    }
  }
}
```

### OpenCode

opencode.json.

```
{
  "mcp": {
    "grapnel": {
      "type": "remote",
      "url": "https://grapnel.com.br/api/mcp",
      "oauth": false,
      "headers": { "Authorization": "Bearer {env:GRAPNEL_API_KEY}" }
    }
  }
}
```

### Cursor

~/.cursor/mcp.json.

```
{
  "mcpServers": {
    "grapnel": {
      "url": "https://grapnel.com.br/api/mcp",
      "headers": { "Authorization": "Bearer ${env:GRAPNEL_API_KEY}" }
    }
  }
}
```

### VS Code (Copilot)

.vscode/mcp.json.

```
{
  "servers": {
    "grapnel": {
      "type": "http",
      "url": "https://grapnel.com.br/api/mcp",
      "headers": { "Authorization": "Bearer ${env:GRAPNEL_API_KEY}" }
    }
  }
}
```

### Gemini CLI

Terminal.

```
gemini mcp add --transport http \
  --header "Authorization: Bearer $GRAPNEL_API_KEY" grapnel https://grapnel.com.br/api/mcp
```

### OpenAI (Responses API e Agents SDK)

tools da requisição.

```
{
  "type": "mcp",
  "server_label": "grapnel",
  "server_url": "https://grapnel.com.br/api/mcp",
  "headers": { "Authorization": "Bearer SUA_CHAVE" },
  "require_approval": "never"
}
```

### xAI (API do Grok)

tools da requisição.

```
{
  "type": "mcp",
  "server_label": "grapnel",
  "server_url": "https://grapnel.com.br/api/mcp",
  "headers": { "Authorization": "Bearer SUA_CHAVE" }
}
```

### Claude API (Messages)

Cabeçalho anthropic-beta: mcp-client-2025-11-20.

```
"mcp_servers": [{
  "type": "url",
  "url": "https://grapnel.com.br/api/mcp",
  "name": "grapnel",
  "authorization_token": "SUA_CHAVE"
}],
"tools": [{ "type": "mcp_toolset", "mcp_server_name": "grapnel" }]
```

### Claude Desktop e outros clientes locais

claude_desktop_config.json ou mcpServers do cliente.

```
{
  "mcpServers": {
    "grapnel": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://grapnel.com.br/api/mcp",
        "--header", "Authorization:${AUTH_HEADER}", "--transport", "http-only"],
      "env": { "AUTH_HEADER": "Bearer SUA_CHAVE" }
    }
  }
}
```

### ChatGPT

Apps e conectores.

O app do ChatGPT aceita apenas OAuth ou servidores sem autenticação. Use Codex, a Responses API ou o Agents SDK da OpenAI.

## Como repetir uma operação sem duplicar a alteração?

Toda alteração exige `Idempotency-Key`, com 8 a 200 caracteres: letras ASCII, números, ponto, hífen, sublinhado ou dois-pontos. Reenvie a mesma chave com método, URL e corpo idênticos nas tentativas da mesma operação. A resposta é reutilizada por 24 horas; uma chave expirada não pode ser reutilizada. Em resultado incerto, confira o recurso antes de gerar outra chave. Uma nova operação precisa de uma nova chave.

## Como interpretar erros e limites?

Respostas 2xx indicam sucesso; 202 significa aceito para processamento, sem confirmação de entrega. Erros usam `application/problem+json` (RFC 9457), com `status`, `code`, `title`, `detail` e `request_id`. Guarde o identificador da requisição para suporte.

- 400/422: revise os campos enviados.
- 401: confira a chave; 403: confira as permissões.
- 404: recurso indisponível para a conta ou instância fora da chave; 409: conflito ou idempotência.
- 429: respeite `Retry-After`. O limite é de 60 requisições por minuto por conta.

As respostas usam JSON/UTF-8, IDs de recursos em UUID e datas ISO 8601 / RFC 3339 em UTC. Esses formatos não representam certificação ISO.

## Preciso configurar webhooks?

A consulta do histórico funciona sem webhooks. Para receber novas mensagens, configure um destino por instância com `POST /instances/{id}/messages/webhook`. Grupos chegam sempre; com `"direct_messages": true` (exige `chats:read`), conversas individuais chegam como `whatsapp.message.received`, com os campos da consulta de conversas. `/instances/{id}/groups/webhook` continua disponível só para grupos e usa o mesmo destino. A configuração usa `whatsapp:write`, `Content-Type: application/json` e `Idempotency-Key`. Gere um segredo aleatório de pelo menos 32 caracteres e guarde-o no servidor receptor. O segredo deve ter no máximo 256 caracteres; não use a chave da API como segredo. Exemplo ilustrativo de configuração (substitua URL e segredo pelos seus):

```json
{"url":"https://events.example.com/grapnel","secret":"example-only-random-signing-secret-32chars"}
```

O destino deve ser HTTPS público na porta 443, sem credenciais ou fragmento. A Grapnel bloqueia IPs privados, reservados e redirecionamentos. `GET /instances/{id}/groups/webhook` exige `whatsapp:read` e retorna a configuração ou `webhook:null`; o segredo nunca é devolvido. `DELETE` no mesmo caminho exige `whatsapp:write` e `Idempotency-Key`, removendo a configuração e entregas pendentes. Essas operações exigem acesso ativo e podem ser usadas antes de conectar a instância.

Para vários números de uma vez, `POST /webhooks/messages` aplica o mesmo `url`, `secret` e `direct_messages` a até 100 instâncias em `instance_ids` (ou `"all"`, todas que a chave pode usar) e devolve `configured` ou `failed` por instância. `GET /webhooks/messages` mostra o estado de cada instância e `POST /webhooks/messages/disable` desativa várias. `GET /instances/{id}/messages/webhook/deliveries` lista as entregas dos últimos sete dias (`pending`, `sending`, `delivered` ou `failed`, com tentativas), com o mesmo `id` de `X-Grapnel-Event-Id`. No painel, o proprietário faz o mesmo em Agentes de IA → Webhooks de mensagens → Configurar.

O evento `whatsapp.group.message.received` contém `id` (UUID estável entre tentativas), `instance_id` e `message` com os mesmos campos públicos da consulta. Ele cobre novas mensagens recebidas em todos os grupos da instância (`fromMe:false`); mensagens enviadas pelo próprio número e eventos de histórico/atualização não são encaminhados. O limite do payload é 512 KiB. O Swagger documenta o evento na seção **Callbacks** da configuração.

Valide os cabeçalhos `X-Grapnel-Event-Id`, `X-Grapnel-Timestamp` (Unix segundos) e `X-Grapnel-Signature` (`sha256=` seguido de hexadecimal). A assinatura é HMAC SHA-256 com seu segredo sobre `timestamp + "." + corpo_bruto`, em UTF-8. Confira o corpo bruto antes de interpretá-lo como JSON, compare as assinaturas em tempo constante, rejeite timestamps com mais de cinco minutos de diferença e deduplique pelo `id` do evento. Qualquer HTTP 2xx confirma recebimento.

As entregas são persistidas antes da confirmação ao provedor e enviadas em segundo plano. Falhas de rede, timeout, 408, 429 e 5xx têm até oito tentativas por 24 horas, com recuperação a cada minuto e espera crescente; outros status, incluindo 3xx, encerram a entrega. A Grapnel não garante ordem nem entrega única. Desativar, reconfigurar, transferir ou excluir a instância remove as entregas anteriores pendentes. O conteúdo fica cifrado enquanto pendente e é apagado ao concluir ou falhar; os metadados de deduplicação ficam por até sete dias.

Eventos de atribuição do bot Grapnel continuam opcionais e configurados no painel WhatsApp. Os bots e fluxos de atendimento são configurados na ferramenta externa utilizada pela equipe.

## Quais operações estão disponíveis?

A lista abaixo é gerada a partir do mesmo contrato OpenAPI usado pela documentação HTML. Os caminhos são relativos a `https://grapnel.com.br`.

### Links

- [`POST /api/v1/links/{id}/duplicate`](https://grapnel.com.br/docs#duplicateLink): Duplicar link. Permissões: `links:write`.
- [`GET /api/v1/links`](https://grapnel.com.br/docs#listLinks): Listar links. Permissões: `links:read`.
- [`POST /api/v1/links`](https://grapnel.com.br/docs#createLink): Criar link. Permissões: `links:write`.
- [`GET /api/v1/links/check-slug`](https://grapnel.com.br/docs#checkLinkSlug): Verificar disponibilidade do slug. Permissões: `links:read`.
- [`GET /api/v1/links/{id}`](https://grapnel.com.br/docs#getLink): Consultar link e configuração. Permissões: `links:read`.
- [`PATCH /api/v1/links/{id}`](https://grapnel.com.br/docs#updateLink): Editar link. Permissões: `links:write`.
- [`DELETE /api/v1/links/{id}`](https://grapnel.com.br/docs#deleteLink): Mover link para a lixeira. Permissões: `links:write`.
- [`POST /api/v1/links/{id}/restore`](https://grapnel.com.br/docs#restoreLink): Restaurar link da lixeira. Permissões: `links:write`.

### Pastas

- [`GET /api/v1/folders`](https://grapnel.com.br/docs#listFolders): Listar pastas. Permissões: `links:read`.
- [`POST /api/v1/folders`](https://grapnel.com.br/docs#createFolder): Criar pasta. Permissões: `links:write`.
- [`PATCH /api/v1/folders/{id}`](https://grapnel.com.br/docs#updateFolder): Editar pasta. Permissões: `links:write`.
- [`DELETE /api/v1/folders/{id}`](https://grapnel.com.br/docs#deleteFolder): Excluir pasta. Permissões: `links:write`.

### Destinos

- [`GET /api/v1/links/{id}/destinations`](https://grapnel.com.br/docs#listLinkDestinations): Listar destinos do link. Permissões: `links:read`.
- [`POST /api/v1/links/{id}/destinations`](https://grapnel.com.br/docs#createLinkDestination): Adicionar destino ao link. Permissões: `links:write`.
- [`PATCH /api/v1/destinations/{id}`](https://grapnel.com.br/docs#updateDestination): Editar destino. Permissões: `links:write`.
- [`DELETE /api/v1/destinations/{id}`](https://grapnel.com.br/docs#deleteDestination): Remover destino. Permissões: `links:write`.

### Mensagens dos links

- [`GET /api/v1/links/{id}/messages`](https://grapnel.com.br/docs#listLinkMessages): Listar mensagens do link. Permissões: `links:read`.
- [`POST /api/v1/links/{id}/messages`](https://grapnel.com.br/docs#createLinkMessage): Adicionar mensagem ao link. Permissões: `links:write`.
- [`PATCH /api/v1/messages/{id}`](https://grapnel.com.br/docs#updateLinkMessage): Editar mensagem do link. Permissões: `links:write`.
- [`DELETE /api/v1/messages/{id}`](https://grapnel.com.br/docs#deleteLinkMessage): Excluir mensagem do link. Permissões: `links:write`.

### Produtos

- [`GET /api/v1/links/{id}/products`](https://grapnel.com.br/docs#listLinkProducts): Listar produtos do link. Permissões: `links:read`.
- [`POST /api/v1/links/{id}/products`](https://grapnel.com.br/docs#createLinkProduct): Criar produto no link. Permissões: `links:write`.
- [`PATCH /api/v1/products/{id}`](https://grapnel.com.br/docs#updateLinkProduct): Editar produto. Permissões: `links:write`.
- [`DELETE /api/v1/products/{id}`](https://grapnel.com.br/docs#deleteLinkProduct): Remover produto. Permissões: `links:write`.

### Logs

- [`GET /api/v1/logs`](https://grapnel.com.br/docs#listLogs): Consultar logs. Permissões: `logs:read`.

### Analytics

- [`GET /api/v1/instances/{id}/metrics`](https://grapnel.com.br/docs#getInstanceMetrics): Consultar métricas da instância. Permissões: `analytics:read`.
- [`GET /api/v1/analytics`](https://grapnel.com.br/docs#getAnalytics): Consultar analytics da conta. Permissões: `analytics:read`.
- [`GET /api/v1/links/{id}/analytics`](https://grapnel.com.br/docs#getLinkAnalytics): Consultar analytics de um link. Permissões: `analytics:read`.

### Leads

- [`GET /api/v1/leads`](https://grapnel.com.br/docs#listLeads): Listar contatos da conta. Permissões: `leads:read`.
- [`GET /api/v1/leads/stats`](https://grapnel.com.br/docs#getLeadStats): Consultar estatísticas de contatos. Permissões: `leads:read`.

### Instâncias

- [`GET /api/v1/instances`](https://grapnel.com.br/docs#listInstances): Listar instâncias WhatsApp. Permissões: `instances:read`.
- [`GET /api/v1/instances/{id}`](https://grapnel.com.br/docs#getInstance): Consultar instância. Permissões: `instances:read`.

### WhatsApp

- [`GET /api/v1/instances/{id}/status`](https://grapnel.com.br/docs#getInstanceStatus): Consultar status da conexão. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/connect`](https://grapnel.com.br/docs#connectInstance): Conectar WhatsApp. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/disconnect`](https://grapnel.com.br/docs#disconnectInstance): Desconectar WhatsApp. Permissões: `whatsapp:write`.
- [`GET /api/v1/instances/{id}/groups`](https://grapnel.com.br/docs#listInstanceGroups): Listar grupos. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/groups/info`](https://grapnel.com.br/docs#getInstanceGroup): Consultar grupo pelo JID. Permissões: `whatsapp:read`.
- [`GET /api/v1/instances/{id}/groups/messages`](https://grapnel.com.br/docs#listInstanceGroupMessages): Consultar mensagens de um grupo. Permissões: `whatsapp:read`.
- [`GET /api/v1/instances/{id}/groups/webhook`](https://grapnel.com.br/docs#getInstanceGroupWebhook): Consultar webhook de mensagens dos grupos. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/groups/webhook`](https://grapnel.com.br/docs#configureInstanceGroupWebhook): Configurar webhook de mensagens dos grupos. Permissões: `whatsapp:write`.
- [`DELETE /api/v1/instances/{id}/groups/webhook`](https://grapnel.com.br/docs#deleteInstanceGroupWebhook): Desativar webhook de mensagens dos grupos. Permissões: `whatsapp:write`.
- [`GET /api/v1/instances/{id}/chats`](https://grapnel.com.br/docs#listInstanceChats): Listar conversas. Permissões: `chats:read`.
- [`GET /api/v1/instances/{id}/chats/messages`](https://grapnel.com.br/docs#listInstanceChatMessages): Consultar mensagens de uma conversa individual. Permissões: `chats:read`.
- [`GET /api/v1/instances/{id}/messages/webhook`](https://grapnel.com.br/docs#getInstanceMessageWebhook): Consultar webhook de mensagens. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/messages/webhook`](https://grapnel.com.br/docs#configureInstanceMessageWebhook): Configurar webhook de mensagens. Permissões: `whatsapp:write`.
- [`DELETE /api/v1/instances/{id}/messages/webhook`](https://grapnel.com.br/docs#deleteInstanceMessageWebhook): Desativar webhook de mensagens. Permissões: `whatsapp:write`.
- [`GET /api/v1/instances/{id}/messages/webhook/deliveries`](https://grapnel.com.br/docs#listInstanceWebhookDeliveries): Consultar entregas do webhook de mensagens. Permissões: `whatsapp:read`.
- [`GET /api/v1/webhooks/messages`](https://grapnel.com.br/docs#listMessageWebhooks): Consultar webhooks de mensagens de todas as instâncias. Permissões: `whatsapp:read`.
- [`POST /api/v1/webhooks/messages`](https://grapnel.com.br/docs#configureMessageWebhooks): Configurar webhook de mensagens em várias instâncias. Permissões: `whatsapp:write`.
- [`POST /api/v1/webhooks/messages/disable`](https://grapnel.com.br/docs#disableMessageWebhooks): Desativar webhook de mensagens em várias instâncias. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/messages/text`](https://grapnel.com.br/docs#sendWhatsAppText): Enviar mensagem de texto. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/messages/contact`](https://grapnel.com.br/docs#sendWhatsAppContact): Enviar cartão de contato. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/messages/location`](https://grapnel.com.br/docs#sendWhatsAppLocation): Enviar localização. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/messages/media`](https://grapnel.com.br/docs#sendWhatsAppMedia): Enviar imagem, vídeo, áudio ou documento. Permissões: `whatsapp:write`.

### WhatsApp: mensagens

- [`POST /api/v1/instances/{id}/whatsapp/send/text`](https://grapnel.com.br/docs#whatsappSendText): Enviar mensagem de texto. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/send/media`](https://grapnel.com.br/docs#whatsappSendMedia): Enviar mídia (imagem, vídeo, áudio ou documento). Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/send/contact`](https://grapnel.com.br/docs#whatsappSendContact): Enviar cartão de contato (vCard). Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/send/location`](https://grapnel.com.br/docs#whatsappSendLocation): Enviar localização geográfica. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/message/presence`](https://grapnel.com.br/docs#whatsappMessagePresence): Enviar atualização de presença. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/send/status`](https://grapnel.com.br/docs#whatsappSendStatus): Enviar Stories (Status). Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/send/menu`](https://grapnel.com.br/docs#whatsappSendMenu): Enviar menu interativo (botões, carrosel, lista ou enquete). Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/send/carousel`](https://grapnel.com.br/docs#whatsappSendCarousel): Enviar carrossel de mídia com botões. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/send/location-button`](https://grapnel.com.br/docs#whatsappSendLocationButton): Solicitar localização do usuário. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/send/request-payment`](https://grapnel.com.br/docs#whatsappSendRequestPayment): Solicitar pagamento. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/send/pix-button`](https://grapnel.com.br/docs#whatsappSendPixButton): Enviar botão PIX. Permissões: `whatsapp:write`.
- [`GET /api/v1/instances/{id}/whatsapp/message/async`](https://grapnel.com.br/docs#whatsappMessageAsyncGet): Consultar fila async de envio direto. Permissões: `whatsapp:read`.
- [`DELETE /api/v1/instances/{id}/whatsapp/message/async`](https://grapnel.com.br/docs#whatsappMessageAsyncDelete): Limpar fila async de envio direto. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/message/download`](https://grapnel.com.br/docs#whatsappMessageDownload): Baixar arquivo de uma mensagem. Permissões: `chats:read`.
- [`POST /api/v1/instances/{id}/whatsapp/message/find`](https://grapnel.com.br/docs#whatsappMessageFind): Buscar mensagens em um chat. Permissões: `chats:read`.
- [`POST /api/v1/instances/{id}/whatsapp/message/markread`](https://grapnel.com.br/docs#whatsappMessageMarkread): Marcar mensagens como lidas. Permissões: `chats:write`.
- [`POST /api/v1/instances/{id}/whatsapp/message/react`](https://grapnel.com.br/docs#whatsappMessageReact): Enviar reação a uma mensagem. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/message/delete`](https://grapnel.com.br/docs#whatsappMessageDelete): Apagar Mensagem Para Todos. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/message/edit`](https://grapnel.com.br/docs#whatsappMessageEdit): Edita uma mensagem enviada. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/call/make`](https://grapnel.com.br/docs#whatsappCallMake): Iniciar chamada de voz. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/call/reject`](https://grapnel.com.br/docs#whatsappCallReject): Rejeitar chamada recebida. Permissões: `whatsapp:write`.

### WhatsApp: conversas e contatos

- [`POST /api/v1/instances/{id}/whatsapp/chat/find`](https://grapnel.com.br/docs#whatsappChatFind): Busca chats com filtros. Permissões: `chats:read`.
- [`POST /api/v1/instances/{id}/whatsapp/chat/details`](https://grapnel.com.br/docs#whatsappChatDetails): Obter Detalhes Completos. Permissões: `chats:read`.
- [`POST /api/v1/instances/{id}/whatsapp/chat/check`](https://grapnel.com.br/docs#whatsappChatCheck): Verificar Números no WhatsApp. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/chat/delete`](https://grapnel.com.br/docs#whatsappChatDelete): Deleta chat. Permissões: `chats:write`.
- [`POST /api/v1/instances/{id}/whatsapp/chat/archive`](https://grapnel.com.br/docs#whatsappChatArchive): Arquivar/desarquivar chat. Permissões: `chats:write`.
- [`POST /api/v1/instances/{id}/whatsapp/chat/read`](https://grapnel.com.br/docs#whatsappChatRead): Marcar chat como lido/não lido. Permissões: `chats:write`.
- [`POST /api/v1/instances/{id}/whatsapp/chat/mute`](https://grapnel.com.br/docs#whatsappChatMute): Silenciar chat. Permissões: `chats:write`.
- [`POST /api/v1/instances/{id}/whatsapp/chat/pin`](https://grapnel.com.br/docs#whatsappChatPin): Fixar/desafixar chat. Permissões: `chats:write`.
- [`POST /api/v1/instances/{id}/whatsapp/chat/labels`](https://grapnel.com.br/docs#whatsappChatLabels): Gerencia labels de um chat. Permissões: `chats:write`.
- [`POST /api/v1/instances/{id}/whatsapp/chat/block`](https://grapnel.com.br/docs#whatsappChatBlock): Bloqueia ou desbloqueia contato do WhatsApp. Permissões: `chats:write`.
- [`GET /api/v1/instances/{id}/whatsapp/chat/blocklist`](https://grapnel.com.br/docs#whatsappChatBlocklistGet): Lista contatos bloqueados. Permissões: `chats:read`.
- [`POST /api/v1/instances/{id}/whatsapp/label/edit`](https://grapnel.com.br/docs#whatsappLabelEdit): Editar etiqueta. Permissões: `chats:write`.
- [`GET /api/v1/instances/{id}/whatsapp/labels`](https://grapnel.com.br/docs#whatsappLabelsGet): Buscar todas as etiquetas. Permissões: `chats:read`.
- [`GET /api/v1/instances/{id}/whatsapp/contacts`](https://grapnel.com.br/docs#whatsappContactsGet): Retorna lista de contatos do WhatsApp. Permissões: `chats:read`.
- [`POST /api/v1/instances/{id}/whatsapp/contacts/list`](https://grapnel.com.br/docs#whatsappContactsList): Listar todos os contatos com paginacao. Permissões: `chats:read`.
- [`POST /api/v1/instances/{id}/whatsapp/contact/add`](https://grapnel.com.br/docs#whatsappContactAdd): Adiciona um contato à agenda. Permissões: `chats:write`.
- [`POST /api/v1/instances/{id}/whatsapp/contact/remove`](https://grapnel.com.br/docs#whatsappContactRemove): Remove um contato da agenda. Permissões: `chats:write`.

### WhatsApp: grupos e canais

- [`POST /api/v1/instances/{id}/whatsapp/group/create`](https://grapnel.com.br/docs#whatsappGroupCreate): Criar um novo grupo. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/group/info`](https://grapnel.com.br/docs#whatsappGroupInfo): Obter informações detalhadas de um grupo. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/group/invite-info`](https://grapnel.com.br/docs#whatsappGroupInviteInfo): Obter informações de um grupo pelo código de convite. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/group/join`](https://grapnel.com.br/docs#whatsappGroupJoin): Entrar em um grupo usando código de convite. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/group/leave`](https://grapnel.com.br/docs#whatsappGroupLeave): Sair de um grupo. Permissões: `groups:write`.
- [`GET /api/v1/instances/{id}/whatsapp/group/list`](https://grapnel.com.br/docs#whatsappGroupListGet): Listar todos os grupos. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/group/list`](https://grapnel.com.br/docs#whatsappGroupList): Listar todos os grupos com filtros e paginacao. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/group/reset-invite-code`](https://grapnel.com.br/docs#whatsappGroupResetInviteCode): Resetar código de convite do grupo. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/group/update-announce`](https://grapnel.com.br/docs#whatsappGroupUpdateAnnounce): Configurar permissões de envio de mensagens no grupo. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/group/update-description`](https://grapnel.com.br/docs#whatsappGroupUpdateDescription): Atualizar descrição do grupo. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/group/update-image`](https://grapnel.com.br/docs#whatsappGroupUpdateImage): Atualizar imagem do grupo. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/group/update-locked`](https://grapnel.com.br/docs#whatsappGroupUpdateLocked): Configurar permissão de edição do grupo. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/group/update-name`](https://grapnel.com.br/docs#whatsappGroupUpdateName): Atualizar nome do grupo. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/group/update-participants`](https://grapnel.com.br/docs#whatsappGroupUpdateParticipants): Gerenciar participantes do grupo. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/community/create`](https://grapnel.com.br/docs#whatsappCommunityCreate): Criar uma comunidade. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/community/editgroups`](https://grapnel.com.br/docs#whatsappCommunityEditgroups): Gerenciar grupos em uma comunidade. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/create`](https://grapnel.com.br/docs#whatsappNewsletterCreate): Criar canal. Permissões: `groups:write`.
- [`GET /api/v1/instances/{id}/whatsapp/newsletter/list`](https://grapnel.com.br/docs#whatsappNewsletterListGet): Listar canais inscritos. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/info`](https://grapnel.com.br/docs#whatsappNewsletterInfo): Buscar informações de um canal. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/link`](https://grapnel.com.br/docs#whatsappNewsletterLink): Buscar canal por link-chave de convite. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/subscribe`](https://grapnel.com.br/docs#whatsappNewsletterSubscribe): Assinar live updates temporários de um canal. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/messages`](https://grapnel.com.br/docs#whatsappNewsletterMessages): Buscar mensagens de um canal. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/messages/edit`](https://grapnel.com.br/docs#whatsappNewsletterMessagesEdit): Editar mensagem recente de um canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/messages/delete`](https://grapnel.com.br/docs#whatsappNewsletterMessagesDelete): Deletar mensagem recente de um canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/updates`](https://grapnel.com.br/docs#whatsappNewsletterUpdates): Buscar updates de mensagens de um canal. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/viewed`](https://grapnel.com.br/docs#whatsappNewsletterViewed): Marcar posts do canal como visualizados. Permissões: `chats:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/reaction`](https://grapnel.com.br/docs#whatsappNewsletterReaction): Reagir a um post do canal. Permissões: `whatsapp:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/follow`](https://grapnel.com.br/docs#whatsappNewsletterFollow): Seguir canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/unfollow`](https://grapnel.com.br/docs#whatsappNewsletterUnfollow): Deixar de seguir canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/mute`](https://grapnel.com.br/docs#whatsappNewsletterMute): Silenciar canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/unmute`](https://grapnel.com.br/docs#whatsappNewsletterUnmute): Remover mute do canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/delete`](https://grapnel.com.br/docs#whatsappNewsletterDelete): Deletar canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/picture`](https://grapnel.com.br/docs#whatsappNewsletterPicture): Atualizar foto do canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/name`](https://grapnel.com.br/docs#whatsappNewsletterName): Atualizar nome do canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/description`](https://grapnel.com.br/docs#whatsappNewsletterDescription): Atualizar descrição do canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/settings`](https://grapnel.com.br/docs#whatsappNewsletterSettings): Atualizar configurações do canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/search`](https://grapnel.com.br/docs#whatsappNewsletterSearch): Pesquisar canais públicos. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/admin/invite`](https://grapnel.com.br/docs#whatsappNewsletterAdminInvite): Convidar admin do canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/admin/accept`](https://grapnel.com.br/docs#whatsappNewsletterAdminAccept): Aceitar convite de admin do canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/admin/remove`](https://grapnel.com.br/docs#whatsappNewsletterAdminRemove): Remover admin do canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/admin/revoke`](https://grapnel.com.br/docs#whatsappNewsletterAdminRevoke): Revogar convite de admin do canal. Permissões: `groups:write`.
- [`POST /api/v1/instances/{id}/whatsapp/newsletter/owner/transfer`](https://grapnel.com.br/docs#whatsappNewsletterOwnerTransfer): Transferir dono do canal. Permissões: `groups:write`.

### WhatsApp: perfil e configurações

- [`POST /api/v1/instances/{id}/whatsapp/instance/reset`](https://grapnel.com.br/docs#whatsappInstanceReset): Reiniciar runtime da instância. Permissões: `settings:write`.
- [`GET /api/v1/instances/{id}/whatsapp/instance/privacy`](https://grapnel.com.br/docs#whatsappInstancePrivacyGet): Buscar configurações de privacidade. Permissões: `settings:read`.
- [`POST /api/v1/instances/{id}/whatsapp/instance/privacy`](https://grapnel.com.br/docs#whatsappInstancePrivacy): Alterar configurações de privacidade. Permissões: `settings:write`.
- [`POST /api/v1/instances/{id}/whatsapp/instance/presence`](https://grapnel.com.br/docs#whatsappInstancePresence): Atualizar status de presença da instância. Permissões: `settings:write`.
- [`POST /api/v1/instances/{id}/whatsapp/instance/update-delay-settings`](https://grapnel.com.br/docs#whatsappInstanceUpdateDelaySettings): Delay na fila de mensagens. Permissões: `settings:write`.
- [`GET /api/v1/instances/{id}/whatsapp/instance/proxy`](https://grapnel.com.br/docs#whatsappInstanceProxyGet): Obter configuração de proxy da instância. Permissões: `settings:read`.
- [`POST /api/v1/instances/{id}/whatsapp/instance/proxy`](https://grapnel.com.br/docs#whatsappInstanceProxy): Configurar ou alterar o proxy. Permissões: `settings:write`.
- [`DELETE /api/v1/instances/{id}/whatsapp/instance/proxy`](https://grapnel.com.br/docs#whatsappInstanceProxyDelete): Remover o proxy configurado. Permissões: `settings:write`.
- [`POST /api/v1/instances/{id}/whatsapp/profile/name`](https://grapnel.com.br/docs#whatsappProfileName): Altera o nome do perfil do WhatsApp. Permissões: `settings:write`.
- [`POST /api/v1/instances/{id}/whatsapp/profile/image`](https://grapnel.com.br/docs#whatsappProfileImage): Altera a imagem do perfil do WhatsApp. Permissões: `settings:write`.
- [`POST /api/v1/instances/{id}/whatsapp/business/get/profile`](https://grapnel.com.br/docs#whatsappBusinessGetProfile): Obter o perfil comercial. Permissões: `whatsapp:read`.
- [`GET /api/v1/instances/{id}/whatsapp/business/get/categories`](https://grapnel.com.br/docs#whatsappBusinessGetCategoriesGet): Obter as categorias de negócios. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/business/update/profile`](https://grapnel.com.br/docs#whatsappBusinessUpdateProfile): Atualizar o perfil comercial. Permissões: `settings:write`.
- [`POST /api/v1/instances/{id}/whatsapp/business/catalog/list`](https://grapnel.com.br/docs#whatsappBusinessCatalogList): Listar os produtos do catálogo. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/business/catalog/info`](https://grapnel.com.br/docs#whatsappBusinessCatalogInfo): Obter informações de um produto do catálogo. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/business/catalog/delete`](https://grapnel.com.br/docs#whatsappBusinessCatalogDelete): Deletar um produto do catálogo. Permissões: `settings:write`.
- [`POST /api/v1/instances/{id}/whatsapp/business/catalog/show`](https://grapnel.com.br/docs#whatsappBusinessCatalogShow): Mostrar um produto do catálogo. Permissões: `settings:write`.
- [`POST /api/v1/instances/{id}/whatsapp/business/catalog/hide`](https://grapnel.com.br/docs#whatsappBusinessCatalogHide): Ocultar um produto do catálogo. Permissões: `settings:write`.

### WhatsApp: automação

- [`POST /api/v1/instances/{id}/whatsapp/instance/updatechatbotsettings`](https://grapnel.com.br/docs#whatsappInstanceUpdatechatbotsettings): Chatbot Configurações. Permissões: `settings:write`.
- [`POST /api/v1/instances/{id}/whatsapp/instance/update-fields-map`](https://grapnel.com.br/docs#whatsappInstanceUpdateFieldsMap): Atualizar campos personalizados de leads. Permissões: `settings:write`.
- [`POST /api/v1/instances/{id}/whatsapp/agent/edit`](https://grapnel.com.br/docs#whatsappAgentEdit): Criar/Editar Agente. Permissões: `settings:write`.
- [`GET /api/v1/instances/{id}/whatsapp/agent/list`](https://grapnel.com.br/docs#whatsappAgentListGet): Todos os agentes. Permissões: `settings:read`.
- [`POST /api/v1/instances/{id}/whatsapp/trigger/edit`](https://grapnel.com.br/docs#whatsappTriggerEdit): Criar, atualizar ou excluir um trigger do chatbot. Permissões: `settings:write`.
- [`GET /api/v1/instances/{id}/whatsapp/trigger/list`](https://grapnel.com.br/docs#whatsappTriggerListGet): Listar todos os triggers do chatbot. Permissões: `settings:read`.
- [`POST /api/v1/instances/{id}/whatsapp/knowledge/edit`](https://grapnel.com.br/docs#whatsappKnowledgeEdit): Criar/Editar Conhecimento do Agente. Permissões: `settings:write`.
- [`GET /api/v1/instances/{id}/whatsapp/knowledge/list`](https://grapnel.com.br/docs#whatsappKnowledgeListGet): Listar Base de Conhecimento. Permissões: `settings:read`.
- [`POST /api/v1/instances/{id}/whatsapp/function/edit`](https://grapnel.com.br/docs#whatsappFunctionEdit): Criar/Editar função para integração com APIs externas. Permissões: `settings:write`.
- [`GET /api/v1/instances/{id}/whatsapp/function/list`](https://grapnel.com.br/docs#whatsappFunctionListGet): Lista todas as funções de API. Permissões: `settings:read`.
- [`POST /api/v1/instances/{id}/whatsapp/quickreply/edit`](https://grapnel.com.br/docs#whatsappQuickreplyEdit): Criar, atualizar ou excluir resposta rápida. Permissões: `settings:write`.
- [`GET /api/v1/instances/{id}/whatsapp/quickreply/showall`](https://grapnel.com.br/docs#whatsappQuickreplyShowallGet): Listar todas as respostas rápidas. Permissões: `settings:read`.
- [`GET /api/v1/instances/{id}/whatsapp/chatwoot/config`](https://grapnel.com.br/docs#whatsappChatwootConfigGet): Obter configuração do Chatwoot. Permissões: `settings:read`.
- [`PUT /api/v1/instances/{id}/whatsapp/chatwoot/config`](https://grapnel.com.br/docs#whatsappChatwootConfigPut): Atualizar configuração do Chatwoot. Permissões: `settings:write`.
- [`POST /api/v1/instances/{id}/whatsapp/chat/edit-lead`](https://grapnel.com.br/docs#whatsappChatEditLead): Edita informações de lead. Permissões: `chats:write`.

### WhatsApp: campanhas

- [`POST /api/v1/instances/{id}/whatsapp/sender/simple`](https://grapnel.com.br/docs#whatsappSenderSimple): Criar nova campanha (Simples). Permissões: `campaigns:write`.
- [`POST /api/v1/instances/{id}/whatsapp/sender/advanced`](https://grapnel.com.br/docs#whatsappSenderAdvanced): Criar envio em massa avançado. Permissões: `campaigns:write`.
- [`POST /api/v1/instances/{id}/whatsapp/sender/edit`](https://grapnel.com.br/docs#whatsappSenderEdit): Controlar campanha de envio em massa. Permissões: `campaigns:write`.
- [`POST /api/v1/instances/{id}/whatsapp/sender/cleardone`](https://grapnel.com.br/docs#whatsappSenderCleardone): Limpar mensagens enviadas. Permissões: `campaigns:write`.
- [`DELETE /api/v1/instances/{id}/whatsapp/sender/clearall`](https://grapnel.com.br/docs#whatsappSenderClearallDelete): Limpar toda fila de mensagens. Permissões: `campaigns:write`.
- [`GET /api/v1/instances/{id}/whatsapp/sender/listfolders`](https://grapnel.com.br/docs#whatsappSenderListfoldersGet): Listar campanhas de envio. Permissões: `whatsapp:read`.
- [`POST /api/v1/instances/{id}/whatsapp/sender/listmessages`](https://grapnel.com.br/docs#whatsappSenderListmessages): Listar mensagens de uma campanha. Permissões: `whatsapp:read`.

## Outros formatos

- [Documentação interativa](https://grapnel.com.br/docs)
- [Swagger](https://grapnel.com.br/docs/swagger)
- [Guias de uso](https://grapnel.com.br/guias.md)
- [Índice para agentes](https://grapnel.com.br/llms.txt)
