Skip to content

API changes since the February reference

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.

Choose a workflow

Starting pointWorkflow
Prompt or scriptCreate with explicit toAutoEnhance and toAutoExport flags.
Existing projectEnhance and export its latest saved edit, optionally using script-based captions.
Final media and timed captionsCreate a prepared project, then export without regenerating media.
Standalone audioUse workspace-scoped transcription for the supported template callback integration.

Correct request shapes

  • Prompt creation uses "language": { "code": "en" }, numeric videoLength in minutes, and storytellingTechnique (lowercase t). Prepared creation uses "language": "en".
  • Use recordingType: "ai-voice" for generated narration. Voice provider values include open-ai, eleven-labs, gemini, and voicebox; 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, and styles.normal.primaryColour / styles.highlight.primaryColour. Template settings PATCH uses its own shape: fontSize, textColor, and highlightColor under subtitles.

Organizations, workspaces, and assets

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.

Templates, subtitles, and music

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.

Compatibility and scope

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.