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

# Buscar Mensagens

> Pesquise mensagens armazenadas no event store com filtros e paginação

# Buscar Mensagens

O endpoint de busca permite consultar mensagens armazenadas no event store da MessageFy. Você pode filtrar por canal, conta, organização e conteúdo de texto, com suporte a paginação.

## Endpoint

```
GET /api/v1/message/SearchMessage
```

## Parâmetros de Query

<ParamField query="ChannelId" type="uuid">
  Filtra mensagens de um canal específico.
</ParamField>

<ParamField query="AccountId" type="uuid">
  Filtra mensagens de uma conta específica.
</ParamField>

<ParamField query="OrganizationId" type="uuid">
  Filtra mensagens de uma organização específica.
</ParamField>

<ParamField query="ContentText" type="string">
  Busca textual no conteúdo das mensagens.
</ParamField>

<ParamField query="Page" type="short" default="1">
  Número da página. Mínimo: 1.
</ParamField>

<ParamField query="PerPage" type="short" default="10">
  Quantidade de resultados por página. Mínimo: 1, máximo: 50.
</ParamField>

<Note>
  O valor máximo de `PerPage` é **50**. Valores acima desse limite serão automaticamente ajustados para 50. O valor padrão é 10.
</Note>

## Exemplos

### Buscar todas as mensagens de um canal

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://api-dev.messagefy.io/api/v1/message/SearchMessage?ChannelId=3fa85f64-5717-4562-b3fc-2c963f66afa6&Page=1&PerPage=20" \
    -H "X-API-KEY: sua-api-key-aqui"
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api-dev.messagefy.io/api/v1/message/SearchMessage",
      headers={"X-API-KEY": "sua-api-key-aqui"},
      params={
          "ChannelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "Page": 1,
          "PerPage": 20
      }
  )
  print(response.json())
  ```

  ```javascript Node.js theme={null}
  const params = new URLSearchParams({
    ChannelId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    Page: "1",
    PerPage: "20",
  });

  const response = await fetch(
    `https://api-dev.messagefy.io/api/v1/message/SearchMessage?${params}`,
    {
      headers: {
        "X-API-KEY": "sua-api-key-aqui",
      },
    }
  );
  const data = await response.json();
  console.log(data);
  ```
</CodeGroup>

### Buscar mensagens por conteúdo

```bash theme={null}
curl -X GET "https://api-dev.messagefy.io/api/v1/message/SearchMessage?ChannelId=3fa85f64-5717-4562-b3fc-2c963f66afa6&ContentText=pagamento&Page=1&PerPage=10" \
  -H "X-API-KEY: sua-api-key-aqui"
```

### Buscar mensagens de uma conta

```bash theme={null}
curl -X GET "https://api-dev.messagefy.io/api/v1/message/SearchMessage?AccountId=b2c3d4e5-f6a7-8901-bcde-f12345678901&Page=1&PerPage=50" \
  -H "X-API-KEY: sua-api-key-aqui"
```

### Buscar mensagens de uma organização

```bash theme={null}
curl -X GET "https://api-dev.messagefy.io/api/v1/message/SearchMessage?OrganizationId=c3d4e5f6-a7b8-9012-cdef-123456789012&Page=2&PerPage=25" \
  -H "X-API-KEY: sua-api-key-aqui"
```

### Combinando filtros

```bash theme={null}
curl -X GET "https://api-dev.messagefy.io/api/v1/message/SearchMessage?ChannelId=3fa85f64-5717-4562-b3fc-2c963f66afa6&ContentText=fatura&Page=1&PerPage=10" \
  -H "X-API-KEY: sua-api-key-aqui"
```

## Resposta

A resposta retorna uma lista de objetos `MessageEventStoreDTO`:

```json theme={null}
[
  {
    "messageId": "20CFBA298FAB68AA75D3B369EDB5C805",
    "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "accountId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "organizationId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "content": {
      "type": "TEXT",
      "text": "Sua fatura de abril ja esta disponivel.",
      "to": {
        "type": "WHATSAPP",
        "number": "5511999999999"
      }
    },
    "timestamp": "2026-04-14T10:30:00Z"
  },
  {
    "messageId": "B6E8A2D4C5F7193820ABCDEF01234567",
    "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "accountId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "organizationId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "content": {
      "type": "DOCUMENT",
      "caption": "Fatura abril/2026",
      "filename": "fatura-abril-2026.pdf"
    },
    "timestamp": "2026-04-14T10:30:05Z"
  }
]
```

## Paginação

A busca utiliza paginação baseada em offset:

| Parâmetro | Padrão | Mínimo | Máximo | Descrição        |
| --------- | ------ | ------ | ------ | ---------------- |
| `Page`    | 1      | 1      | -      | Número da página |
| `PerPage` | 10     | 1      | 50     | Itens por página |

<Tip>
  Para percorrer todas as mensagens, incremente o parâmetro `Page` até receber uma lista vazia ou com menos itens que `PerPage`, indicando que você chegou ao final dos resultados.
</Tip>

## Erros Comuns

| Status             | Descrição                     |
| ------------------ | ----------------------------- |
| `400 Bad Request`  | Parâmetros de query inválidos |
| `401 Unauthorized` | API Key inválida ou ausente   |
