All lintlab tools

Visual Regression Testing

What it does

Catch layout breaks before your users do. Give it a list of public URLs and, optionally, a baseline image for each. You get a full-page screenshot, the percentage of pixels that changed, and a diff image with the changes highlighted. It suits release checks, monitoring a competitor's page, or proving a deploy didn't move anything.

Open the Actor on Apify

Try the ready-made Task · Visual Regression Check GitHub Action

Input and output from a real run

We ran the Actor on Apify on 2026-09-30 (run zutnA1TwQytryz0i4) against a page and a saved baseline, cropped to a 560-pixel viewport. The input and output below come straight from that run, and the image is the diff it produced.

Input JSON

{
  "urls": [
    "https://lintlab.dev/demo/after"
  ],
  "baselineUrls": [
    "https://lintlab.dev/demo/before"
  ],
  "mode": "viewport",
  "device": "laptop",
  "captureHeight": 560
}

Output excerpt

{
  "url": "https://lintlab.dev/demo/after",
  "status": 200,
  "mode": "viewport",
  "device": "laptop",
  "width": 1440,
  "height": 560,
  "diff": {
    "baseline": "https://lintlab.dev/demo/before",
    "diffPixels": 9963,
    "diffPercent": 1.235491,
    "changed": true
  }
}

Visual diff from the demo run

Price and limits

$0.004 per successful capture; $0.002 per computed diff; $0.00 start fee from lintlab. Apify platform usage is included in these prices.

  • At most 200 input URLs; one baseline per URL when comparing.
  • Public HTTP(S) pages only. No login, cookie input, CAPTCHA handling, user-supplied proxy, or stealth behavior.
  • PNG and JPEG baselines are supported. Dynamic pages can vary between runs.

When a free tool is better

Use Playwright's built-in screenshot assertion if your tests already run in Playwright and you're happy to keep snapshot files in your repo. It's free and runs in your CI. This Actor is for when you want hosted runs on a schedule, no test code, or pages you don't own the code for. Playwright toHaveScreenshot documentation.