Website Screenshot Comparison — Visual Diff Tool
Pricing
Pay per usage
Go to Apify Store

Website Screenshot Comparison — Visual Diff Tool
Compare two web pages pixel-by-pixel with visual diff overlay. Configurable threshold, dimension matching, match percentage. Playwright + Pillow. For QA visual regression testing, competitor site monitoring, and brand compliance verification.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
C R
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Screenshot Comparison / Visual Diff API
Apify Actor that takes screenshots of two URLs and compares them pixel-by-pixel.
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
baselineUrl | string | ✅ | — | Reference / baseline page URL |
compareUrl | string | ✅ | — | Page to compare against baseline |
viewport | string | ❌ | desktop | Viewport preset: desktop (1920×1080), tablet (768×1024), mobile (375×812) |
threshold | number | ❌ | 0.1 | Per-channel pixel difference threshold (0–1) |
fullPage | boolean | ❌ | false | Capture full scrollable page height |
Output
| Field | Type | Description |
|---|---|---|
baseline_url | string | Normalized baseline URL |
compare_url | string | Normalized compare URL |
viewport | string | Viewport preset used |
match_percentage | number | Percentage of matching pixels (0–100) |
diff_percentage | number | Percentage of differing pixels (0–100) |
total_pixels | integer | Total pixels compared |
different_pixels | integer | Number of pixels that differ |
threshold | number | Threshold used |
dimensions_match | boolean | Whether baseline and compare had identical dimensions |
diff_image_base64 | string | Base64-encoded PNG diff overlay (red = different) |
diff_overlay_url | string | Public URL to download the diff overlay PNG |
baseline_dimensions | object | {width, height} of baseline screenshot |
compare_dimensions | object | {width, height} of compare screenshot |
warnings | array | List of warning/error messages |
timestamp | string | ISO 8601 UTC timestamp |
success | boolean | Whether the comparison completed successfully |
error | string | Error message (null on success) |
Local Development
# Install dependenciespip install -r requirements.txtplaywright install chromium --with-deps# Run locallypython -m src