# Webhook reference

> Inspect supported generation events, endpoint schemas, payload shape, signature headers, and delivery behavior.

Canonical: https://entirefeed.com/docs/reference/webhooks

Webhook payloads carry the same public generation object returned by the REST API. Workflow-run events are not part of the current registration contract.

## Endpoint management

| Method | Path | Behavior |
| --- | --- | --- |
| `POST` | `/v1/webhooks/endpoints` | Create an active endpoint and receive its signing secret once. |
| `GET` | `/v1/webhooks/endpoints` | List endpoints without returning signing secrets. |
| `DELETE` | `/v1/webhooks/endpoints/{endpoint_id}` | Deactivate an endpoint. A successful response has no body. |

## Supported events

- `generation.queued`
- `generation.running`
- `generation.succeeded`
- `generation.failed`
- `generation.cancelled`
- `generation.manual_review`
- `workflow_run.queued`
- `workflow_run.running`
- `workflow_run.succeeded`
- `workflow_run.failed`
- `workflow_run.cancelled`
- `workflow_run.manual_review`

## Payload shape

```json
{
  "id": "evt_0123456789abcdef0123456789abcdef",
  "type": "generation.succeeded",
  "created_at": "2026-07-12T08:31:14Z",
  "data": {
    "object": {
      "id": "gen_0123456789abcdef0123456789abcdef",
      "object": "generation",
      "status": "succeeded",
      "model": "seedance-2",
      "task": "video.create",
      "created_at": "2026-07-12T08:30:00Z",
      "completed_at": "2026-07-12T08:31:14Z",
      "output": {
        "assets": [
          {
            "id": "asset_0123456789abcdef0123456789abcdef",
            "type": "video",
            "url": "https://cdn.entirefeed.com/examples/product-reveal.mp4",
            "mime_type": "video/mp4",
            "expires_at": null
          }
        ]
      },
      "usage": {
        "amount_usd": "1.20",
        "line_items": [],
        "billing_status": "settled"
      },
      "error": null,
      "metadata": null
    }
  }
}
```

## Signature headers

- `EntireFeed-Signature`: `t={unix_seconds},v1={hmac_sha256_hex}`; HMAC-SHA256 over timestamp + period + exact raw body.
- `EntireFeed-Event-ID`: stable across retries; use it for deduplication.
- Retry delays: 1m, 5m, 30m, 2h, 12h; each request times out after 10 seconds.
