Artifacts
Create Artifact
Create a new artifact from an uploaded file or external source
POST
This endpoint creates an artifact record and initiates file processing. Use this endpoint after uploading a file via presigned URL, or directly with external URLs/S3 paths.
Uploading a local file? First get a presigned URL using Get Presigned Upload URL, upload your file, then use this endpoint with the S3 path.
Can handle files up to 5GB.
Observe your artifacts
View and track all your artifacts and their processing status in real-time via the Artifacts Dashboard.
Request Body
Display name of the artifact. E.g.,
My Project Video.Type of artifact. Must be one of:
video- Video filesaudio- Audio filesscript- Text/script files
Source Parameters
Choose exactly one of the following parameters to specify your file source:S3 path to the file. Can be:
- Path from Get Presigned Upload URL (e.g.,
s3://dubformer-temp/uploads/aafa1753/file.mp4) - External S3 bucket path (e.g.,
s3://my-bucket/path/to/file.mp4) - requires S3 credentials configured
Direct URL to download the artifact from an external source.Must be a publicly accessible URL. The file will be downloaded asynchronously.Use when: File is hosted on a CDN, public storage, or web server
Array of media fragments to concatenate into a single artifact.Not supported for
script type. Each fragment object must contain:urlors3Path- source locationtimePositionMs- start time in milliseconds (must be >= 0)
timeInMs- trim start position within the source file in milliseconds (must be >= 0). If omitted, trimming starts from the beginningtimeOutMs- trim end position within the source file in milliseconds (must be > timeInMs when both are provided). If omitted, trimming goes to the end
timePositionMs in the final artifact.All fragments must have the same format (codec, resolution, frame rate). Fragments are sorted by timePositionMs and gaps between them are filled with silence (audio) or black frames (video).Use when: Combining multiple clips (or portions of clips) into one fileTarget duration of the final artifact in milliseconds. Can only be used with
audio type fragments.When specified, the concatenated result is adjusted to match this exact duration:- If the result is shorter, silence is appended
- If the result is longer, it is trimmed
Response
Returns a complete artifact object:Unique identifier for the artifact. Use this to retrieve artifact status or use in other endpoints.
Display name of the artifact.
Type of artifact:
video, audio, or script.Current processing status. Possible values:
created- Artifact created, processing pendingupload_started- File is being downloaded/copied/processedupload_completed- File is ready for useupload_failed- Processing failed (checkerrorMessage)
Upload method used:
direct_url- Presigned upload, direct URL, or S3 pathfragments- Fragment concatenation
File size in bytes. Will be
null until processing completes.Duration in seconds (for video/audio). Will be
null until processing completes or for script type.Error message if processing failed. Will be
null unless status is upload_failed.Internal S3 path where the artifact file is stored (without bucket prefix).
S3 bucket name where the artifact is stored.
ISO 8601 timestamp when the artifact was created.
ISO 8601 timestamp when the artifact was last updated.
Company information object containing
id and name fields.User information object containing
id and name fields for the user who created the artifact.Request Examples
Processing Workflow
1
Create Artifact
Send a POST request with one of the source parameters (
s3Path, url, or fragments).The artifact is created with created status.2
Background Processing
The file is downloaded/copied/processed asynchronously.Status transitions to
upload_started during processing.3
Completion
When processing completes:
- Status becomes
upload_completed(success) orupload_failed(error) sizeanddurationfields are populated- If failed, check
errorMessagefor details
4
Monitor Status
Use Get Artifact to check processing status:
See Also
- Artifacts Overview - Choose the right upload method
- Get Presigned Upload URL - Upload local files
- Get Artifact - Check processing status