{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"API changes since the February reference","description":"Shuffll is an AI-powered video creation platform that enables users to effortlessly produce professional, branded videos in minutes with automated editing, seamless collaboration, and multi-platform publishing."},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"api-changes-since-the-february-reference","__idx":0},"children":["API changes since the February reference"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Reviewed September 30, 2026 against the current development backend. Operations marked ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Development integration API"]}," target ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://dapi.shuffllmedia.com/api/v1"]},"; this does not announce a production release. Use the API key for the environment you call."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"choose-a-workflow","__idx":1},"children":["Choose a workflow"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Starting point"},"children":["Starting point"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Workflow"},"children":["Workflow"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Prompt or script"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create with explicit ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["toAutoEnhance"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["toAutoExport"]}," flags."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Existing project"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/workflow-export"},"children":["Enhance and export its latest saved edit"]},", optionally using script-based captions."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Final media and timed captions"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/prepared-projects"},"children":["Create a prepared project"]},", then export without regenerating media."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Standalone audio"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use workspace-scoped transcription for the supported template callback integration."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"correct-request-shapes","__idx":2},"children":["Correct request shapes"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Prompt creation uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"language\": { \"code\": \"en\" }"]},", numeric ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["videoLength"]}," in ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["minutes"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["storytellingTechnique"]}," (lowercase ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["t"]},"). Prepared creation uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"language\": \"en\""]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recordingType: \"ai-voice\""]}," for generated narration. Voice provider values include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["open-ai"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eleven-labs"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gemini"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["voicebox"]},"; match the chosen voice’s provider."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Omitted automatic enhancement/export flags inherit the template’s API settings. Pass both explicitly when controlling the pipeline yourself."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Creation subtitle styles use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["textSize"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fontName"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["styles.normal.primaryColour"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["styles.highlight.primaryColour"]},". Template settings PATCH uses its own shape: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fontSize"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["textColor"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["highlightColor"]}," under ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["subtitles"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"organizations-workspaces-and-assets","__idx":3},"children":["Organizations, workspaces, and assets"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Workspace operations are nested under ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/auth/organization/{organizationId}/workspace/{workspaceId}"]},". Project listing ends with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/projects/list"]}," and accepts ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["limit"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["skip"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Organization detail embeds only the first workspace page. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/auth/organization/{organizationId}/workspace/list?page=1&limit=10"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.hasMore"]}," to enumerate workspaces. Optional ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search"]}," filters names."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Asset listing returns separate ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["folders"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["assets"]}," pages. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filterByType"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["folderName"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["assetPage"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["folderPage"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["limit"]},". Development also supports project/trash scopes and collections. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE /assets"]}," moves assets to trash; ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /assets/restore"]}," restores them. HTTP 409 returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["blocked"]}," usage details and an empty ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["trashedAssetIds"]}," array; no assets are trashed when any requested asset is blocked."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Uploads accept multipart files or JSON ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ \"urls\": [\"https://example.com/clip.mp4\"] }"]},". URL uploads accept up to 20 public URLs. HTTP 207 means partial success; retry only failed items. Asset ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["uploadPath"]}," may be relative to the content CDN."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"templates-subtitles-and-music","__idx":4},"children":["Templates, subtitles, and music"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Prepared projects preserve supplied captions and word timestamps, support separate visual and voice layers, and accept versioned transition timelines. Native v2 styles include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["seamless"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["blur"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["push"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["zoom"]},"; video bridges can specify their own audio."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The workspace template settings PATCH supports exact library music selection:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"bgMusic\": {\n    \"type\": \"libraryTrack\",\n    \"libraryTrackId\": \"TRACK_ID_FROM_MUSIC_LIBRARY\",\n    \"isOn\": true\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send it to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/auth/organization/{organizationId}/workspace/{workspaceId}/templates/{templateId}/settings"]},". Use the opaque ID from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /auth/config/music-library"]},". Existing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["file"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["folder"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["llm"]}," modes remain available. Prepared creation requires Auto-match music to be resolved in the template first."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"compatibility-and-scope","__idx":5},"children":["Compatibility and scope"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Existing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/edit/export"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/edit/{editId}/export"]}," routes remain supported. New flags apply only to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/project/{projectId}/export"]},". Poll the returned ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["editId"]},"; HTTP 422 ends polling with failure, while HTTP 200 with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isDone: true"]}," indicates success."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis"},"children":["API reference"]}," for schemas and response codes."]}]},"headings":[{"value":"API changes since the February reference","id":"api-changes-since-the-february-reference","depth":1},{"value":"Choose a workflow","id":"choose-a-workflow","depth":2},{"value":"Correct request shapes","id":"correct-request-shapes","depth":2},{"value":"Organizations, workspaces, and assets","id":"organizations-workspaces-and-assets","depth":2},{"value":"Templates, subtitles, and music","id":"templates-subtitles-and-music","depth":2},{"value":"Compatibility and scope","id":"compatibility-and-scope","depth":2}],"frontmatter":{"seo":{"title":"API changes since the February reference"}},"lastModified":"2026-09-30T12:39:49.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/recent-api-changes","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}