> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shoal.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Webhook

> Get a single webhook with recent delivery history

Returns a webhook's configuration and its 20 most recent delivery attempts. Use this to debug delivery issues or confirm events are arriving.

<Note>
  Webhook management is available only on plans that include webhook access.
</Note>

## Path Parameters

| Parameter | Type    | Required | Description |
| --------- | ------- | -------- | ----------- |
| `id`      | integer | Yes      | Webhook ID  |

### Request

```bash cURL theme={null}
curl -X GET "https://api.shoal.xyz/v1/webhooks/12" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```python Python theme={null}
import os, requests

API_KEY = os.environ.get("SHOAL_API_KEY", "YOUR_API_KEY")

r = requests.get(
    "https://api.shoal.xyz/v1/webhooks/12",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json())
```

```javascript JavaScript theme={null}
const API_KEY = process.env.SHOAL_API_KEY || 'YOUR_API_KEY';

const res = await fetch('https://api.shoal.xyz/v1/webhooks/12', {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(await res.json());
```

### Response (200)

```json theme={null}
{
  "data": {
    "id": 12,
    "url": "https://example.com/shoal-webhook",
    "secret_hint": "****f6a8",
    "event_types": ["radar", "signal"],
    "active": true,
    "created_at": "2026-03-10T12:00:00Z",
    "updated_at": "2026-03-10T12:00:00Z"
  },
  "recent_deliveries": [
    {
      "id": 456,
      "event_type": "radar",
      "event_id": 1234,
      "status": "success",
      "attempts": 1,
      "response_status": 200,
      "created_at": "2026-03-10T14:30:00Z",
      "last_attempt_at": "2026-03-10T14:30:01Z"
    },
    {
      "id": 455,
      "event_type": "signal",
      "event_id": 5678,
      "status": "failed",
      "attempts": 5,
      "response_status": 500,
      "created_at": "2026-03-10T13:00:00Z",
      "last_attempt_at": "2026-03-10T15:00:00Z"
    }
  ]
}
```

### Delivery Statuses

| Status    | Description                           |
| --------- | ------------------------------------- |
| `pending` | Queued or awaiting retry              |
| `success` | Delivered successfully (2xx response) |
| `failed`  | All retry attempts exhausted          |

### Errors

| Status | Error                  | Cause                                          |
| ------ | ---------------------- | ---------------------------------------------- |
| 400    | Webhook id is required | Missing or invalid ID                          |
| 404    | Webhook not found      | ID doesn't exist or belongs to another account |
