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

# Create webhook

`POST /v2/api/webhooks`

Creates a webhook endpoint subscribed to one or more event topics. The `signing_secret` is returned only in this response — store it to verify delivery signatures.

## Request body

- CreateWebhookApiRequest
  - `url` string, uri, required — HTTPS URL that will receive event deliveries.
  - `topics` WebhookTopic[], required — Event topics to subscribe to (at least one).
  - `description` string — Optional human-readable label.

## Response `201`

Webhook created

- object
  - `data` WebhookApiResponse — A webhook endpoint.
    - `id` string — Unique webhook endpoint ID.
    - `url` string, uri — HTTPS URL that receives event deliveries.
    - `topics` WebhookTopic[] — Event topics this endpoint is subscribed to.
    - `description` string, nullable — Optional human-readable label.
    - `enabled` boolean — Whether the endpoint is active.
    - `signing_secret` string, nullable — Secret used to verify delivery signatures. Returned only when the webhook is created or fetched by ID.
    - `created_at` string, date-time, nullable — When the endpoint was created.

## Other responses

- `400` — Invalid request parameters
- `401` — Invalid or missing API key
- `429` — Rate limit exceeded

---

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