Everything You Need to Generate Video
9 element types, 15+ transitions, template variables, and credit-based billing. All controlled through a single JSON document.
9 Element Types
Compose rich video scenes with text, media, voice, code, and components
Text
Rich text overlays with 11 built-in styles, Google Fonts support, color, shadow, background, and character-level animation. Position anywhere on the canvas with pixel precision.
{
"type": "text",
"text": "Breaking News",
"style": "005",
"font": "Roboto",
"font_size": 48,
"color": "#ffffff",
"position": "bottom-center"
}Image
Static images from URL or direct upload. Supports PNG, JPEG, WebP, and GIF. Control position, dimensions, opacity, and timing with start/duration.
{
"type": "image",
"src": "https://example.com/logo.png",
"position": "top-right",
"width": 200,
"height": 200,
"start": 0,
"duration": 5
}Video
Embed video clips as overlays or scene backgrounds. Trim with start/duration, loop for continuous playback, and layer with other elements via z_index.
{
"type": "video",
"src": "https://example.com/clip.mp4",
"position": "center",
"duration": 10,
"volume": 0.5
}Audio
Add background music, sound effects, or voiceover tracks. Control volume per element. Multiple audio tracks are automatically mixed together.
{
"type": "audio",
"src": "https://example.com/bgmusic.mp3",
"start": 0,
"duration": 30,
"volume": 0.3
}Voice (TTS)
Text-to-speech powered by Coqui (free, 50+ voices) and ElevenLabs (premium). 20+ languages. Voice automatically sets scene duration based on speech length.
{
"type": "voice",
"text": "Welcome to PhantomFlow.",
"provider": "coqui",
"voice": "p267",
"speed": 1.0
}HTML
Render arbitrary HTML/CSS as a pixel-perfect video overlay. Powered by Puppeteer (headless Chromium). Use for custom charts, infographics, or styled components.
{
"type": "html",
"html": "<div style='padding:20px; background:rgba(0,0,0,0.7); color:white; border-radius:8px;'><h2>Q4 Revenue</h2><p>$2.4M (+18%)</p></div>",
"width": 400,
"height": 200,
"position": "bottom-left"
}Shape
Rectangles, circles, and lines with customizable fill, stroke, opacity, and dimensions. Use as backgrounds, dividers, or decorative elements.
{
"type": "shape",
"shape": "rectangle",
"width": 1920,
"height": 100,
"color": "#000000",
"opacity": 0.6,
"position": "bottom-center"
}Component
Pre-built component packs for common video elements: lower thirds, title cards, countdown timers, progress bars, and more. Customizable via properties.
{
"type": "component",
"component": "lower-third-001",
"settings": {
"title": "John Smith",
"subtitle": "CEO, Acme Corp",
"color": "#06b6d4"
}
}Subtitles
Auto-generate subtitles from audio using Whisper. Import existing SRT files. Customize font, size, color, and position.
{
"type": "subtitles",
"source": "auto",
"font_size": 32,
"color": "#ffffff",
"background_color": "#000000",
"position": "bottom-center"
}20+ Transitions
Smooth scene-to-scene transitions powered by FFmpeg xfade
{
"scenes": [
{ "elements": [...], "duration": 5 },
{
"elements": [...],
"duration": 5,
"transition": {
"style": "fade",
"duration": 1
}
}
]
}Template System
Save scripts as reusable templates with variable placeholders
Template (with variables)
{
"elements": [
{
"type": "text",
"text": "{{headline}}",
"font_size": 64,
"color": "{{brand_color}}"
},
{
"type": "image",
"src": "{{logo_url}}"
}
]
}Render with variables
curl -X POST https://api.phantomflow.dev/api/render/template \
-H "Content-Type: application/json" \
-H "x-api-key: ve_live_..." \
-d '{
"template_id": "tpl_abc123",
"variables": {
"headline": "Summer Sale - 50% Off",
"brand_color": "#ff6b35",
"logo_url": "https://example.com/logo.png"
}
}'Credit-Based Billing
1 credit = 1 second of rendered video. Pay only for what you use.
1 credit
= 1 second of video
Free tier
Start with free credits, no card required
ve_test_
Test keys use zero credits
Quality Settings
Choose the right quality for your use case
| Quality | CRF (Scene / Stitch) | Best For | Credits |
|---|---|---|---|
| Low | 28 / 26 | Drafts, previews, testing | Lowest credit usage |
| Medium | 23 / 21 | Social media, web content | Standard credit usage |
| High | 23 / 18 | Professional, broadcast | Highest credit usage |
Export Destinations
Deliver your rendered video wherever it needs to go
S3 / Cloud Storage
Direct upload to any S3-compatible bucket
Webhook
POST notification with download URL on completion
FTP / SFTP
Push to your FTP server automatically
Send rendered video to one or more email addresses
YouTube
Auto-upload to YouTube with title and description
Direct URL
Temporary download URL returned with the job
Start building with PhantomFlow
Get your free API key and explore the features in our example library.