Render HTML
into images
Send HTML + CSS, get back a pixel-perfect PNG or JPEG. One API call — headless Chromium does the rest. Built for social cards, OG images, and dynamic visuals.
$ curl https://api.html2media.com/images \
-H "X-API-Key: htm_..." \
-d '{"html": "<h1>Hello</h1>", "width": 1080, "height": 1080}'
{
"job_id": "abc-123",
"status": "queued"
}What you get
Real Chromium rendering
Your HTML + CSS rendered by headless Chromium — exactly what a browser sees. Web fonts, flexbox, gradients, all of it.
PNG or JPEG
Pick the format and quality. Transparent PNGs for overlays, compressed JPEGs for thumbnails.
Any dimensions
Set width and height per request — 1080×1080 social squares, 1200×630 OG images, custom canvases.
Sync or webhook
Poll for status or pass a callback URL — works for one-off renders and high-volume batches alike.
R2-backed output
Rendered images stored on Cloudflare R2 and served from a fast URL — no blobs in your job records.
Multiple keys per account
Rotate keys safely, label them per environment, revoke individually from the dashboard.
See it in action
Same API, three flavors. Pick your stack.
# Submit a render job
curl -X POST https://api.html2media.com/images \
-H "X-API-Key: htm_..." \
-H "Content-Type: application/json" \
-d '{"html": "<h1>Hello</h1>", "css": "h1{color:#e11d48}", "format": "png"}'
# Response
{"job_id":"abc-123","status":"queued"}
# Poll until done — "url" is the rendered image
curl https://api.html2media.com/images/abc-123 \
-H "X-API-Key: htm_..."