---
title: "Create Webhook"
method: POST
path: "/hooks"
tags: ["Webhooks"]
---

# Create Webhook

`POST /hooks`

Creates a new webhook that listens for specific events. Supports optional association with a chat.

## Request body

- object
  - `name` string, required — A human-readable name for the webhook.
  - `events` string[], required — List of event types the webhook should subscribe to.
  - `url` string, uri, required — The target URL to receive the webhook payloads.
  - `chatId` string, nullable, required — The ID of a chat to scope the webhook to.

## Response `200`

Response for status 200

- Webhook
  - `id` string, required — A unique identifier for the webhook.
  - `createdAt` string, date-time, required — The ISO timestamp representing when the chat was created.
  - `name` string, required — A user-defined name to label the webhook.
  - `events` string[], required — List of event types this webhook is subscribed to.
  - `url` string, required — Target URL that receives event payloads for this webhook.
  - `chatId` string, nullable, required — Optional ID of the chat that this webhook is scoped to.

## Other responses

- `401` — Response for status 401
- `403` — Response for status 403
- `404` — Response for status 404
- `422` — Response for status 422
- `500` — Response for status 500

## Changes

> 34 revisions in range; 3 could not be searched.

- **2026-07-30** `da68370a2aea` — 8 breaking, 17 info
  - the request property `chatId` became required
  - response property `chatId` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - removed the required property `error` from the response with the `401` status
  - removed the required property `error` from the response with the `403` status
  - …21 more
- **2025-09-08** `9924b1bf0d99` — 1 warning, 1 info
  - added the new `message.finished` enum value to the `events/items/` response property for the response status `200`
  - added the new `message.finished` enum value to the request property `events/items/`
- **2025-08-24** `3521652a43a7` — 1 breaking, 1 info
  - removed the enum value `message.finished` of the request property `events/items/`
  - removed the `message.finished` enum value from the `events/items/` response property for the response status `200`

[Change history](https://skmtc.dev/vercel/apis/v0-platform-api-beta/changes/hooks/post.md)

---

[API](https://skmtc.dev/vercel/apis/v0-platform-api-beta.md) · [All operations](https://skmtc.dev/vercel/apis/v0-platform-api-beta/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/vercel/v0-platform-api-beta/revisions/3cf5debd6cf4/schema)
