# Create Webhook Endpoint

> `POST /webhooks/endpoints` · Monitors

Canonical page: https://clawifi.dev/docs/api/post-webhooks-endpoints

`POST https://api.clawifi.dev/webhooks/endpoints`

- Send your key as `Authorization: Bearer $CLAWIFI_API_KEY`; see [Authentication](https://clawifi.dev/docs/authentication).
- Credits: see [Pricing and credits](https://clawifi.dev/docs/pricing-and-credits).

## Request

**cURL**

```sh
curl -X POST https://api.clawifi.dev/webhooks/endpoints \
  -H "Authorization: Bearer $CLAWIFI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://your-app.example/hooks/clawifi","secret":"a-long-random-secret","event_types":["monitor.change.detected"]}'
```

**Python**

```python
from clawifi import Clawifi

client = Clawifi()  # reads CLAWIFI_API_KEY
result = client.post("/webhooks/endpoints", json={"url":"https://your-app.example/hooks/clawifi","secret":"a-long-random-secret","event_types":["monitor.change.detected"]})
```

### Body

| Field | Type | Default | Required |
| --- | --- | --- | --- |
| `enabled` | boolean | `true` | no |
| `event_types` | array of string |  | no |
| `secret` | string |  | yes |
| `url` | string |  | yes |

## Response

200 with a `WebhookEndpointResponse` object: `created_at`, `enabled`, `event_types`, `id`, `url`.

Errors use the shared shape; see [Errors](https://clawifi.dev/docs/errors). Try public operations without a key in the [playground](https://clawifi.dev/playground).
