---
title: "Webhook events and stats"
description: "The events an endpoint can subscribe to, and how the deliveries went."
url: "https://openemail.uk/docs/api/webhooks/events"
area: "API"
category: "Keys & webhook logs"
---

# Webhook events and stats

The events an endpoint can subscribe to, and how the deliveries went.

**Also documents:** `GET /webhooks/events`, `GET /webhooks/stats`

## Events

`GET /webhooks/events` lists every event an endpoint can name in `eventTypes`, each with a sentence saying when it fires, and the limits an endpoint is held to: `maxEndpoints` for the workspace, which its plan decides, and `maxAddresses` and `maxDomains` for one allowlist. It needs `webhooks:read`.

**GET /webhooks/events**

```
{
  "object": "webhook_catalogue",
  "events": [
    { "id": "email.sent", "label": "A message left OpenEmail." },
    { "id": "email.bounced", "label": "A message bounced." }
  ],
  "maxEndpoints": 10,
  "maxAddresses": 50,
  "maxDomains": 20
}
```

> An endpoint that names no events receives every email event except `email.replied`, so `email.replied` and the other families reach only an endpoint that asks for them by name.

## Stats

`GET /webhooks/stats` reads how the deliveries went inside a window, the Analytics tab of the Webhooks page: attempts, delivered and failed, the median time a receiver took to answer, a series of buckets, the events sent and the response codes received. It needs `webhooks:read`. `endpointIds` narrows it to some endpoints, `since` and `until` set the window, 30 days by default, and `grain` and `offsetMinutes` shape the series. Each try of an event counts as one attempt.

**GET /webhooks/stats?grain=day**

```
{
  "object": "webhook_stats",
  "since": "2026-09-02T00:00:00.000Z",
  "until": "2026-10-02T00:00:00.000Z",
  "grain": "day",
  "endpointIds": [],
  "totals": { "attempts": 1280, "delivered": 1266, "failed": 14, "medianDurationMs": 212 },
  "buckets": [{ "bucket": "2026-09-28", "delivered": 44, "failed": 1 }],
  "events": [{ "id": "email.delivered", "count": 702 }],
  "codes": [{ "id": "200", "count": 1266 }, { "id": "503", "count": 14 }]
}
```

## Reference

- [`GET /webhooks/events`](https://openemail.uk/docs/api/reference/webhooks#get-webhooks-events): full reference
- [`GET /webhooks/stats`](https://openemail.uk/docs/api/reference/webhooks#get-webhooks-stats): full reference
