When a program writes the payload, nothing looks at the video
An agent, a Zap or a batch script fills a template and renders it. Nobody sees the result until it exists - and by then you have paid for it. POST /previews takes that same body and resolves it without rendering. No credits. No render job. You see which replacements actually landed, what the render would cost, and what is about to go wrong.
Making one video by hand? Use the editor - it previews as you type, and nothing here improves on that.
The editor is better - when someone is there to look
It previews every change as you type, for free, and no API will ever beat a canvas at that. So this endpoint is not a worse version of the editor. It is for the three cases where the person who would have been looking is not there.
An AI agent
It is writing a payload against a template it has never seen, guessing at variable names. Without a free check, every guess costs a credit and produces a video a person has to watch to validate.
A batch you start from code
Four hundred rows through one template on a schedule. You will look at the first video and trust the other 399, so the first one had better be right.
A hand-off you never see
A Zap, a webhook or a cron job filling a template from a spreadsheet somebody else maintains. The payload changes without you touching it.
In all three the video is produced by something that cannot look at it. The preview is the look.
A wrong render still returns 200
Replacements are matched by key against the overlays a template marks as dynamic. Nothing enforces that your keys exist. A key that matches nothing is ignored. The render succeeds, returns 200, charges the credit, and quietly uses the value the template was authored with.
The same goes for a font we cannot resolve, which becomes Roboto, and for text a little too wide for its box, where the overflow is hidden - so $1,250,000 can render as $1,250,00 and look deliberate.
None of that appears in a render response. All of it appears in a preview.
{
"replacements": {
"venu_name": "Casa Mira"
}
}
// resolved shows the authored default, not "Casa Mira".
// A render would have returned 200 and charged you.resolved is the fastest way to find a misspelled key.
{
"previewUrl": "https://renderly.video/p/8fK2nQ7xM3vBpL0s",
"expiresAt": "2026-08-30T12:00:00Z",
"quote": { "credits": 1.5, "durationMinutes": 1.2 },
"resolved": {
"guest_name": "Rebecca",
"venue_name": "Casa Mira"
},
"warnings": []
}What comes back
- resolved
- The value that actually landed on each dynamic variable. Send venu_name and this still shows the authored default for venue_name.
- warnings
- Most severe first. Triage on severity rather than message text - clipped text, unresolvable fonts, keys that matched nothing.
- quote
- Credits and duration the render would consume, before you commit to it.
- previewUrl
- A shareable page showing the resolved video. Add ?mode=grid for a contact sheet of frames across the whole thing.
The loop an agent can actually close
An AI agent writing render payloads is guessing at variable names it has never seen. Without a free check, every guess costs a credit and produces a video someone has to watch to validate. The preview endpoint turns that into a loop the agent can close by itself.
- 01
Ask what exists
get_variables returns the template's dynamic variables and the field each one fills.
- 02
Preview the payload
preview_render resolves it. No credits, no job. You get resolved values, warnings and a credit quote.
- 03
Look at the result
Open the preview URL, or ?mode=grid for a contact sheet spanning the video.
- 04
Then spend the credit
create_render with a payload you have already confirmed produces the right video.
renderly_get_variables // what can I fill?
renderly_preview_render // did it land? free
renderly_create_render // now spend the creditBecause a preview URL renders as an image, the agent can look at its own output rather than parse a description of it - and ?mode=grid puts the whole video in a single fetch. It is the reason our MCP server can be trusted with a credit balance. See the agent setup guides.
Render preview questions
Why would I use this instead of the editor?
I send replacements to the API by hand. Is this for me?
Does previewing cost credits?
How is a preview different from a render?
Why would a render silently produce the wrong video?
Can I see more than one frame?
How long does a preview link last?
Can an AI agent use this?
Stop paying for renders you have not checked
Start free - no credit card required.