---
title: "Re-stitch the current per-shot clips into a fresh Full Cut and re-burn"
method: POST
path: "/api/v1/videos/{video_id}/rebuild"
tags: ["Videos"]
---

# Re-stitch the current per-shot clips into a fresh Full Cut and re-burn

`POST /api/v1/videos/{video_id}/rebuild`

## Request

- Base URL: `https://api.avatarfactory.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.avatarfactory.io/api/v1/videos/{video_id}/rebuild`
- Auth: one of:
  - API key in cookie `session`
  - HTTP bearer

captions into a fresh Subtitled cut (Shot Quality Feedback Loop).<br/><br/>Repoints `final_video_file`, refreshes the two cut assets, and clears<br/>`needs_rebuild`. Async: the new file arrives via the status/detail poll.<br/>409 if a re-roll is still running.

## Path parameters

- `video_id` integer, required

## Response `200`

OK

- RebuildVideoResponse: Response for `POST /api/v1/videos/:id/rebuild`. The rebuild runs async (stitch + caption), so the new `final_video_file` arrives via the status/detail poll once `needs_rebuild` clears; `message` is the toast.
  - `message` string, required
  - `success` boolean, required
  - `video_id` integer, required

## Other responses

- `404`: Not Found
- `409`: Conflict
- `422`: Unprocessable Entity

---

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