API Reference
Upload Magic Clips
Generate short-form video clips by uploading a video file
POST
Upload Magic Clips
Generate multiple engaging short-form video clips by uploading a video file directly to Submagic. This endpoint accepts multipart/form-data uploads and creates clips with automatic captions, animations, and effects optimized for social media platforms.This endpoint requires authentication, Magic Clips subscription, and has a
rate limit of 500 requests per hour.
Magic Clips created via API use your regular Magic Clips credits, not API
credits. 1 credit per project.
Authentication
string
required
Your Submagic API key starting with
sk-Request Body (multipart/form-data)
file
required
Video file to upload. Must be in a supported format.
string
required
A descriptive title for your Magic Clips project (1-100 characters)
string
required
Language code for captions (e.g., “en”, “es”, “fr”). Use the languages
endpoint to get available options.
string
URL to receive webhook notifications when processing is complete. Must be a
valid HTTPS URL.
string
Template to apply for styling (max 50 characters). Use the templates
endpoint to get available options. Defaults to
“Sara” if not specified. Cannot be used together with
userThemeId.string
ID of a custom user theme to apply for styling. Must be a valid UUID of a
theme that belongs to you or your team. Cannot be used together with
templateName.number
Minimum clip duration in seconds (15-300 seconds). Defaults to 15 seconds.
number
Maximum clip duration in seconds (15-300 seconds). Defaults to 60 seconds.
boolean
Enable face tracking for the generated clips. If not specified, defaults to
true.Supported Formats & Limits
Supported Formats
- MP4 (.mp4) - MOV (.mov)
File Limits
- Max size: 10GB - Max duration: 120 minutes
Response
string
Unique identifier for the created Magic Clips project (UUID format)
string
The title you provided for the project
string
Language code used for captions
string
Current processing status:
processingstring
Webhook URL if provided in the request
string
Template name applied to the project
string
User theme ID applied to the project
string
ISO 8601 timestamp when the project was created
Webhook Integration
When processing is complete, a webhook notification will be sent to the providedwebhookUrl (if specified). The webhook payload includes information about the main project and all generated clips.
Webhook Payload Structure
Webhook Response Fields
string
Main project identifier
string
Processing status:
completed or failedstring
Project title
number
Total duration of the original video in seconds
string
ISO 8601 timestamp when processing completed
array
Array of generated clips, each containing: -
id: Unique clip identifier -
title: AI-generated clip title - duration: Clip duration in seconds -
viralityScores: Object containing virality metrics with total, shareability, hook_strength, story_quality, and emotional_impact scores -
status: Clip processing status - previewUrl: URL to preview the clip -
downloadUrl: Direct download URL for the clip - directUrl: Direct URL that
can be embedded on your website or used to play the clip directlyError Responses
object
object
object
object
object
object
object
object

