DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
API quotas

Screenshot API Rate Limits and Usage Limits: Plans, Quotas, Headers, and 429 Recovery

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

Screenshot API has two separate limits: a per-second request rate that controls bursts and a monthly render quota that controls total included screenshots. For Screenshot API’s plans documented at screenshot-api.net/docs (checked September 29, 2026), the limits range from 1 request per second and 100 renders per month on Free to 50 requests per second and 100,000 renders per month on Business. A 429 means the per-second rate was exceeded; a 402 means the monthly quota is exhausted.

Those figures are Screenshot API’s published terms, not an industry-wide standard. Other screenshot services use different units, windows and prices, so identify the provider whenever you design capacity or publish a limit.

What the two limits actually measure

Do not treat “rate limit” and “usage limit” as synonyms. Screenshot API reserves a monthly render allowance and separately limits how quickly requests may arrive.

Requests per second

The requests-per-second (RPS) value protects the service from bursts. It governs arrival speed, not your monthly entitlement. A Free account may send one request per second; a Business account may send 50 per second. If a worker sends a burst above the plan value, the API returns HTTP 429 with the error code rate_limited.

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

Monthly renders

The render quota is the number of included screenshot renders in one UTC calendar month. It resets at the start of each calendar month in UTC, and unused renders do not roll over. A request can be within the RPS limit yet still fail with HTTP 402 when the monthly allowance is spent.

Render failures and reserved units

Screenshot API documents HTTP 502 and 503 as renderer failures or busy-renderer conditions. Its documentation says those failed renders release the reserved unit. That refund rule is specific to Screenshot API; do not assume another vendor accounts for failures the same way.

Screenshot API plan limits and listed prices

The following combines Screenshot API’s plan documentation with prices listed in its terms. Limits and prices are vendor specifications checked September 29, 2026 and can change, so verify the current pages before committing capacity or budget.

Plan Renders/month Requests/second Snapshot sets Listed monthly price
Free 100 1 1 $0
Starter 2,000 5 5 $9
Pro 10,000 10 20 $29
Team 25,000 25 50 $49
Business 100,000 50 200 $149

“Renders per month” is a monthly allowance, while “requests per second” is a burst ceiling. For example, a Pro account can theoretically consume 10,000 included renders during the month, but it should not dispatch more than 10 requests in a second. Snapshot-set counts are a separate plan dimension documented by the provider.

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

How to check remaining quota

Use the account endpoint

GET /v1/account returns the plan, the current month period, usage and remaining renders. Poll it before scheduled batches and store the result in your metrics system.

Rank #2
Sale
HTML and CSS: Design and Build Websites
  • HTML CSS Design and Build Web Sites
  • Comes with secure packaging
  • It can be a gift option
curl -sS -H "Authorization: Bearer $SCREENSHOT_API_KEY" 
  https://screenshot-api.net/v1/account

Use the authentication format shown in your account documentation if it differs from this example; keep the key on your server and never ship it in browser JavaScript. Screenshot API’s terms warn that an exposed key can be used to spend your quota.

Read quota headers on screenshot responses

Screenshot responses include X-Quota-Limit and X-Quota-Remaining. Record both headers with the response status, URL and timestamp. Header values let a dashboard warn operators before a batch reaches zero without an extra account request for every image.

curl -i -G "https://screenshot-api.net/v1/screenshot" 
  -H "Authorization: Bearer $SCREENSHOT_API_KEY" 
  --data-urlencode "url=https://example.com" 
  -o screenshot.png

With -i, inspect the returned headers. In production, parse headers in code rather than relying on command-line output.

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

Python monitoring example

import os
import requests

key = os.environ["SCREENSHOT_API_KEY"]
r = requests.get(
    "https://screenshot-api.net/v1/account",
    headers={"Authorization": f"Bearer {key}"},
    timeout=30,
)
r.raise_for_status()
data = r.json()
print("plan:", data.get("plan"))
print("period:", data.get("period"))
print("used:", data.get("used"))
print("remaining:", data.get("remaining"))

Node.js monitoring example

const key = process.env.SCREENSHOT_API_KEY;
const res = await fetch('https://screenshot-api.net/v1/account', {
  headers: { Authorization: `Bearer ${key}` }
});
if (!res.ok) throw new Error(`Account request failed: ${res.status}`);
const data = await res.json();
console.log({ plan: data.plan, period: data.period, used: data.used, remaining: data.remaining });

Handling 429, 402, 502 and 503 correctly

HTTP 429: slow the burst

A 429 response has the rate_limited error code. Honor the server’s Retry-After value, then reduce concurrency or add a token-bucket limiter set below your plan’s RPS. Exponential backoff with jitter prevents many workers from retrying simultaneously.

async function fetchWithRateBackoff(url, options, maxAttempts = 5) {
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
    const res = await fetch(url, options);
    if (res.status !== 429) return res;
    const retryAfter = Number(res.headers.get('retry-after'));
    const waitSeconds = Number.isFinite(retryAfter)
      ? retryAfter
      : Math.min(30, 2 ** attempt);
    const jitter = Math.random();
    await new Promise(resolve => setTimeout(resolve, (waitSeconds + jitter) * 1000));
  }
  throw new Error('Still rate-limited after retries');
}

Do not increase retries indefinitely: a retry storm can keep you over the RPS ceiling and delay useful work. Queue jobs, cap worker concurrency and emit an alert when 429s persist.

HTTP 402: the monthly allowance is gone

Screenshot API uses HTTP 402 with quota_reached when the monthly quota is exhausted. Immediate retries will not create capacity. Query /v1/account, stop or defer the batch, then either wait for the next UTC-month reset or move to a plan with a larger allowance.

HTTP 502 or 503: treat as renderer failure

These statuses indicate a renderer error or busy renderer in the provider’s documentation. Retry with bounded backoff and idempotent job handling. Because Screenshot API says the reserved unit is released for these failures, a successful retry should not consume an additional net quota unit for the failed attempt. Keep this behavior isolated in your provider adapter rather than applying it to every screenshot API.

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

Designing a batch that stays inside both limits

Calculate the monthly budget

Start with the number of URLs, recapture frequency and expected retries. If you capture 300 URLs each weekday, the raw demand can exceed the Free plan’s 100 monthly renders in a single day. Reserve headroom for manual recaptures and renderer retries instead of planning to use 100 percent of the allowance.

Shape concurrency by RPS

Use a queue with a global limiter, not one limiter per process. In a multi-instance deployment, divide the provider’s RPS ceiling across instances or centralize dispatch. A 10-RPS plan does not become 30 RPS because three workers each believe they have 10.

Make jobs idempotent

Persist a job ID, target URL, attempt count and final status. If a network connection drops after the server starts rendering, do not blindly submit duplicates; first check whether your application already stored a completed artifact. Cache successful results where your product permits it, and reserve fresh renders for changed pages.

Rank #4
Sale
Web Design with HTML, CSS, JavaScript and jQuery Set
  • Brand: Wiley
  • Set of 2 Volumes
  • A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers

Alert before failure

  • Alert when remaining renders fall below a fixed number and below a percentage of the plan.
  • Track 429, 402, 502 and 503 separately; they require different operator actions.
  • Record X-Quota-Limit and X-Quota-Remaining with each response.
  • Display the UTC reset period returned by the account endpoint so operators do not confuse local midnight with the reset.

Common mistakes and fixes

“We are under the monthly quota but still get 429.”

Monthly capacity does not raise the per-second ceiling. Lower instantaneous concurrency, honor Retry-After and coordinate limits across all workers.

Free tools Windows power users keep installed

One-click scans. No signup required.

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

“Retries made our quota problem worse.”

Retries are appropriate for 429 and documented renderer failures, not for 402. Stop on quota_reached, check remaining usage and wait for reset or upgrade.

“Our dashboard says zero remaining, but a failed render was charged.”

Verify the status. Screenshot API states that 502/503 renderer failures release the reserved unit; a client that counts every attempted request locally may disagree with server headers. Treat the provider’s response headers and account endpoint as authoritative.

“The key leaked in a frontend bundle.”

Rotate the key, inspect account usage, and move calls behind your server. A public key can let anyone consume the account’s quota, as the provider’s terms caution.

When another screenshot service is a better operational fit

Screenshot API’s limits are useful when you need explicit RPS and monthly-render controls. If your priority is clean, production-ready captures rather than managing browser infrastructure, ScreenshotNeo is the first alternative to try: it removes consent banners, newsletter popups and chat widgets before capture, bills only clean shots, and offers a lower paid entry plan of $5 for 3,000 shots.

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.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. It accepts cookies and consent banners like a visitor, removes more than 60 known consent platforms plus newsletter popups and chat widgets, and lets you turn each cleanup step off. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed; each response identifies the result with X-Page-Verdict and X-Billed headers. Its MCP tools—take_screenshot, get_page_info and capture_pdf—work with Claude, Cursor and other MCP clients.

A single GET request is enough:

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

Equivalent Python:

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)

Equivalent Node.js:

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

See the full option list and response details in the ScreenshotNeo documentation. Every plan includes its capture options: full-page lazy-image loading, CSS-selector element capture, dark mode, device presets and custom viewports, retina scale, PDFs, HTML/CSS rendering, custom JavaScript and CSS, clicks, hidden selectors, waits, request blocking, headers, cookies, user agents, authorization, timezone and geolocation, transparent backgrounds, resizing, TTL caching, signed links, async webhooks, bulk capture of up to 100 URLs per call, usage API and OpenAPI support.

The Free plan includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 shots; yearly billing gives two months free. Create a free ScreenshotNeo account.

Frequently Asked Questions

Does Screenshot API reset quota on a rolling 30-day window?

No. The documented allowance resets at the start of each UTC calendar month; unused renders do not roll over.

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

Can I solve a 429 by upgrading only the monthly quota?

Not necessarily. A plan change must provide a higher requests-per-second ceiling as well as enough monthly renders for your workload.

Which response tells me how much quota remains?

Use the account endpoint for plan, period, used and remaining values, and inspect X-Quota-Limit and X-Quota-Remaining on screenshot responses.

Are Screenshot API limits universal across providers?

No. The figures in this article are Screenshot API’s published plan terms; other APIs may count images, credits, jobs or bandwidth differently.

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.

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

Leave a Reply

Your email address will not be published. Required fields are marked *

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

Read next

Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.