---
title: "Create a webhook"
method: POST
path: "/webhooks"
tags: ["Webhooks"]
---

# Create a webhook

`POST /webhooks`

## Request

- Base URL: `https://app.italic.com/api/v2`
- URL: `https://app.italic.com/api/v2/webhooks`
- Auth: HTTP bearer

Required permission: webhooks:manage. Also needs events:read: the webhook delivers what the event feed does. Only public HTTPS URLs. The signing secret is returned once. An account can have ten active webhooks, counting the ones its workflows send to.

## Headers

- `Idempotency-Key` string

## Request body

- CreateWebhook
  - `url` string, required
  - `events` string[], required

## Response `200`

Success. Writes without read permission return an ID and revision only.

- WebhookResult
  - `webhook` Webhook, required
    - `id` string
    - `url` string
    - `events` string[]
    - `createdAt` integer
  - `secret` string, required
  - `replayed` boolean

## Other responses

- `default`: Request failed. Errors include a stable code and a readable message.

---

[API](https://skmtc.dev/italic/apis/italic-api.md) - [All operations](https://skmtc.dev/italic/apis/italic-api/llms.txt) - [OpenAPI document](https://skmtc.dev/italic/apis/italic-api/revisions/2fbe2cf16fe3?raw)
