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
Your Submagic API key starting with
sk-Request Body (multipart/form-data)
Video file to upload. Must be in a supported format.
A descriptive title for your Magic Clips project (1-100 characters)
Language code for captions (e.g., “en”, “es”, “fr”). Use the languages
endpoint to get available options.
URL to receive webhook notifications when processing is complete. Must be a
valid HTTPS URL.
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.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.Minimum clip duration in seconds (15-300 seconds). Defaults to 15 seconds.
Maximum clip duration in seconds (15-300 seconds). Defaults to 60 seconds.
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
Unique identifier for the created Magic Clips project (UUID format)
The title you provided for the project
Language code used for captions
Current processing status:
processingWebhook URL if provided in the request
Template name applied to the project
User theme ID applied to the project
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
Main project identifier
Processing status:
completed or failedProject title
Total duration of the original video in seconds
ISO 8601 timestamp when processing completed
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
