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

# Marcar Mensagens como Lidas (Lote)

> Marca até 100 mensagens recebidas como lidas em uma única requisição. As mensagens podem pertencer a conversas diferentes.

O resultado é discriminado por mensagem: `read` (lida), `ignored` (mensagem enviada pela própria instância, sem leitura a confirmar) ou `not_found` (mensagem fora do prazo de leitura ou nunca processada pela instância).


Use este endpoint para marcar até 100 mensagens recebidas como lidas em uma única requisição. As mensagens podem pertencer a conversas diferentes, incluindo grupos, sem custo adicional.

Os `ids` são os mesmos recebidos nos webhooks de mensagem, como o campo `data.id` do evento `message.received`. Requisições com mais de 100 IDs retornam erro de validação.

A resposta discrimina o resultado por mensagem no campo `results`, nunca um sucesso genérico:

* `read`: a mensagem foi marcada como lida.
* `ignored`: a mensagem foi enviada pela própria instância, então não há leitura a confirmar.
* `not_found`: a mensagem está fora do prazo de leitura (veja abaixo) ou nunca foi processada pela instância.

## Prazo para marcar como lida

Cada mensagem fica disponível para leitura por um período limitado depois que chega na instância:

* Conversas individuais e grupos: até 3 dias após o recebimento da mensagem.
* Status: até 24 horas após a publicação, o mesmo período em que o status fica visível no WhatsApp.

Depois desse prazo o retorno para aquele ID é `not_found`. Isso não indica uma falha na instância: a janela de leitura expirou e a confirmação não pode mais ser enviada.

Para marcar uma única mensagem, use o endpoint de [leitura unitária](/pt-BR/v1/api-reference/messages/read-message).

<Info>
  Se a conta do WhatsApp conectada estiver com a confirmação de leitura desativada nas configurações de privacidade, as mensagens são marcadas como lidas apenas localmente e o remetente não vê o tique azul.
</Info>

<Warning>
  Este endpoint está disponível apenas para instâncias não oficiais. Instâncias com API oficial (WABA) retornam erro por enquanto.
</Warning>


## OpenAPI

````yaml POST /wa/messages/read
openapi: 3.1.0
info:
  title: Zapster API
  description: ''
  version: 1.0.0
servers:
  - url: https://api.zapsterapi.com/v1
    description: Produção
security: []
tags: []
paths:
  /wa/messages/read:
    post:
      tags:
        - Mensagens
      summary: Marcar Mensagens como Lidas
      description: >
        Marca até 100 mensagens recebidas como lidas em uma única requisição. As
        mensagens podem pertencer a conversas diferentes.


        O resultado é discriminado por mensagem: `read` (lida), `ignored`
        (mensagem enviada pela própria instância, sem leitura a confirmar) ou
        `not_found` (mensagem fora do prazo de leitura ou nunca processada pela
        instância).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - instance_id
                - ids
              properties:
                instance_id:
                  type: string
                  description: ID da instância que recebeu as mensagens.
                  example: ozj35qv418rpmlrb
                ids:
                  type: array
                  minItems: 1
                  maxItems: 100
                  description: >-
                    IDs das mensagens a marcar como lidas. É o mesmo `id`
                    recebido nos webhooks de mensagem (por exemplo, no evento
                    `message.received`). Limite de 100 por requisição.
                  items:
                    type: string
                  example:
                    - 3EB0538DA65A59F6D3A926
                    - 3EB0791B2D3F4C5A6B7C8D
      responses:
        '200':
          description: Resultado por mensagem
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: ID da mensagem processada.
                          example: 3EB0538DA65A59F6D3A926
                        status:
                          type: string
                          enum:
                            - read
                            - ignored
                            - not_found
                          description: >
                            Resultado individual:


                            - `read` - A mensagem foi marcada como lida.

                            - `ignored` - A mensagem foi enviada pela própria
                            instância e não possui leitura a confirmar.

                            - `not_found` - A mensagem está fora do prazo de
                            leitura (até 3 dias para conversas e grupos, até 24
                            horas para status) ou nunca foi processada pela
                            instância.
                          example: read
        '400':
          description: Requisição inválida (por exemplo, mais de 100 IDs) ou instância WABA
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: validation_error
                  message:
                    type: string
                    example: >-
                      A maximum of 100 messages can be marked as read per
                      request.
        '404':
          description: Instância não encontrada ou não pertence ao usuário
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: instance_not_found
                  message:
                    type: string
                    example: Instance not found.
      security:
        - bearer: []
components:
  securitySchemes:
    bearer:
      type: http
      scheme: bearer

````