---
title: "Set the deck's video model."
method: POST
path: "/pitch-decks/{jobId}/video-model"
tags: ["Pitch Deck"]
---

# Set the deck's video model.

`POST /pitch-decks/{jobId}/video-model`

## Request

- Base URL: `https://docs.sleeperhit.studio/api/v1`
- URL: `https://docs.sleeperhit.studio/api/v1/pitch-decks/{jobId}/video-model`
- Auth: HTTP bearer

Sets which video model renders every chapter of the deck: `{ videoModel }` — wan3-prime or vidu-q4. The field is required (an absent or unknown one is refused, 400). The video model renders every chapter of the deck: WAN 3 (the default) or Vidu Q4. Changing it keeps the plan and every edit, and marks every rendered chapter out of date: the next render of the deck is quoted again and re-renders them on the new model. Takes already made are kept as they are. A render is priced in Studio Credits per second exactly as before; the quote states the model's own cost per second. Free and allowed in any state; nothing is rendered by setting it. Requires `Idempotency-Key`. Scope: `story:write`.

## Headers

- `Idempotency-Key` string, required

## Request body

- PitchDeckVideoModelSetRequest
  - `videoModel` 'wan3-prime' | 'vidu-q4', required: The model every chapter renders on from now on.

## Response `200`

The video model now in force.

- PitchDeckVideoModelSetAck: The video model renders every chapter of the deck: WAN 3 (the default) or Vidu Q4. Changing it keeps the plan and every edit, and marks every rendered chapter out of date: the next render of the deck is quoted again and re-renders them on the new model. Takes already made are kept as they are. A render is priced in Studio Credits per second exactly as before; the quote states the model's own cost per second.
  - `videoModel` 'wan3-prime' | 'vidu-q4', required: The model every chapter renders on.
  - `label` string, required: Its name as a person reads it.
  - `isDefault` boolean, required: True on wan3-prime, the default.
  - `chaptersOnAnotherModel` integer, required: Rendered chapters made on the other model: out of date until they render again (priced first).
  - `renderedChapters` integer, required: Chapters with rendered takes.
  - `options` object[], required
    - `id` 'wan3-prime' | 'vidu-q4', required
    - `label` string, required
    - `description` string, required
  - `description` string, required
  - `changed` boolean, required: False when the deck already renders on this model (nothing was written).

## Other responses

- `400`: Request payload failed validation. The error message names the offending field.
- `401`: Missing, malformed, revoked, or expired API key.
- `403`: API key is valid but lacks the scope, is blocked by IP allowlist, or the account is disabled.
- `404`: The named project or source does not exist or is owned by another account.
- `429`: Rate limit for this API key + IP + route family was exceeded.
- `500`: The API failed unexpectedly. Safe to retry with the same Idempotency-Key.

---

[API](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api.md) · [All operations](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/revisions/4534f5d25540?raw)
