---
title: "Get a webhook delivery"
method: GET
path: "/webhooks/deliveries/{id}"
tags: ["Webhook Deliveries"]
---

# Get a webhook delivery

`GET /webhooks/deliveries/{id}`

## Request

- Base URL: `https://api.primitive.dev/v1`
- URL: `https://api.primitive.dev/v1/webhooks/deliveries/{id}`
- Auth: HTTP bearer

One webhook delivery attempt record, by the id listDeliveries returns.

## Path parameters

- `id` union, required
  - string
  - string, uuid

## Response `200`

Get a webhook delivery

- object
  - `success` true, required
  - `data` GetDeliveryResult, required
    - `id` union, required
      - string
      - string, uuid
    - `email_id` string, uuid, nullable, required
    - `event_type` string, nullable, required
    - `sent_email_id` string, uuid, nullable, required
    - `org_id` string, required
    - `endpoint_id` string, uuid, required
    - `endpoint_url` string, nullable, required
    - `status` string, required
    - `attempt_count` integer, required
    - `duration_ms` integer, nullable, required
    - `last_error` string, nullable, required
    - `last_error_code` string, nullable, required
    - `created_at` string, required
    - `updated_at` string, required
    - `email` object, nullable, required
      - `sender` string, required
      - `recipient` string, nullable, required
      - `subject` string, nullable, required

## Other responses

- `401`: Invalid or missing API key
- `403`: Authenticated caller lacks permission for the operation
- `404`: Resource not found
- `429`: Rate limit exceeded. The `ratelimit-*` headers describe the limiter that rejected this request, with its own limit and window, not the API budget that successful responses report. A limiter that reports only a wait sends `Retry-After` alone.

---

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