Layers
Partner APIAPI referenceWebhooks

GET /v1/webhook-endpoints/:endpointId/deliveries

Recent deliveries for an endpoint, newest first. Use for debugging and monitoring.

View as Markdown
GET/v1/webhook-endpoints/{endpointId}/deliveries
Phase 1stable
Auth
X-Api-Key

Returns up to limit recent delivery attempts for this endpoint with attempt count, current status, last HTTP response, and error message. Payloads are omitted from the list response — call replay to receive the payload at your endpoint again.

Use this to:

  • See why an endpoint auto-paused (inspect lastErrorMessage / lastResponseStatus across recent rows).
  • Verify a delivery your handler doesn't have a record of.
  • Observe the retry ladder in action (a single eventId with multiple rows is a replay chain; a single row with attempts > 1 is the automatic retry).
Path
  • endpointId
    string (UUID)required
Query
  • eventType
    stringoptional
    Filter to one event type.
  • status
    stringoptional
    One of `pending`, `delivering`, `delivered`, `failed`, `abandoned`.
  • cursor
    stringoptional
    Opaque cursor from previous response.
  • limit
    integeroptional
    Default 25, max 100.

Example

curl "https://api.layers.com/v1/webhook-endpoints/d4c71b62-.../deliveries?status=failed&limit=10" \
  -H "X-Api-Key: $LAYERS_API_KEY"
200OK
{
  "items": [
    {
      "id": "9b8a41e2-0cc6-4c7a-9f89-1a7d19a1c233",
      "endpointId": "d4c71b62-7f08-4dc9-9d2c-8f7e2b9c4411",
      "eventId": "evt_01KPM7QZEC6NJF4XJTCZRR6S3N",
      "eventType": "job.completed",
      "status": "failed",
      "attempts": 8,
      "nextRetryAt": "2026-04-21T18:28:00.000Z",
      "deliveredAt": null,
      "abandonedAt": "2026-04-21T18:28:00.000Z",
      "lastResponseStatus": 502,
      "lastResponseAt": "2026-04-21T18:28:00.000Z",
      "lastErrorMessage": null,
      "createdAt": "2026-04-20T18:28:00.000Z"
    }
  ],
  "nextCursor": null
}

Errors

StatusCodeWhen
404NOT_FOUNDEndpoint not owned by the calling org.

See also

On this page