POST request. They are useful when you do not want to poll GET /v1/content/{generation_id} after each generation request.
What you see in the dashboard
The Webhook workspace has two levels:- Webhook - the list page with Add endpoint, search, and the endpoint table.
- Webhook details - the detail page for one endpoint, including status, events, secret tools, queued events, and the
Webhook eventstable.
Event types
The create dialog lets you subscribe an endpoint to these delivery events:| Event | When BabySea sends it |
|---|---|
generation.started | The generation has been submitted and is processing. |
generation.completed | The generation finished successfully. |
generation.failed | The generation finished with a failure state. |
generation.canceled | The generation was canceled. |
webhook.test when you click Send test event on Webhook details.
How delivery works
When a generation event occurs, BabySea uses this delivery flow:Filter by event subscription
Only endpoints whose stored event list includes the current event are selected.
Build the payload
BabySea creates a JSON payload with
webhook_event, webhook_timestamp, webhook_delivery_id, and webhook_data.Sign the payload
BabySea signs the raw JSON with HMAC-SHA256 and sends the signature in
X-BabySea-Signature.Request headers
Every delivery includes these HTTP headers:| Header | Description |
|---|---|
Content-Type | Always application/json |
X-BabySea-Signature | HMAC-SHA256 signature for verification. See Verify signature |
X-BabySea-Event | Event type, for example generation.completed |
X-BabySea-Delivery-Id | Delivery ID that also appears in the payload |
X-BabySea-Timestamp | Timestamp value that also appears in the payload |
Reliability behavior
The current webhook implementation includes these delivery controls:| Behavior | Current implementation |
|---|---|
| Normal delivery attempts | Up to 5 attempts per delivery |
| Delivery timeout | 10 seconds |
| Auto-disable threshold | 15 consecutive failures |
| Disabled-endpoint queue retention | 72 hours |
Disabled endpoints and queued events
When BabySea has no active webhook to deliver for the account, it checks disabled webhooks and can queue matching events in the dead letter queue for later delivery. On Webhook details, queued items appear in a banner above the events table with the action Deliver queued events. Queued items expire after 72 hours if you do not re-enable and drain them in time.Secret handling
Each endpoint has a webhook secret used for HMAC verification.- The secret is shown once when you create the endpoint.
- The detail page shows only the secret prefix.
- Rotate secret creates a new secret and invalidates the old one immediately.
Access and management
Members can view webhook pages, but create, toggle, rotate, replay, drain, and delete actions are restricted to owner-level users.Next steps
- Setup - Step by step guide to creating a webhook endpoint
- Events - All event types and their payload structures
- Verify signature - How to verify that a delivery came from BabySea
- Retry and delivery - Automatic retries, test events, replay, and queued delivery behavior