Templates
Templates let you save render configurations and reuse them across multiple jobs. Perfect for consistent branding or frequently used settings.
Creating a Template
POST /v1/templates
{
"name": "suez-cinematic",
"description": "Cinematic style for Suez Canal videos",
"style": "maritime-dark",
"duration": 15,
"resolution": "4k",
"route_style": {
"color": "#00D4FF",
"width": 4,
"vehicle_icon": "ship"
},
"camera": {
"preset": "canal_bottleneck",
"intensity": "bold"
},
"hud": {
"stats": { "show_distance": true },
"progress_bar": true
}
} Response
{
"id": "tpl_abc123",
"name": "suez-cinematic",
"description": "Cinematic style for Suez Canal videos",
"created_at": "2026-03-26T10:00:00Z"
} Using a Template
Reference the template ID when creating a render:
POST /v1/render
{
"template_id": "tpl_abc123",
"waypoints": [
{ "lat": 29.9792, "lng": 32.5731, "label": "Port Said" },
{ "lat": 29.9552, "lng": 32.5490, "label": "Suez" }
]
} The template settings are merged with your request. You can override any template setting:
{
"template_id": "tpl_abc123",
"waypoints": [...],
"duration": 20, // Override template's 15s duration
"style": "satellite" // Override template's maritime-dark style
} Listing Templates
GET /v1/templates
{
"templates": [
{
"id": "tpl_abc123",
"name": "suez-cinematic",
"description": "Cinematic style for Suez Canal videos",
"created_at": "2026-03-26T10:00:00Z"
},
{
"id": "tpl_def456",
"name": "global-shipping",
"description": "Standard shipping route animation",
"created_at": "2026-03-25T15:30:00Z"
}
]
} Getting a Template
GET /v1/templates/tpl_abc123
{
"id": "tpl_abc123",
"name": "suez-cinematic",
"description": "Cinematic style for Suez Canal videos",
"style": "maritime-dark",
"duration": 15,
"resolution": "4k",
"route_style": {...},
"camera": {...},
"hud": {...},
"created_at": "2026-03-26T10:00:00Z"
} Updating a Template
PUT /v1/templates/tpl_abc123
{
"name": "suez-cinematic-v2",
"duration": 20
} Deleting a Template
DELETE /v1/templates/tpl_abc123
{
"message": "Template deleted"
} Template Limits by Tier
| Tier | Max Templates |
|---|---|
| Free | 3 |
| Creator | 15 |
| Studio | Unlimited |
Template Best Practices
- Use descriptive names:
suez-4k-cinematicis better thantemplate1 - Document with descriptions: Include what the template is for and when to use it
- Don't include waypoints: Templates are for settings, not data
- Version in names: Use
global-shipping-v2when iterating
SDK Examples
Python
# Create
template = client.templates.create(
name="suez-cinematic",
style="maritime-dark",
duration=15
)
# List
templates = client.templates.list()
# Use
job = client.render(
template_id="tpl_abc123",
waypoints=[...]
)
# Delete
client.templates.delete("tpl_abc123") Node.js
// Create
const template = await client.templates.create({
name: 'suez-cinematic',
style: 'maritime-dark',
duration: 15,
});
// List
const templates = await client.templates.list();
// Use
const job = await client.render({
templateId: 'tpl_abc123',
waypoints: [...],
});
// Delete
await client.templates.delete('tpl_abc123');