---
title: "Create an endpoint"
method: POST
path: "/v1/webhooks"
tags: ["Webhooks"]
---

# Create an endpoint

`POST /v1/webhooks`

## Request

- Base URL: `https://api.volanea.com`
- URL: `https://api.volanea.com/v1/webhooks`
- Auth: HTTP bearer

Registers a URL to receive event deliveries. The response includes the signing `secret` (`whsec_…`). Deliveries retry with backoff for ~24h and carry `X-Volanea-Signature: t=<ms>,v1=<hmac-sha256 hex of "<t>.<body>">`.

## Request body

- object
  - `url` string, uri, required
  - `description` string
  - `events` string[]: Patterns like `"email.*"` or exact names. Omit for all events.

## Response `201`

Created, with the signing secret.

- WebhookEndpoint
  - `webhookEndpointId` string, required
  - `projectId` string
  - `url` string, uri, required
  - `description` string, nullable
  - `secret` string, required: `whsec_…` — used to HMAC-SHA256-sign every delivery (`X-Volanea-Signature: t=<ms>,v1=<hex>` over `<t>.<body>`).
  - `events` string[], nullable: Event name patterns, e.g. `["email.*", "contact.created"]`. Empty or null = all events.
  - `enabled` boolean, required
  - `createdAt` string, date-time, required

## Other responses

- `401`: Missing or invalid API key.
- `422`: Request validation failed (code `validation_error`, 422).

---

[API](https://skmtc.dev/volanea/apis/volanea-api.md) · [All operations](https://skmtc.dev/volanea/apis/volanea-api/llms.txt) · [OpenAPI document](https://skmtc.dev/volanea/apis/volanea-api/revisions/9e187ae84fda?raw)
