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.
| Field | Type | Description |
|---|---|---|
fileUrl | string | Public URL of the document (PDF, DOCX, PPTX, Keynote, TXT). Required |
filename | string | Its file name; the extension decides how it is read. Required |
instructions | string | Audience, tone, what to focus on |
language | string | Narration language code from GET /v1/languages. Detected from the document when omitted |
projectId | string | Project folder for the video |
pace | string | snackable, course (default) or inDepth. See Pace |
aiVideo | object | { "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
| Status | Code | Cause |
|---|---|---|
| 400 | validation_error | Missing fileUrl or filename, an unknown pace or style, or a private URL |
| 403 | limit_exceeded | Not enough credits, or aiVideo on a plan without it |
| 404 | not_found | projectId isn't a folder in this workspace |