API Status: Online

URLs and HTML to screenshots & PDFs

One API call. Sub-second rendering. Pixel-perfect output. Free tier with 100 renders/month — no credit card needed.

Get Free API Key Try the Live Demo ↓
live demo — POST /v1/screenshot
Enter a URL and click Screenshot to see it in action. curl -X POST https://api.renderapi.dev/v1/screenshot \ -H "x-api-key: YOUR_KEY" \ -d '{"url": "https://stripe.com"}'
Integration

Three lines of code

Works with any language. Here are the most common integrations.

# Screenshot a URL
curl -X POST https://api.renderapi.dev/v1/screenshot \
  -H "Content-Type: application/json" \
  -H "x-api-key: rapi_live_YOUR_KEY" \
  -d '{
    "url": "https://example.com",
    "format": "png",
    "width": 1280,
    "height": 800
  }'

# Generate a PDF from HTML
curl -X POST https://api.renderapi.dev/v1/pdf \
  -H "Content-Type: application/json" \
  -H "x-api-key: rapi_live_YOUR_KEY" \
  -d '{
    "html": "<h1>Invoice #1042</h1><p>Amount: $420.00</p>",
    "format": "A4"
  }'
const response = await fetch('https://api.renderapi.dev/v1/screenshot', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': process.env.RENDERAPI_KEY,
  },
  body: JSON.stringify({
    url: 'https://example.com',
    format: 'png',
    width: 1280,
    full_page: true,
  }),
});

const { url, duration_ms } = await response.json();
console.log(`Screenshot ready: ${url} (${duration_ms}ms)`);
import requests

response = requests.post(
    "https://api.renderapi.dev/v1/screenshot",
    headers={"x-api-key": RENDERAPI_KEY},
    json={
        "url": "https://example.com",
        "format": "png",
        "width": 1280,
        "dark_mode": True,
    },
)

data = response.json()
print(f"Screenshot: {data['url']} ({data['duration_ms']}ms)")
Capabilities

Everything you need for rendering

Built for developers who need reliable, fast, and flexible HTML-to-image/PDF conversion.

📸

Screenshots

PNG, JPEG, WebP. Full page or viewport. Element selectors. Retina scaling up to 3x. Ad blocking included.

📄

PDF Generation

A4, Letter, Legal, or custom sizes. Headers, footers, margins. Print backgrounds. Page count in response.

Sub-Second Renders

Persistent browser pool means no cold starts. Most renders complete in under 800ms. Caching for repeat requests.

🌙

Dark Mode

One parameter to capture any site in dark mode. Works with sites that respect prefers-color-scheme.

🧩

Templates

Create reusable HTML templates with Handlebars. Pass dynamic data to generate invoices, reports, OG images.

🔗

Webhooks

Get notified when renders complete. HMAC-signed payloads. Automatic retries with exponential backoff.

Pricing

Simple, usage-based pricing

Start free. Scale as you grow. No surprise bills — overage is billed per render at a known rate.

Free
For testing and side projects
$0
forever
  • 100 renders / month
  • PNG, JPEG, WebP, PDF
  • 1280×800 max viewport
  • Community support
Get Started
Starter
For small apps and MVPs
$9/mo
+ $0.003/render overage
  • 5,000 renders / month
  • All formats + templates
  • 3840×2160 max viewport
  • Webhook callbacks
  • Email support
$0.003 per extra render
Business
For high-volume usage
$49/mo
+ $0.0015/render overage
  • 100,000 renders / month
  • Everything in Pro
  • Dedicated concurrency
  • Custom CSS/JS injection
  • Slack + priority support
$0.0015 per extra render