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

# Create a webhook

`POST /webhooks`

Creates a new webhook for a form to receive form events.

## Request body

- object
  - `formId` string, required — The ID of the form to create the webhook for
  - `url` string, required — The URL to send webhook events to
  - `signingSecret` string, nullable — Optional secret used to sign webhook payloads
  - `httpHeaders` object[], nullable — Optional custom HTTP headers to include in webhook requests
    - `name` string, required — The header name
    - `value` string, required — The header value
  - `eventTypes` EventType[], required — Types of events to receive
  - `externalSubscriber` string — Optional identifier for the external subscriber

## Response `201`

Webhook created successfully

- object
  - `id` string
  - `url` string
  - `eventTypes` EventType[]
  - `isEnabled` boolean
  - `createdAt` string, date-time

## Other responses

- `400` — Invalid request body
- `401` — Unauthorized
- `403` — Forbidden

---

[API](https://skmtc.net/tally/apis/openapi.md) · [All operations](https://skmtc.net/tally/apis/openapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tally/openapi/revisions/3ae813325ad6/schema)
