# Create a webhook

**`POST https://myagentmail.com/v1/webhooks`**

Group: Webhooks
Operation ID: `createWebhook`

## Request body

Content-Type: `application/json`

```json
{
  "url": "https://example.com",
  "events": [
    "message.received"
  ]
}
```

## Responses

### 201 — Created

```json
{
  "id": "00000000-0000-0000-0000-000000000000",
  "url": "https://example.com",
  "events": [
    "message.received"
  ],
  "secret": "string",
  "isActive": false,
  "createdAt": "2026-05-01T08:11:44.639Z"
}
```

## Code samples

### TypeScript

```typescript
import { MyAgentMail } from "myagentmail";

const client = new MyAgentMail({ apiKey: process.env.MYAGENTMAIL_API_KEY! });

// POST /v1/webhooks
const result = await client.request("post", "/v1/webhooks", { body: {
  "url": "https://example.com",
  "events": [
    "message.received"
  ]
} });
```

### curl

```bash
curl -X POST 'https://myagentmail.com/v1/webhooks' \
  -H 'X-API-Key: $MYAGENTMAIL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "url": "https://example.com",
  "events": [
    "message.received"
  ]
}'
```

### Python

```python
import os, requests

r = requests.post(
    "https://myagentmail.com/v1/webhooks",
    headers={"X-API-Key": os.environ["MYAGENTMAIL_API_KEY"]},
    json={
        "url": "https://example.com",
        "events": [
            "message.received"
        ]
    },
)
r.raise_for_status()
print(r.json())
```
