Skip to main content

🌟 Introduction

ZapCap is a REST API for programmatically adding high-quality animated subtitles to videos. Process videos in 48 languages with up to 99.9% transcription accuracy, and transform them using 20+ designer templates.

Quick example using jq and curl: Add animated subtitles to a video

# First, upload the video and get the ID
VIDEO_ID=$(curl -X POST "https://api.zapcap.ai/videos" \
-H "x-api-key: YOUR_API_KEY" \
-F "file=@video.mp4" | jq -r .id)

# Then create the task using the video ID
curl -X POST "https://api.zapcap.ai/videos/$VIDEO_ID/task" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "template_id",
"autoApprove": true
}'

For complete examples in Node.js, Python, and curl, see our caption-a-video guide

Why Choose ZapCap?

  • High-Performance Processing: Process 4k videos in minutes
  • Enterprise-Ready: Scale to thousands of videos with 99.9% uptime SLA
  • Developer-First: Well-documented REST API with official SDKs for Node.js
  • Production-Tested: Powers subtitle generation for Fortune 500 companies and leading content creators

🛠 Core Features

📝 Advanced Transcription Engine

  • 99.9% accuracy across 48 languages
  • Automatic punctuation and formatting
  • Custom vocabulary handling (coming soon)

🎨 Powerful Template System

// Customize templates programmatically
{
"renderOptions": {
"subsOptions": {
"emoji": true,
"animation": true,
"emphasizeKeywords": true
},
"styleOptions": {
"fontSize": 46,
"fontColor": "#ffffff"
}
}
}

⚡ Built for Scale

  • Asynchronous processing with webhooks
  • Regional edge processing
  • Automatic content delivery via CDN

🎯 Common Use Cases

1. Content Management Systems

Automatically generate subtitles when videos are uploaded to your CMS:

// Example webhook integration
app.post('/webhook', (req, res) => {
const { videoUrl } = req.body;
await zapcap.createTask({
url: videoUrl,
template: TEMPLATE_ID,
language: 'auto'
});
});

2. Video Editing Platforms

Embed subtitle generation directly in your video editor:

// Example React integration
const SubtitleButton = () => {
const addSubtitles = async (videoId) => {
const task = await zapcap.createTask({
videoId,
template: TEMPLATE_ID,
autoApprove: true,
});
// Poll for completion
};
};

3. Social Media Automation

Automatically create social-ready versions of your videos:

// Example automation script
async function createSocialVariants(videoUrl) {
return Promise.all(
formats.map((format) =>
zapcap.createTask({
url: videoUrl,
template: TEMPLATE_ID,
})
)
);
}

🚀 Get Started

  1. Get your API key
  2. Follow our 5-minute quickstart
  3. Explore the full API reference

📚 Resources