> ## Documentation Index
> Fetch the complete documentation index at: https://docs.framelane.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook Setup

> Register a webhook endpoint, verify the signing secret, and handle events idempotently.

## What this workflow does

Registers a webhook via `POST /v1/webhooks`, fires a test event to verify the endpoint, and provides a ready-to-use signature verification snippet. The signing secret is returned once — store it securely.

## Inputs

| Name | Required | Description |
| - | - | - |
| `endpoint_url` | **required** | Your HTTPS endpoint URL |
| `events` | optional | Array of event types to subscribe to. **Default: every render and task lifecycle event** — `render.queued`, `render.processing`, `render.completed`, `render.failed`, `render.cancelled`, `task.queued`, `task.processing`, `task.completed`, `task.failed`, `task.cancelled`. `asset.ready` (emitted per file when `ingest_external` copies a source into Framelane storage) is subscribable but opt-in. Pass an explicit list to narrow it. |

## Output

Returns `webhook_id` and `signing_secret`. The secret is only returned at creation time.

## Signature verification

[Webhooks → Signature Verification](https://docs.framelane.io/webhooks/signature-verification.md) has the full details and ready-to-use Python and TypeScript snippets for verifying the HMAC-SHA256 signature on incoming webhook payloads.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.