Skip to main content
Glama
thenavidm
by thenavidm

Render Template

render_template
Destructive

Render a video or asset from a template ID with optional merge fields, replacing placeholder variables in the edit to produce reusable, customized outputs.

Instructions

Render an asset from a template id and optional merge fields. Merge fields can be used to replace placeholder variables within the Edit.

Base URL: https://api.shotstack.io/edit/{version} Explicit confirmation is required for this exact action; provider charges, hosting, sharing or deletion may apply. Never automatically resubmit unknown outcomes.

Input Schema

NameRequiredDescriptionDefault
idNoThe id of the template to render in UUID format.
mergeNo
accountNoNamed private Shotstack account; selects private credentials and stage/v1 environment.
confirmNoSet true only when the user asked for exactly this action.
payloadNoComplete JSON request body instead of body flags. Preserves current endpoint fields and values.
payload_fileNoRegular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changedv3.0.0
    • addedInput schema / $defs / merge
      Added value: +{
      +  "description": "An array of key/value pairs that provides an easy way to create templates with placeholders. The placeholders can be used to find and replace keys with values. For example you can search for the placeholder `{{NAME}}` and replace it with the value `Jane`. ",
      +  "items": {
      +    "$ref": "#/$defs/MergeField"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / confirm / description
      Previous value: -"Must be true for this exact requested render, generation, mutation, upload URL or deletion."New value: +"Set true only when the user asked for exactly this action."
    • addedInput schema / properties / merge / $ref
      Added value: +"#/$defs/merge"
    • removedInput schema / properties / merge / description
      Removed value: -"An array of key/value pairs that provides an easy way to create templates with placeholders. The placeholders can be used to find and replace keys with values. For example you can search for the placeholder `{{NAME}}` and replace it with the value `Jane`. "
    • removedInput schema / properties / merge / items
      Removed value: -{
      -  "$ref": "#/$defs/MergeField"
      -}
    • removedInput schema / properties / merge / type
      Removed value: -"array"
    • addedInput schema / properties / payload / $defs / MergeField / $ref
      Added value: +"#/$defs/MergeField"
    • removedInput schema / properties / payload / $defs / MergeField / additionalProperties
      Removed value: -false
    • removedInput schema / properties / payload / $defs / MergeField / description
      Removed value: -"A merge field consists of a key; `find`, and a value; `replace`. Merge fields can be used to replace placeholders within the JSON edit to create re-usable templates. Placeholders should be a string with double brace delimiters, i.e. `\"{{NAME}}\"`. A placeholder can be used for any value within the JSON edit."
    • removedInput schema / properties / payload / $defs / MergeField / properties
      Removed value: -{
      -  "find": {
      -    "description": "The string to find <u>without</u> delimiters.",
      -    "type": "string"
      -  },
      -  "replace": {
      -    "description": "The replacement value. The replacement can be any valid JSON type - string, boolean, number, etc..."
      -  }
      -}
    • removedInput schema / properties / payload / $defs / MergeField / required
      Removed value: -[
      -  "find",
      -  "replace"
      -]
    • removedInput schema / properties / payload / $defs / MergeField / type
      Removed value: -"object"
    • addedInput schema / properties / payload / properties / merge / $ref
      Added value: +"#/$defs/merge"
    • removedInput schema / properties / payload / properties / merge / description
      Removed value: -"An array of key/value pairs that provides an easy way to create templates with placeholders. The placeholders can be used to find and replace keys with values. For example you can search for the placeholder `{{NAME}}` and replace it with the value `Jane`. "
    • removedInput schema / properties / payload / properties / merge / items
      Removed value: -{
      -  "$ref": "#/$defs/MergeField"
      -}
    • removedInput schema / properties / payload / properties / merge / type
      Removed value: -"array"
  2. First observedv2.0.0

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so safety is partly covered. The description adds genuine context beyond them: the mandatory confirmation step, that provider charges/hosting/sharing/deletion may apply, and that unknown outcomes must not be auto-resubmitted - all material for a non-idempotent mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded and wastes little, but the body is cluttered with a broken markdown link ('[Edit](#tocs_edit)') and a raw HTML anchor wrapping the base URL, which are noise rather than agent-relevant signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter, nested-object, no-output-schema mutation tool, the description covers purpose and confirmation but says nothing about the `account`, `payload`/`payload_file` modes, or what a render returns (a render id). Annotations carry the safety profile, so it is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83%, so the schema already documents `id`, `merge`, `account`, `confirm`, `payload`, and `payload_file` thoroughly. The description only echoes 'template id and optional merge fields' and adds no syntax or format detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Render an asset from a template id and optional merge fields,' which is clear enough to act on. However, it never distinguishes itself from the sibling tool `render`, which reads almost identically, so an agent cannot tell which to pick from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It supplies one real usage constraint ('Explicit confirmation is required for this exact action') and a no-resubmit rule, which is useful. But it gives no when-to-use-vs-alternative guidance against `render`, `generate_asset`, or `create_template`, leaving the selection inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.