For event, HR and school teams
Upload a spreadsheet
Drop a CSV, match columns to variables, download a ZIP. No code and no copy-paste.
How batches work
Design once on a real canvas. Bind names, codes, QR codes and barcodes to
{{variables}}. Then generate hundreds of exact copies from a CSV,
one API call, or your AI assistant.
Every image on this page was rendered by Zandovi from a template and a row of data.
Zandovi is a template-based image and PDF generation API with a full visual
design editor. You design a template once on a canvas, bind the parts that
change — text, images, QR codes, barcodes — to {{variables}}, then
render personalized copies of it: one at a time by posting JSON to the REST API, or a
few hundred at once as a batch job, fed by a CSV in the app or a rows array from your
own code, that hands back a ZIP.
It is built for personalized assets that have to be exactly right — certificates, gift cards, vouchers, event badges, tickets and labels, where every name, code and QR must match the data. AI assistants such as Claude and ChatGPT can drive it through its MCP connector. Output is PNG, JPEG, WebP or print-ready PDF up to 4096×4096 pixels, from 200+ starter templates across 18 categories. There is a free plan and it includes the full API.
Zandovi does not invent a new picture each time. You draw the design once; every render is that design with different data in it, pixel-identical everywhere else.
No Chrome to keep alive, no HTML-to-PNG screenshotting. A Skia renderer draws the template server-side and streams the file back.
The same template is editable on a visual canvas. Designers and ops maintain it; engineers only ever send the JSON.
For event, HR and school teams
Drop a CSV, match columns to variables, download a ZIP. No code and no copy-paste.
How batches workFor developers whose product issues these
One POST per image or a batch job per list, with idempotency keys and a signed webhook when it is done.
See the APINew · For anyone who works in Claude or ChatGPT
Connect once. Your assistant designs, checks and renders real Zandovi templates you can edit later.
Connect your assistantThe afternoon you used to spend changing a name and exporting, again, becomes a few minutes. Drop a CSV in the app, or submit the same rows through the API.
Build your template in the editor. Drop in shapes, text, an image, a QR.
Wrap any text or image binding in {{double_braces}}. Set defaults and validation.
Upload a CSV in the app — or POST the same rows to /api/v1/batch-jobs from your backend. One row per output.
PNG, JPEG or WebP at up to 4K, scale up to 4×, parallel-rendered in seconds. Poll the job, or hand it a callbackUrl and be told when it lands.
{{recipient_name}}, {{amount}}, {{gift_message}} and
{{gift_code}} change.
Connect Zandovi once. Ask for a design in plain words and your assistant builds a real template, checks it against the same rules the editor uses, looks at a preview and fixes what is off. You get a link that opens it in the editor, with every changing field already a variable.
claude mcp add --transport http zandovi https://mcp.zandovi.com/mcp Works with Claude.ai, Claude Desktop, ChatGPT, Claude Code, Cursor and VS Code. Coding agents setup →
Ready for a batch or the API:
discountpromo_codeexpiryDesigned by Claude through the Zandovi connector. Not retouched.
More designs Claude made through Zandovi
See every example with its promptA misspelled name on a certificate or a gift code that will not scan becomes a support ticket. QR codes, barcodes and print PDF are on every plan, Free included.
QR, Code 128, EAN-13, UPC, Code 39 and ITF-14, each bound to a variable and drawn sharp at any size.
Learn more300 DPI, print boxes and real paper sizes in millimetres or inches, from A5 on Free up to A3 on Studio and above.
Learn moreA deterministic renderer with no browser and no AI. What you see on the canvas is what every copy contains.
Zofia Łęcka, Søren Ødegård, 王芳, محمد. 57 font families plus a fallback chain for Chinese, Japanese, Korean, Arabic, Hebrew and Thai.
Learn moreEvery save keeps the last 10 versions, with who saved it: a teammate, an API key or a connected AI app.
Learn moreOn paid plans, exporting from the editor never touches your render quota. Only batches and API calls count.
Also used for shipping labels, coupons, invitations and social graphics. Browse all templates
A template-based image generation API. No headless browser, no SDK to install — a Skia-based, server-side renderer returns PNG, JPEG, WebP, or print-ready PDF up to 4096 × 4096 px at 300 DPI.
curl -X POST '\
/api/v1/templates/019e4953-7ffb/generate' \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: YOUR_API_KEY' \
-d '{
"variables": {
"price_var": "$18"
},
"format": "png",
"options": {
"outputDpi": 96,
"quality": 90
}
}' \
--output generated-image.png
# → 200 OK · image/png · streamed to disk curl -X POST '/api/v1/batch-jobs' \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: YOUR_API_KEY' \
-H 'Idempotency-Key: vip-batch-001' \
-d '{
"template": {
"templateId": "019e4953-7ffb",
"format": "png",
"output": { "filenamePattern": "{gift_code}" }
},
"rows": [
{ "name": "Alice", "gift_code": "ALICE10" },
{ "name": "Bob", "gift_code": "BOB20" }
],
"callbackUrl": "https://example.com/hooks/zandovi"
}'
# → 202 Accepted · jobId 019a5f22 · one render per row
# we POST a signed summary to callbackUrl when it lands —
# or poll GET /batch-jobs/019a5f22 if you'd rather Real output, not mockups. Four starter templates rendered from JSON with
{{variables}} — exactly what the generate endpoint returns.
{{amount}}, {{gift_code}}
{{og_title}}, {{author_name}}
{{recipient_name}}, {{course_name}}
{{attendee_name}}, {{ticket_code}}The cheapest paid plan of each, billed monthly, from each vendor's own pricing page.
| Feature | Zandovi Personal | Placid | APITemplate.io | Templated | Bannerbear | Canva Bulk Create Pro |
|---|---|---|---|---|---|---|
| Price, billed monthly | $29 | $19 | $35 | $39 | $49 | Part of Canva Pro |
| Automated renders per month | 5,000 | 500 | 1,500 | 1,000 | 1,000 | No API |
| Spreadsheet batch in the app | Yes | Via Airtable or Sheets | No | Yes | Via integrations | Up to 300 rows |
| Batch API with a ZIP result | Yes | Yes | Yes | Yes | Yes | No |
| Barcode variables | Yes | Yes | No | Yes | Yes | No |
| Unlimited editor exports | Yes | No | No | No | No | Yes |
| MCP server for AI assistants | Yes | Yes | No | Yes | Yes | Yes |
| Free tier | 100 renders / month | Trial credits | 50 / month | 50-credit trial | 30-credit trial | No bulk on Free |
Checked 2026-10-17. Plans change, so check the vendor's own page for current numbers. Detailed comparisons: Zandovi vs Bannerbear, vs APITemplate.io and vs Placid, each with a cost-per-1,000-renders column and a section on when they beat us.
Every plan includes the full API, the AI assistant connector, print-ready PDF, QR codes and barcodes. Upgrade for more renders, seats, larger prints or bigger batches. Prices exclude VAT / sales tax.
For trying Zandovi.
Free forever
For solo makers and freelancers.
billed monthly
For a small team or studio.
billed monthly
For collaborating teams.
billed monthly
For high-volume operations.
billed monthly
* Unlimited web renders — on every paid plan, exporting by hand from the editor is unlimited and never counts against your monthly render quota. We only meter automation: API calls and batch rows. Fair-use rate limits apply.
All prices exclude VAT / sales tax, which is calculated and added at checkout based on your location. 1 render = 1 image or 1 PDF — no format multipliers. Failed renders are automatically refunded to your quota.
Everything you'd want to know before trying Zandovi.
Start from a template, bind the fields that change, and render every copy exactly right. From a CSV, the API or your AI assistant.
100 free renders a month · No credit card required