Skip to main content
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: processing
string
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 provided webhookUrl (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 failed
string
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 directly

Error Responses

object
object
object
object
object
object
object
object