---
title: "Choose the delivery class for this deck."
method: POST
path: "/pitch-decks/{jobId}/resolution"
tags: ["Pitch Deck"]
---

# Choose the delivery class for this deck.

`POST /pitch-decks/{jobId}/resolution`

## Request

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

Choose the class the finish delivers the deck at — 720p (the default) or 1080p — or send `resolution: null` to clear the choice back to the default. Storing it is free and changes no render: every shot renders at 480p first, and raising the class upscales the selected takes at finish, so it quotes a finish of the takes you keep, never a render. A finished (complete) deck goes back to review so it can be finished again at the new class. What it costs at each class, in Studio Credits for this deck, is the read's `finishCredits`. Refused (409) while a render or finish pass is running. Requires `Idempotency-Key`. Scope: `story:write`.

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `resolution` '720p' | '1080p' | 'null', nullable, required: The delivery class, or null to clear the choice back to the default.

## Response `200`

The delivery class now in force.

- object
  - `resolution` PitchDeckDeliveryResolution, required: The class the finish delivers the deck at. Raising it upscales the selected takes at finish — it quotes a finish, never a render.
    - `jobId` string, required
    - `deliveryResolution` '720p' | '1080p', required: The writer's choice, else 720p (the plan never raises it).
    - `isDefault` boolean, required: True when nobody chose on the deck, so the 720p default applies.
    - `renderResolution` '480p', required: Every take renders at this class first, whatever the delivery class.
    - `options` string[], required
    - `editable` boolean, required: False while a render or finish pass is running.
    - `finishCredits` object, required: What finishing THIS deck costs at each class, in Studio Credits — the finish quote's own lines (the selected takes upscaled at their kept length, and the text layers). Null for a class it cannot price yet (a shot with no take to play, a chapter not rendered). Say this number when the writer weighs the class; the finish quote stays the one that reserves.
      - `720p` integer, nullable, required
      - `1080p` integer, nullable, required

## 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.
- `409`: The pitch deck exists and the request is well-formed, but the deck, its chapter, its cast or its plates are not in a state that allows it (`pitch_deck_state_invalid`), and nothing was reserved: a plan approved outside draft, a take chosen, a chapter edited or rendered outside review/complete, an export before the finish, a finish while a call has no selected take or a footage chapter has not rendered, a text-only chapter asked for footage, a changed chapter asked for one call, a delivery class changed mid-pass, a render the compile blocked, or a finish while the master failed its video coverage (`pitch_deck_video_coverage_failed`, with `details.videoCoverage`). `details.refusal` is `{ code, action, fix }` (see PitchDeckRefusalDetails): `action` is what unblocks it — `recast_figure`, `add_signature_items`, `recast_voice` or `remake_location_plate` — and `fix` names the MCP tool and CLI command that take it; `details.blocked[]` lists every chapter a blocked compile could not render. The identical request succeeds once the deck is put right.
- `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/86e084144cef?raw)
