# List an endpoint's attempts

`GET https://api.parasend.com/v1/webhook_endpoints/{id}/attempts`

Source: https://parasend.com/docs/api/webhooks/attempts

Authentication: `Authorization: Bearer <API key>` (a `ps_test_` key in test mode, `ps_live_` in live mode).

Lists every attempt to send events to the endpoint. Your endpoint should de-duplicate by event ID and accept events out of order.

## Path parameters

- `id` (string, required): The webhook endpoint's ID, starting `whk_`.

## Query parameters

- `limit` (integer, optional): Default: `25`.
- `cursor` (string, optional)
- `event_id` (string, optional): evt_… — only this event's attempts (all tries and replays).
- `outcome` (string, optional): succeeded = a 2xx answer; failed = anything else; exhausted = the last attempt of an event that ran out of retries and has not been replayed successfully since. One of: `succeeded`, `failed`, `exhausted`.

## Example: List an endpoint's attempts

```bash
curl "https://api.parasend.com/v1/webhook_endpoints/whk_01M6R27T4KCSN7M0CHFGVH7JRA/attempts" \
  -H "Authorization: Bearer $PARASEND_KEY"
```

```js
const res = await fetch('https://api.parasend.com/v1/webhook_endpoints/whk_01M6R27T4KCSN7M0CHFGVH7JRA/attempts', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.PARASEND_KEY}`,
  },
});
const data = await res.json();
```

## Response 200

Paginated attempts.

```json
{
  "data": [
    {
      "id": "wha_01M6R27T5FDNZNP8H9PR7YDM94",
      "event_id": "evt_01M6R27T08JTMBJ4B6GQP90838",
      "event_type": "delivery.created",
      "attempt_number": 1,
      "ok": true,
      "status_code": 200,
      "latency_ms": 0,
      "replay": true,
      "test": false,
      "failure_stage": null,
      "error": null,
      "created": "2026-11-06T09:15:05.775Z",
      "next_retry_at": null,
      "exhausted": false
    },
    {
      "id": "wha_01M6R27T5AHW8DQ6B11PRVD7NA",
      "event_id": "evt_01M6R27T58P38M9BDCG5V1STPB",
      "event_type": "delivery.confirmed",
      "attempt_number": 1,
      "ok": true,
      "status_code": 200,
      "latency_ms": 1,
      "replay": false,
      "test": true,
      "failure_stage": null,
      "error": null,
      "created": "2026-11-06T09:15:05.771Z",
      "next_retry_at": null,
      "exhausted": false
    }
  ],
  "has_more": false,
  "next_cursor": null
}
```

Errors: one shape, `{"error": {type, code, message, param, request_id}}`; every code is listed at https://parasend.com/docs/errors.
