# List signing keys

> List the webhook’s rotation keys (status primary, secondary or retired) without secrets.

Source: https://sndr.sh/docs/api/webhooks/list-signing-keys

`GET https://api.sndr.sh/v1/webhooks/{id}/signing-keys`

List the webhook’s rotation keys (status primary, secondary or retired) without secrets. A new webhook has no rows until you stage a key; its creation secret signs as primary until then.

Scope: `read`

**Path parameters**

- `id` (string, required): Webhook ID (wh_...).

**Request**

```bash
curl 'https://api.sndr.sh/v1/webhooks/wh_2a7d4e9c-6b1/signing-keys' \
  -H "Authorization: Bearer $SNDR_API_KEY"
```

**Response** (200)

```json
{
  "webhook_id":  "wh_2a7d4e9c-6b1",
  "webhook_url": "https://your-app.com/webhooks/sndr",
  "data": [
    {
      "id":              "whk_61d0a9c7-5e4",
      "webhook_id":      "wh_2a7d4e9c-6b1",
      "status":          "secondary",
      "created_at":      "2026-06-01T13:00:00Z",
      "created_by":      "usr_5b2f8c1e-9a3",
      "rotation_reason": "scheduled rotation"
    }
  ],
  "count": 1
}
```

**Errors**

- `unauthenticated` (401): Missing or invalid API key.
- `insufficient_scope` (403): The API key is missing the read scope.
- `not_found` (404): Resource does not exist or belongs to a different account.
