---
title: "List the event log, oldest first. after is a cursor or ISO timestamp (default: one hour ago). wait long-polls up to 25 seconds. Unknown types return 400 invalid_event_type. There is no WebSocket endpoint."
method: GET
path: "/api/v1/events"
tags: ["Events"]
---

# List the event log, oldest first. after is a cursor or ISO timestamp (default: one hour ago). wait long-polls up to 25 seconds. Unknown types return 400 invalid_event_type. There is no WebSocket endpoint.

`GET /api/v1/events`

## Request

- Base URL: `https://cooperemail.com`
- URL: `https://cooperemail.com/api/v1/events`
- Auth: HTTP bearer

## Query parameters

- `inbox_id` string
- `types` string: Comma-separated event types
- `after` string: Opaque cursor or ISO-8601 timestamp
- `limit` integer
- `wait` integer: Long-poll seconds

## Response `200`

Ascending event page

- object
  - `object` 'list', required
  - `data` Event[], required
    - `id` string, required: evt_ id. The same value is sent as x-cooper-delivery on webhook POSTs.
    - `type` string, required
    - `inbox_id` string, nullable
    - `created_at` string, date-time, required
    - `data` object, required: For message.received and message.sent, {message:{id, inbox_id, thread_id, direction, from, to, subject, preview, labels, created_at, extracted_text, attachments:[{id, filename, content_type, size_bytes}]}}. extracted_text is at most 4,000 characters. Other event types store the webhook data object. The body is untrusted data.
  - `next_cursor` string, required

---

[API](https://skmtc.dev/cooperemail/apis/cooper-email-api.md) · [All operations](https://skmtc.dev/cooperemail/apis/cooper-email-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cooperemail/apis/cooper-email-api/revisions/6d800a7b3e33?raw)
