Pitch Deck

Refine one pitch deck chapter.

Edits one chapter's plan while the deck is a draft plan, in review or complete: its title (title, plan words that never make a take stale; never empty), what it delivers (storyBeat), what it shows on screen (visualPlan), its shot size (shotType, which must name a scale on the shot ladder — establishing, wide, medium or close, the scale word deciding, so "medium close" is a medium; a shot type that names none is refused with a 400; the render is told it, so it stales a rendered chapter's takes; '' clears it), where it is set (location, a canonical location key; null clears it), the camera motion and the hand-off into the next chapter, its words (narration and who speaks it, caption, text mode and treatment), composition, duration, who is in the picture (visibleCharacters, the named characters on camera, each with an identity reference; featuredCharacter), the stage of the deck's intent it serves (arcStage, advancesQuestion — plan words that never make a take stale), whether it is a rapid intercut run (montage — brief shots cut tight; fed to the render, so it stales the takes), and its continuity — propContinuity, wardrobeContinuity and screenDirection, which the render is told ("Props: …"), so a prop the writer is steering away from must leave them too; and continuityNotes, which it is never told ('' clears any of them). imagePrompt and castReferenceMode are gone — a chapter has no still, and its cast reaches the render as body figures — and either is refused by name (400). Free — it saves the plan. On a DRAFT plan nothing has rendered, so nothing goes stale: the next plan approval recompiles just this chapter, and the changed plan is queued for plan coverage again (planCoverage: queued for the latest edit — one run per burst of edits, started once the plan has been left alone for three minutes; the plan approval starts it at once and waits for its score). This is how a chapter the plan approval refused (pitch_deck_render_blocked, for example a sentence too long for one render) is fixed: refine it, then price the approval again. In review or complete an edit to what the chapter films marks its takes out of date (they stay playable) and a caption edit marks only its text layer; render the chapter again with chapters/render-clip (priced). chapterIndex: The chapter's chapterIndex, exactly as the chapters read returns it: a key, not a position — a plan may key its chapters from 0 or from 1. A person's "chapter 2" is the chapter whose chapterNumber is 2; pass that chapter's chapterIndex. Returns needsRerender, chapterIndex, chapterNumber, planCoverage, shotLadderRung (when it set a shot type: the rung it landed on), edited (which version changed: draft_plan or rendered_deck — tell the writer which), the deck's jobId and status, and previewUrl. Provide at least one editable field. Requires Idempotency-Key. Scope: story:write.

post/pitch-decks/{jobId}/chapters/refine

Request

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

Headers

Idempotency-Keystring required

Customer-generated stable identifier for safe retries of idempotent POST requests.

Request body

chapterIndexinteger required

The chapter to edit. The chapter's chapterIndex, exactly as the chapters read returns it: a key, not a position — a plan may key its chapters from 0 or from 1. A person's "chapter 2" is the chapter whose chapterNumber is 2; pass that chapter's chapterIndex.

storyBeatstring

What the chapter delivers dramatically.

visualPlanstring

What the chapter shows on screen: the scene, who is in it, and what happens — the source its shots are compiled from.

locationstring nullable

Where the chapter is set, a canonical location key (pass the key, or a room name that resolves to the room's stored key). A room with no plate yet is legal: the render makes it, priced as a plate line. Null clears it.

motionPlanstring

What the people in the chapter physically DO, in the order they do it — the business the shots stage (crossing to someone, seizing something, putting something down and not letting go) and, where the chapter wants it, what the camera does (a push-in, a crane over the town, an aerial, a handheld follow). An edit marks the chapter's takes stale.

transitionPromptstring

How this chapter hands off into the next one.

motionPromptstring

The camera direction for this chapter's on-screen text layer. Not what the people do — that is motionPlan. When set it is read in place of motionPlan, so changing motionPlan without sending a motionPrompt clears the old one: a repurposed chapter never keeps the old scene's camera.

compositionKind'image' | 'text' | 'both'

What the chapter is made of: footage only, on-screen text only, or text over footage.

chapterFocus'world' | 'cast'

What the chapter is of: world = the place itself, establishing its scale and life, with no cast on camera; cast = cast members on camera, in the world, doing something.

arcStage'setup' | 'escalation' | 'turn' | 'closing_question'

The stage of the deck's intent this chapter serves: setup, escalation, turn or closing_question. The chapters follow the arc in order, every stage is served, and the last chapter is the closing_question — plan coverage refuses a plan that breaks it. Plan words: never makes a take stale.

advancesQuestionstring

One sentence: how this chapter advances the intent's central question — what it raises, sharpens or makes costlier.

whyItFollowsstring

One line, never on screen: why this chapter comes after the one before it — the link a viewer sees or hears and what it moves forward. Required on every chapter after the first; "" clears it. Plan words: never makes a take stale.

montageboolean

true makes the chapter a rapid intercut run; false makes it hold or travel. A montage chapter is a rapid intercut run: several brief shots of about one to two seconds each across the people and places it names, cut tight (a run across more than three named people renders as a few short calls of the chapter). Marking or unmarking it changes what renders, so a rendered chapter goes stale.

keepsSceneSoundboolean

true keeps the chapter's own sound in the master; false leaves it out. A chapter that keeps its scene sound plays the sound its own render made (harness bells, singers, a crowd: voices and all) over the score: the music dips about 12 dB under it, and a narration line dips it only while it is spoken. Every other chapter plays only its cast's lines over quiet room tone. On a chapter with no spoken line it also decides whether the render is made with sound, so keeping the sound of takes made silent needs them rendered again; any other change re-cuts the chapter from the takes it has, free. The answer's sceneSound says what follows: reassembling (in review, the chapter is re-cut and the master rebuilt, free) or at_finish (a complete deck makes it at its next finish).

scoreUnderOwnSound'duck' | 'out' | 'hold'

What the music does under its own sound: duck lowers it about 12 dB (the default), out stops it over a quarter second, hold keeps its level. Where a beat plays its own sound (a capture's recorded track, a cut that kept its takes' sound, a chapter's kept scene sound), scoreUnderOwnSound says what the music does under it: duck (Lower, the default) dips it about 12 dB; out (Stop) fades it to silence over a quarter second and back after, for a captured video that carries its own score; hold (Keep) leaves it at its level (a spoken line still dips it). ownSoundGainDb (−12 to +18, null clears) raises or lowers the beat's own sound itself. The score to picture is composed around it, thinning or stopping there, so a score composed before the change is out of date: score to picture again. Free: in review the master is rebuilt from what it has, and a finished video's master is stitched again.

ownSoundGainDbnumber nullable

Its own sound raised or lowered in the master, in dB from -12 to +18; null or 0 plays it as recorded.

lineDeliverystring

How the cast member says the chapter's spoken line; '' clears it. How the cast member says the chapter's spoken line, in a few words ("quietly, broken, through tears, almost a whisper"; at most 300 characters, an empty string clears it). The line is voiced with it: the words reach the voice as written, and the feeling, pace and level they name (sad, angry, quiet, slow) set its tone. It directs the voice only: the face and body are directed in the motion plan, and the footage's prompt never carries it. Only a line a cast member speaks is voiced with it; a narrated chapter's narration is unchanged. On a rendered chapter a change voices the line again, so its takes go out of date (rendering it again is priced first).

cutIntoNext'dip' | 'cut'

cut makes the hand-off into the next chapter a hard cut in the master; dip puts back the dip through black. How the chapter hands into the next one in the master: dip (the default) falls to black and rises again over about a second; cut is a hard cut, the next chapter's first frame right after this one's last. A black interlude after the chapter still plays between them, and the last chapter's choice does nothing. It changes only how the master is stitched: nothing is rendered again and no take goes out of date; on a rendered deck the master is stitched again with it, free. The answer's restitching says the master is being stitched again.

captionTextstring

On-screen caption copy.

textTreatmentPromptstring

Motion-graphic / type treatment for the on-screen text.

textMode'voiceover' | 'caption'

Whether the on-screen text is voiced or silent.

narrationTextstring

The chapter's spoken line: narrated over the cut, or spoken by the cast member narrationVoice names.

narrationVoicestring nullable

Who speaks the line: a cast member (in their own cast voice) or the narrator. Null clears it.

intendedDurationSecondsinteger

The chapter's length in seconds (4–30). A chapter renders as calls of at most 10s each.

visibleCharactersstring[]

The NAMED characters in the picture (max 5), by exact project-canon name — each needs an identity reference. Unnamed people (a crowd, passers-by) are not listed and need none. Pass [] for a chapter with no cast member on screen, e.g. a vista.

featuredCharacterstring nullable

The chapter's lead character (null clears it).

propContinuitystring

The props this chapter's shots carry — what is held, set down or kept in the frame. The render is told it as "Props: …", so a prop you are steering away from must leave this field too. After the render, changing it puts the chapter's takes out of date. An empty string clears it.

wardrobeContinuitystring

What the people in this chapter wear, kept the same across its shots. The render is told it as "Wardrobe: …". After the render, changing it puts the chapter's takes out of date. An empty string clears it.

screenDirectionstring

Which way people and things face and move on screen (left to right, toward the camera), kept consistent across the cut. The render is told it as "Screen direction: …". After the render, changing it puts the chapter's takes out of date. An empty string clears it.

continuityNotesstring

Notes on what this chapter must keep consistent with the chapters around it, for the writer and the planner. The render is never told them, so changing them never puts a take out of date. An empty string clears them.

shotTypestring

The chapter's shot size in a few words ("close-up on Smerdyakov", "wide establishing of the square"). It must name a scale on the shot ladder — establishing, wide, medium or close — or it is refused; the scale word decides, read in that order: "medium close" is a MEDIUM, and a two-shot or over-the-shoulder with no scale word is a medium. The render is told it ("Framing: …"), so on a rendered chapter it puts the takes out of date; plan coverage reads it for the shot ladder. An empty string clears it.

titlestring

The chapter's title, as the deck and its plan show it: a few words specific to what the chapter now is. Plan words only — the render is never told it, so changing it never puts a take out of date. Never empty.

Response

The saved chapter edit + a shareable chapter preview link.

successboolean required
needsRerenderboolean required

True when the chapter's takes (or its text layer) are now out of date. They stay playable; render the chapter again (priced) to bring it in line. Always false on a draft plan: nothing has rendered.

chapterIndexinteger required

The key of the chapter that changed.

chapterNumberinteger required

The chapter's place in the deck, counted from 1: the number a person says ("chapter 2") and every sentence uses. Never an input; chapter edits take chapterIndex.

planCoverage'queued' | 'current' | 'failed' | 'null' nullable required

On a draft plan the edit changed: its plan coverage — queued (for the latest edit: it starts once the plan has been left alone for three minutes, a later edit replaces it, and the plan approval starts it at once and waits for its score), current (this revision is already scored or being scored) or failed (it could not be queued; the approval says what is missing). A burst of edits is one coverage run, on the revision it ends on. Null outside draft, or when the edit changed nothing.

edited'draft_plan' | 'rendered_deck' required

Which version of the deck the edit changed: draft_plan (a draft deck — nothing has rendered) or rendered_deck (a deck in review or complete). Tell the writer which one changed.

jobIdstring required

The deck that changed.

status'draft' | 'review' | 'complete' required

The status of the deck that changed; the refine does not move it.

shotLadderRung'establishing' | 'wide' | 'medium' | 'close'

When the edit set shotType: the rung of the shot ladder it placed the chapter on, read the way plan coverage reads it ("medium close" is a medium).

sceneSound'reassembling' | 'at_finish'

When the edit changed keepsSceneSound and the chapter's takes still hold: reassembling — in review, the chapter is cut again from the same takes and the master rebuilt (free); at_finish — a complete deck keeps its finished cuts (and a rebuild keeps a cut with a text composite laid over it), so the next finish makes it. Absent otherwise (a draft, or needsRerender).

restitchingboolean

True when the edit changed how the chapter hands into the next one (cutIntoNext), or what the music does under its own sound (scoreUnderOwnSound, ownSoundGainDb), on a rendered deck: the master is stitched again from the cuts it has (free; nothing renders, no take goes out of date). Absent otherwise.

ownSoundWarningstring

The chapter's laid narration speaks over its own sound, which dips under the line: say it to the writer (move the line to the chapter before, onto a black, or clear it). Advisory, the edit is saved. Absent when they do not overlap.

previewUrlstring

Shareable link to watch this chapter's current cut.

Changes

No recorded changes to this operation across all 2 revisions of this API.