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.
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
}
}
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.