The Storyboard Preview API generates a preview of your video project, allowing you to review the storyboard structure, scene breakdown, visual selections, and configuration before committing to the final render. This is an essential step in the video creation workflow that helps you validate your content and make adjustments without incurring full rendering costs.
The storyboard preview creates a project with scene thumbnails and metadata. To generate the final rendered video, use the Render from Preview API after reviewing and approving the preview.
Recommended Workflow: Create Preview → Review Scenes → Make Adjustments → Render Final Video
Language of the text content.Allowed values:zh, nl, en, fr, de, hi, it, ja, ko, mr, pt, ru, es, tazh Chinese, nl Dutch, en English, fr French, de German, hi Hindi, it Italian, ja Japanese, ko Korean, mr Marathi, pt Portuguese, ru Russian, es Spanish, ta Tamil
Custom data object that will be included in the webhook POST payload when the job completes. Use this to pass through any metadata (e.g., internal IDs, tracking info) that you need in your webhook handler.
Experimental: This field is currently experimental. In the future, all storyboards will automatically use the latest version, and this field will be ignored. There is no need to remove it from your requests when that happens.
Specifies which storyboard version to use. Set to v3 to create a latest Pictory storyboard. Omit this field to use the classic storyboard.Options:
v3 — Uses the latest Pictory storyboard
Omit or any other value — Uses the classic/legacy storyboard
The following fields are nested inside the top-level voiceOver object. For example, voiceOver.enabled means enabled is a property of the voiceOver object.
The following fields are nested inside each element of the voiceOver.aiVoices array. For example, voiceOver.aiVoices[].speaker means speaker is a property of each item in the aiVoices array, which itself is nested inside the voiceOver object. The [] notation indicates an array element.
The following fields are nested inside premiumVoiceSettings, which is a property of each voiceOver.aiVoices[] element. For example, voiceOver.aiVoices[].premiumVoiceSettings.modelId means modelId is inside premiumVoiceSettings, inside each voice in the aiVoices array, inside the voiceOver object.
The following fields are nested inside the voiceOver.externalVoice object. For example, voiceOver.externalVoice.voiceUrl means voiceUrl is a property of externalVoice, which itself is nested inside the voiceOver object.
The following fields are nested inside the top-level backgroundMusic object. For example, backgroundMusic.enabled means enabled is a property of the backgroundMusic object.
The following fields are nested inside the subtitleStyle object. For example, subtitleStyle.fontFamily means fontFamily is a property of the subtitleStyle object. This object can be used at the top level or inside scenes[] as scenes[].subtitleStyle.
The following fields are nested inside each element of the subtitleStyle.animations array. For example, subtitleStyle.animations[].name means name is a property of each item in the animations array, which itself is nested inside the subtitleStyle object. The [] notation indicates an array element.
The following fields are nested inside each element of the top-level destinations array. For example, destinations[].type means type is a property of each item in the destinations array. The [] notation indicates an array element.
The following fields are nested inside the privacy object of each destinations[] element. For example, destinations[].privacy.view means view is a property of privacy, which itself is nested inside each item of the destinations array.
Each scene can only have ONE content source. Choose one of: story, storyCoPilot, blogUrl, pptUrl, audioUrl, or videoUrl.
The following fields are nested inside each element of the top-level scenes array. For example, scenes[].story means story is a property of each item in the scenes array. The [] notation indicates an array element.
Language of audio content. Required for audioUrl and videoUrl.Allowed values:en-US, en-AU, en-GB, en-IN, en-IE, en-AB, en-WL, fr-CA, fr-FR, de-CH, de-DE, it-IT, es-ES, es-US, nl-NL, pt-BR, ja-JP, ko-KR, ru-RU, hi-IN, ta-IN, mr-INen-US English (US), en-AU English (Australia), en-GB English (UK), en-IN English (India), en-IE English (Ireland), en-AB English (Arabic accent), en-WL English (Wales), fr-CA French (Canada), fr-FR French (France), de-CH German (Switzerland), de-DE German (Germany), it-IT Italian (Italy), es-ES Spanish (Spain), es-US Spanish (US), nl-NL Dutch (Netherlands), pt-BR Portuguese (Brazil), ja-JP Japanese (Japan), ko-KR Korean (Korea), ru-RU Russian (Russia), hi-IN Hindi (India), ta-IN Tamil (India), mr-IN Marathi (India)
Language of caption text. Only valid with caption.Allowed values:zh, nl, en, fr, de, hi, it, ja, ko, mr, pt, ru, es, tazh Chinese, nl Dutch, en English, fr French, de German, hi Hindi, it Italian, ja Japanese, ko Korean, mr Marathi, pt Portuguese, ru Russian, es Spanish, ta Tamil
AI story generation configuration for creating video scripts automatically.
Report incorrect code
Copy
Ask AI
{ "storyCoPilot": { "prompt": "How AI is transforming video creation", "videoType": "Explainer", "duration": 60, "platform": "YouTube", "tone": "informative" }}
The following fields are nested inside the storyCoPilot object, which is a property of each scenes[] element. For example, scenes[].storyCoPilot.prompt means prompt is a property of storyCoPilot, which itself is nested inside each item of the scenes array.
The following fields are nested inside the voiceOver object at the scene level. For example, scenes[].voiceOver.enabled means enabled is a property of voiceOver, which itself is nested inside each item of the scenes array. This is separate from the top-level voiceOver object.
Background music configuration specific to a scene.
Report incorrect code
Copy
Ask AI
{ "backgroundMusic": { "enabled": true }}
The following fields are nested inside the backgroundMusic object at the scene level. For example, scenes[].backgroundMusic.enabled means enabled is a property of backgroundMusic, which itself is nested inside each item of the scenes array. This is separate from the top-level backgroundMusic object.
Preset position for the avatar in this scene. Options: top-left, top-center, top-right, center-left, center-center, center-right, bottom-left, bottom-center, bottom-right
Hide avatar for this specific scene (true or false)
Important: You cannot change avatarId at the scene level. The same avatar must be used throughout the video. You can only override styling and positioning properties.
Background can only have ONE of: visualUrl, color, or aiVisual - not multiple.
The following fields are nested inside the background object, which is a property of each scenes[] element. For example, scenes[].background.visualUrl means visualUrl is a property of background, which itself is nested inside each item of the scenes array.
AI-generated visual configuration. Use with background.type set to "image" for AI-generated images or "video" for AI-generated video clips.
The following fields are nested inside the aiVisual object, which is a property of scenes[].background. For example, scenes[].background.aiVisual.prompt means prompt is a property of aiVisual, which itself is nested inside background, inside each item of the scenes array.
AI Image Example
AI Video Clip Example
Report incorrect code
Copy
Ask AI
{ "background": { "type": "image", "aiVisual": { "prompt": "A serene mountain landscape at sunset", "model": "seedream3.0", "mediaStyle": "photorealistic" } }}
AI model to use. The valid options depend on background.type:Image models (when type is "image"): flux-schnell, seedream3.0, nanobanana, nanobanana-proVideo models (when type is "video"): pixverse5.5, veo3.1_fast, veo3.1
The following fields are nested inside the searchFilter object, which is a property of scenes[].background. For example, scenes[].background.searchFilter.category means category is a property of searchFilter, which itself is nested inside background, inside each item of the scenes array.
Custom search query to find relevant visuals for your scene (max 3000 characters). Use descriptive terms to get more accurate background media results (e.g., “business team collaborating in modern office”, “aerial view of city skyline at sunset”).
The following fields are nested inside the settings object, which is a property of scenes[].background. For example, scenes[].background.settings.mute means mute is a property of settings, which itself is nested inside background, inside each item of the scenes array.
The following fields are nested inside each element of the scenes[].backgroundBrolls array. For example, scenes[].backgroundBrolls[].brollClip means brollClip is a property of each item in the backgroundBrolls array, which itself is nested inside each item of the scenes array.
The following fields are nested inside each element of the scenes[].backgroundCorpus array. For example, scenes[].backgroundCorpus[].visualUrl means visualUrl is a property of each item in the backgroundCorpus array, which itself is nested inside each item of the scenes array.
The following fields are nested inside the scenes[].transcript array. For example, scenes[].transcript[].speakerId means speakerId is a property of each item in the transcript array, which itself is nested inside each item of the scenes array. Fields like scenes[].transcript[].words[].word go one level deeper — word is inside each item of the words array, which is inside each transcript element.
The following fields are nested inside the mediaRepurposeSettings object, which is a property of each scenes[] element. For example, scenes[].mediaRepurposeSettings.highlightLength means highlightLength is a property of mediaRepurposeSettings, which itself is nested inside each item of the scenes array.
The following fields are nested inside the templateOverride object, which is a property of each scenes[] element. For example, scenes[].templateOverride.sceneId means sceneId is a property of templateOverride, which itself is nested inside each item of the scenes array.
The following fields are nested inside each element of the scenes[].templateOverride.subtitles array. For example, scenes[].templateOverride.subtitles[].text means text is a property of each item in the subtitles array, which itself is nested inside templateOverride, inside each item of the scenes array.
The following fields are nested inside the scenes[].templateOverride.layers structure, which is an array of arrays. The [][] notation indicates that layers is an array of arrays — the outer [] represents each subtitle group, and the inner [] represents each layer element within that group. For example, scenes[].templateOverride.layers[][].layerId means layerId is a property of each layer element inside the nested array structure.
The API returns a job ID that you can use to track the preview generation progress. Once complete, you can retrieve the storyboard preview details including scene breakdowns, thumbnails, and project metadata.