Developer API
Automate your video creation workflow with our production-grade App API. Use our API to programmatically import videos, track render progress, and integrate CutCap AI into your own applications.
Authentication
All API requests must be authenticated using an API Key. You can manage your keys in Profile & Settings.
🔑 Using your API Key
Include your key in the Authorization header of every request:
Authorization: Bearer sk_live_your_api_key_here
Credit System
Our API is fully integrated with our unified credit system.
- Deduction: Credits are deducted when a video is successfully processed or rendered.
- Balance Check: Every API response includes a
X-Remaining-Creditsheader. - Insufficient Credits: If your balance is zero, the API will return
402 Payment Required.
📁 API Reference
1. Create/Import Video
POST /api/app/videos
The core endpoint for triggering our AI pipeline. This will start downloading the video, transcribing it, and optionally applying styles or extracting highlights.
Full Schema
| Category | Parameter | Type | Description |
|---|---|---|---|
| Source | url | String | Required. Platform URL (YouTube, TikTok, Instagram, Zoom, Google Drive). |
title | String | Custom name for your project. | |
| Video | resolution | String | Output quality. Options: 720p, 1080p, 2k, 4k. |
aspectRatio | String | Framing. Options: 9:16, 16:9, 1:1, 4:5. | |
videoFit | String | How video fits the frame: cover (fill) or contain (black bars). | |
| Audio | language | String | Transcription language. Use ISO 639-1 or auto. |
removeSilence | Boolean | AI: Automatically cut out long silent pauses. | |
| Workflow | videoType | String | Workflow mode: clip (generate AI shorts/clips) or full (full length). Defaults to clip. |
| Subtitles | presetId | String | ID of the style to apply (from our Library). |
Detailed Settings Guide
📺 Resolution & Quality
High-resolution rendering is available based on your subscription tier.
720p: Fast rendering, optimized for web preview.1080p: Digital standard, recommended for TikTok and Reels.2k: Quad HD (QHD), perfect for high-end digital displays.4k: Maximum clarity for professional production (Requires Pro Plan).
📐 Aspect Ratio Mapping
9:16: Vertical (1080x1920) - Best for Shorts/Reels/TikTok.16:9: Landscape (1920x1080) - Best for YouTube/Vimeo.1:1: Square (1080x1080) - Best for Instagram Feed/Twitter.
Code Implementation Examples
Minimal Request
{
"url": "https://www.youtube.com/watch?v=kXp8Rk6T5hI",
"language": "auto",
"videoType": "clip"
}
Full Production Integration
curl -X POST https://app.cutcap.ai/api/app/videos \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.youtube.com/watch?v=...",
"title": "Marketing Launch V2",
"resolution": "1080p",
"aspectRatio": "9:16",
"videoFit": "cover",
"language": "en",
"presetId": "minimal",
"videoType": "clip"
}'
Response Success (201 Created)
{
"videoId": "{videoId}",
"status": "DOWNLOADING",
"message": "AI Processing Pipeline Started",
"creditsRemaining": 485
}
2. List Your Videos
GET /api/app/videos?page=1&limit=10
Returns a paginated list of your videos and their current status.
Example Request:
curl -X GET https://app.cutcap.ai/api/app/videos?page=1&limit=10 \
-H "Authorization: Bearer sk_live_your_key"
3. Get Video Details
GET /api/app/videos/{videoId}
Fetch full metadata, transcription data, and render history for a specific video.
Example Request:
curl -X GET https://app.cutcap.ai/api/app/videos/{videoId} \
-H "Authorization: Bearer sk_live_your_key"
4. Poll Render Status
GET /api/app/videos/{videoId}/render-status
The recommended way to track processing progress.
Example Request:
curl -X GET https://app.cutcap.ai/api/app/videos/{videoId}/render-status \
-H "Authorization: Bearer sk_live_your_key"
| Status | Meaning |
|---|---|
DOWNLOADING | We are fetching the source video. |
TRANSCRIBING | AI is generating your captions. |
RENDERING | Generating the final MP4 file. |
COMPLETED | Video is ready for download! |
FAILED | Check the error field for details. |
🛠 Supported Values
1. Aspect Ratios (aspectRatio)
Use these keys to define the framing of your output video.
| ID | Label | Dimension | Best For |
|---|---|---|---|
tiktok_9_16 | TikTok | 1080x1920 | TikTok, Reels, Shorts |
youtube_16_9 | YouTube | 1920x1080 | Standard Video, Vlogs |
ig_post_1_1 | Instagram Post | 1080x1080 | Feed, Twitter (X) |
portrait_4_5 | Portrait | 1080x1350 | IG Feed, LinkedIn |
9:16 | Vertical | 1080x1920 | Default Vertical |
16:9 | Widescreen | 1920x1080 | Default Horizontal |
1:1 | Square | 1080x1080 | Default Square |
2. Subtitle Presets (presetId)
Apply professional, high-converting branding instantly by passing one of these IDs. We have also added the Animation Effect for each preset so you know exactly how the text will animate.
| Preset ID | Name | Animation Effect |
|---|---|---|
smoothWave | Smooth Wave | Wave |
candy | Candy | Pop |
wordDrop | Word Drop | Drop |
karaokeFill | Karaoke Fill | Fill |
wordPop | Word Pop | Pop In |
sentenceFade | Sentence Fade | Sentence Fade Up |
activeWave | Active Wave | Active Wave |
boldTicker | Bold Ticker | Ticker |
stickerFun | Sticker Fun | Sticker Bounce |
gradientPop | Gradient Pop | Modern Pop |
outlineStack | Outline Stack | Pop |
cartoonOutlineBold | Cartoon Outline Bold | Pop |
comicPunch | Comic Punch | Bounce |
romanticGlowCinematic | Romantic Glow Cinematic | Cinematic |
loveHeartBounce | Love Heart Bounce | Heart |
glitchViral | Glitch Viral | Glitch |
cyberGlitch | Cyber Glitch | Glitch |
boxing | Boxing | Pop |
neonGlow | Neon Glow | Fade |
wizardGlow | Wizard Glow | Fade |
tiktokBounce | Tiktok Bounce | Bounce |
minimal | Minimal | Slide |
montserratBlack | Montserrat Black | Pop |
cyberpunk | Cyberpunk | Pop |
goldenLuxury | Golden Luxury | Fade |
retroGaming | Retro Gaming | None |
strawberry | Strawberry | Bounce |
natureFresh | Nature Fresh | Fade |
glowSplitHighlight | Glow Split Highlight | Fade |
softShadowTitle3D | Soft Shadow Title 3D | Pop |
boldStickerTitle | Bold Sticker Title | Bounce |
minimalSoftCapsule | Minimal Soft Capsule | Fade |
singleWordPunch | Single Word Punch | Pop |
aquaGlowBar | Aqua Glow Bar | Slide |
comicImpactBold | Comic Impact Bold | Bounce |
pinkNeonGlow | Pink Neon Glow | Fade |
typewriter | Typewriter | Typewriter |
3. Transcription Languages (language)
We support over 50+ languages. Use the ISO codes below for the language parameter. For most cases, we recommend using "auto".
| Language | Code | Language | Code | |
|---|---|---|---|---|
| Auto Detect | auto | Hindi | hi | |
| Afrikaans | af | Hungarian | hu | |
| Arabic | ar | Icelandic | is | |
| Armenian | hy | Indonesian | id | |
| Azerbaijani | az | Italian | it | |
| Belarusian | be | Japanese | ja | |
| Bosnian | bs | Kannada | kn | |
| Bulgarian | bg | Kazakh | kk | |
| Catalan | ca | Korean | ko | |
| Chinese | zh | Latvian | lv | |
| Croatian | hr | Lithuanian | lt | |
| Czech | cs | Macedonian | mk | |
| Danish | da | Malay | ms | |
| Dutch | nl | Marathi | mr | |
| English | en | Maori | mi | |
| Estonian | et | Nepali | ne | |
| Finnish | fi | Norwegian | no | |
| French | fr | Persian | fa | |
| Galician | gl | Polish | pl | |
| German | de | Portuguese | pt | |
| Greek | el | Romanian | ro | |
| Hebrew | he | Russian | ru | |
| Serbian | sr | Slovak | sk | |
| Slovenian | sl | Spanish | es | |
| Swahili | sw | Swedish | sv | |
| Tagalog | tl | Tamil | ta | |
| Thai | th | Turkish | tr | |
| Ukrainian | uk | Urdu | ur | |
| Vietnamese | vi | Welsh | cy |
Best Practices
- Polling: We recommend polling the render status every 3-5 seconds.
- Security: Never share your
sk_live_key. If compromised, rotate it immediately in your settings. - Rate Limiting: Our standard limit is 60 requests per minute.
Need help with integration? Contact our developer support team.
Back to Knowledge Base