ScreenshotRun and Snapshot Site both turn URLs into images through an API. The overlap ends pretty quickly after that. Snapshot Site is a European service with a smaller parameter set, EUR pricing, a Visual Diff feature for comparing two page states. Developers looking for a Snapshot Site alternative usually land here because they've outgrown that parameter set. ScreenshotRun covers more ground: six output formats, content blocking, stealth mode, geolocation, certified timestamps, scroll video, a Page Analyze API for structured data extraction.
Full disclosure: I'm behind ScreenshotRun. Both APIs have public docs, so check any claim here against the source.
What Snapshot Site offers
Snapshot Site runs three API versions. v1 is the simplest: URL, viewport size, delay, format, a cookie-banner toggle. No injection, no element hiding, no advanced waiting logic.
v2 adds CSS selector hiding (remove elements before capture) plus JavaScript injection. Still no output resizing, no format options beyond the basics, no content blocking beyond cookies.
v3 is where Snapshot Site stands apart. Their analyze endpoint evaluates pages with AI: readability scores, content summaries, topic tags, blank page detection. Their compare endpoint takes two URLs (or two image URLs) and generates a visual diff with mismatch percentage plus a highlighted overlay. That diff feature is genuinely useful for QA workflows. ScreenshotRun doesn't offer anything like it as a single endpoint.
Output formats across all endpoints: PNG, JPEG, WebP, PDF, rendered HTML. Authentication uses a custom header (x-snapshotsiteapi-key). SDKs for TypeScript, Python, PHP are available, along with a CLI tool.
How the APIs compare
Line up the parameter lists and the gap is obvious. Snapshot Site has around a dozen parameters total. ScreenshotRun has over forty. Not for the sake of complexity. Each one solves a specific problem that developers hit when capturing pages at scale.
| Capability | ScreenshotRun | Snapshot Site |
|---|---|---|
| Output formats | PNG, JPEG, WebP, AVIF, TIFF, PDF | PNG, JPEG, WebP, PDF, HTML |
| Authentication | Standard Bearer auth header | Custom header (x-snapshotsiteapi-key) |
| Full-page capture | Auto-scrolls, triggers lazy images before capture | Yes (fullSize parameter) |
| Cookie/ad/chat blocking | Three separate toggles | Cookie banners only (hideCookie) |
| Output resize | resize_width, resize_height | Not available |
| Stealth mode | Built-in | Anti-bot mentioned, no details published |
| Dark mode | dark_mode parameter | Not available |
| Geolocation | geolocation + proxy | Not available |
| Certified timestamps | certified parameter | Not available |
| Scroll video | MP4/GIF with speed control | Not available |
| CSS/JS injection | Both in same request | JS only (v2+), no CSS injection |
| Element hiding | hide_selectors[] parameter | hide parameter (v2+) |
| HTML/Markdown to image | html, markdown parameters | Not available |
| Webhook delivery | webhook_url parameter | Not available |
| Cache control | Configurable TTL | Not available |
| Metadata extraction | extract_metadata parameter | Not available |
| Visual diff | Not available | v3/compare endpoint |
| AI page analysis | Page Analyze API (DOM, forms, elements) | AI summary + quality score (Mega AI plan) |
| PDF generation | Same endpoint, landscape/margins/format | PDF output, limited controls |
| MCP server | First-party | First-party (hosted OAuth) |
| Click before capture | click_selector parameter | Not available |
| Wait for selector | wait_for_selector parameter | waitForDom (v3 only) |
The Visual Diff advantage
Snapshot Site's compare endpoint is their standout feature. You send two URLs (or two pre-existing image URLs), and the API returns three images: the before state, the after state, a diff overlay highlighting changes. Plus a mismatch percentage. The threshold parameter controls sensitivity, so you can ignore sub-pixel rendering differences.
For QA teams checking staging against production, or monitoring tools that need to flag visual regressions, this saves building the comparison pipeline yourself. You'd normally need to capture both screenshots, align them, run pixel-level comparison with a library like pixelmatch or resemble.js, then generate the overlay. Snapshot Site does that in one call.
ScreenshotRun doesn't have a visual diff endpoint. If you need page comparison, you'd capture both screenshots through the API and run the diff yourself. For teams where visual regression detection is the primary use case, that's a genuine gap.
Where the parameter gap matters
The table above shows a lot of "Not available" entries for Snapshot Site. Does that matter? Depends on what you're capturing.
Capturing your own staging server for QA diffs? Snapshot Site handles that well. You control the site, so bot detection isn't a factor. Cookie banners on your own staging probably don't exist. You don't need geolocation because you're testing one deployment. The visual diff is actually more useful here than most of ScreenshotRun's extra parameters.
Capturing third-party pages in production is a different story. Ad networks inject overlays. Chat widgets cover half the viewport. Cookie consent dialogs from every framework block the content you're trying to capture. Cloudflare and DataDome detect headless browsers and serve challenge pages instead of the actual site. Content looks different depending on the visitor's country. You end up needing content blocking, stealth mode, geolocation with real proxy IPs. Parameters that Snapshot Site simply doesn't have.
The output side has gaps too. No AVIF means you can't use the best compression for photographic content. No certified timestamps rules out legal evidence workflows. No webhooks means your batch pipeline has to poll for results instead of getting notified. No output resizing means a separate image processing step for every thumbnail you need.
AI analysis: different approaches
Both services offer some form of AI-powered page analysis, but they solve different problems.
Snapshot Site's v3/analyze returns a readability score, content summary, topic list, quality flags like blank-page detection, CAPTCHA detection, HTTP status. Useful for monitoring. You can automatically check whether a captured page actually loaded correctly. It's bundled with the Mega AI plan at €39/month.
ScreenshotRun's Page Analyze API goes in a different direction. Instead of AI-generated summaries, it extracts structured data you can pipe into your own analysis. Clean markdown for LLM input. A full DOM tree as JSON with element coordinates for layout analysis. Form field extraction with types, validation rules, hidden inputs. Clickable element mapping with bounding boxes for agent workflows. The idea is that your code decides what to do with the data, not a pre-built AI summary. Different tools for different workflows.
Code comparison
A basic full-page WebP screenshot with cookie banner removal. The HTTP method matters here. Snapshot Site uses POST with a JSON body. ScreenshotRun uses GET with query parameters. GET requests are cacheable by CDNs and proxies, you can test them in a browser address bar, debugging is simpler.
# Snapshot Site
curl -X POST "https://api.prod.ss.snapshot-site.com/api/v2/screenshot" \
-H "x-snapshotsiteapi-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"format": "webp",
"fullSize": true,
"hideCookie": true
}'
The response returns a JSON object with a link to the generated image. You need a second request to download it.
# screenshotrun (image returned directly)
curl "https://api.screenshotrun.com/v1/screenshots/capture?url=https://example.com&format=webp&full_page=true&block_cookies=true" \
-H "Authorization: Bearer YOUR_API_KEY" \
--output screenshot.webp
ScreenshotRun returns the image binary directly. One request, one response, one file on disk. Snapshot Site requires parsing the JSON response and fetching the hosted image URL separately. For batch workflows where you're capturing hundreds of pages, that extra round trip per screenshot adds up.
Pricing: free tiers and plan limits
Snapshot Site prices in EUR with four tiers. ScreenshotRun prices in USD with three.
| ScreenshotRun | Snapshot Site | |
|---|---|---|
| Free tier | 200 screenshots/mo, no card | 50 screenshots/mo, card required |
| Entry paid | $9/mo — 3,000 screenshots | €7/mo (Pro) — limit not public |
| Mid tier | $29/mo — 10,000 screenshots | €20/mo (Ultra) — limit not public |
| Top tier | $79/mo — 50,000 screenshots | €39/mo (Mega AI) — limit not public |
What stands out? First, ScreenshotRun's free tier is more generous: 200 captures versus 50, no credit card needed to start. Second, Snapshot Site doesn't publicly list screenshot limits on their paid plans, which makes cost-per-screenshot comparison difficult. Their docs mention soft limits with overage charges and hard limits that block requests, but the actual numbers require signing up.
The other pricing difference is feature gating. ScreenshotRun gives every feature on every plan. The only variable is volume. Snapshot Site gates the Visual Diff API and AI analysis behind the €39/mo Mega AI plan. The waitForDom parameter only exists on v3 endpoints, which are also tier-restricted.
SDKs and integrations
Snapshot Site has SDKs for TypeScript, Python, PHP, a CLI tool, an MCP server with hosted OAuth. Covers the most popular web languages well enough.
ScreenshotRun has 28+ integrations. SDKs for Node.js, Python, PHP, Go, Java, Ruby, C#, Rust, Kotlin, Swift, Deno. Framework-specific guides for Laravel, Django, Rails. No-code connectors for Zapier, Make.com, n8n, Google Sheets, Airtable, Slack, Discord, Power Automate, Bubble, WordPress. Both services offer first-party MCP servers for AI agent integration — Snapshot Site with hosted OAuth, ScreenshotRun with standard API key auth.
If you work in TypeScript, Python, PHP, both services have SDKs. Building in Go, Rust, Java, Kotlin? Or using a no-code platform like Zapier or Make? ScreenshotRun is the only one with an official integration for those.
When Snapshot Site is the better pick
Visual regression testing is their strongest use case. If your workflow is "capture staging, capture production, show me what changed," the compare endpoint does that in a single API call with tunable sensitivity. Building that pipeline yourself means stitching together a screenshot API, an image comparison library, glue code to align and diff the images. Snapshot Site packages all of that together.
Budget-conscious teams capturing simple pages also do fine with Snapshot Site. The Pro plan at €7/month is cheap. If cookie blocking is enough for your pages, and you're not dealing with bot detection or regional content variations, the basic capture parameters handle the job.
Why ScreenshotRun works as a Snapshot Site alternative
If you've outgrown Snapshot Site's parameter set or hit limits on their paid plans, the switch is straightforward. ScreenshotRun uses standard Bearer auth and GET requests, so migration means updating URLs and headers. Production screenshot pipelines that capture third-party pages especially benefit from the fuller parameter set. Content blocking and stealth handle bot-protected sites. Geolocation captures from specific countries. Output resizing, webhooks, certified timestamps, scroll video fill in the rest. These come up quickly once you're capturing pages you don't control. The parameter gap from the table above translates directly into code you'd otherwise have to write yourself.
If you need structured page data (not just images), the Page Analyze API is the bigger differentiator. Extracting markdown for LLM input, mapping element coordinates for layout analysis, pulling form fields for agent workflows. A different product category from screenshot capture entirely, and something Snapshot Site's AI analysis doesn't cover.
Both tools capture web pages. Snapshot Site does it with a focused set of parameters and a strong visual diff feature. ScreenshotRun does it with a wider parameter set for the cases where "just take a screenshot" isn't enough.
Migrating from Snapshot Site takes about five minutes: swap the endpoint URL, switch to Bearer auth, update parameter names. The free plan covers enough volume to validate the switch before committing. Full feature list and pricing details if you want to compare specifics.
FAQ#
No. Snapshot Site outputs PNG, JPEG, WebP, PDF, and rendered HTML. screenshotrun adds AVIF (better compression than WebP for photographic content) and TIFF (used in print and archival workflows) from the same capture endpoint.
Snapshot Site's v3/compare endpoint accepts two URLs or two image URLs and returns three images: the before state, the after state, and a diff overlay highlighting pixel-level changes. It also returns a mismatch percentage and pixel count. The threshold parameter controls sensitivity. This is useful for QA workflows comparing staging against production.
The migration is straightforward. Replace the POST endpoint with a GET request to screenshotrun, switch from the x-snapshotsiteapi-key header to a standard Authorization Bearer header, and update parameter names (fullSize becomes full_page, hideCookie becomes block_cookies). screenshotrun returns the image binary directly instead of a hosted URL, so you can simplify your download logic too.
GET requests are cacheable by CDNs and HTTP proxies, testable directly in a browser address bar, and easier to debug with standard tools. POST is typically used when sending large payloads or sensitive data in the body. For screenshot capture where you pass a URL and a few parameters, GET is the simpler choice. screenshotrun also returns the image binary directly in the response, eliminating the extra download step.
Snapshot Site offers 50 free screenshots per month, but requires a credit card to sign up. screenshotrun's free tier provides 200 screenshots per month with no credit card required. Both services offer paid plans starting under 10 EUR/USD per month.
Snapshot Site's AI analysis (available on the Mega AI plan at 39 EUR/month) returns readability scores, content summaries, topic tags, and quality flags like blank-page or CAPTCHA detection. screenshotrun's Page Analyze API takes a different approach: it extracts structured data (clean markdown, DOM-to-JSON with element coordinates, form fields, clickable elements) that you can feed into your own LLM or analysis pipeline. One gives pre-built summaries, the other gives raw data for custom analysis.