# Create Webhook Subscription

```
POST 
/v1/:slug/webhooks
```

Sends a POST to `url` when a comment you can see is created, edited (including resolve, unresolve and the internal flag), or deleted. Each request follows the Standard Webhooks spec (standardwebhooks.com): verify the `webhook-signature` header with the returned `secret` over `webhook-id.webhook-timestamp.body`, and use `webhook-id` to de-duplicate — deliveries are at least once. The body is `{ id, type, created_at, organization, data }`, where `data` for `comment.created` and `comment.updated` is the record `GET /v1/{slug}/comments` returns, and for `comment.deleted` is `{ token, parent_token, internal, deleted_at, targets }`. Answer 2xx within 10 seconds. Failed deliveries are retried for about 24 hours, then the webhook is disabled and its creator emailed; a 410 answer disables it at once. A webhook only signals a change: to recover missed new and edited comments, read `GET /v1/{slug}/comments?updated_since=`. The feed does not list deleted comments, so to catch up on missed deletions compare your copy with a full read of the feed. Comments on an asset moved to the trash leave the feed without an event.

## Request[​](#request "Direct link to request")

## Responses[​](#responses "Direct link to Responses")

* 200
* 403
* 422

successful

only workspace members can create webhooks

url is not http(s) or points to a private network address
