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

# Create webhook

`POST /webhooks`

Creates a webhook. A POST request will be made for each message in the queue to this endpoint.
If the endpoint returns a HTTP status code in the 200 range the message will be acknowledged and removed from the queue, otherwise retried.

**Signature Verification**: When a `signing_secret` is configured, webhook requests will include headers for signature verification:
- `webhook-id`: Unique message identifier
- `webhook-timestamp`: Unix timestamp (seconds)
- `webhook-signature`: HMAC-SHA256 signature (format: `v1,<base64>`)

The signature is computed over `{webhook-id}.{webhook-timestamp}.{body}`.

**Key Rotation**: Multiple secrets can be specified (space-separated) for zero-downtime key rotation. When multiple secrets are configured, signatures are generated for all of them, allowing consumers to verify with any key during the transition period.

## Response `200`

Webhook created successfully

- Webhook
  - `id` integer — Webhook ID
  - `name` string, nullable — Label for the webhook
  - `webhook_uri` string — Webhook endpoint URL
  - `queue` string — Queue name
  - `last_status` string, nullable — Last webhook status
  - `concurrency` integer — Max simultaneous outstanding requests
  - `timeout` integer — The request timeout for webhook_uri
  - `signing_secret` string, nullable — Secret key(s) for HMAC-SHA256 signature verification. When configured, webhook requests include webhook-id, webhook-timestamp, and webhook-signature headers. Multiple secrets can be specified (space-separated) for key rotation.
  - `vhost` string — Virtual host name

---

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