Skip to main content

Create a Video from a Document

POST /v1/videos/from-document

Turns one document into one finished video, unattended. The document is read page by page, planned, storyboarded and built into a video made of editable slides, each with its own AI narration. It's the API version of uploading a document in the dashboard's Create popup.

Want several videos from one long document instead? Use Courses.

FieldTypeDescription
fileUrlstringPublic URL of the document (PDF, DOCX, PPTX, Keynote, TXT). Required
filenamestringIts file name; the extension decides how it is read. Required
instructionsstringAudience, tone, what to focus on
languagestringNarration language code from GET /v1/languages. Detected from the document when omitted
projectIdstringProject folder for the video
pacestringsnackable, course (default) or inDepth. See Pace
aiVideoobject{ "enabled": true, "stylePresetId": "documentary" }: AI pictures and short clips instead of stock photos. Business and Enterprise only. See AI video
curl -X POST https://api.vidocu.ai/v1/videos/from-document \
-H "Authorization: Bearer vdo_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"fileUrl": "https://example.com/forklift-sop.pdf",
"filename": "forklift-sop.pdf",
"pace": "snackable"
}'

Response 202 Accepted​

{ "jobId": "doc_express_...", "videoId": "3f1c...", "status": "in_progress", "async": true }

The video exists right away with status in_progress. Poll GET /v1/jobs/:id; when the job completes, the video is ready to export, translate or edit.

The document is fetched by our servers, so it must be publicly reachable. Internal and private addresses are refused.

Credits​

The run is charged as a course plan plus one module build (doc_video_plan, and doc_video_generate at 50 credits per minute of the finished video), and with AI video, each AI picture and clip (ai_footage_still, ai_footage_clip). Before the run starts, the balance has to cover a typical-length video for the pace plus the most the AI pictures can cost.

Errors​

StatusCodeCause
400validation_errorMissing fileUrl or filename, an unknown pace or style, or a private URL
403limit_exceededNot enough credits, or aiVideo on a plan without it
404not_foundprojectId isn't a folder in this workspace