Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

There is no universal “captures remaining” field for screenshot APIs. Check the provider’s authenticated usage or account endpoint, or read quota headers returned by a capture request. Then identify what the number means—plan-period allowance, purchased credits, a short-window request bucket, or concurrency—and verify the reset rule in that provider’s documentation.

Start with the provider and account plan

First identify the exact API host and account whose key your application uses. Quotas belong to a provider, project or account, not to the screenshot concept in general. A key for one workspace can show a different balance from another key, even when both call the same endpoint.

  1. Record the API hostname and the key or project used by your application.
  2. Open that provider’s usage, account or billing documentation.
  3. Authenticate exactly as documented. Some services use an API-key query parameter; others require an authorization header.
  4. Look for a usage endpoint or quota fields in a capture response.
  5. Read the balance definition and reset timestamp together before forecasting a batch.

If the service offers a dashboard, use it as a cross-check rather than assuming its labels match the API response. A dashboard may combine recurring allowance and top-up credits, while an endpoint may expose only one of them.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What “remaining” can mean

A field called remaining, available or quota is not self-explanatory. Confirm its period and accounting rules.

Plan-period allowance

This is the number of renders left in the current monthly or subscription period. ScreenshotOne calls this field available; its usage response also reports total and used. The period follows the plan, so do not assume a calendar-month reset without checking your account terms. See ScreenshotOne’s usage documentation.

Calendar-month quota

Screenshot API documents a UTC calendar-month reset for its quota. Its account usage data includes usage.remaining, and capture responses can include an X-Quota-Remaining header. The header is useful for logging the balance at the time of a request, while the account endpoint is better for an explicit usage check. Details are in the Screenshot API documentation.

Subscription-anniversary quota

ScreenshotAPI.to documents calendar-month resets for free accounts and subscription-anniversary resets for paid plans. Its screenshot response includes quota fields, but the meaning depends on the allowance and credit rules described in its endpoint documentation: ScreenshotAPI.to screenshot endpoint.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Top-up or purchased credits

Recurring allowance and purchased credits may be separate balances. CaptureKit says its usage endpoint’s subscription object combines subscription quota and remaining top-ups, while the dashboard shows their split. ScreenshotAPI.to documents that purchased credit packs are used after the period allowance. Do not add numbers from different fields unless the provider explicitly defines them as one spendable pool.

Burst, rate and concurrency counters

A short-window counter limits how quickly requests can be started; it is not the number of renders left in your plan. ScreenshotOne exposes a concurrency.remaining value for this purpose. Its documentation explains that the counter is a bucket of starts that resets, rather than a count of currently active renders. Keep this value separate from available when designing workers and alerts.

Provider examples and reset behavior

Provider Where to check Reported value Reset or accounting note
ScreenshotOne Authenticated usage endpoint total, available, used; also concurrency.remaining available applies to the current plan period; concurrency is a separate short-window bucket. Documentation
Screenshot API Account usage endpoint or capture response headers usage.remaining and X-Quota-Remaining UTC calendar-month reset; failed renders are refunded according to its documentation. Documentation
CaptureKit /v1/usage and dashboard Subscription object combines subscription quota and remaining top-ups Dashboard shows the split; do not infer separate balances from one combined object. Documentation
ScreenshotMAX /v1/usage Provider-defined usage response Use the endpoint’s own field definitions and period. Documentation
ScreenshotAPI.to Screenshot response quota fields Provider-defined allowance and credit fields Free accounts reset by calendar month; paid plans by subscription anniversary; exhausted allowance with no credits returns HTTP 402 without processing. Documentation
TwitterShots /api/v1/usage remaining and limit Use the endpoint’s documented period and reset information. Documentation

These implementations are examples, not interchangeable conventions. A service not listed here may use completely different names, periods or billing rules.

How to build a reliable quota check

Poll the usage endpoint outside the render path

Run a scheduled check—such as every few minutes or before a large batch—and store the raw response with a timestamp. Keep the provider name, account or project identifier, plan period, reset timestamp and every balance field. Storing the raw payload lets you investigate a sudden change without reconstructing it from application logs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Read headers from capture responses

When a provider returns quota headers, log them from every response, including successful captures and documented errors. Header values describe the provider’s state when that request was handled; they are not a reservation for future parallel requests. Redact API keys and cookies before sending logs to a third-party system.

Set alerts on the correct balance

Alert on the recurring allowance that your workload consumes, not on a concurrency bucket. A practical policy is to warn at a fixed percentage of the current period’s allowance and again when the balance is below the size of your next planned batch. Include the reset date in the alert so an operator can decide whether to slow, defer or add credits.

Prevent overspending in workers

For parallel jobs, fetch usage before enqueueing a batch, then reserve capacity in your own queue. Recheck after each provider response because another process or deployment may be using the same account. A local counter is only an estimate; the provider’s usage endpoint or response header is authoritative.

Failed renders, refunds and HTTP errors

Do not assume every failed request consumes a capture. Screenshot API says failed renders are refunded. ScreenshotAPI.to instead documents HTTP 402 when the allowance is exhausted and no credits remain, without processing the request. Other providers may apply different policies.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • HTTP 402 or an explicit quota error: stop retrying immediately, check the usage response, and confirm whether a reset or top-up is required.
  • Timeout, blank page or bot check: consult the provider’s billing policy before counting it as consumed. A transport failure and a rendered-but-invalid page can be accounted for differently.
  • Retries: use an idempotency mechanism if the provider offers one, or a queue that records request state. Blind retries can turn one logical page into several billable attempts.

Code patterns for checking usage

Use the exact URL, authentication method and field names in your provider’s documentation. The following patterns show how to inspect a JSON usage response without assuming that every service has the same schema.

cURL

curl -sS -H "Authorization: Bearer $API_KEY" 
  "https://api.example.com/v1/usage"

For a provider that authenticates with a query parameter, replace the header with the documented parameter. To inspect quota headers from a capture call:

curl -sS -D headers.txt -o shot.png 
  -H "Authorization: Bearer $API_KEY" 
  "https://api.example.com/v1/screenshot?url=https%3A%2F%2Fexample.com"
grep -i -E 'quota|usage|remaining|reset' headers.txt

Python

import requests

r = requests.get(
    "https://api.example.com/v1/usage",
    headers={"Authorization": f"Bearer {API_KEY}"},
    timeout=30,
)
r.raise_for_status()
usage = r.json()
print(usage)
print("remaining:", usage.get("remaining"))

Use the provider’s documented nested path when the value is, for example, usage.remaining. Treat a missing field as an integration error, not as zero.

Node.js

const res = await fetch('https://api.example.com/v1/usage', {
  headers: { Authorization: `Bearer ${process.env.API_KEY}` }
});
if (!res.ok) throw new Error(`Usage request failed: ${res.status}`);
const usage = await res.json();
console.log(usage);
console.log('remaining:', usage.remaining);

Screenshot API header check

For Screenshot API, inspect usage.remaining from the account response or X-Quota-Remaining on a capture response, as documented at screenshot-api.net/docs. Do not map that value to another provider’s monthly field without checking its definition.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Common problems and fixes

The endpoint returns 401 or 403

Verify that the key belongs to the account you intend to inspect, that it has permission to read usage, and that the authentication location is correct. Do not paste a secret key into a browser URL or source-control repository.

The balance is zero but captures still work

You may be reading a different project, a stale dashboard, a top-up field separate from the recurring allowance, or a short-window counter. Compare the account identifier, timestamp and field definition in the provider’s response.

The balance changes between two checks

Another worker, deployment or teammate may share the key. Capture responses can also update usage asynchronously. Centralize requests through one queue and record response timestamps when exact reconciliation matters.

The reset date is unclear

Find the plan-period or billing-period definition rather than inferring it from the first request date. Screenshot API documents UTC calendar-month resets, while ScreenshotOne uses the current plan period and ScreenshotAPI.to distinguishes free and paid reset rules.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A batch fails partway through

Save each URL’s status and provider request identifier, stop when the authoritative balance or error indicates exhaustion, and resume only after confirming the reset or available credits. This avoids duplicating completed captures.

Or skip the browser setup

ScreenshotNeo provides a usage API and returns quota-related headers with each capture, so you can monitor consumption alongside the image request. It is also a practical alternative when your main concern is whether failed work should count: before capture it accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups and chat widgets; bot checks, blank pages, timeouts, failed loads and cache hits are not billed, and the response identifies the result with X-Page-Verdict and X-Billed headers.

A single request is enough to capture a page:

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 ScreenshotNeo documentation for authentication, usage details and the full option set. ScreenshotNeo also offers an MCP server with take_screenshot, get_page_info and capture_pdf tools for Claude, Cursor and other MCP clients. The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account.

Operational checklist

  • Identify the exact host, account, project and plan.
  • Use the authenticated usage or account endpoint, and log quota headers when available.
  • Record the field definition, period, reset timestamp and credit source.
  • Separate recurring allowance from top-ups, rate limits and concurrency.
  • Confirm how failed renders and retries are billed.
  • Alert before the next batch would exceed the authoritative balance.
  • Stop on quota errors and resume only after confirming new capacity.

Frequently Asked Questions

Can I calculate remaining captures as total minus successful responses?

Only if the provider defines every attempt, refund and credit source that way. Use the provider’s usage response or quota header as the authoritative value.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Should a concurrency limit be added to my monthly quota?

No. A concurrency or burst counter controls request starts in a short window; it is a different constraint from the plan-period render allowance.

Which reset date should a scheduler use?

Use the reset timestamp supplied for the exact account and plan. Calendar-month, UTC-month and subscription-anniversary rules differ by provider.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.