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

# Create outbound webhook

`POST /webhooks`

Creates an outbound webhook endpoint. The signing secret is returned only in this response.

## Request body

- object
  - `name` string, required
  - `url` string, uri, required
  - `events` OutboundWebhookEventType[] — Omit to subscribe to default email and SMS lifecycle events plus subscriber.invalid, subscriber.created, and subscriber.unsubscribed. Add campaign.sent, email.opened, email.clicked, email.replied, subscriber.updated, subscriber.list_subscribed, subscriber.list_unsubscribed, sequence.finished, and sequence.failed explicitly for aggregate campaign completion, engagement, inbound reply, profile sync, per-list consent sync, or sequence lifecycle events. SMS events (sms.sent, sms.delivered, sms.failed, sms.opted_out) are included in the defaults.

## Response `201`

Created

- object
  - `success` boolean
  - `webhook` OutboundWebhookEndpoint
    - `id` string
    - `name` string
    - `url` string, uri
    - `status` 'enabled' | 'disabled'
    - `events` OutboundWebhookEventType[]
    - `consecutiveFailures` integer — Consecutive failed delivery attempts used for endpoint backoff.
    - `circuitOpenedAt` string, date-time, nullable
    - `circuitOpenUntil` string, date-time, nullable
    - `signingSecret` string — Returned only when creating a webhook or adding a signing secret.
    - `signingSecrets` object[] — Active signing secret metadata. Secret values are returned only once.
      - `id` string
      - `prefix` string
      - `createdAt` string, date-time
    - `lastSuccessAt` string, date-time, nullable
    - `lastFailureAt` string, date-time, nullable
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `400` — Invalid URL or event type
- `401` — Unauthorized

## Changes

> 121 revisions in range; 89 could not be searched.

- **2026-05-07** `c21889189dc9` — 2 warning, 2 info
  - added the new `sequence.failed` enum value to the `webhook/events/items/` response property for the response status `201`
  - added the new `sequence.finished` enum value to the `webhook/events/items/` response property for the response status `201`
  - added the new `sequence.failed` enum value to the request property `events/items/`
  - added the new `sequence.finished` enum value to the request property `events/items/`
- **2026-05-07** `50ebf9e9f651` — 1 info
  - endpoint added

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

---

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