Rendex
Use Case

Convert HTML to Images with a Single API Call

Pass raw HTML — get back a pixel-perfect PNG, JPEG, or WebP. No hosted page required. Generate social cards, invoices, OG images, and email previews without running a browser.

The Problem

Generating images from HTML typically requires spinning up a headless browser, managing Chromium dependencies, and handling memory-intensive rendering. Self-hosted Puppeteer adds cold starts, infrastructure costs, and operational complexity — especially in serverless environments where browser binaries are too large to deploy.

The Solution

Rendex renders HTML to images on Cloudflare's edge network. Send your HTML as a string, get back a high-quality image. No browser install, no cold starts, no infrastructure. Works from any language that can make an HTTP request.

See it in action

An HTML invoice template on the left rendered by Rendex into a pixel-perfect invoice PNG on the right.

Get Started in Minutes

html_to_image.py
from rendex import Rendex
from pathlib import Path

rendex = Rendex("YOUR_API_KEY")

html = """
<div style="width:1200px;height:630px;display:flex;align-items:center;
  justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);
  font-family:system-ui;color:white;font-size:48px;font-weight:bold;">
  Hello from Rendex
</div>
"""

result = rendex.screenshot(html=html, format="png", width=1200, height=630)
Path("card.png").write_bytes(result.image)
html-to-image.js
import Rendex from "@copperline/rendex";
import { writeFileSync } from "fs";

const rendex = new Rendex("YOUR_API_KEY");

const html = `
<div style="width:1200px;height:630px;display:flex;align-items:center;
  justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);
  font-family:system-ui;color:white;font-size:48px;font-weight:bold;">
  Hello from Rendex
</div>
`;

const result = await rendex.screenshot({ html, format: "png", width: 1200, height: 630 });
writeFileSync("card.png", Buffer.from(result.image));
html-to-image.sh
curl -X POST https://api.rendex.dev/v1/screenshot \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<div style=\"width:1200px;height:630px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);font-family:system-ui;color:white;font-size:48px;font-weight:bold;\">Hello from Rendex</div>",
    "format": "png",
    "width": 1200,
    "height": 630
  }' --output card.png

100 free API calls/month — no credit card required. Get your API key and start building.

Built for This Use Case

Raw HTML Input

Pass any HTML string — no hosted page required. Include inline styles, Google Fonts, SVGs, and complex layouts.

Multiple Formats

Output as PNG, JPEG, WebP, or PDF. Control quality, dimensions, and device scale factor up to 3x retina.

Edge Rendering

Rendered on Cloudflare's 300+ edge locations. Sub-3-second rendering with zero cold starts.

CSS & JS Support

Full CSS support including Flexbox, Grid, and animations. Inject custom JavaScript to manipulate content before capture.

Batch Rendering

Fan out concurrent render calls to process invoices, social cards, or certificates in parallel — one HTML template per call. (The URL-batch endpoint captures many live URLs in one request; templated HTML is rendered per call.)

Async + Webhooks

Fire-and-forget with async mode. Receive HMAC-signed webhook callbacks when rendering completes.

Start Free, Scale as You Grow

100 calls/month free. Starter at $69/mo for 10K calls (or $58/mo billed annually — 2 months free). Pro at $179/mo for 100K calls.

Frequently Asked Questions

Related Resources