API Reference
Update Project
Update an existing video project with new settings, features, or media insertions
PUT
Update Project
Update an existing video project with new settings, AI features, or user media (B-roll) insertions. This endpoint allows you to modify project parameters and enhance your video with additional features or custom media content from your library.This endpoint requires authentication and has a rate limit of 100 requests per
hour. After modifying a video, you’ll need to re-export to see the changes
using the export endpoint. When using
removeBadTakes, the response may take
1-2 minutes as our AI processes the video.Authentication
Your Submagic API key starting with
sk-Path Parameters
The unique identifier (UUID) of the project to update
Request Body
All fields are optional. Only provide the fields you want to update. If a field is provided with a different value from the current project settings, it will be updated.Edit the project’s captions. Fetch the current transcript from
Get Project, change anything you want (text,
timing, add or remove words), and send the full array back — it replaces
the transcript, so include every word you want to keep. The caption layout is
rebuilt automatically.Requirements (otherwise
VALIDATION_ERROR): the project must already be
transcribed, and words must stay in chronological order — each startTime
greater than or equal to the previous word’s.Can be combined with other fields in the same request: the words are applied
first, then the rest. If the words edit fails, nothing else is applied.Returns the standard update response (Project updated successfully).
Re-export the project to render the edited captions.Automatically remove silence from the video at the specified pace. Allowed
values:
natural, fast, extra-fast. - extra-fast: 0.1-0.2 seconds of
silence removal - fast: 0.2-0.6 seconds of silence removal - natural: 0.6+
seconds of silence removalAutomatically detect and remove bad takes and silence from the video using AI
analysis. Note: This process may take 1-2 minutes to complete.
Hide captions from the exported video. Optional, defaults to
false.Update the animated hook caption shown at the start of the video. Set to
true to enable the default AI-generated hook, false to remove it, or pass
an object with optional overrides:text: Custom copy (1-100 characters)template: Hook title template name (defaults to"tiktok"). Fetch valid names using the hook title templates endpoint.top: Vertical position between 0-80 (default50)size: Font size between 0-80 (default30)
VALIDATION_ERROR immediately.Optional background music track. When provided, replaces any existing
background music on the project.
Array describing B-roll edits. Provide at least one entry when this field is
included. Each item must include a
type field to specify whether it’s user
media from your library or AI-generated content.Important: Each item must have a type field. Items entries cannot overlap
each other in time.AI B-roll Workflow & Credits
- Every AI B-roll item consumes 3 AI credits. Requests fail with
VALIDATION_ERRORif the authenticated user lacks enough credits (unless their balance is unlimited). - When AI B-roll work is accepted, the project is moved back to
processingand the generation jobs run asynchronously. Your webhook or polling logic should watch for the project to return tocompleted. - Stock/user-media updates continue to succeed immediately with the traditional
Project updated successfullymessage.
Finding User Media ID
To find youruserMediaId:
- Go to the Submagic editor
- Navigate to the ‘B-roll’ tab
- Add a B-roll to access your media library
- Go to the ‘My videos’ tab
- Each video will display its unique media ID that you can use with this API

Response
Success message confirming the project update. When AI B-roll work is accepted,
the message is
Project update accepted to indicate asynchronous rendering.The unique identifier of the updated project
Updated processing status of the project. If AI B-roll generation was
requested, the project is moved to
processing until the renders finish.Error Responses
Error code:
NOT_FOUND or VALIDATION_ERRORDetailed error message explaining what went wrong
Important: After updating a project, you must re-export the project to see
the changes in the final video. Use the export endpoint to generate the
updated video with your modifications. Processing Time: When using
removeBadTakes, the API response may take 1-2 minutes as our AI analyzes and
processes the video to detect and remove bad takes and silence.
