{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Create a project from prepared media","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":"create-a-project-from-prepared-media","__idx":0},"children":["Create a project from prepared media"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use this workflow when you already have final clips, voiceover, script, and optional timed captions. It materializes a project without creative generation. The documented contract targets ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["dapi"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"text","header":{"controls":{"copy":{}}},"source":"POST /api/v1/auth/organization/{organizationId}/workspace/{workspaceId}/projects/prepared\n","lang":"text"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Authenticate with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-api-key"]},". Supply ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["idempotencyKey"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["templateId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["language"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["scenes"]},". Each scene must match the selected template and include all required fields from the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis"},"children":["PreparedProjectRequest schema"]},". Copy composition IDs and dynamic item types from the template."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"timing-and-captions","__idx":1},"children":["Timing and captions"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Times are milliseconds. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["trimEndMs"]}," is an absolute source end time: a trim from 2 to 5 seconds is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2000"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["5000"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transcript"]}," can be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]},", or contain ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["language"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sentences"]},". Sentences may include word-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["startMs"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["endMs"]},"; preserve those when available."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ai-voice"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mic"]}," layers for audio. Each scene can have at most one master visual layer."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Required nullable fields (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["audioOnlyUrl"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["stagePositionId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transcript"]},") must be sent explicitly as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," when unused."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Optional ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["timeline"]}," supports v1 crossfades and v2 native or video-bridge transitions. Refer to project scene IDs and keep durations within scene timing. An empty transitions array explicitly disables transitions."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"idempotency-and-export","__idx":2},"children":["Idempotency and export"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["New projects return HTTP 201:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{ \"projectId\": \"PROJECT_ID\", \"status\": \"ready\", \"reused\": false }\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Repeating a key in the same workspace returns HTTP 200 with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reused: true"]},". It returns the original project without applying changed media or scripts. Use a new key for a different project."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creation does not trigger export. To preserve supplied media and captions:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://dapi.shuffllmedia.com/api/v1/auth/project/PROJECT_ID/export\" \\\n  -H \"x-api-key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toEnhance\": false}'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Poll the returned ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["editId"]}," using the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/workflow-export"},"children":["export workflow"]},". To regenerate captions from saved scene scripts, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["toEnhance: true"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["toUseScriptForSubtitles: true"]}," instead."]}]},"headings":[{"value":"Create a project from prepared media","id":"create-a-project-from-prepared-media","depth":1},{"value":"Timing and captions","id":"timing-and-captions","depth":2},{"value":"Idempotency and export","id":"idempotency-and-export","depth":2}],"frontmatter":{"seo":{"title":"Create a project from prepared media"}},"lastModified":"2026-09-30T12:39:49.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/prepared-projects","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}