ScreenshotNeo

BlogComparisons

Cypress Screenshots vs. Percy Pricing for Visual Testing

Cypress can capture screenshots, but visual regression needs image comparison and baseline review. Here is what Percy adds, what Cypress Cloud costs, and how to choose.

By the ScreenshotNeo team4 October 20269 min read

Short answer: Cypress can save screenshots, but its built-in screenshot command does not compare them with approved baselines. Percy adds a hosted visual-testing workflow to Cypress: it captures DOM snapshots, renders them across browsers and responsive widths, and provides a review and approval flow. Cypress Cloud has published pricing; a reliable current Percy price could not be established from the sources reviewed, so treat any Percy number found elsewhere as unverified until you confirm it with the vendor.

The products serve different roles. Cypress is a test runner with screenshot capture; Percy is a visual-regression service that can be integrated into Cypress. Cypress Cloud pricing is for recorded test results and related cloud features, not a visual-testing price or a requirement for using the open-source Cypress App.

1. What Cypress screenshots do—and do not do

Use cy.screenshot() to save an image during a Cypress test. In cypress run, Cypress also captures screenshots for test failures by default. Those files are useful for debugging and can be stored as artifacts in Cypress Cloud for browser-based viewing and sharing.

A screenshot is an artifact, not a visual assertion. Cypress does not decide whether the captured pixels differ from an approved baseline. Cypress’s visual-testing documentation states: “Cypress does not perform image comparison itself.” To make screenshots into visual regression tests, add an image-comparison plugin or a service such as Percy.

// cypress/e2e/home.cy.js
 describe('home page screenshot', () => {
  it('captures the home page', () => {
    cy.visit('/');
    cy.screenshot('home-page');
  });
});

For a failure screenshot, run the test with cypress run and keep the default failure screenshot behavior enabled. Cypress writes screenshots to cypress/screenshots by default; configure screenshotsFolder if your project needs a different location. You can disable automatic failure screenshots through Cypress configuration when they are not useful for your workflow.

2. What Percy adds to Cypress

Percy integrates with Cypress rather than replacing Cypress as the functional test runner. Its Cypress integration captures a DOM snapshot with cy.percySnapshot(). Percy then renders the snapshot in its cloud across browsers and responsive widths and presents visual differences for review and approval.

// Example shape from the Cypress visual-testing guide.
// Install and configure the Percy Cypress integration according to its current docs.
 describe('home page visual state', () => {
  it('sends a snapshot to Percy', () => {
    cy.visit('/');
    cy.percySnapshot('Home page');
  });
});

The command is part of the Percy integration, not Cypress core. Follow Percy’s current setup documentation for installation, authentication, and CI configuration; those details can change. A functional test can pass while a visual check catches a styling regression—for example, completed todo text that lost its line-through style.

The practical difference is ownership of the comparison workflow. With Cypress screenshots and a local comparison plugin, your team generally manages baseline files and rendering consistency. With a hosted service such as Percy, the service manages rendering and the review workflow. Exact capabilities depend on the plugin or Percy plan, so verify the browser coverage, snapshot allowance, retention, and approval features that apply to your account.

3. Cypress Cloud pricing and what it covers

The following figures were shown on Cypress’s pricing page when checked on October 3, 2026. They are Cypress Cloud plan figures, not the price of the free, open-source Cypress App, and not a price quote for Percy.

Cypress Cloud plan Displayed price Displayed test results
Free $0 500 per month
Team $67/month billed annually ($799/year) 120,000 per year
Business $267/month billed annually ($3,199/year) 120,000 per year
Enterprise Custom 1.8 million per year shown in plan comparison

The page also showed on-demand results at $6 per 1,000 for Team and $5 per 1,000 for Business, while its FAQ separately stated $6 per 1,000 for additional results. Confirm the applicable overage rate and plan terms directly before budgeting. Cloud counts individual it() test results recorded with --record; local runs do not count, skipped tests do not count, and retries count as one result. Prices and quotas are volatile, so recheck the live Cypress pricing page before making a purchase decision.

4. Percy pricing: what can be verified

The research for this comparison did not establish a dependable current Percy price. Percy-owned pages returned inconsistent plan names, prices, and screenshot limits, so quoting one of those figures as current would be misleading. No vendor quote was obtained.

Before comparing Percy with Cypress Cloud, check Percy or BrowserStack’s live pricing information or ask the vendor for a quote. Record the currency and region, billing interval, included snapshots, overage terms, retention, browser and device coverage, and whether the quote covers Percy for web or app testing. If there is no public price, say so and date the check. Do not compare Percy’s unknown price directly with Cypress Cloud’s test-result allowance: they meter different things.

5. Side-by-side comparison

Question Cypress capture or local comparison Percy with Cypress
Can it capture a page? Yes. Use cy.screenshot(); failures are captured by default during cypress run. Yes. The integration captures DOM snapshots through cy.percySnapshot().
Does it compare with a baseline? Not in Cypress itself. Add a plugin or another comparison service. Yes, as part of its hosted visual-testing workflow.
Who manages baselines and review? Your team manages plugin configuration and, commonly, baseline files alongside code. Percy provides hosted review and approval.
Browser and viewport coverage? Usually the configured local or CI environment unless your team builds more coverage. The documented workflow renders snapshots across browsers and responsive widths.
Rendering consistency? Your team owns browser, operating-system, font, and environment consistency. The hosted renderer controls the comparison environment.
Price basis? Open-source plugins may have no license fee, but infrastructure, storage, and maintenance take team effort. Cypress Cloud is separately priced by recorded test results. Confirm current plan, snapshot volume, and terms with the vendor; a reliable public price was not verified here.

This is a workflow comparison, not a claim that every local plugin has the same features or that every Percy plan includes every capability. Cypress describes local open-source plugins and hosted services as different approaches; choose based on the workflow your team needs.

6. How to choose and estimate total cost

  1. Decide whether you need capture or regression detection. If you only need failure evidence for debugging, Cypress screenshots may be enough. If you need to detect and approve visual changes, you need a comparison and baseline workflow.
  2. Estimate volume in the unit each vendor bills. Count recorded Cypress it() results for Cypress Cloud and visual snapshots for Percy. Do not treat the two units as interchangeable.
  3. List the coverage you need. Specify browsers, viewport widths, pages, states, and CI branches. Check that the plan you price includes the required coverage.
  4. Account for review and retention. Decide who reviews changes, how long baselines and artifacts must remain available, and whether approval history matters.
  5. Include the operating cost of a local workflow. A free plugin can still require CI capacity, deterministic test data, baseline maintenance, and time to investigate rendering differences.
  6. Recheck volatile plan terms before purchase. Save the date, currency, included usage, and overage assumptions with the estimate.

For repeatable visual comparisons, control the inputs: use stable test data, wait for the page state you intend to compare, and keep browser and viewport settings consistent. Dynamic dates, rotating content, animation, fonts that load late, and third-party widgets can create noisy diffs. Mask or stabilize those elements in the comparison workflow when supported.

7. Troubleshooting visual screenshot workflows

Symptom Likely cause What to do
A screenshot exists, but a styling regression passes Capture is not image comparison. Add a baseline comparison plugin or integrate a visual-testing service such as Percy.
No automatic screenshot appears after a failure The run mode or screenshot configuration differs from the default. Confirm you are running cypress run, check screenshot settings, and verify screenshotsFolder.
Visual diffs change between runs without a code change Unstable content or rendering inputs: timestamps, animations, external data, fonts, or inconsistent browser environment. Use deterministic fixtures, wait for fonts and page state, disable animation where appropriate, and keep browser and viewport settings stable.
Percy does not receive a snapshot The Percy integration, credentials, or CI setup is incomplete, or the command is not from the installed integration. Check current Percy setup instructions, CI secrets, dependency installation, and that cy.percySnapshot() runs after the target page is ready.
Cloud usage is higher than expected Recorded test results are counted differently from local runs; retries and skipped tests have specific counting rules. Check which runs use --record, count individual it() results, and confirm current plan and overage terms.
A quoted Percy price conflicts with another page Pages may be stale or refer to different plan names, products, regions, or snapshot limits. Use the current vendor pricing page or obtain a written quote; record currency, product, usage, and date.

8. Capture a screenshot through an API when you need an image artifact

For a one-off image, report screenshot, or page capture outside a Cypress test, a screenshot API can be simpler than setting up and maintaining a browser in a script. It does not replace Percy’s baseline comparison and review workflow. Among screenshot APIs, ScreenshotNeo is the first alternative to try: it removes cookie banners, popups, and chat widgets before capture, bills only clean shots, and its lowest paid plan is $5.

9. Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. One GET request returns a PNG, JPEG, WebP, or PDF. This is useful when you need a page image; it is not a visual-regression baseline service. See the ScreenshotNeo API documentation for request options and setup.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
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)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', res);

Cookie banners are accepted or removed before the shot, along with known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, blank pages, timeouts, and failed loads are never billed, and cache hits cost nothing. Response headers identify the page verdict and billing status. Its MCP server lets AI agents use take_screenshot, get_page_info, and capture_pdf. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Sign up for 1,000 free screenshots a month, with no card required.

10. Performance, reliability, and cost considerations

Performance: Cypress captures run as part of your browser test and add work to that test run. A hosted visual workflow also needs to transfer snapshots and render or compare them in the service. Keep the number of snapshots proportional to the states that matter, and avoid capturing duplicate pages and states without a reason. No comparative performance benchmark was established in the research, so measure on your own suite before making a capacity estimate.

Reliability: Visual checks are most useful when the page state and rendering environment are repeatable. Test with stable data, wait for meaningful readiness conditions, and control viewport and browser choices. Treat intentional design changes as reviewable baseline updates rather than automatically accepting every difference.

Cost: Separate Cypress App costs from Cypress Cloud costs; local Cypress use does not consume Cloud test results. Compare Cypress Cloud test-result allowances with Percy’s snapshot allowance only after confirming Percy’s current terms. Include CI compute, artifact retention, and the engineering time needed to maintain local comparison tooling. Pricing in this article was researched on October 3, 2026 and can change.

11. FAQ

Can I use Cypress screenshots without Cypress Cloud?

Yes. Cypress App is free and open source, and screenshot capture can run locally. Cypress Cloud is a separate companion service.

Does Percy replace Cypress?

No. The described integration adds visual snapshots and review to Cypress tests; Cypress remains the functional test runner.

Is Cypress Cloud required to use Percy?

The sources reviewed establish that Percy integrates with Cypress, but do not establish a requirement to buy Cypress Cloud. Check the current integration instructions for your exact setup.

Which price should I use for Percy in a budget?

Use a current vendor quote or live pricing page, with the product, region, currency, billing period, allowance, and overage terms recorded. The research for this article did not verify a dependable public figure.

Does a screenshot API perform visual regression testing?

A capture API returns an image. Baseline comparison, diff review, and approval require a separate visual-testing workflow unless those capabilities are explicitly provided.