# Video.finalized

URL: /business/events/Video.finalized · Id: `event:Video.finalized`

> Emitted each time a Video is finalized.

[Video.finalize](/business/nouns/video/finalize) emits `Video.finalized` when it completes on a [Video](/business/nouns/video).

| Property | Value |
| --- | --- |
| Emitted by | [Video.finalize](/business/nouns/video/finalize) |
| Noun | [Video](/business/nouns/video) |
| Wakes | None. |

### Payload
Each delivery is an [Event](/business/nouns/event) record. `data` holds what [Video.finalize](/business/nouns/video/finalize) returns.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | `Video.finalized`. |
| `at` | `datetime` | Yes | When it happened. |
| `seq` | `integer` | No | Its position in the namespace, one more than the Event before; any seq is a cursor into the history. |
| `data` | `json` | Yes | The Thing as the Action left it. |
| `data.video` | [Video](/business/nouns/video) | Yes | The Video, in status `Final`. |
| `data.video.status` | `string` | Yes | One of `Draft`, `Rendered`, `Final`, or `Superseded`. |
| `data.video.timeline` | `json` | Yes | The ordered scenes on a fixed grid, the only timing truth for picture, voice and captions. |
| `data.video.brand` | [Brand](/business/nouns/brand) | Yes | The Brand whose voice, palette and type the Video uses. |
| `data.video.offer` | [Offer](/business/nouns/offer) | No | The Offer the Video presents, when it presents one. |

### Example
```json
{
  "$id": "https://api.sb/routewise.dev/events/event_1",
  "$type": "Event",
  "name": "Video.finalized",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "video": {
      "$id": "https://api.sb/routewise.dev/videos/video_1",
      "$type": "Video",
      "status": "Draft",
      "timeline": {},
      "brand": "brand_1",
      "offer": "offer_1"
    }
  },
  "seq": 1
}
```