ScreenshotOne review: screenshot quality, speed, and API limits
A practical review of ScreenshotOne’s image controls, performance guidance, quotas, and pricing, with clear limits on what the available evidence proves.
Direct answer: ScreenshotOne is a hosted website-rendering API with documented controls for image format, quality, dimensions, waits, and caching. Its docs provide vendor guidance for tuning speed and output size, while its pricing page explains which successful renders count toward quota. The available research does not establish independent screenshot-fidelity scores, measured latency, or superiority over other providers.
For a fair evaluation, render your own representative pages with the same viewport, wait behavior, and full-page settings you expect in production. Inspect legibility, completeness, artifacts, file size, latency, and quota usage. ScreenshotOne’s recommendations below are vendor guidance, not independent test results.
1. What ScreenshotOne does
ScreenshotOne provides a hosted API for rendering URLs, supplied HTML, or Markdown into images or PDFs. Its documentation also describes HTML and Markdown text output. Requests require an access key. See the ScreenshotOne product site and official documentation. [c001] [c005]
This review focuses on image quality, speed, usage limits, and cost. Those dimensions interact: a high-resolution full-page capture may be larger and take longer to transfer; a cache hit may avoid a new render and is not counted as a new screenshot under the published quota rules.
2. Screenshot quality: settings and a practical evaluation
Formats, quality, and dimensions
The options guide lists PNG, JPEG/JPG, WebP, GIF, TIFF, AVIF, and other formats. Applicable image formats support image_quality, documented with a default of 80. Width and height options let you resize output. The exact suitability of each format depends on the page and how the image will be used. [c005]
| Choice | What to evaluate | Documented guidance |
|---|---|---|
| PNG | Text edges, flat colors, file size | Available as an output format; the guide establishes options, not a universal quality winner. [c005] |
| JPEG | Text legibility and compression artifacts at the chosen quality | ScreenshotOne recommends JPEG for suitable images when smaller, faster-to-transfer output is useful. [c004] |
| WebP | Artifacts, file size, and full-page completeness | Vendor guidance says it can be useful for suitable images, but cautions against very large full-page shots unless height is bounded and the result checked for rendering problems. [c004] |
| Other listed formats | Whether your downstream viewer accepts the format | Confirm consumer compatibility; the options guide lists additional formats. [c005] |
Do not assume a format or quality number guarantees a particular visual result. Inspect representative pages at the final display size, especially small text, charts, gradients, and image-heavy layouts.
Repeatable quality review
- Choose pages that represent your workload: static content, dynamic content, long pages, and pages with charts or small text.
- Hold viewport, device scale, wait behavior, and capture dimensions constant while comparing formats and quality values.
- Compare viewport captures separately from full-page captures. For long pages, inspect the top, middle, and bottom for missing or clipped content.
- Record output dimensions and file size alongside visual inspection. A smaller file is useful only if it remains legible and complete for your use case.
- Repeat the comparison on the pages and browser states that matter to your workflow. The vendor documentation does not provide an independent fidelity benchmark. [c008]
3. Speed: what affects it and how to tune it
ScreenshotOne says its API is optimized for performance and notes that a large set of rendering parameters can make some use cases suboptimal. Its performance guide recommends tuning settings for the workload; it does not provide an independent, reproducible latency comparison. Do not treat vendor recommendations as a speed guarantee. [c004] [c008]
- Wait behavior: Tune
wait_untilto the point at which the content you need is available. Waiting longer can add time; waiting too briefly can capture incomplete content. Validate against your pages. [c004] - Blocking: The vendor recommends disabling ad or banner blocking when a page does not need those blockers. This is workload-specific; compare both settings if the page depends on blocked resources. [c004]
- Format and quality: JPEG or WebP and a lower quality setting can reduce transfer size for suitable previews, according to the vendor. Inspect the resulting image before adopting the setting. [c004]
- Cache: Caching may save repeat-render time and quota when the cached result is usable. It is optional and best-effort, so do not build a latency guarantee around it. [c005] [c006]
For a meaningful latency comparison, keep the URL set, viewport, wait configuration, blockers, format, and cache state the same. Measure end-to-end request time across repeated runs and report the setup. The reviewed sources do not supply measured results that can substitute for your own workload evaluation.
4. API limits, quota, and caching
The pricing page figures below were researched on 2026-10-03. They are USD, exclude VAT, and can change; verify the live pricing page and overage settings before choosing a plan. [c002]
| Plan | Monthly price | Monthly screenshots | Requests per minute | Listed extra usage |
|---|---|---|---|---|
| Free | $0 | 100 | Not specified in the dossier | Not specified |
| Basic | $17 | 2,000 | 40 | $0.009 per screenshot |
| Growth | $79 | 10,000 | 80 | $0.006 per screenshot |
| Scale | $259 | 50,000 | 150 | $0.004 per screenshot |
ScreenshotOne clarifies that its published concurrency figures measure accepted request starts in a one-minute bucket. They should not be read as a guarantee about the number of browser jobs running simultaneously. [c007]
What counts toward the monthly quota?
According to ScreenshotOne’s pricing FAQ, “Only screenshots that are successfully rendered (without HTTP, browser, or network errors) and not served from cache count toward your quota.” [c003]
- HTTP, browser, or network failures do not count, according to the company.
- Results served from cache do not count. A cache miss that triggers a rerender can count.
- A successful render with visual problems may still count; inspect outputs rather than assuming a flawed image is excluded. [c002] [c003]
- The pricing page says usage emails are sent at 90% and 100% of monthly quota. [c002]
How caching works
ScreenshotOne says captures are not cached by default. Setting cache=true requests caching, which is best-effort. The documented default cached duration is four hours and can be configured up to one month. Cache hits can reduce repeat-render work and do not count toward quota, but a cache miss may require a new render. [c005] [c006]
Use caching when repeated requests can reuse an acceptable result. Avoid relying on it when freshness requirements demand a new render; verify the current options and cache semantics in the documentation.
5. How to evaluate the API for your workload
- Estimate volume: Count expected successful, uncached captures per month, then allow for retries, cache misses, and growth.
- Check request-start limits: Compare peak starts per minute with the plan limit. Treat this separately from simultaneous browser execution. [c007]
- Define freshness: Decide whether repeat requests may reuse a cached image and how long it can remain useful.
- Choose output requirements: Record format, dimensions, quality, full-page needs, and downstream compatibility.
- Run a representative trial: Compare quality and latency with fixed settings, then test dynamic and long pages as separate cases.
- Model cost: Include the monthly plan, any applicable overage, expected uncached successful renders, and the effect of cache hits. Confirm live pricing and whether overages are enabled. [c002]
6. Runnable request examples
These examples use the documented access-key requirement and request a screenshot of https://example.com. Consult the official ScreenshotOne documentation for the current endpoint, authentication, and exact option names. [c001] [c005]
cURL
curl -G "https://api.screenshotone.com/take" \
--data-urlencode "access_key=YOUR_ACCESS_KEY" \
--data-urlencode "url=https://example.com" \
--data-urlencode "format=webp" \
--data-urlencode "image_quality=80" \
-o screenshot.webp
Python
import requests
params = {
"access_key": "YOUR_ACCESS_KEY",
"url": "https://example.com",
"format": "webp",
"image_quality": 80,
}
response = requests.get(
"https://api.screenshotone.com/take",
params=params,
timeout=90,
)
response.raise_for_status()
with open("screenshot.webp", "wb") as image_file:
image_file.write(response.content)
Node.js
const params = new URLSearchParams({
access_key: process.env.SCREENSHOTONE_ACCESS_KEY,
url: "https://example.com",
format: "webp",
image_quality: "80",
});
const response = await fetch(
`https://api.screenshotone.com/take?${params}`
);
if (!response.ok) {
throw new Error(`Screenshot request failed: ${response.status}`);
}
const image = Buffer.from(await response.arrayBuffer());
await import("node:fs/promises").then(({ writeFile }) =>
writeFile("screenshot.webp", image)
);
These minimal requests demonstrate URL capture and documented image options; they are not a complete inventory of the API. Check the current options guide before adding wait behavior, caching, or other parameters. [c005]
7. Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| Request rejected or authentication error | Missing or invalid access key, or incorrect request configuration | Check the key and required parameters against the current official API documentation. [c001] |
| Screenshot is incomplete | The page content was not ready at capture time or the selected wait behavior was too short | Adjust the documented wait setting and verify the page state on repeated runs. [c004] [c005] |
| Full-page WebP has visual problems | Very large full-page output may be a poor fit for WebP | Bound the captured height or compare another format; inspect the complete image. This follows the vendor’s warning. [c004] |
| Output is too large or slow to transfer | Format, quality, or dimensions may exceed the downstream need | Compare JPEG or WebP and lower quality or resize for suitable use cases, then check legibility. [c004] [c005] |
| Repeated requests still consume quota | Caching is not enabled, a cache miss occurred, or the result was rerendered | Confirm cache configuration and understand that caching is best-effort. [c005] [c006] |
| Quota use differs from raw API-call count | Failures and cache-served results are treated differently from successful uncached renders | Use the vendor’s quota definition and inspect usage; successful but visually flawed shots can count. [c002] [c003] |
| Traffic exceeds expected capacity | Plan request-start ceiling was interpreted as simultaneous browser concurrency | Compare starts per minute with the published plan value; the company defines its figures as accepted starts per one-minute bucket. [c007] |
8. Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server for developers. One GET request returns a PNG, JPEG, WebP, or PDF. Its consent cleanup accepts cookie banners like a visitor and removes 60+ known consent platforms, newsletter popups, and chat widgets before capture; those steps can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the page verdict and billing status in headers. Its MCP server gives Claude, Cursor, and other MCP clients tools for screenshots, page information, and PDF capture.
It includes full-page capture with lazy images loaded, element capture by CSS selector, dark mode, device presets and custom viewports, retina scale, PDF settings, HTML/CSS capture, custom CSS and JavaScript, pre-capture clicks, selector hiding, wait controls, request and resource blocking, headers, cookies, user agent and Authorization, timezone and geolocation, transparent backgrounds, resizing, configurable cache TTL, signed image links, asynchronous jobs with signed webhooks, bulk capture up to 100 URLs per call, a usage API, and an OpenAPI spec. Parameter names used by other screenshot APIs also work for easier migration.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
There is also a ScreenshotNeo API and MCP documentation page. Cookie banners, popups, and chat widgets are removed before the shot; bot checks, blank pages, and failed loads are never billed; an MCP server lets AI agents take screenshots; and 1,000 screenshots a month are free with no card, with paid plans starting at $5 for 3,000. Sign up for ScreenshotNeo’s free plan.
9. Cost and reliability notes
At the researched prices, the listed monthly plan and per-minute ceiling both matter. Extra-usage rates are listed for paid tiers, but terms and whether overages are enabled should be checked on the live pricing page. Failed HTTP, browser, or network requests and cache-served outputs do not consume quota under the published policy; successful renders with visual issues may. [c002] [c003]
Reliability for your use case cannot be inferred from the plan table alone. Test the pages, dynamic states, and capture settings your workflow depends on. The dossier contains no independent uptime figure, latency dataset, or comparative fidelity result. [c008]
10. FAQ
Does ScreenshotOne publish a measured screenshot-quality score?
No independent fidelity benchmark was established in the reviewed sources. The documentation describes controls, so assess output on your own representative pages. [c008]
Does the listed requests-per-minute figure mean that many simultaneous browser jobs?
No. ScreenshotOne says the figures measure accepted request starts in a one-minute bucket, not guaranteed simultaneous browser jobs. [c007]
Can I assume caching is always used when requested?
No. The documentation calls caching best-effort, so plan for cache misses and possible rerenders. [c005] [c006]
Are the plan prices guaranteed to remain current?
No. The table reflects the pricing page researched on 2026-10-03. Check the live page before purchase. [c002]
Sources
- [c001] ScreenshotOne product overview and access-key/API documentation: product site.
- [c002] ScreenshotOne pricing: plans, quotas, and overages.
- [c003] ScreenshotOne pricing FAQ: failed screenshots and quota accounting, on the official pricing page.
- [c004] ScreenshotOne performance guide: vendor performance recommendations.
- [c005] ScreenshotOne options guide: output and capture options.
- [c006] ScreenshotOne caching documentation: cache behavior and duration.
- [c007] ScreenshotOne information page: request-start limit clarification.
- [c008] Research review of the searched official sources; no independent fidelity or latency benchmark established.
