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

# Listar eventos

> Lista os eventos do projeto em ordem crescente de `sequence`, do mais antigo para o mais recente. É o caminho de **reconciliação** para quem perdeu entregas de webhook: guarde o `id` do último evento processado e passe-o em `after`.

Os eventos ficam disponíveis por 90 dias. Veja [Reconciliar eventos](/webhooks/reconciliation).



## OpenAPI

````yaml openapi.json GET /v1/events
openapi: 3.0.3
info:
  title: API da Routa
  description: >-
    API REST para enviar e receber mensagens de WhatsApp, acompanhar a entrega e
    receber eventos normalizados por webhook.
  version: '1'
servers:
  - url: https://api.routa.chat
    description: Produção
security:
  - bearerAuth: []
tags:
  - name: Mensagens
    description: Envie, consulte e liste mensagens.
  - name: Eventos
    description: Consulte o log de eventos normalizados.
  - name: Webhooks
    description: Gerencie endpoints de webhook, segredos e entregas.
  - name: Templates
    description: Submeta e consulte templates de WhatsApp.
  - name: Mídia
    description: Envie e obtenha arquivos de mídia.
  - name: Uso
    description: Consulte o uso medido do projeto.
  - name: Identidade
    description: Identifique a chave de API em uso.
paths:
  /v1/events:
    get:
      tags:
        - Eventos
      summary: Listar eventos
      description: >-
        Lista os eventos do projeto em ordem crescente de `sequence`, do mais
        antigo para o mais recente. É o caminho de **reconciliação** para quem
        perdeu entregas de webhook: guarde o `id` do último evento processado e
        passe-o em `after`.


        Os eventos ficam disponíveis por 90 dias. Veja [Reconciliar
        eventos](/webhooks/reconciliation).
      operationId: listEvents
      parameters:
        - schema:
            type: string
            enum:
              - message.accepted
              - message.sent
              - message.delivered
              - message.read
              - message.failed
              - message.received
              - channel.status_changed
              - template.submitted
              - template.pending
              - template.approved
              - template.rejected
              - template.paused
              - template.disabled
          in: query
          name: type
          required: false
          description: Filtra por tipo de evento.
        - description: Retoma a listagem depois deste id de evento (`evt_...`).
          schema:
            type: string
          in: query
          name: after
          required: false
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
          in: query
          name: limit
          required: false
          description: Quantidade de itens por página, de 1 a 100. O padrão é 20.
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventList'
        '401':
          description: >-
            Chave de API ausente, inválida, revogada ou expirada
            (`api_key_invalid`)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: A chave não tem o escopo necessário (`insufficient_scope`)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: O recurso não existe ou pertence a outro projeto
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Requisição inválida
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Limite de taxa excedido. Veja o header `Retry-After`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth:
            - events:read
components:
  schemas:
    EventList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Event'
          description: Eventos da página.
        has_more:
          type: boolean
          description: Indica se existem mais eventos.
        next_cursor:
          type: string
          nullable: true
          description: >-
            Id do último evento da página, ou `null` na última. Use-o em
            `after`.
      required:
        - data
        - has_more
        - next_cursor
    Error:
      type: object
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
            - request_id
          properties:
            type:
              type: string
              description: >-
                Categoria do erro: `invalid_request_error`,
                `authentication_error`, `permission_error`, `not_found_error`,
                `conflict_error`, `rate_limit_error`, `billing_error` ou
                `api_error`.
              example: invalid_request_error
            code:
              type: string
              description: >-
                Código estável e legível por máquina. Veja [Códigos de
                erro](/errors/error-codes).
              example: channel_inactive
            message:
              type: string
              description: >-
                Texto para humanos, em inglês. Pode mudar, então não faça parse
                dele.
              example: Channel chan_01J8... is not active and cannot send messages.
            param:
              type: string
              description: O campo da requisição com problema, quando se aplica.
            doc_url:
              type: string
              description: Link para a documentação do código, quando disponível.
            details:
              type: object
              additionalProperties:
                oneOf:
                  - type: string
                  - type: number
              description: >-
                Valores acionáveis, como `limit`, `used` e `resets_at` em
                `message_quota_exceeded`.
            request_id:
              type: string
              description: Identificador da requisição. Informe-o ao falar com o suporte.
              example: req_01J8ZK9M3Q7XABCDEFGHJKMNPQ
          description: Detalhes do erro.
      required:
        - error
    Event:
      type: object
      required:
        - id
        - type
        - api_version
        - schema_version
        - project_id
        - sequence
        - occurred_at
        - recorded_at
        - data
      properties:
        id:
          type: string
          description: Identificador do evento. É a chave de deduplicação.
          example: evt_01J8ZK9M3Q7XABCDEFGHJKMNPQ
        type:
          type: string
          enum:
            - message.accepted
            - message.sent
            - message.delivered
            - message.read
            - message.failed
            - message.received
            - channel.status_changed
            - template.submitted
            - template.pending
            - template.approved
            - template.rejected
            - template.paused
            - template.disabled
          description: Tipo do evento, no formato `recurso.ação_no_passado`.
        api_version:
          type: string
          description: Versão do formato público do recurso em `data`.
          example: v1
        schema_version:
          type: number
          description: Versão do envelope do evento.
          example: 1
        project_id:
          type: string
          description: Projeto dono do evento.
          example: proj_01J8ZK9M3Q7XABCDEFGHJKMNPQ
        sequence:
          type: number
          description: >-
            Número monotônico, útil para detectar lacunas. Não é uma promessa de
            ordem de entrega.
        occurred_at:
          format: date-time
          type: string
          description: Quando o fato ocorreu.
          example: '2026-09-04T13:22:41.031Z'
        recorded_at:
          format: date-time
          type: string
          description: Quando a Routa registrou o evento.
          example: '2026-09-04T13:22:41.031Z'
        data:
          description: >-
            O recurso completo no estado atual, não um diff. Para eventos de
            mensagem é a mensagem, para eventos de template é o template.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Chave de API do projeto, no formato `rt_live_...` ou `rt_test_...`,
        enviada como `Authorization: Bearer <chave>`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.