# List webhook deliveries

Returns the webhook’s deliveries with their status, attempt count, last response status, and diagnostics, newest first. Page with `cursor`.

GET `/v1/webhooks/{webhookId}/deliveries`

## Authorization

`Authorization` Bearer token · header required

`Authorization: Bearer <token>` with an API key (`sfa_` prefix), an OAuth access token, a session token, or a Space machine credential (`sfm_` prefix).

or

`Authorization` OAuth2 access token · header required

OAuth 2.0 with Spacefast scopes. People use the authorization code flow; machines use client credentials.

Scopes: `spaces:read`

## Path parameters

`webhookId` string required

- min length 1

## Query parameters

`limit` integer required

- min 1 · max 100 · default: 20

`cursor` string

- min length 1 · max length 4096

## Responses

### 200 Response for status 200

`$schema` string <uri>

Canonical JSON Schema URL for this response body. The server also sends it in the `Link: rel="describedby"` response header.

`data` object[] required

Array of `object`

- `id` string required
- `webhookId` string required
- `eventId` string required 
- Activity event this attempt carries.
- `status` string required
  - `failed` will be retried, `exhausted` used up the retry budget or the retry horizon and will not.
  - Allowed: `pending`, `succeeded`, `failed`, `exhausted`
- `attempts` integer required
  - Delivery attempts made so far.
  - min 0 · max 9007199254740991
- `lastAttemptAt` string <date-time> | any required
  - ISO 8601 timestamp of the most recent attempt. Null before the first one.
- `lastResponseStatus` integer | any required
  - HTTP status the endpoint answered with on the last attempt. Null when the request never got a response.
- `nextRetryAt` string <date-time> | any required
  - ISO 8601 timestamp of the next scheduled attempt. Null when no retry is scheduled.
- `redeliveredFromId` string | any required
  - Delivery this one replays. Null for the original attempt.
- `diagnostics` object[] required
  - Why an attempt did not land, such as a rejected endpoint or an exhausted budget.
  - default: []

Array of `object`

- `code` string required
  - Stable snake_case code for this diagnostic.
- `severity` string required
  - How serious the diagnostic is.
  - Allowed: `info`, `warning`, `error`
- `message` string required
  - What happened, in a sentence a person can act on.
- `path` string | any
  - File or artifact path the diagnostic refers to, with a line number when known, for example `_headers:12`. Absent when it applies to the whole resource.
- `provider` string | any
  - Upstream system that raised the diagnostic. Absent when Spacefast raised it.
- `details` object | any
  - Machine-readable context keyed by the diagnostic code.
- `fix` string | any
  - What to change to clear the diagnostic. Absent when there is no known fix.
- `retryable` boolean | any
  - True when repeating the same operation unchanged can clear the diagnostic.
- `createdAt` string <date-time> required

## Pagination

`nextCursor` string | any required

- Cursor for the next page. Null on the last page.

`hasMore` boolean required

- True when another page exists.

---

### Example Response

```json
{
  "$schema": "http://example.com",
  "data": [
    {
      "id": "string",
      "webhookId": "string",
      "eventId": "string",
      "status": "pending",
      "attempts": 9007199254740991,
      "lastAttemptAt": "2019-08-24T14:15:22Z",
      "lastResponseStatus": -9007199254740991,
      "nextRetryAt": "2019-08-24T14:15:22Z",
      "redeliveredFromId": "string",
      "diagnostics": [],
      "createdAt": "2019-08-24T14:15:22Z"
    }
  ],
  "pagination": {
    "nextCursor": "string",
    "hasMore": true
  }
}
```

### Error Response

```json
{
  "$schema": "http://example.com",
  "type": "string",
  "title": "string",
  "status": -9007199254740991,
  "detail": "string",
  "code": "string",
  "pointer": "string",
  "details": {
    "property1": null,
    "property2": null
  },
  "suggestions": [
    "string"
  ],
  "next": [
    "string"
  ],
  "requestId": "string"
}
```
