New Now works inside Claude and ChatGPT

Spreadsheet in. Print-ready certificates, gift cards and badges out.

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.

100 free renders a month No credit card Print PDF, QR codes and barcodes on every plan
Certificate of achievement with the recipient name filled from a variable E-gift cards rendered for different recipients, each with its own amount and gift code Conference speaker badge with name, role and a check-in QR code

Every image on this page was rendered by Zandovi from a template and a row of data.

In one paragraph

What is Zandovi?

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.

  • Not a prompt-to-image model

    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.

  • Not a headless browser

    No Chrome to keep alive, no HTML-to-PNG screenshotting. A Skia renderer draws the template server-side and streams the file back.

  • Not developer-only

    The same template is editable on a visual canvas. Designers and ops maintain it; engineers only ever send the JSON.

One template, three ways to fill it

Your team uploads a list. Your app calls the API. Your assistant does it for you.

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

For developers whose product issues these

Call the API

One POST per image or a batch job per list, with idempotency keys and a signed webhook when it is done.

See the API

New · For anyone who works in Claude or ChatGPT

Ask your AI assistant

Connect once. Your assistant designs, checks and renders real Zandovi templates you can edit later.

Connect your assistant
Batch generation

Rows in. ZIP out.

The 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.

Read the batch generation guide Batch from the API
  1. Design once

    Build your template in the editor. Drop in shapes, text, an image, a QR.

  2. Add variables

    Wrap any text or image binding in {{double_braces}}. Set defaults and validation.

  3. Add your data

    Upload a CSV in the app — or POST the same rows to /api/v1/batch-jobs from your backend. One row per output.

  4. Get a ZIP

    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.

members.csv
100 rows
Menu Card · v2
3 variables
output.zip
100 PNGs · 4 MB
Rendering 100 / 100 COMPLETED
4 parallel workers · 18s elapsed Download ZIP →
Animation cycling through six real gift-card renders from the same template — recipient name, amount, message and gift code change on every frame
Six rows, one template — every frame is a real render. Only {{recipient_name}}, {{amount}}, {{gift_message}} and {{gift_code}} change.
Now live · Claude, ChatGPT and coding agents

The renderer your AI assistant calls when every name and code has to be exact.

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.

  • Checking a design is free. Only finished renders use your quota, the same pool as the API.
  • Every template keeps its last 10 versions, so a bad AI edit is one click to undo.
  • You choose what it may do, and revoke access any time in Settings → Connected apps.
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 →

Design an Instagram coupon for my bakery's autumn sale, 25% off, code CRISP25.
  1. search_stock_images autumn pastries
  2. validate_design valid, free
  3. preview_design checked the layout
  4. create_template saved, 3 variables
Instagram coupon for the Hearth and Crumb bakery: autumn pastries photo, 25% off, promo code CRISP25

Ready for a batch or the API:

discountpromo_codeexpiry

Designed by Claude through the Zandovi connector. Not retouched.

More designs Claude made through Zandovi

See every example with its prompt
Built for output that has to be right

AI image models guess. Zandovi renders exactly what you send.

A 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 codes and barcodes that scan

QR, Code 128, EAN-13, UPC, Code 39 and ITF-14, each bound to a variable and drawn sharp at any size.

Learn more

Print-ready PDF

300 DPI, print boxes and real paper sizes in millimetres or inches, from A5 on Free up to A3 on Studio and above.

Learn more

The same pixels every time

A deterministic renderer with no browser and no AI. What you see on the canvas is what every copy contains.

Every name, in every language

Zofia Łęcka, Søren Ødegård, 王芳, محمد. 57 font families plus a fallback chain for Chinese, Japanese, Korean, Arabic, Hebrew and Thai.

Learn more

Version history

Every save keeps the last 10 versions, with who saved it: a teammate, an API key or a connected AI app.

Learn more

Unlimited editor exports

On paid plans, exporting from the editor never touches your render quota. Only batches and API calls count.

Image generation API

One POST. One image — or four hundred.

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.

  • Per-organization API keys with usage tracking
  • Batch jobs — POST one template plus up to 400 rows, then poll or be called back, and download a ZIP
  • Signed completion callbacks — give a job a callbackUrl and it posts you a summary when it ends, HMAC-signed and retried, with the delivery status readable on the job
  • Idempotency keys on batch submits — a retried request is never billed or rendered twice, and cancelling refunds every unrendered row
  • Schema introspection — describe variables before sending
  • Sub-second renders at 1080p with Redis caching
  • Bytes by default, or a hosted URL on request — the link comes back with its exact expiry, and a revoke endpoint on every plan
Read the API docs
POST /api/v1/templates/:id/generate
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

Real output, not mockups. Four starter templates rendered from JSON with {{variables}} — exactly what the generate endpoint returns.

API-rendered gift card with amount, recipient name and gift code filled from variables
Gift card — {{amount}}, {{gift_code}}
API-rendered Open Graph blog image with title, author and read time filled from variables
OG image — {{og_title}}, {{author_name}}
API-rendered certificate of achievement with recipient name and course filled from variables
Certificate — {{recipient_name}}, {{course_name}}
API-rendered concert ticket with attendee name, seat and scannable QR code filled from variables
Ticket — {{attendee_name}}, {{ticket_code}}
Compare

What an entry plan buys.

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$49Part of Canva Pro
Automated renders per month 5,0005001,5001,0001,000No API
Spreadsheet batch in the app YesVia Airtable or SheetsNoYesVia integrationsUp to 300 rows
Batch API with a ZIP result YesYesYesYesYesNo
Barcode variables YesYesNoYesYesNo
Unlimited editor exports YesNoNoNoNoYes
MCP server for AI assistants YesYesNoYesYesYes
Free tier 100 renders / monthTrial credits50 / month50-credit trial30-credit trialNo 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.

Plans

Start free. Pay when the list gets long.

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.

Free

For trying Zandovi.

$0

Free forever

  • 100 renders / mo — one shared pool
  • 1 seat
  • 1 project · 5 templates
  • Prints to A5 / postcards (300 DPI)
  • 25 batch rows per job
  • Full API + all formats (print-ready PDF)
  • 7-day public share links
  • Community support
Start free

Studio

For a small team or studio.

$49 /mo

billed monthly

  • 12,000 renders / mo
  • Unlimited web renders*
  • 3 seats — roles & shared workspaces
  • Unlimited projects & templates
  • Prints to A3 / large-format (8K)
  • 200 batch rows per job
  • 60-day share links
  • Everything in Personal
  • Email support
Get started

Team

For collaborating teams.

$79 /mo

billed monthly

  • 25,000 renders / mo
  • Unlimited web renders*
  • 5 seats — roles & shared workspaces
  • Prints to A3 / large-format (8K)
  • 300 batch rows per job
  • 90-day share links
  • Everything in Studio
  • Priority email support
Get started

Business

For high-volume operations.

$199 /mo

billed monthly

  • 100,000 renders / mo
  • Unlimited web renders*
  • 10 seats — roles & shared workspaces
  • Prints to A3 / large-format (8K)
  • 400 batch rows per job
  • 180-day share links
  • Everything in Team
  • Priority email support
Get started

* 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.

Questions

Frequently asked.

Everything you'd want to know before trying Zandovi.

Can I print these?
Yes. Export a PDF at 300 DPI with print boxes, sized in millimetres or inches. Free prints up to A5, Personal up to A4, and Studio, Team and Business up to A3.
How is this different from Canva Bulk Create?
Canva is a great design tool with a manual bulk feature. Zandovi adds QR code and barcode variables, a batch API with a signed callback, access from AI assistants, and rows checked before a job is billed, so the same template serves a one-off event and your own product.
Does it work with Claude and ChatGPT?
Yes. Add https://mcp.zandovi.com/mcp as a connector in Claude, ChatGPT (on plans with Developer mode), Claude Code, Cursor or VS Code, sign in and pick a workspace. Your assistant can design, edit and render templates. Renders count against the same quota as the API; checking a design is free.
Is Zandovi an AI image generator?
No. Zandovi renders your template with your data, the same way every time. An AI assistant can design the template for you, but the copies themselves are never invented by a model, so every name, code and QR comes out exactly as supplied.
How does batch generation work?
Design a template with variables using {{name}} syntax, then submit your data — upload a CSV in the app, or POST a rows array to /api/v1/batch-jobs from your backend. Zandovi generates a personalized export per row and hands back a ZIP. Poll the job, or give it a callbackUrl and be told when it finishes.
What export formats are supported?
PNG, JPEG, WebP and PDF at up to 4096×4096 px with full quality control. Every format takes a 1–4× scale multiplier for print-ready output.
Is there an API?
Yes. Public API keys let you generate designs server-side from any language — one POST for a single image, or a batch job for a whole set. Perfect for sending personalized email graphics, order confirmations, or dynamic social images.
Can I get a URL instead of a file?
Yes. Click Share on any render in the editor, or add delivery: "link" to an API call, and you get a public URL for the image — no bucket, no CDN, no cleanup job to build. Ideal for <img> tags in transactional email and for automation tools that handle JSON more comfortably than binary.
How long do share links last?
Every link carries an expiry set by your plan — seven days on Free, thirty on Personal, up to a hundred and eighty on Business. When it lapses the image is deleted and the URL stops resolving. You can revoke a link earlier at any time, and anyone holding the URL can open it until you do — treat them as unguessable, not private.
How do teams and organizations work?
Invite teammates to a shared organization. Control member roles, share templates and projects across the team, and scope billing per org. Each user can belong to multiple organizations.
What about QR codes and barcodes?
Both are first-class citizens. Drop a QR or barcode element onto any template, bind it to a variable, and every generated design gets its own scannable code.
Ready when your list is

Your next 300 certificates are one spreadsheet away.

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