---
title: "Get a webhook message"
method: GET
path: "/v1/webhooks/messages/{messageId}"
tags: ["Webhooks"]
---

# Get a webhook message

`GET /v1/webhooks/messages/{messageId}`

Returns a webhook message with its payload and per-endpoint delivery attempts. The message ID matches the webhook-id header on the delivery.

## Path parameters

- `messageId` string, required

## Headers

- `X-API-Key` string

## Response `200`

Webhook message retrieved successfully

- WebhookMessageDetailResponseDto
  - `id` string, required
  - `eventType` string, required
  - `timestamp` string, date-time, required
  - `tags` string[] — Resource IDs carried on the message
  - `payload` object, nullable, required — Request body delivered to the endpoint. Null when the payload has expired.
  - `attempts` WebhookMessageAttemptDto[], required
    - `id` string, required
    - `endpointId` string, required
    - `endpointUrl` string, nullable
    - `status` 'SUCCESS' | 'PENDING' | 'FAIL' | 'SENDING' | 'CANCELED', required
    - `statusCode` number, nullable
    - `responseBody` string, nullable — HTTP response body returned by the endpoint
    - `durationMs` number, nullable — Round-trip duration of the delivery attempt in milliseconds
    - `trigger` 'SCHEDULED' | 'MANUAL', required — Whether the attempt was scheduled automatically or triggered manually (e.g. a resend)
    - `timestamp` string, date-time, required

## Other responses

- `401` — Unauthorized - Invalid or missing authentication credentials

---

[API](https://skmtc.dev/infinite/apis/infinite-api.md) · [All operations](https://skmtc.dev/infinite/apis/infinite-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/infinite/infinite-api/revisions/5426f2706725/schema)
