ScreenshotNeo

BlogGuides

PagePeeker Screenshot API Rate Limits for Bulk URL Capture

PagePeeker documents monthly call quotas but no public per-minute or concurrency limit. Learn how bulk workflows use calls and plan capacity.

By the ScreenshotNeo team4 October 202610 min read

Direct answer: PagePeeker’s public documentation lists monthly API-call allowances, but does not publish a numeric requests-per-minute limit, concurrency ceiling, or burst limit. For bulk URL capture, budget calls for the entire workflow: displaying a cached thumbnail, creating an uncached thumbnail, checking readiness, and other exposed API calls each count as one call. Confirm your account’s throughput limits and retry guidance with PagePeeker before sending a large burst.

This guide explains the documented quotas, how to estimate a batch’s call usage, how to instrument and pace a client, and which capacity details remain unknown. Plan and price details below reflect PagePeeker’s official pages accessed October 3, 2026; those pages did not show a publication date, so confirm current terms before committing a workload.

1. What limit does PagePeeker publish?

The reviewed official FAQ, pricing, and API pages do not give a public per-minute request limit or maximum concurrent request count. Monthly plan allowances are documented, but they are not a throughput guarantee. Marketing language about automatic scaling should not be interpreted as a confirmed rate limit or a promise that a batch will finish within a specific time.

PagePeeker’s API page describes V2 as the current recommended API version; V1 is discontinued and redirects to V2. It documents a thumbnail endpoint and a separate readiness endpoint. The sequence is to request or refresh a thumbnail, check whether it is ready, then retrieve it. Because readiness checks count as API calls, frequent polling consumes quota.

The API documentation also advises keeping API code server-side. Putting credentials in browser code can allow third parties to use your account allowance.

2. Monthly plans and call allowances

Plan Displayed price Monthly calls Other listed terms
Free Branded Free No stated limit PagePeeker branding; maximum 480×360 thumbnail; 20-day caching
Free Unbranded Free 100,000 Link back required; maximum 480×360 thumbnail; 20-day caching
Basic $5.99/month 100,000 Maximum 480×360 thumbnail; 7-day caching
Advanced $39.99/month 1,000,000 Maximum 480×360 thumbnail; 5-day caching
Premium Custom No stated limit Customizable caching time, unbounded thumbnail size, full-length screenshots and other premium features

Unused monthly calls do not roll over. The FAQ says Premium accounts using more than 5 million calls per month may contact PagePeeker to discuss pay-as-you-go. Public rates and terms for that arrangement are not stated. These are plan details displayed on official pages, not independent service guarantees.

3. How many calls does a bulk screenshot workflow use?

Do not assume one URL always equals one API call. The FAQ counts each of these as one call:

  • Displaying a thumbnail that already exists.
  • Creating a thumbnail when one is not cached.
  • Checking whether a thumbnail is ready.
  • Any call to an exposed API.

For a batch of N URLs, estimate:

estimated_calls = display_calls + uncached_creation_calls + readiness_checks + other_api_calls

A URL that needs a new thumbnail and then gets polled three times before readiness may use at least four calls across those actions, before counting a later display or other API calls. Actual flow depends on whether thumbnails are already cached and which endpoints your client calls. Treat the estimate as a quota-planning model, not a promise about rendering behavior.

Build a quota budget

  1. Count URLs expected to use an existing thumbnail and URLs likely to require a new render.
  2. Estimate readiness checks per uncached URL based on your polling schedule.
  3. Add calls to retrieve or display the finished images and any other API calls.
  4. Add a reserve for retries and operational rechecks, while avoiding duplicate work where possible.
  5. Compare the estimate with the monthly allowance and remember that unused quota does not roll over.

For example, 20,000 new URLs with two readiness checks each could use 60,000 calls for creation plus those checks, before any separately counted display or other API calls. This is arithmetic from the published call definition, not a measured PagePeeker workload.

4. A cautious bulk-capture client pattern

The documentation does not provide a numeric request rate, concurrency ceiling, rate-limit response header, retry-after header, or official backoff interval. The following is generic client-side pacing logic, not a PagePeeker-prescribed limit. Start conservatively, record responses and errors, and ask support for an account-specific ceiling before increasing concurrency.

from time import sleep

# Replace request_thumbnail and is_ready with calls to the documented V2
# endpoints for your account. Keep credentials on the server.
def capture_batch(urls, request_thumbnail, is_ready, delay_seconds=1.0,
                  max_checks=8):
    results = []
    for url in urls:
        request_thumbnail(url)
        sleep(delay_seconds)

        ready = False
        for _ in range(max_checks):
            if is_ready(url):
                ready = True
                break
            sleep(delay_seconds)

        results.append({"url": url, "ready": ready})
    return results

This deliberately avoids inventing endpoint URLs or authentication details: use the official PagePeeker V2 API reference for the exact request syntax supported by your account. A serial loop is easy to reason about but may be too slow for a large batch. If you introduce a worker pool, cap concurrency in configuration and change it only after PagePeeker confirms an appropriate value.

Reduce avoidable calls

  • Do not poll continuously. Use a deliberate interval and stop after a bounded number of checks.
  • Persist each URL’s job state so a process restart does not blindly repeat requests.
  • Deduplicate URLs before submitting them.
  • Use caching where it meets your freshness needs; PagePeeker’s listed cache periods vary by plan.
  • Separate render requests, readiness checks, and retrievals in your usage accounting.

5. Freshness is different from an API rate limit

PagePeeker says its robot attempts to fetch a given site or page only once every 5–7 days to minimize traffic. That describes the robot’s recapture behavior toward target websites. It is not a customer-facing API requests-per-minute limit and should not be used to infer how quickly your account can submit API calls.

For scheduled site snapshots, PagePeeker recommends weekly captures or more often depending on the use case and says it does not advise more than once daily for that scenario. This cadence guidance is not a formal account-level API quota. Premium snapshots can be scheduled or requested on demand.

PagePeeker says site owners can ask its robot not to capture pages with a robots.txt rule for the PagePeeker user agent. Account owners planning bulk captures should also consider the target sites’ own access policies and load.

6. Instrumentation and capacity planning

Paid and unbranded API responses can include these headers, which can help with operational logs:

Header Use in a bulk client
X-PP-Capture-Method Record the reported capture method.
X-PP-Capture-Time Log the reported capture time for diagnosis.
X-PP-Final-URL Record the final URL associated with the response.
X-PP-Hash Store the response hash when useful for identifying results.
X-PP-Timestamp Log the response timestamp.
X-PP-Error Capture the reported error field when present.

The reviewed documentation does not list request-rate headers or a retry-after header. Log status codes, response headers, URL, attempt number, request type, and timestamps on your side. Track call counts by action so that readiness polling is visible instead of hidden in aggregate usage.

Before launch, ask PagePeeker support to confirm the maximum requests per minute, concurrency ceiling, burst behavior, expected throughput for your plan and screenshot type, retry/backoff instructions, overage handling, and whether failed attempts consume calls. The public sources reviewed do not settle these account-specific points.

7. Full-page captures and workload shape

Premium full-page screenshots are described as supporting custom page width and maximum height, compression, output size, overlays, and wait settings. These options can change the work required per capture. The reviewed page does not publish a separate numeric request rate for full-page capture, so do not infer one from standard-thumbnail plan allowances.

For workload sizing, distinguish URL count, calls consumed, and completed screenshots. They are different measures: a URL can require multiple API calls, and a request may still be waiting for readiness. Track batch completion separately from quota use.

8. Troubleshooting bulk jobs

Symptom Likely cause What to do
Quota is consumed faster than URL count Creation, readiness checks, display, and other API calls each count. Break usage down by action; reduce unnecessary polls and duplicate requests.
Batch throughput is unpredictable No public numeric burst or concurrency limit is documented. Keep concurrency conservative and request an account-specific limit and guidance from support.
Client repeatedly checks a thumbnail that is not ready Polling is too frequent or unbounded. Use a measured interval, a maximum check count, and a persisted job state; account for every check.
API allowance is exposed to unexpected usage Credential is embedded in browser-side code. Move API calls to a server you control and keep credentials out of client code.
Expected recapture does not happen immediately Robot recapture behavior may be once every 5–7 days for a given page, and cache settings may apply. Check the relevant cache and snapshot behavior; do not confuse freshness cadence with API throughput.
Monthly balance is lower than expected after a quiet period Unused quota does not roll over. Budget against the current billing month and verify the displayed plan terms before scheduling a batch.
Full-page batch capacity is unclear Public materials do not give a distinct request-rate limit for full-page captures. Ask support about the intended capture configuration, throughput, and cost before launch.

9. Performance, reliability, and cost notes

Performance

Throughput depends on a limit the public materials do not quantify, along with the number of API actions per URL and the capture configuration. Avoid promising an internal completion time until you have vendor-confirmed capacity for the plan and workload. A serial client is predictable but slower; parallel work can finish sooner only if the service accepts the concurrency without throttling or errors.

Reliability

Make batch processing restartable. Store per-URL state, bound polling, log response headers, and handle failed or delayed items as individual outcomes rather than restarting the whole batch. The reviewed sources do not specify retry behavior or whether failures consume calls, so confirm both with PagePeeker before relying on retries at scale.

Cost

Compare estimated total calls rather than URL count alone. Basic and Advanced display fixed monthly allowances and prices; Premium is custom priced, and its public page does not state a call ceiling. Above 5 million monthly calls, Premium users may contact PagePeeker about pay-as-you-go, but public rates and terms are not provided. Include polling and retrieval calls in the estimate and confirm overage treatment directly.

10. ScreenshotNeo: an alternative to try first

If the main reason for evaluating PagePeeker is dependable bulk screenshot capture, ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. Its API uses one GET request per capture, returns PNG, JPEG, WebP, or PDF, and reports page verdict and billing status in response headers. ScreenshotNeo says only clean shots are billed: bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing.

ScreenshotNeo can accept cookie and consent banners before capture and remove more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be turned off. Its options include full-page capture with lazy images loaded, CSS element capture, device and viewport settings, retina scale, PDF settings, custom CSS and JavaScript, selector hiding, wait conditions, request blocking, custom headers and cookies, timezone and geolocation, caching, signed links, asynchronous jobs with signed webhooks, bulk capture of up to 100 URLs per call, and a usage API. It also has an MCP server with take_screenshot, get_page_info, and capture_pdf tools for AI agents.

Plans include 1,000 screenshots a month free with no card, 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. See the ScreenshotNeo API documentation for request options.

One-call example

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

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. Create a free ScreenshotNeo account.

11. Frequently asked questions

Does PagePeeker have a requests-per-minute limit?

No numeric public limit was found in the official materials reviewed. Ask support for the limit that applies to your account and plan.

Do readiness checks use API calls?

Yes. PagePeeker’s FAQ counts a readiness check as one API call.

Can I exceed 5 million calls a month?

PagePeeker says Premium accounts above that volume can contact it to discuss pay-as-you-go. Public pricing and terms are not stated.

Is the robot’s 5–7-day recapture interval my API rate limit?

No. It describes how often the robot attempts to fetch a given target page, not a customer-facing request rate.

Does unused monthly quota carry into the next month?

No. The FAQ says unused calls do not roll over.

Sources