Screenshot API

The screenshot API
that takes HTML, not URLs

Send your HTML template, get a pixel-perfect PNG back. No public URL needed, no browser to spin up, no infrastructure to maintain.

Start Free — 100 renders/mo View API Docs
API Reference

One endpoint. One request. One image.

POST your HTML string with width, height, and format. Get a CDN URL back in ~200 ms.

POST /v1/render
curl
curl -X POST https://api.renderpix.dev/v1/render \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "html":   "<h1 style=\"font-size:80px;color:white;background:#0f172a;padding:80px\">Hello</h1>",
    "width":  1200,
    "height": 630,
    "format": "png"
  }'

# Response:
# {
#   "url":    "https://cdn.renderpix.dev/renders/abc123.png",
#   "width":  1200,
#   "height": 630,
#   "format": "png",
#   "ms":     187
# }
Language Support

Works from any language or runtime

It's a plain HTTPS endpoint — any HTTP client works.

𝓃
Node.js
native fetch
🐍
Python
requests / httpx
🟨
PHP
Guzzle / curl
Java / Kotlin
OkHttp
💎
Ruby
Net::HTTP / Faraday
🦛
Go
net/http
⚙️
Rust
reqwest
📜
cURL / Shell
any CI pipeline
Comparison

RenderPix vs URL-based screenshot APIs

Most screenshot APIs require a public URL. RenderPix accepts raw HTML — no public deployment needed.

Service Accepts HTML Public URL required Custom templates Pricing (2,000 renders)
RenderPix Yes No Yes $9/mo
htmlcsstoimage Yes No Yes ~$29/mo
ScreenshotOne No Yes Limited $19/mo
Urlbox No Yes Limited $29/mo
FAQ

Common questions

Why does RenderPix take HTML instead of a URL?

URL-based screenshot APIs require your page to be publicly accessible — which means you can't render staging environments, password-protected pages, or dynamically generated templates without jumping through hoops. With HTML input, you send the content directly: no public URL, no authentication workarounds, no flakiness from network conditions.

What output formats are supported?

PNG, JPEG, and WebP. Set "format": "webp" for the smallest file size, "png" for lossless quality, or "jpeg" for photos. You can also pass a "quality" parameter (1–100) for JPEG and WebP output.

Can I set a custom viewport size?

Yes — pass any width and height in the request body. Common sizes: 1200×630 for OG images, 1080×1080 for Instagram, 1500×500 for Twitter headers. There's no upper limit on resolution for paid plans.

How long are rendered images stored?

Rendered images are stored on our CDN for 30 days. For permanent storage, download the image to your own S3 bucket or storage service immediately after rendering. The CDN URL is fast to serve but should not be used as permanent storage.

Screenshot API with no URL required

Send HTML, get an image. Works from any language. Free tier, no credit card.