Reviewed September 30, 2026 against the current development backend. Operations marked Development integration API target https://dapi.shuffllmedia.com/api/v1; this does not announce a production release. Use the API key for the environment you call.
| Starting point | Workflow |
|---|---|
| Prompt or script | Create with explicit toAutoEnhance and toAutoExport flags. |
| Existing project | Enhance and export its latest saved edit, optionally using script-based captions. |
| Final media and timed captions | Create a prepared project, then export without regenerating media. |
| Standalone audio | Use workspace-scoped transcription for the supported template callback integration. |
- Prompt creation uses
"language": { "code": "en" }, numericvideoLengthin minutes, andstorytellingTechnique(lowercaset). Prepared creation uses"language": "en". - Use
recordingType: "ai-voice"for generated narration. Voice provider values includeopen-ai,eleven-labs,gemini, andvoicebox; match the chosen voice’s provider. - Omitted automatic enhancement/export flags inherit the template’s API settings. Pass both explicitly when controlling the pipeline yourself.
- Creation subtitle styles use
textSize,fontName, andstyles.normal.primaryColour/styles.highlight.primaryColour. Template settings PATCH uses its own shape:fontSize,textColor, andhighlightColorundersubtitles.
Workspace operations are nested under /auth/organization/{organizationId}/workspace/{workspaceId}. Project listing ends with /projects/list and accepts limit and skip.
Organization detail embeds only the first workspace page. Use /auth/organization/{organizationId}/workspace/list?page=1&limit=10 and pagination.hasMore to enumerate workspaces. Optional search filters names.
Asset listing returns separate folders and assets pages. Use filterByType, folderName, assetPage, folderPage, and limit. Development also supports project/trash scopes and collections. DELETE /assets moves assets to trash; POST /assets/restore restores them. HTTP 409 returns blocked usage details and an empty trashedAssetIds array; no assets are trashed when any requested asset is blocked.
Uploads accept multipart files or JSON { "urls": ["https://example.com/clip.mp4"] }. URL uploads accept up to 20 public URLs. HTTP 207 means partial success; retry only failed items. Asset uploadPath may be relative to the content CDN.
Prepared projects preserve supplied captions and word timestamps, support separate visual and voice layers, and accept versioned transition timelines. Native v2 styles include seamless, blur, push, and zoom; video bridges can specify their own audio.
The workspace template settings PATCH supports exact library music selection:
{
"bgMusic": {
"type": "libraryTrack",
"libraryTrackId": "TRACK_ID_FROM_MUSIC_LIBRARY",
"isOn": true
}
}Send it to /auth/organization/{organizationId}/workspace/{workspaceId}/templates/{templateId}/settings. Use the opaque ID from GET /auth/config/music-library. Existing file, folder, and llm modes remain available. Prepared creation requires Auto-match music to be resolved in the template first.
Existing /edit/export and /edit/{editId}/export routes remain supported. New flags apply only to /project/{projectId}/export. Poll the returned editId; HTTP 422 ends polling with failure, while HTTP 200 with isDone: true indicates success.
This refresh covers external creation, organization/workspace, asset, template settings, prepared-media, transcription, enhancement, and export workflows. Staff/admin, worker callbacks, provisioning, and specialized internal media job APIs are outside this public integration guide.
See the API reference for schemas and response codes.