Workflows

Slideshow to video

Creates a project from an uploaded PDF or PowerPoint file and generates an AI-narrated video walking through each slide. Upload the file via POST /v1/files/upload first.

post/v1/workflows/slideshow-to-video

Request body

fileIdstring required

Opaque file id of an uploaded PDF or PowerPoint file (e.g. vg_file_...). Upload the file first via POST /v1/files/upload.

slideScriptsstring[]

Optional per-slide narration, in slide order, applied by index: each slide uses its matching entry, and an empty string makes that slide silent. If you provide fewer entries than slides, the remaining slides are silent; extra entries are ignored. Omit this field entirely to narrate each slide from its speaker notes in the uploaded file. To guarantee no narration on any slide, pass an empty array.

languagestring

Output language as a BCP-47 code (e.g. en, es, fr). Defaults to English.

voiceIdstring nullable

Catalog displayName (e.g. Matilda) or voice id from GET /v1/resources/tts-voices (e.g. vg_voic_...). A default voice is used when omitted. Any voice may be used here, including voices where supportsDirectToolExecution is false.

voiceSpeednumber

Speech rate multiplier, between 0.5 (half speed) and 2 (double speed). Defaults to the voice's default speed.

actorEntityIdstring nullable

Recommended. Optional id of a built-in stock actor or an ACTOR entity (e.g. vg_enti_...) with an image reference. When set, narration is delivered by that actor avatar. Omit or pass null for voiceover without an avatar.

avatarQuality'LOW' | 'STANDARD' | 'HIGH' | 'MAX'

AI generation quality tier, shared across every generative feature (image, video, text, and so on). LOW is fastest and cheapest, STANDARD balances quality and cost, HIGH is higher quality, and MAX is the highest quality.

When a request omits the quality field, VideoGen falls back to your account's Default AI quality for that feature, which you can change at Account settings. Not every feature supports every tier; unsupported tiers are rejected with an error (see each field's description).

slideshowThemeEntityIdstring

Optional id of a SLIDESHOW_THEME entity (e.g. vg_enti_...) whose reference board defines the shared slide design system (fonts, colors, layout) applied to generated or edited slides. Create one via POST /v1/entities with entityType SLIDESHOW_THEME and attach a reference image or a PDF / PowerPoint. Omit when converting an uploaded deck's original pages into a video; VideoGen derives a theme from those pages in the background so later edits can match the original slides.

logoFileIdstring nullable

Optional file id of an uploaded logo image to overlay on the video (e.g. vg_file_...). Upload the image first via POST /v1/files/upload. Only image files are accepted.

isOutputTemporaryboolean

When true, the video's generated OUTPUT files (AI images, video clips, voiceover audio, avatars) are created as temporary: guaranteed available for 24 hours, after which they may be archived and later deleted. This also covers files produced by post-build remix actions (e.g. generated background music, image-to-video conversions). Use this when your integration downloads or re-hosts the results itself and does not need VideoGen to retain them. The project and its metadata are unaffected. Defaults to false.

hideFromUiboolean

When true, generated files are hidden from the VideoGen Media page by default. They remain accessible through the API. Defaults to false.

Response

Workflow run accepted.

workflowRunIdstring required

Opaque workflow run id (e.g. vg_work_...).

projectIdstring required

Id of the project created for this workflow run (e.g. vg_proj_...).

projectUrlstring uri required

Deep link to open this project in the VideoGen web editor. Not required for an API-only integration: store projectId and use the Projects API (export, remix, metadata). Use projectUrl when a person should open the project in the app to review or edit it manually. The project is visible only to members of your team and any project collaborators, the same access model as a project created in the dashboard.

remixActionIdsstring[] required

Opaque remix action ids (e.g. vg_rmix_...), one per remixActions entry in request order. Empty when no remix actions were requested. Each runs after the video is built; poll GET /v1/projects/{projectId}/remix-actions.

Changes

No recorded changes to this endpoint across all 1 revision of this API.