Skip to main content

Using Templates

Templates are pre-built video compositions with merge fields that you can fill dynamically. Use them to generate personalized videos at scale without building timelines from scratch.

List available templates via the API or browse them in the dashboard.

curl

curl https://api.vidiking.com/v1/templates?category=marketing \
-H "Authorization: Bearer $VIDIKING_API_KEY"

Node.js

const templates = await client.templates.list({ category: 'marketing' });

templates.forEach(t => {
console.log(`${t.id}: ${t.name} - ${t.description}`);
});

Python

templates = client.templates.list(category="marketing")

for t in templates:
print(f"{t.id}: {t.name} - {t.description}")

Response

{
"templates": [
{
"id": "tpl_promo_001",
"name": "Product Promo - Bold",
"description": "30-second product promo with bold text animations and background music",
"category": "marketing",
"duration": 30,
"thumbnail": "https://cdn.vidiking.com/templates/tpl_promo_001/thumb.jpg",
"merge_fields": [
{ "name": "headline", "type": "text", "default": "Your Product Name" },
{ "name": "subtext", "type": "text", "default": "The tagline goes here" },
{ "name": "product_image", "type": "image_url", "default": null },
{ "name": "brand_color", "type": "color", "default": "#ff6b00" },
{ "name": "cta_text", "type": "text", "default": "Learn More" }
]
}
]
}

Render a Template

Fill the merge fields and submit for rendering.

curl

curl -X POST https://api.vidiking.com/v1/templates/tpl_promo_001/render \
-H "Authorization: Bearer $VIDIKING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"merge_fields": {
"headline": "SuperWidget Pro",
"subtext": "The fastest widget on the market",
"product_image": "https://example.com/superwidget.png",
"brand_color": "#2563eb",
"cta_text": "Buy Now"
},
"output": {
"format": "mp4",
"resolution": "hd"
}
}'

Node.js

const { jobId } = await client.templates.render('tpl_promo_001', {
mergeFields: {
headline: 'SuperWidget Pro',
subtext: 'The fastest widget on the market',
product_image: 'https://example.com/superwidget.png',
brand_color: '#2563eb',
cta_text: 'Buy Now',
},
output: { format: 'mp4', resolution: 'hd' },
});

const job = await client.pollJob(jobId);
console.log('Video URL:', job.url);

Python

result = client.templates.render("tpl_promo_001", {
"merge_fields": {
"headline": "SuperWidget Pro",
"subtext": "The fastest widget on the market",
"product_image": "https://example.com/superwidget.png",
"brand_color": "#2563eb",
"cta_text": "Buy Now",
},
"output": {"format": "mp4", "resolution": "hd"},
})

job = client.poll_job(result.job_id)
print("Video URL:", job.url)

Batch Rendering

Render the same template with different data for each row. Useful for personalized outreach, product catalogs, or social content.

curl -X POST https://api.vidiking.com/v1/templates/tpl_promo_001/batch \
-H "Authorization: Bearer $VIDIKING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"merge_fields": { "headline": "Widget A", "product_image": "https://example.com/a.png" }
},
{
"merge_fields": { "headline": "Widget B", "product_image": "https://example.com/b.png" }
},
{
"merge_fields": { "headline": "Widget C", "product_image": "https://example.com/c.png" }
}
],
"output": { "format": "mp4", "resolution": "hd" }
}'

Template Categories

CategoryDescription
marketingProduct promos, ads, social media
corporatePresentations, reports, announcements
socialInstagram, TikTok, YouTube shorts
real-estateProperty listings, virtual tours
ecommerceProduct showcases, sales banners
educationTutorials, course intros, explainers

Cost

Template renders cost $0.22 per render. Batch renders cost $0.22 per item.