Create a render
This is the endpoint to create a render.
It responds with 200 OK and returns the render data including the render URL.
By default, renders are generated synchronously and take around 2 seconds to complete (videos may take longer depending on duration and complexity).
Once generated, the image/PDF/video file is immediately available at the returned URL.
Sample Request
Here’s a sample request to create a render:
POST /v1/render;
fetch('https://api.templated.io/v1/render', {
method: 'POST',
body: JSON.stringify(
{
"template" : TEMPLATE_ID,
"layers" : {
"text-1" : {
"text" : "This is my text to be rendered",
"color" : "#FF0000",
"background" : "#0000FF"
},
"image-1": {
"image_url" : "https://picsum.photos/200/300.jpg"
}
}
}
),
headers: {
'Content-Type' : 'application/json',
'Authorization' : `Bearer ${API_KEY}`
}
})
Parameters
template string REQUIRED
The template id that you want to render.
templates array
This is only used for batch rendering from a list of templates.
If it’s provided, the template parameter will be ignored and will not be required.
Example: "templates": ["template-id-1", "template-id-2"]
format string
Render format (jpg, png, webp, pdf, or mp4). Default is jpg.
transparent boolean
Make the background transparent when the render format is png. Default is false.
duration number
Duration of the video in milliseconds when the render format is mp4.
Maximum is 90000 (90 seconds). Default is 5000 (5 seconds).
fps number
Frames per second when the render format is mp4.
Minimum is 1. Maximum is 60. Default is 30.
Response
The API returns a JSON object with the render details.
{
"id": "ce424057-6b54-41bb-afec-adc35a2b9175",
"url": "https://templated-assets.s3.amazonaws.com/renders/ce424057-6b54-41bb-afec-adc35a2b9175.jpg",
"width": 1920,
"height": 1080,
"format": "jpg",
"templateId": "1f1231-dasd123-fsdf12312-fds4123-asdas23",
"templateName": "Sample Template",
"createdAt": "2025-04-22 08:30:58",
"externalId": null
}
Video Rendering
Templated supports rendering templates as MP4 videos. This is ideal for templates with animations, video layers, or when you want to create dynamic video content from your designs.
Sample Video Request
fetch('https://api.templated.io/v1/render', {
method: 'POST',
body: JSON.stringify({
"template": TEMPLATE_ID,
"format": "mp4",
"duration": 10000, // 10 seconds
"fps": 30,
"layers": {
"title": { "text": "Welcome to my video!" },
"background-video": { "video_url": "https://example.com/video.mp4" }
}
}),
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`
}
})
Layer Animations
You can add entrance, looping, and exit animations to any layer via the animation property. Animations only apply to video (MP4) renders.
{
"template": "TEMPLATE_ID",
"format": "mp4",
"duration": 6000,
"layers": {
"title": {
"text": "Breaking News",
"animation": {
"in": { "type": "slide", "direction": "left", "duration": 500 },
"loop": { "type": "pulse", "duration": 1000 },
"out": { "type": "fade", "duration": 500 },
"start": 1000,
"end": 5000
}
}
}
}