Rendro

API & Integration Guide

Use your templates programmatically via URL or POST request. Perfect for APIs, webhooks, CMS integrations and automation.

Quick start

  1. Create a template in the dashboard and add layers (images, text).
  2. For layers that should change per render, enable Dynamic and set a Placeholder (e.g. img_1, text_1).
  3. Use the Render URL with parameters: https://rendro.io/r/your-slug?img_1=https://...&text_1=Hello
  4. The URL returns a PNG image. Use it in img src, or fetch it in your app.

URL API (GET)

Append query parameters to your template’s render URL. Simple and works everywhere: img tags, links, embeds.

GET https://rendro.io/r/your-template-slug?img_1=https://example.com/photo.jpg&text_1=Hello

Parameter names must match the Placeholder values in your layers (e.g. img_1 for image, text_1 for text).

POST API

Send a JSON body for programmatic access. Better for APIs: no URL length limits, easier handling of special characters.

POST https://rendro.io/r/your-template-slug
Content-Type: application/json

{
"img_1": "https://example.com/photo.jpg",
"text_1": "Hello World"
}

Example: cURL

curl -X POST "https://rendro.io/r/your-slug" \
  -H "Content-Type: application/json" \
  -d '{"img_1":"https://example.com/photo.jpg","text_1":"Hello"}' \
  --output image.png

Example: JavaScript (fetch)

const res = await fetch("https://rendro.io/r/your-slug", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    img_1: "https://example.com/photo.jpg",
    text_1: "Hello",
  }),
});
const blob = await res.blob(); // PNG image

Private templates & API keys

Private templates require an API key. You can pass it in several ways:

  • Query: ?key=YOUR_KEY
  • Header: Authorization: Bearer YOUR_KEY or X-Render-Key: YOUR_KEY
  • JSON body (POST): { "key": "YOUR_KEY", "img_1": "..." }

Create and manage API keys in the template settings (Dashboard → Edit template → Template settings → API keys).

Placeholder naming

Use clear, unique placeholders: img_1, img_logo, text_title, etc. They become the parameter names in your URL or JSON body.

Need help?

Check the template editor: each template shows its Render URL and which placeholders to use. Enable Dynamic on a layer to make it configurable via the API.

Go to Dashboard