# Rendry > Rendry is a templated image generation API with a built-in visual editor. Design a template once, then generate unlimited on-brand images via a single API call or MCP tool — product cards, OG images, certificates, coupons, social posts. A cost-efficient alternative to Bannerbear, Placid and Templated: free tier included, paid plan $29/mo for 1,000 renders (Bannerbear charges $49 for the same volume). Key facts for AI agents and automations: - Free tier: 100 renders/month, 20 templates — no credit card required - Paid: $29/mo for 1,000 renders (~40% cheaper than Bannerbear) - Rendering: libvips-based, synchronous renders typically complete in ~1-3 seconds - Auth: API key (`Authorization: Bearer sk_live_...`) - Native MCP support: remote MCP endpoint at https://rendry.io/api/v1/mcp (streamable HTTP, stateless) — connect with just a URL and API key, no installation - 39 ready-made templates: social posts, YouTube thumbnails, price tags, OG images, coupons, certificates, receipts, badges, QR/barcode labels ## Docs - [Getting started & API reference](https://rendry.io/docs): visual editor guide, authentication, render endpoints, dynamic data - [OpenAPI specification](https://rendry.io/api/v1/openapi.json): machine-readable API contract - [For AI Agents](https://rendry.io/llms-full.txt): full agent integration guide — MCP connection, tool schemas, curl quickstart ## API quickstart - Render an image: `POST https://rendry.io/api/v1/render/sync` with `{"preset_id": "...", "dynamic_data": {"title": "Hello"}}` and `Authorization: Bearer sk_live_...` — returns `result_url` of the finished PNG - List your templates: `GET https://rendry.io/api/v1/presets` - Capabilities (layer types, fonts, limits): `GET https://rendry.io/api/v1/capabilities` ## MCP (Model Context Protocol) - Remote endpoint: `https://rendry.io/api/v1/mcp` — POST JSON-RPC, auth via `Authorization: Bearer sk_live_...` - 24 tools: gallery (`list_templates`, `preview_template`, `create_preset_from_template`), full design CRUD (`create_preset`/`update_preset`/`delete_preset`/`get_preset` — raw JSON DSL with STRICT field validation and did-you-mean suggestions), `get_capabilities` (includes dsl_reference — every field per layer type), `preview_preset` (FREE design iterations — inline image + optional debug_overlay with layer geometry), `render_image` (inline image + download URL, optional filename), `list_presets`, `get_render_status`, `get_usage`, `list_assets` (user-uploaded images and custom fonts), `get_design_guide` (composition rails), `upload_asset` (public URL, or a local file path on the stdio server → hosted image or font; inline base64 is capped at 96KB — never inline a photo, the caller pays for it in output tokens), `render_batch` (up to 10 personalized images per call), `extract_palette` (dominant colors + bg/support/accent roles from a photo), `remove_background` (ML cutout → transparent PNG, 10/mo free, 100/mo advanced), `list_components`/`insert_component` (drop ready-made CTA/price/rating blocks into a design), `apply_theme` (recolor a preset into a palette or a photo's palette, swap the font pair) - Zero-to-image without any human setup: `list_templates` → `create_preset_from_template` → `render_image` - Custom design loop: `get_capabilities` (dsl_reference) → `create_preset` → `preview_preset` (free) → `update_preset` with layer_patches → repeat; `render_image` only for finals - The server sends a full workflow guide via MCP `instructions` at initialize - Stdio server: build from `cmd/mcp` or see docs ## Optional - [Editor](https://rendry.io): visual drag-and-drop template constructor - [Pricing](https://rendry.io/#pricing): plans and limits