---
title: "Creates a webhook"
method: POST
path: "/channels/{channel_id}/webhooks"
tags: ["Webhooks"]
---

# Creates a webhook

`POST /channels/{channel_id}/webhooks`

Creates a webhook which 3rd party platforms can use to send messages

## Path parameters

- `channel_id` string, required

## Headers

- `X-Audit-Log-Reason` string

## Request body

- CreateWebhookBody — Information for the webhook
  - `name` string, required
  - `avatar` string, nullable

## Response `200`

- Webhook — Webhook
  - `id` string, required — Webhook Id
  - `name` string, required — The name of the webhook
  - `avatar` File — File
    - `_id` string, required — Unique Id
    - `tag` string, required — Tag / bucket this file was uploaded to
    - `filename` string, required — Original filename
    - `metadata` union, required — Metadata associated with a file
      - object — File is just a generic uncategorised file
        - `type` 'File', required
      - object — File contains textual data and should be displayed as such
        - `type` 'Text', required
      - object — File is an image with specific dimensions, and may be animated
        - `type` 'Image', required
        - `width` integer, required
        - `height` integer, required
        - `thumbhash` integer[], nullable
        - `animated` boolean, nullable
      - object — File is a video with specific dimensions
        - `type` 'Video', required
        - `width` integer, required
        - `height` integer, required
      - object — File is audio
        - `type` 'Audio', required
    - `content_type` string, required — Raw content type of this file
    - `size` integer, required — Size of this file (in bytes)
    - `deleted` boolean, nullable — Whether this file was deleted
    - `reported` boolean, nullable — Whether this file was reported
    - `message_id` string, nullable
    - `user_id` string, nullable
    - `server_id` string, nullable
    - `object_id` string, nullable — Id of the object this file is associated with
  - `creator_id` string, required — User that created this webhook
  - `channel_id` string, required — The channel this webhook belongs to
  - `permissions` integer, required — The permissions for the webhook
  - `token` string, nullable — The private token for the webhook

## Other responses

- `default` — An error occurred.

## Changes

- **2026-08-27** `a09d9d97fec9` — 1 info
  - added the required property `oneOf[subschema #2]/locale` to the response with the `default` status
- **2026-08-25** `66efa81c8e1f` — 1 breaking
  - added `subschema #2` to the response body `oneOf` list for the response status `default`
- **2026-07-26** `7a23c8b93766` — 1 breaking, 1 info
  - added `subschema #65, subschema #66, subschema #67, subschema #81, subschema #82, subschema #83, subschema #84, subschema #85, subschema #86, subschema #87, subschema #88, subschema #89, subschema #90, subschema #91, subschema #92, subschema #93, subschema #94, subschema #95` to the response body `oneOf` list for the response status `default`
  - added the new optional `header` request parameter `X-Audit-Log-Reason`

[Change history](https://skmtc.dev/revolt/apis/revolt-api/changes/channels/:channel_id/webhooks/post.md)

---

[API](https://skmtc.dev/revolt/apis/revolt-api.md) · [All operations](https://skmtc.dev/revolt/apis/revolt-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/revolt/revolt-api/revisions/a09d9d97fec9/schema)
