GET /api/v1/webhook-deliveries
Returns the 100 most recent deliveries of the organization, newest first, across every subscription. The payload and the attempts are not included: get a delivery to read them.
| Role in the organization | This endpoint |
|---|---|
OWNER | Allowed |
ADMIN | Allowed |
MEMBER | Refused — 403 |
| Requirement | Rule for this endpoint |
|---|---|
| Business role | None beyond the organization role |
| Resource scope | Organization from the API key |
| Participation | None |
| Resource state | None — every status is listed |
| Header | Required | Description |
|---|---|---|
x-api-key | yes | API key created for this organization |
X-Correlation-Id | no | Caller correlation id, returned or generated |
curl "$COHORTE_API_BASE_URL/api/v1/webhook-deliveries" \
-H "x-api-key: $COHORTE_API_KEY"200 OK — the deliveries, possibly an empty array.401 Unauthorized — unauthorized: the key is missing, invalid, expired or no longer attached to a member.403 Forbidden — forbidden: the bearer is not OWNER or ADMIN.500 Internal Server Error — internal_error: unexpected failure.| Field | Type | Nullable | Description |
|---|---|---|---|
success | boolean | no | true for a successful request |
data[].id | UUID | no | Delivery identifier |
data[].subscriptionId | UUID | no | Subscription the delivery targets |
data[].eventId | UUID | no | Event identifier, identical across retries and replays; deduplicate on it |
data[].eventName | string | no | Event name, for example enrollment.created |
data[].subjectType | string | no | Kind of resource the event is about |
data[].subjectId | string | no | Identifier of that resource |
data[].correlationId | string | no | Correlation id of the originating command, or of the replay request |
data[].occurredAt | ISO 8601 string | no | When the event happened, in UTC |
data[].status | string | no | pending, delivering, retry_scheduled, succeeded or exhausted |
data[].attemptCount | integer | no | Attempts made so far, up to 5 |
data[].nextAttemptAt | ISO 8601 string | yes | Next scheduled attempt, in UTC; null once terminal |
data[].lastStatusCode | integer | yes | HTTP status of the last attempt; null if no answer was received |
data[].lastError | string | yes | http_error, redirect_refused, network_error or delivery_error; null after a success |
data[].replayOfDeliveryId | UUID | yes | Original delivery when this one is a replay |
data[].createdAt | ISO 8601 string | no | Creation time, in UTC |
data[].updatedAt | ISO 8601 string | no | Last change, in UTC |
correlationId | string | no | Correlation id for support |
{
"success": true,
"data": [
{
"id": "8c2d4e6f-0a1b-4c3d-9e5f-7a8b9c0d1e2f",
"subscriptionId": "6b1e2c3d-4f50-4a61-8b72-93a4b5c6d7e8",
"eventId": "0e4f8a2b-6c1d-4e3f-9a5b-7c8d9e0f1a2b",
"eventName": "enrollment.created",
"subjectType": "Enrollment",
"subjectId": "2f6a9c3e-1b4d-4a7e-8c0f-5d2e6b9a1c3f",
"correlationId": "5a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"occurredAt": "2026-09-21T10:00:00.000Z",
"status": "retry_scheduled",
"attemptCount": 2,
"nextAttemptAt": "2026-09-21T10:04:00.000Z",
"lastStatusCode": 503,
"lastError": "http_error",
"replayOfDeliveryId": null,
"createdAt": "2026-09-21T10:00:00.000Z",
"updatedAt": "2026-09-21T10:02:00.000Z"
}
],
"correlationId": "b7d3e1f0-2a4c-4e8b-9c1d-0f2e3a4b5c6d"
}