Free Rendertron Alternative: Screenshot API Without Self-Hosting

2026-04-24 | Tags: [screenshot-api, rendertron, alternative, free-api, headless-chrome, ssr, seo-rendering]

Free Rendertron Alternative: Screenshot API Without Self-Hosting

Rendertron is an open-source headless Chrome rendering service built by the Google Chrome team. It's designed primarily for dynamic rendering (serving pre-rendered HTML to crawlers), but developers often use it for screenshots and PDF generation as well. The catch: Rendertron is self-hosted. You run it, maintain it, and manage Chromium crashes, Docker containers, and memory spikes. If you're using it specifically for screenshots, there's a hosted API that handles the infrastructure.

Try It Instantly

# PNG screenshot
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=png" -o screenshot.png

# Full page
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&full_page=true&format=webp" -o fullpage.webp

# PDF
curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=pdf" -o page.pdf

No Docker. No Chromium instance to manage. One HTTP call.

What Rendertron Does (and What This Covers)

Rendertron provides two primary features: 1. Dynamic rendering — serving rendered HTML to search crawlers for SEO (Googlebot, etc.) 2. Screenshot/PDF endpoints/screenshot/URL and /pdf/URL

If you're using Rendertron for screenshots or PDFs, this API replaces those endpoints directly. If you're using Rendertron for dynamic rendering / SEO pre-rendering, that's a different use case — you'd still need a rendering proxy.

Feature Comparison

Feature Rendertron (self-hosted) This API (hosted)
Signup required No (self-hosted) No
Infrastructure required Yes (Docker/Node.js + Chromium) No
PNG screenshots Yes Yes
WebP screenshots No (via raw Chromium options) Yes
JPEG screenshots Yes Yes
PDF export Yes Yes
Full page capture Yes Yes
Custom viewport Yes Yes (width, height, scale up to 3x)
Dark mode No Yes
Ad blocking No Yes (25+ domains)
Custom delay Yes (renderDelay param) Yes
wait_for selector No Yes (CSS selectors, up to 15s)
Custom JavaScript No Yes (2KB inline)
Element selector No Yes (CSS selectors)
Retina (2x/3x) Via deviceScaleFactor Yes (up to 3x)
Dynamic HTML rendering Yes (core feature) No
SEO pre-rendering Yes No
Self-hostable Yes No

URL Pattern Comparison

Rendertron screenshot endpoint:

https://your-rendertron-instance.com/screenshot/https://example.com?width=1280&height=800

This API:

https://hermesforge.dev/api/screenshot?url=https://example.com&width=1280&height=800&format=png

Migration Example

Before (self-hosted Rendertron):

const renderUrl = `https://${RENDERTRON_HOST}/screenshot/` +
  encodeURIComponent('https://example.com') +
  '?width=1280&height=800';

const resp = await fetch(renderUrl);
const buffer = await resp.arrayBuffer();
// returns JPEG by default

After (hosted API):

const params = new URLSearchParams({
  url: 'https://example.com',
  width: '1280',
  height: '800',
  format: 'png'  // or 'webp', 'jpeg'
});

const resp = await fetch(`https://hermesforge.dev/api/screenshot?${params}`);
const buffer = await resp.arrayBuffer();

Python Replacement

Before:

import requests

render_url = f"https://{RENDERTRON_HOST}/screenshot/{target_url}"
resp = requests.get(render_url, params={"width": 1280, "height": 800})
with open("screenshot.jpg", "wb") as f:
    f.write(resp.content)

After:

import requests

resp = requests.get("https://hermesforge.dev/api/screenshot", params={
    "url": "https://example.com",
    "width": "1280",
    "height": "800",
    "format": "webp"
})
with open("screenshot.webp", "wb") as f:
    f.write(resp.content)

Rendertron PDF Migration

Before:

curl "https://your-rendertron.com/pdf/https://example.com" -o page.pdf

After:

curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=pdf&full_page=true" -o page.pdf

Self-Hosting Cost Comparison

Running Rendertron yourself requires: - A VPS or container host with enough RAM for Chromium (~512MB–1GB per headless instance) - Docker or Node.js runtime maintenance - Concurrency management (each screenshot request blocks an instance) - Chromium crash recovery (memory leaks, zombie processes) - TLS/SSL if exposed to HTTPS traffic

For screenshot use cases — especially side projects and low-to-medium volume tools — outsourcing to an API is almost always cheaper once you factor in server time and maintenance overhead.

What This API Adds (That Rendertron Lacks)

Dark mode. Rendertron doesn't expose a dark mode toggle. This API does:

curl "https://hermesforge.dev/api/screenshot?url=https://example.com&dark_mode=true&format=webp" -o dark.webp

WebP output. Rendertron defaults to JPEG. WebP is 30–50% smaller:

curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=webp" -o screenshot.webp

Ad blocking. 25+ ad/tracker domains blocked by default — cleaner screenshots without ad overlays:

curl "https://hermesforge.dev/api/screenshot?url=https://example.com&format=png" -o clean.png

Element capture. Screenshot a specific CSS selector:

curl "https://hermesforge.dev/api/screenshot?url=https://example.com&selector=.hero&format=png" -o hero.png

Retina scale. 2x or 3x device pixel ratio:

curl "https://hermesforge.dev/api/screenshot?url=https://example.com&scale=2&format=png" -o retina.png

When to Use Which

Rendertron is better if you need: - Dynamic rendering / SEO pre-rendering for crawlers - Full control over the Chromium instance (custom flags, proxy config) - Self-hosted infrastructure with no external dependencies - Tight integration with App Engine or GCP infrastructure

This free alternative is better if you need: - Screenshots or PDFs without managing Chromium infrastructure - Dark mode, WebP output, or element-specific captures - Ad-blocked screenshots by default - Zero maintenance overhead - Testing capture parameters without provisioning a server - One-time or low-volume screenshot needs without a subscription

Pricing Comparison

Tier Rendertron (self-hosted) This API (hosted)
Free Server costs Unlimited (2/min, no key)
Entry level Server + maintenance time $4 / 30 days
Mid volume Larger instance or cluster $9 / 30 days

Rendertron is free to run but has real infrastructure costs. This API uses one-time purchasing — no servers to manage, no recurring charges.

Getting Started

No infrastructure needed:

https://hermesforge.dev/api/screenshot?url=https://example.com&format=png

Try parameters visually in the interactive screenshot tool.

For higher volume, get a free API key — 50 requests/day, no payment required.