
# Buscar mensagens: um exemplo por tipo

Cada tipo como volta na busca (com a chave "Comparar com a uazapi" ligada, também como voltava na uazapi). Como a busca funciona está em [Buscar mensagens](/docs/buscar). `GET /messages` no lugar do `POST /message/find`, que continua igual. Cada item é a mesma `OrkesioMessage`
do webhook e da resposta do envio. [Testar na Orkesio](/endpoint/get/messages).

## Pedido

| uazapi (`POST /message/find`, corpo) | Orkesio (`GET /messages`, query) |
| --- | --- |
| `chatid` | `chat_id` |
| `id` | `message_id` (o id do canal, o antigo `messageid`; `owner:id` também vale) |
| `messageType` | `type` (vários, separados por vírgula) e `category` |
| — | `direction` (`in`/`out`) |
| `track_source`, `track_id` | `track_source`, `track_id` |
| — | `after`, `before` (ISO) |
| `limit`, `offset` | `limit` (até 200), `cursor` |

### uazapi

```json
{
  "chatid": "5511999999999@s.whatsapp.net",
  "limit": 50,
  "offset": 0
}
```

### Orkesio

```
GET /messages?chat_id=5511999999999&limit=50
```

## Resposta

O cursor não pula nem repete quando chega mensagem nova (o `offset` da uazapi desloca).

### uazapi

```json
{
  "messages": [
    "... mensagens da uazapi ..."
  ],
  "pagination": {
    "limit": 50,
    "offset": 0,
    "hasMore": true,
    "nextOffset": 50
  }
}
```

### Orkesio

```json
{
  "messages": [
    "... OrkesioMessage ..."
  ],
  "next_cursor": "c_01JAB3K9ZQ"
}
```

## Cada tipo

| Tipo | uazapi (`messageType`) | Orkesio |
| --- | --- | --- |
| [Texto](/docs/busca-texto) | `Conversation` | `text` |
| [Resposta (citação)](/docs/busca-citacao) | `ExtendedTextMessage` | `text` |
| [Imagem](/docs/busca-imagem) | `ImageMessage` | `image` |
| [Vídeo](/docs/busca-video) | `VideoMessage` | `video` |
| [Áudio e voz](/docs/busca-voz) | `AudioMessage` | `voice` |
| [Documento](/docs/busca-documento) | `DocumentMessage` | `document` |
| [Localização](/docs/busca-localizacao) | `LocationMessage` | `location` |
| [Contato](/docs/busca-contato) | `ContactMessage` | `contacts` |
| [Enquete e voto](/docs/busca-enquete) | `PollUpdateMessage` | `poll_vote` |
| [Clique em botão ou lista](/docs/busca-resposta-botao) | `ButtonsResponseMessage` | `interactive_reply` |
| [Reação](/docs/busca-reacao) | `ReactionMessage` | `reaction` |
| [Vinda de anúncio](/docs/busca-anuncio) | `ExtendedTextMessage` | `text` |
| [Mensagem de grupo](/docs/busca-grupo) | `Conversation` | `text` |
| [Editada e apagada](/docs/busca-editada-apagada) | `ExtendedTextMessage` | `text` |
| [Registro de sistema](/docs/busca-sistema) | não grava | `group_participant` |
| [Ligação](/docs/busca-ligacao) | `call` | `call` |
| [Agendada ou na fila](/docs/busca-agendada) | `Conversation` | `text` |

`category` vem em cada mensagem e filtra a busca: `conversation` (balão da conversa), `call`, `reaction`, `event`
(registro que não é balão: edição, voto, fixar, sistema) e `unsent` (ainda não saiu).
