RenderShotGet a free API key

Build an automated website screenshot pipeline (no headless Chrome)

You need fresh screenshots of a list of URLs — daily, or on a webhook. The tempting path is "just run Puppeteer." The cheaper path is one HTTP call to a screenshot API.

What "owning the browser" really costs

A self-hosted capture service means: a container with Chromium, memory tuned so it doesn't OOM under load, a queue so concurrent jobs don't crash it, retries for flaky pages, and an on-call rotation when it falls over at 2am. That's real infrastructure for what is, ultimately, a side feature.

One call instead

curl 'https://screenshot-e-pdf-render.p.rapidapi.com/v1/screenshot?url=https://example.com&type=webp&fullPage=true&blockAds=true&blockCookieBanners=true' \
  -H 'X-RapidAPI-Key: YOUR_KEY' \
  -H 'X-RapidAPI-Host: screenshot-e-pdf-render.p.rapidapi.com' \
  --output shot.webp

Add device=iphone_15 for mobile, darkMode=true for dark theme, waitForSelector=.chart to wait for content, or response=json for base64 output.

Schedule it (Node)

import { writeFile } from 'node:fs/promises';

const URLS = ['https://example.com', 'https://example.com/pricing'];
const H = { 'X-RapidAPI-Key': process.env.RAPIDAPI_KEY,
            'X-RapidAPI-Host': 'screenshot-e-pdf-render.p.rapidapi.com' };

for (const url of URLS) {
  const q = new URLSearchParams({ url, type: 'webp', fullPage: 'true' });
  const r = await fetch(`https://screenshot-e-pdf-render.p.rapidapi.com/v1/screenshot?${q}`, { headers: H });
  await writeFile(`shots/${encodeURIComponent(url)}.webp`, Buffer.from(await r.arrayBuffer()));
}

Run it from cron, a GitHub Actions schedule, or a serverless function. Push the files to S3/Drive and you have an archive.

No code? Use n8n / Make / Zapier

Add an HTTP Request node pointing at /v1/screenshot with the two RapidAPI headers, set the response to file, and wire it into a storage or Slack node. URL in, image out — no server.

Detect changes automatically

Capturing is half the job; knowing when a page changed is the other half. Instead of eyeballing screenshots, run a visual diff between today's capture and yesterday's, and only alert when difference_percentage crosses a threshold. See visual regression in CI.

Keep it clean and safe

Try it

RenderShot is a screenshot + PDF API with device emulation, WebP, dark mode and ad/cookie blocking. Free tier, no card; one key via RapidAPI.

Start free →Code examples