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

# Create a webhook

`POST /webhooks`

## Request

- Base URL: `https://api.tally.so`
- URL: `https://api.tally.so/webhooks`
- Auth: HTTP bearer

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.dev/tally/apis/tally-api.md) - [All operations](https://skmtc.dev/tally/apis/tally-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tally/apis/tally-api/revisions/8b37e41e11fa?raw)
