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

# Create Webhook

> Create a new webhook for receiving real-time event notifications

This endpoint creates a new webhook for receiving real-time event notifications.

## Body Parameters

**url** `string` *required*

The webhook listener URL where events will be sent

**events** `array` *required*

A list of event types to listen for. Supported events: `action_log.completed`,
`action_log.failed`, `document.received`, `document.extracted`, `lead.created`,
`lead.updated`, `lead.completed`, `workflow_run.started`,
`workflow_run.paused`, `workflow_run.resumed`, `workflow_run.completed`,
`workflow_run.cancelled`

**headers** `object`

Custom headers to send with every delivery, as name-value pairs. Deliveries
are not signed, so set a secret header here and check it on your endpoint to
authenticate them — for example `{ "x-shared-secret": "<random value>" }`.

**isEnabled** `boolean`

Whether the webhook should be enabled immediately (default: `true`)

**description** `string`

Optional description for the webhook

## Response

**id** `string`

Unique identifier for the webhook

**url** `string`

The webhook URL where events will be sent

**events** `array`

Array of event types this webhook is subscribed to

**isEnabled** `boolean`

Whether the webhook is currently enabled

**description** `string`

Optional description for the webhook

**createdAt** `string`

ISO 8601 timestamp when the webhook was created

> [!NOTE]
>
> Your webhook endpoint should return a 200 status code within 5 seconds. If it
> doesn't, Monumint will retry the delivery.

```javascript Node.js theme={null}
const options = {
  method: 'POST',
  headers: {
    'x-api-key': '<your-api-key>',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://your-app.com/webhook/monumint',
    events: ['action_log.completed', 'action_log.failed'],
    isEnabled: true,
    description: 'Production webhook for CRM sync',
  }),
};

fetch('https://api-v2.getomni.ai/api/v1/webhooks', options)
  .then((response) => response.json())
  .then((response) => console.log(response))
  .catch((err) => console.error(err));
```

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

url = "https://api-v2.getomni.ai/api/v1/webhooks"
headers = {
    "x-api-key": "<your-api-key>",
    "Content-Type": "application/json"
}
payload = {
    "url": "https://your-app.com/webhook/monumint",
    "events": ["action_log.completed", "action_log.failed"],
    "isEnabled": True,
    "description": "Production webhook for CRM sync"
}

response = requests.request("POST", url, json=payload, headers=headers)
print(response.json())
```

```bash cURL theme={null}
curl --request POST \
  --url https://api-v2.getomni.ai/api/v1/webhooks \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <your-api-key>' \
  --data '{
  "url": "https://your-app.com/webhook/monumint",
  "events": ["action_log.completed", "action_log.failed"],
  "isEnabled": true,
  "description": "Production webhook for CRM sync"
}'
```

```json 200 theme={null}
{
  "id": "06e4b90b-86dd-41c7-9a1e-73a592963682",
  "workspaceId": "6048d78a-584a-4f1e-9e39-e011ca4cc48c",
  "url": "https://c4b3632a95ef.ngrok-free.app/webhook/test-receiver",
  "secret": null,
  "events": ["action_log.completed", "action_log.failed"],
  "isEnabled": false,
  "description": null,
  "createdAt": "2025-10-30T19:49:46.581Z",
  "updatedAt": "2025-10-30T20:07:31.930Z"
}
```

```json 400 theme={null}
{
  "error": "Invalid request"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.