SiteShot vs ScreenshotAPI.net: Which Screenshot API Is Right for You?
Compare Site-Shot and ScreenshotAPI.net on price, capture controls, monitoring, and output. See which fits your workload—and when ScreenshotNeo is the better alternative.
For a low-cost screenshot API with documented browser controls and recurring visual-change monitoring, Site-Shot is a fit to evaluate. ScreenshotAPI.net is worth considering when its advertised bulk capture, PDF, or scrolling-video workflows match your needs. If you want clean screenshots with consent banners, popups, and chat widgets removed before capture—and billing that excludes failed or unclean results—try ScreenshotNeo first.
There is no evidence in the available product documentation for a universal winner on speed, reliability, or rendering accuracy. Choose based on required output, monthly volume, browser controls, monitoring cadence, and integration needs. Prices and plan entitlements below are vendor-listed and can change; confirm them on the linked pricing pages before budgeting.
At a glance
| Need | Best fit to investigate | What the published material says |
|---|---|---|
| Clean captures and clear result billing | ScreenshotNeo | Removes 60+ known consent platforms, newsletter popups, and chat widgets; bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing. Responses identify page verdict and billing status. |
| Low listed entry price and browser controls | Site-Shot | Lists $5/month for 2,000 included screenshots, and documents viewport, emulation, headers, geolocation, formats, and other capture controls. |
| Bulk capture, PDF, or scrolling video workflows | ScreenshotAPI.net | Advertises bulk and scheduled capture on paid plans, and scrolling video on Startup; its feature pages describe PDF and other workflows. Check the live plan matrix for exact access. |
| Built-in recurring visual change checks | Site-Shot | Offers recurring captures, visual-change percentage and page-height comparison, with email alerts. It does not provide text or element diffs. |
| Free entry without a card | ScreenshotNeo or ScreenshotAPI.net | ScreenshotNeo includes 1,000 shots/month free with no card. ScreenshotAPI.net lists 100 free captures. Site-Shot’s browser tool is free, but its API requires a subscription. |
How the two APIs differ
Site-Shot
Site-Shot accepts a URL and API key through a GET endpoint. Its product documentation says the API uses a real Chromium browser with JavaScript execution. It can return an image or JSON containing base64 image data and page response metadata. Documented controls include full-page capture, viewport dimensions and zoom, desktop or mobile emulation, custom user agents, JavaScript injection, delay and timeout, country-specific proxy rotation, GPS geolocation simulation, custom headers, PNG/JPEG/WebP, and scaled images. See the Site-Shot API documentation.
The browser-based no-signup screenshot tool is separate from the API subscription. Do not treat the browser tool as a free API tier.
ScreenshotAPI.net
ScreenshotAPI.net lists 100 free captures, an Essential plan with 1,000 screenshots for $9/month, and a Startup plan with 10,000 screenshots for $29/month. Its homepage lists scheduled and bulk screenshots for paid plans and scrolling video (MP4/GIF) on Startup. Its feature and help pages describe use cases including PDF output, bulk CSV capture, HTML-template rendering, authenticated page capture, rendered-text extraction, lazy-load support, and cookie or ad blocking. These are vendor-advertised capabilities; confirm plan availability and limits in the current plan details, features page, and help documentation.
The help page says the browser timezone defaults to UTC+0 and cannot currently be set separately, though geolocation can be configured. It says captures are retained for up to 30 days on the free tier and six months on paid plans; confirm the terms that apply to your account.
ScreenshotNeo
ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. One GET request can return PNG, JPEG, WebP, or PDF. Its capture options include full-page and element screenshots, device presets and custom viewports, dark mode, retina scale, PDF settings, custom CSS and JavaScript, click or hide selectors, wait conditions, request blocking, headers, cookies, user agent, Authorization, timezone, geolocation, transparent backgrounds, resizing, caching, signed image links, async jobs with signed webhooks, bulk capture of up to 100 URLs per call, usage information, and an OpenAPI spec. The parameters used by other screenshot APIs also work to make migrations easier. See the ScreenshotNeo API documentation.
Pricing and volume
| Provider | Published plan examples | What to verify |
|---|---|---|
| ScreenshotNeo | Free: 1,000 shots/month, no card. Starter: $5 for 3,000. Growth: $15 for 15,000. Pro: $39 for 60,000. Scale: $99 for 250,000. Business: $249 for 1,000,000. Yearly billing gives two months free. | Confirm current billing options and your expected capture mix. Every feature is available on every plan. |
| Site-Shot | X-Lite: $5/month for 2,000 included screenshots; Lite: $15 for 10,000; Optimal: $50 for 50,000; Professional: $500 for 625,000. | The current pricing page also describes included captures and storage capacity. Confirm allowance, storage, reset, and overage terms at checkout. Listed overage rates are $0.0025, $0.0015, $0.0010, and $0.0008 per screenshot respectively. |
| ScreenshotAPI.net | 100 free captures; Essential: $9/month for 1,000; Startup: $29/month for 10,000. | Confirm billing interval, feature access by tier, retention, and any overage or concurrency rules. |
At the listed entry tiers, Site-Shot has the lower monthly price, while ScreenshotNeo’s $5 Starter plan includes more screenshots than Site-Shot’s $5 X-Lite listing. Headline price alone is not a full cost comparison: account for output type, retries, storage, overages, capture frequency, and whether unsuccessful results are charged. ScreenshotNeo says only clean shots are billed; bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers report the verdict and billing status.
Choose by workload
- Set the output requirement. Decide whether the job needs a still image, PDF, scrolling video, rendered text, or JSON metadata. Site-Shot documents PNG/JPEG/WebP and JSON metadata. ScreenshotAPI.net advertises PDF and video workflows, with plan limits. ScreenshotNeo supports PNG, JPEG, WebP, and PDF.
- Estimate volume and cadence. Count URLs per run, runs per day, expected retries, and retention needs. Compare included volume and overage rules rather than multiplying a headline price alone.
- List rendering constraints. Record viewport, full-page behavior, mobile emulation, JavaScript readiness, authentication, cookies and headers, geolocation, timezone, lazy-loaded content, and any selectors that must be captured or hidden.
- Define monitoring behavior. Specify interval, alert destination, and what counts as a meaningful change. Site-Shot provides recurring captures as often as hourly, uses UTC, and sends email alerts. Its visual difference reports how much changed, not a semantic description of what changed; there is no text or element diff.
- Check operational fit. Verify worker or concurrency limits, scheduling workflow, response format, retention, API key handling, webhooks, and whether a failed or cached result is billable.
- Run a representative pilot. Use the same URLs and viewport settings, including a slow page and a page with consent UI. Compare output quality and completion behavior in your environment. The reviewed vendor sources do not provide an independent equivalent-page speed or reliability benchmark.
When Site-Shot is the right fit
- Your API workload fits its included capture volume and listed overage terms.
- You need its documented Chromium-based rendering controls, such as user agent, custom headers, proxy country, or simulated GPS location.
- You want recurring visual monitoring with a percentage-change measure and email alerts, and a visual score is enough for your workflow.
Its scheduled-capture documentation says: “It measures how much changed, not what changed — there is no text or element diff.” Treat that as a visual signal, not an explanation of a content change or a compliance archive.
When ScreenshotAPI.net is the right fit
- A bulk URL or CSV workflow is central to the job.
- You need one of its advertised PDF, scrolling-video, HTML-template, authenticated capture, or text-extraction workflows, and the selected plan includes it.
- The free allowance is useful for a small evaluation, or the listed paid tier aligns with your volume.
Verify the current plan matrix before committing: feature access varies by plan, and retention statements in the help center should be checked against your account terms.
Or skip the browser setup
With ScreenshotNeo, a single GET request returns a screenshot. For example, using cURL:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
It removes cookie banners, popups, and chat widgets before the shot. Bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card, and paid plans start at $5 for 3,000.
Create a free ScreenshotNeo account to get 1,000 screenshots a month with no card.
Code examples for a fair API evaluation
Provider authentication and response formats differ, so copy the exact endpoint, parameter names, and key format from the provider’s current official documentation. The following snippets show a reusable request pattern, not provider-specific endpoint details. Save the response bytes for image endpoints; inspect content type and status before treating a response as an image.
Python request pattern
import os
import requests
endpoint = os.environ["SCREENSHOT_ENDPOINT"]
api_key = os.environ["SCREENSHOT_API_KEY"]
params = {
"url": "https://example.com",
# Add the provider's documented options here, such as output format or viewport.
}
headers = {"Authorization": f"Bearer {api_key}"} # Replace if the provider uses another auth scheme.
response = requests.get(endpoint, params=params, headers=headers, timeout=(10, 90))
response.raise_for_status()
content_type = response.headers.get("content-type", "")
if "image/" not in content_type:
raise RuntimeError(f"Expected image response, got {content_type}: {response.text[:500]}")
with open("shot", "wb") as output:
output.write(response.content)
Node.js request pattern
const endpoint = process.env.SCREENSHOT_ENDPOINT;
const apiKey = process.env.SCREENSHOT_API_KEY;
if (!endpoint || !apiKey) throw new Error("Set SCREENSHOT_ENDPOINT and SCREENSHOT_API_KEY");
const url = new URL(endpoint);
url.searchParams.set("url", "https://example.com");
// Add only options documented by the selected provider.
const response = await fetch(url, {
headers: { Authorization: `Bearer ${apiKey}` }, // Adjust to the provider's documented auth scheme.
signal: AbortSignal.timeout(90000),
});
if (!response.ok) throw new Error(`Screenshot request failed: HTTP ${response.status}`);
const contentType = response.headers.get("content-type") ?? "";
if (!contentType.startsWith("image/")) {
throw new Error(`Expected image response, got ${contentType}: ${(await response.text()).slice(0, 500)}`);
}
await Bun.write("shot", new Uint8Array(await response.arrayBuffer()));
The Node.js example uses Bun’s file-writing helper. In Node.js without Bun, replace the final line with import { writeFile } from 'node:fs/promises'; await writeFile('shot', Buffer.from(await response.arrayBuffer()));.
ScreenshotNeo Python example
This is the documented ScreenshotNeo request shape; see the API docs for supported options.
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
timeout=90,
)
open("shot.webp", "wb").write(r.content)
ScreenshotNeo Node.js example
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
Check the response status and content type in production before saving the body. For cURL, Python, and Node.js ScreenshotNeo requests, the full examples and current options are in the documentation.
Configuration details that affect results
| Setting | Why it matters | Comparison notes |
|---|---|---|
| Viewport and device emulation | Responsive layouts, navigation, and lazy content vary by viewport. | Site-Shot documents dimensions, zoom, and desktop/mobile emulation. ScreenshotNeo offers 12 device presets and custom viewports. |
| Full-page capture | Long pages can require scrolling and trigger lazy-loaded images. | Confirm whether full-page capture waits for content and how page height is handled. |
| Wait condition | Capturing too early can miss client-rendered content or capture a loading state. | Use documented selector, delay, or network-idle controls where available. ScreenshotAPI.net help discusses lazy-load and delay support; Site-Shot documents delays and timeouts. |
| Authentication and headers | Private pages may need cookies, authorization, or custom headers. | Use test credentials with narrow access. Confirm the provider’s supported mechanism and avoid exposing secrets in URLs or logs. |
| Timezone and geolocation | Locale-sensitive pages can display different dates, offers, or regional content. | Site-Shot documents GPS simulation. ScreenshotAPI.net says timezone is fixed at UTC+0 while geolocation can be set. Check each provider’s current controls. |
| Output and scaling | Format, dimensions, and image quality affect downstream storage and visual comparison. | Site-Shot documents PNG/JPEG/WebP and scaling. ScreenshotNeo supports PNG/JPEG/WebP, retina scale, resizing, and PDF options. |
| Consent and overlays | Cookie banners and chat prompts can obscure the target content. | ScreenshotNeo accepts consent banners and removes 60+ known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. |
Performance, reliability, and cost controls
- Do not assume a speed winner. The reviewed sources contain no independent benchmark on identical pages. Measure your own URLs, regions, viewport, and output settings.
- Bound concurrency. Start with a small number of parallel requests and increase only while latency, throttling, and error rates remain acceptable. Site-Shot’s pricing page lists dedicated worker counts by tier; confirm how that maps to your traffic.
- Use timeouts and controlled retries. Set a client timeout that allows for browser startup and page rendering. Retry transient network or server failures with backoff and a maximum attempt count; do not endlessly repeat invalid URLs or authentication failures.
- Cache stable pages. Avoid recapturing unchanged pages more often than the application needs. ScreenshotNeo supports caching with a chosen TTL; confirm cache semantics with any provider you evaluate.
- Separate capture failure from target-page failure. Record HTTP status, response type, provider metadata, and a request identifier if available. A successful API response does not necessarily mean the target rendered the intended content.
- Budget for the actual unit of work. Include full-page or high-resolution captures, retries, storage, retention, schedules, and overages in cost estimates. For ScreenshotNeo, the response includes page-verdict and billing headers, and non-clean results and cache hits cost nothing.
- Protect credentials. Keep API keys server-side or in a secrets manager. Avoid logging authorization headers, cookies, or signed URLs.
Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| 401 or 403 from the API | Missing, malformed, expired, or insufficient API key; wrong authentication scheme. | Check the provider’s current authentication docs, account status, and key permissions. Do not assume all providers use the same header or query parameter. |
| API returns JSON or HTML instead of an image | Error or metadata response; endpoint may be configured for JSON, or the target was blocked/failed. | Check HTTP status and content type before writing a file. Read the error body and provider-specific response metadata. |
| Screenshot is blank or shows a spinner | Capture occurred before client rendering completed, or the site failed to load. | Wait for a stable selector or documented readiness condition, allow an appropriate delay, and inspect the target directly. Avoid assuming a fixed delay works on every page. |
| Images or sections are missing on a long page | Lazy loading may require scrolling; full-page behavior or wait time may be insufficient. | Use documented full-page/lazy-load handling, increase the timeout if justified, and verify the content appears in a normal browser session. |
| Private page redirects to login | Session cookies, authorization, or custom headers were not supplied or were rejected. | Use the provider’s supported cookie/header mechanism and verify the account has access. Keep secrets out of logs and public client code. |
| Different page than expected by region or time | Timezone, geolocation, proxy region, or user agent differs from the target environment. | Set supported location and browser options. For ScreenshotAPI.net, account for its documented UTC+0 timezone limitation. |
| Visual monitoring reports a change but gives no explanation | A visual-difference percentage measures amount of change, not semantic content. | Use the score to trigger review, then inspect captures or add your own text/element comparison. Site-Shot explicitly says its scheduled capture does not provide text or element diffs. |
| Unexpected usage or retention behavior | Included volumes, storage, reset mechanics, overages, and retention vary by plan and can change. | Check the current pricing page and account terms before launch; monitor usage rather than extrapolating from old plan descriptions. |
Frequently asked questions
Is Site-Shot’s browser screenshot tool a free API tier?
No. The browser-based tool is available without registration, while API access requires a subscription.
Can Site-Shot tell me what changed on a page?
Its scheduled capture reports the percentage of visual area changed and page-height change. The vendor says it has no text or element diff, so it does not explain the change semantically.
Which service has the fastest screenshots?
The reviewed sources do not establish a comparable speed result. Benchmark representative pages with the same settings and from the regions your application needs.
Can I use ScreenshotNeo from an AI agent?
Yes. ScreenshotNeo provides an MCP server for Claude, Cursor, and other MCP clients, with take_screenshot, get_page_info, and capture_pdf tools.
How should I migrate from another screenshot API?
Map authentication, URL and output parameters, viewport, waits, and response handling; run a representative URL set through both systems; then compare rendering and billing behavior. ScreenshotNeo supports parameter names used by other screenshot APIs to make switching easier.
Recommendation
Try ScreenshotNeo first if clean captures, explicit billing outcomes, an MCP server, and a no-card free plan matter to your application. It removes consent banners, popups, and chat widgets before capture, and failed or unclean results are not billed. For a narrowly matched workload, Site-Shot is a sensible candidate when its listed entry price and scheduled visual monitoring meet the requirement. ScreenshotAPI.net is worth evaluating when its bulk, PDF, or video workflows are decisive and the needed feature is available on your plan. Confirm current pricing and entitlements, then pilot with the same URLs and settings before moving production traffic.
Sign up for ScreenshotNeo’s free 1,000 screenshots per month, with no card required.
