RenderShotGet a free API key

Visual Diff API — compare web pages pixel by pixel

Most screenshot APIs hand you images and leave the comparison to you. RenderShot compares two URLs for you in one call — metrics first, image only when you ask.

What it does

The POST /v1/diff endpoint renders a baseline and a candidate URL under identical settings, then runs a pixel comparison (pixelmatch). You get the difference_percentage, different_pixels and total_pixels — and an optional base64 diff image. Built for visual regression testing, release checks and change detection.

Why it's different

CapabilityRenderShotTypical screenshot API
Built-in pixel diffYes — /v1/diffNo — compare yourself
Metrics-first (no image needed)Yesn/a
Ignore regions & selectorsYesn/a
SHA-256 fast path (identical = 0%)Yesn/a
Dimension handling (pad / crop / resize)Yesn/a
Anti-aliasing controlYesn/a

"Compare yourself" means downloading both images and running your own pixel comparison. RenderShot does it server-side and returns the number.

Key features

Catch regressions in CI

curl --request POST \
  --url https://screenshot-e-pdf-render.p.rapidapi.com/v1/diff \
  --header 'X-RapidAPI-Key: YOUR_KEY' \
  --header 'X-RapidAPI-Host: screenshot-e-pdf-render.p.rapidapi.com' \
  --header 'Content-Type: application/json' \
  --data '{
    "baseline":  { "url": "https://prod.example.com/pricing" },
    "candidate": { "url": "https://staging.example.com/pricing" },
    "options": { "diffOutput": "metrics", "fullPage": true,
                 "ignoreSelectors": [".cookie-banner"] }
  }'

Response (no image, fast):

{ "changed": true, "difference_percentage": 2.41,
  "different_pixels": 18960, "total_pixels": 786432, "fast_path": false }

Read difference_percentage and fail the build above your threshold — no Chromium in your pipeline.

FAQ

What is a visual diff API?
It captures two pages and compares them pixel by pixel, returning how much changed. RenderShot's /v1/diff does this server-side and returns the difference percentage.
How do I detect visual regressions?
Diff your production URL (baseline) against preview/staging (candidate), read difference_percentage, fail above threshold.
Can I ignore banners and ads?
Yes — ignoreSelectors and ignoreRegions exclude them; identical captures take a SHA-256 fast path.

Start free →Read the docs