---
title: "The delivery log"
method: GET
path: "/api/v1/webhooks/{id}/deliveries"
tags: ["Webhooks"]
---

# The delivery log

`GET /api/v1/webhooks/{id}/deliveries`

## Request

- Base URL: `https://mailcheer.com`
- URL: `https://mailcheer.com/api/v1/webhooks/{id}/deliveries`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`

Permission required: `webhooks:read`. This is what answers “I am not receiving anything”: you see the attempt, the status code your service returned and the start of its response.

## Query parameters

- `limit` integer

## Response `200`

The most recent deliveries.

- object: The envelope of every list. To walk through it: as long as `has_more` is `true`, call the same address again with `?cursor=<next_cursor>`. The order is stable; a page returns at most `limit` items (50 by default, 100 at most).
  - `object` 'list'
  - `data` object[]
    - `object` 'webhook_delivery'
    - `id` string
    - `webhook_id` string
    - `event_id` string: Stable across attempts: it is the deduplication key.
    - `event_type` 'email.sent' | 'email.failed' | 'email.delivered' | 'email.opened' | 'email.clicked' | 'email.bounced' | 'email.complained' | 'email.received' | 'subscriber.created' | 'subscriber.unsubscribed' | 'quota.threshold_reached'
    - `status` 'pending' | 'delivered' | 'failed'
    - `attempts` integer
    - `response_status` integer, nullable: The HTTP status code your service returned.
    - `response_body` string, nullable: The first 500 characters of its response.
    - `error` string, nullable
    - `next_attempt_at` string, date-time, nullable
    - `delivered_at` string, date-time, nullable
    - `created_at` string, date-time
  - `has_more` boolean: One more page after this one.
  - `next_cursor` string, nullable: To pass back as `?cursor=` for the next page. `null` on the last page.

## Other responses

- `401`: Key missing, unknown or revoked.
- `403`: The key does not have the requested permission, or the workspace cannot send: `sending_blocked` (suspended, blocked or banned — nothing goes out, through any channel), `commitment_required` (the anti-spam commitment is not accepted), `reputation_blocked` (too many bounces or complaints).
- `404`: The object does not exist in this workspace.

---

[API](https://skmtc.dev/mailcheer/apis/mailcheer-api.md) · [All operations](https://skmtc.dev/mailcheer/apis/mailcheer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mailcheer/apis/mailcheer-api/revisions/ba64b7ef2170?raw)
