ScreenshotNeo

BlogGuides

How Do Screenshot API Credits and Monthly Quotas Work?

Learn what screenshot API credits cover, when quotas reset, how failures and overages work, and how to track usage without billing surprises.

By the ScreenshotNeo team4 October 20268 min read

A screenshot API credit is a provider-defined unit of usage, and a monthly quota is the amount included during a provider-defined period. There is no universal rule that one credit equals one successful screenshot, that a month means a calendar month, or that failures and unused credits are handled the same way by every service. Check the provider’s unit definition, reset date, rollover policy, failure billing, over-limit behavior, and rate limits before estimating cost.

1. What counts as one credit?

Start with the API provider’s definition. A unit might be called a credit, render, shot, or screenshot, and one unit may cover an output or a particular operation. A PDF, video, full-page capture, batch request, or job returning multiple outputs could count differently from a basic image capture.

For example, ScreenshotOne says that each full-page screenshot, scrolling screenshot, PDF, or video costs one credit. That is ScreenshotOne’s stated policy, not a standard for all screenshot APIs. [ScreenshotOne credits documentation]

Question What to verify
What is the billable unit? Whether a credit covers a request, a successful render, each output, or a specific capture mode.
Do advanced outputs cost more? How the provider counts PDFs, full-page captures, video, batches, and multiple formats.
Are failed attempts charged? Which server-reported errors are refunded and how client-side timeouts are treated.
Is usage counted at request time or completion? Whether units are reserved up front, deducted on success, or reconciled later.

2. When do monthly credits reset?

“Monthly” can refer to a calendar month or a subscription billing cycle. Screenshot-api.net documents a reset at the start of each UTC calendar month. ScreenshotOne says credits renew at the start of the billing cycle; annual subscribers receive monthly refreshes. These are examples of different policies, not shared behavior. [Screenshot-api.net documentation] [ScreenshotOne credits documentation]

Record the reset date and timezone in your usage monitor. If a quota resets at midnight UTC, a local dashboard date may differ by a day. For a subscription-cycle reset, the date may follow the account’s original billing date instead of the first of the month.

3. Do unused credits roll over?

Do not assume they do. ScreenshotOne and screenshot-api.net state that unused allowances do not roll over. Other services may sell prepaid packs or apply different expiration rules. Check the specific plan terms for both subscription allowance and any separately purchased credits.

For capacity planning, treat the included allowance as expiring at the documented boundary unless the provider explicitly says otherwise. Avoid buying excess capacity based on the assumption that unused monthly units will accumulate.

4. How are failed screenshots and retries billed?

Failure accounting differs by provider and error type. Screenshot-api.net says renderer errors and timeouts release the reserved unit and describes refunds for pages it cannot capture. Screenshotapis.org documents refunds for HTTP 422 render failures. ScreenshotAPI.com says a credit is used when a successful image is taken and failed captures do not receive credit. ScreenshotOne’s credits page does not specify failure billing, so check its separate usage or billing terms before relying on a refund. [Screenshot-api.net documentation] [Screenshotapis.org API guide] [ScreenshotAPI.com pricing]

A client timeout is not necessarily a failed render: the provider may have completed the job after the client stopped waiting. A blind retry can therefore create duplicate work and possibly additional charges. Use provider request IDs, documented idempotency or retry guidance, and the final job status where available. Retry transient network or server errors with bounded exponential backoff; do not automatically retry a permanent invalid-URL or authorization error.

5. Monthly quotas are different from rate limits

A monthly quota limits aggregate usage over a billing period. A rate limit restricts request bursts or concurrency over a shorter interval. You can have plenty of monthly credits left and still exceed requests per second. Conversely, a low request rate can still consume the monthly allowance over time. Screenshot-api.net explicitly documents separate requests-per-second and renders-per-month limits. [Screenshot-api.net documentation]

For an application, manage these as separate controls: cap total expected monthly use, and queue or throttle concurrent requests to stay within burst limits. Honor the provider’s retry guidance and any retry-after headers rather than responding to rate limiting with immediate repeated calls.

6. How can I check remaining API quota?

Use the provider’s dashboard, usage endpoint, and response headers if available. Confirm what each value measures: remaining credits, consumed renders, current-period allowance, or account-wide usage.

  • Screenshot-api.net documents GET /v1/account with plan quota and period usage, plus X-Quota-Limit and X-Quota-Remaining response headers.
  • Screenshotapis.org documents GET /v1/usage and an X-Credits-Remaining header.

These are provider-specific examples. The endpoint path, authentication, reset semantics, and header meanings should come from the API’s own documentation. [Screenshot-api.net documentation] [Screenshotapis.org API guide]

7. What happens when I hit the limit?

There is no universal response. Screenshot-api.net documents HTTP 402 with a quota_reached error until an upgrade or reset. Screenshotapis.org documents HTTP 402 for insufficient credits and says an account may upgrade or buy a credit pack. ScreenshotOne offers optional overages and configurable hard limits on paid plans. Treat these as distinct vendor policies. [Screenshot-api.net documentation] [Screenshotapis.org API guide] [ScreenshotOne credits documentation]

Before production, decide whether your application should stop capture jobs at a local budget threshold, queue them for the next period, or allow provider overages. Do not assume a quota error is transient: retrying without a reset, plan change, or top-up will usually repeat the failure.

8. Estimate usage and compare plans

Estimate billable units from the workload, then compare plans using the same assumptions. If each URL produces one billable output, 100 URLs per day for 30 days would mean 3,000 units, but only if the provider counts each such output as one unit and all requests are treated as billable. Adjust the estimate for retries, extra outputs, batch rules, and the provider’s failure policy.

Comparison point Why it affects your estimate
Unit definition Different outputs or capture modes can consume different amounts.
Reset and rollover Determines when allowance becomes available and whether unused units expire.
Over-limit policy May stop jobs, charge overages, or require a prepaid top-up.
Failure refunds Changes how much retrying and unreachable pages cost.
Burst limits Controls throughput independently of the monthly allowance.
Usage visibility Dashboards, APIs, headers, alerts, and hard caps help prevent surprises.

Published plan figures can change and provider units are not contractually interchangeable. The retrieved vendor pages list these examples: screenshot-api.net lists 100 renders/month on Free, 2,000 on Starter, 10,000 on Pro, 25,000 on Team, and 100,000 on Business; screenshotapis.org lists 100 monthly credits on Free, 2,000 on Starter, 6,000 on Growth, 25,000 on Business, and 75,000 on Scale. ScreenshotAPI.com lists prepaid shot packs from 2,000 for $2 through 100,000 for $80. Recheck the linked pricing and terms before purchase; these figures are examples, not a market-wide comparison or recommendation. [screenshot-api.net] [screenshotapis.org] [ScreenshotAPI.com pricing]

9. ScreenshotNeo: quota visibility and predictable capture billing

ScreenshotNeo is a website screenshot API and MCP server. Its policy is that only clean shots are billed: bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and each response identifies the page verdict and billing status with X-Page-Verdict and X-Billed headers. Its plans include 1,000 shots a month free with no card, then Starter at $5 for 3,000, Growth at $15 for 15,000, Pro at $39 for 60,000, Scale at $99 for 250,000, and Business at $249 for 1,000,000; yearly billing gives two months free, and every feature is on every plan.

For a direct capture, send one GET request with your URL. See the ScreenshotNeo API documentation for the full parameter reference.

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}`);

ScreenshotNeo also offers full-page capture with lazy images loaded, element capture, PDF output, custom wait conditions, caching with a chosen TTL, bulk capture, async jobs with signed webhooks, and a usage API. It supports the parameter names used by other screenshot APIs, which can make switching easier. The MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. See the docs for configuration details.

10. Troubleshooting quota surprises

Symptom Likely cause What to do
Quota appears lower than expected The provider counts a PDF, full-page capture, or each output differently than assumed. Check its billable-unit definition and reconcile request IDs against usage records.
Allowance did not reset on the first The plan follows a billing anniversary, or uses a different timezone. Check the period boundary in the account or billing page.
Unused credits disappeared The allowance does not roll over. Verify rollover terms and plan your workload within the active period.
HTTP 402 or quota_reached The included allowance is depleted or credits are insufficient. Check remaining usage; upgrade, add credits if supported, or wait for the documented reset.
HTTP 429 despite remaining quota A short-term rate or concurrency limit was reached. Throttle requests and follow retry-after or provider backoff guidance.
A retry seems to have used another unit The first request may have completed despite a client timeout. Look up the original request or job before submitting another capture.
Usage endpoint and dashboard disagree They may update at different times or report different measures. Compare period, unit, and timestamp; ask the provider which source is authoritative for billing.

11. FAQ

Does one API credit always mean one screenshot?

No. A credit is defined by the provider and may cover different operations or outputs.

Are monthly quotas the same as requests per second?

No. A quota limits use over a billing period; a rate limit restricts short bursts.

Should I retry every failed request?

No. First determine whether the provider completed the capture and whether its failure policy refunds the attempt. Use request IDs and documented retry behavior.

Can I compare two providers by their monthly credit counts?

Only after checking that their units, reset periods, failure rules, and over-limit policies match your workload.

Or skip the browser setup

Use ScreenshotNeo’s one-call API instead of operating a browser capture stack. Cookie banners are accepted and removed before the shot, along with known consent platforms, newsletter popups, and chat widgets; these steps can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are never billed. An 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.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the API docs and ScreenshotNeo. Sign up free for 1,000 screenshots a month, with no card required.