Skip to main content

Tools Reference

ToolPurpose
render_videoCreate a video from a JSON specification
get_render_statusCheck render progress and get output URL
create_templateSave a reusable video template
list_templatesList all saved templates
get_templateRetrieve a template's structure
render_templateRender a video from a template
delete_templateRemove a template
inspect_mediaGet metadata about a media file

render_video

Create a video, image, or audio file from a JSON specification.

ParameterTypeRequiredDescription
timelineTimelineYesTimeline with tracks and clips
outputOutputYesFormat and resolution settings
mergeMergeField[]NoMerge field replacements
callbackstringNoWebhook URL for completion

Prompt: "Create a 10-second video with 'Hello World' centered on screen"

Response: { "id": "d2b46ed6-...", "message": "Render Successfully Queued" }


get_render_status

Check render progress and get the output URL when complete.

ParameterTypeRequiredDescription
idstringYesRender ID from render_video or render_template

Prompt: "Check the status of render d2b46ed6-..."

Response: { "id": "...", "status": "done", "url": "https://cdn.shotstack.io/.../video.mp4" }

Status values: queuedfetchingrenderingsavingdone (or failed)


create_template

Save a reusable video template with merge field placeholders.

ParameterTypeRequiredDescription
namestringYesTemplate name
templateEditYesEdit specification with {{PLACEHOLDER}} syntax

Prompt: "Create a template called 'greeting' with a NAME placeholder"

Response: { "id": "ca84c7c5-...", "message": "Template Successfully Created" }


list_templates

Retrieve all saved templates.

Prompt: "List all my templates"

Response: { "templates": [{ "id": "...", "name": "greeting", "created": "..." }] }


get_template

Retrieve a template's full structure.

ParameterTypeRequiredDescription
idstringYesTemplate ID

Prompt: "Show me the greeting template"


render_template

Render a video from a saved template with merge field replacements.

ParameterTypeRequiredDescription
idstringYesTemplate ID
mergeMergeField[]No[{ "find": "NAME", "replace": "Alice" }]

Prompt: "Render the greeting template with NAME set to 'Alice'"


delete_template

Permanently delete a template.

ParameterTypeRequiredDescription
idstringYesTemplate ID

Prompt: "Delete the greeting template"


inspect_media

Get technical metadata about a media file.

ParameterTypeRequiredDescription
urlstringYesHTTPS URL of the media file

Prompt: "What's the duration of https://example.com/video.mp4"

Response: { "duration": 12.5, "width": 1920, "height": 1080, "fps": 30 }


Quick Reference

Track layering: Track 0 = top layer (foreground). Last track = bottom layer (background).

Asset types: video, image, audio, rich-text, shape, caption, text-to-speech, text-to-image, image-to-video

Output formats: mp4, gif, mp3, jpg, png

Resolutions: preview, mobile, sd, hd, 1080, 4k


Common Errors

ErrorSolution
Font not foundDon't specify font.family, or use Shotstack CDN fonts
Invalid URLEnsure URL is public HTTPS
Render failedSimplify the request and retry
Template not foundUse list_templates to get valid IDs