ScraperFlyAI-ready Web Data API

rendering

Screenshot API with proxies for harder public pages

Some screenshot workflows fail because the target responds differently by route, region, browser state, or request reputation. ScraperFly lets teams treat proxy routing as a visual-capture control: try the simple screenshot first, then add premium routing or country targeting when the rendered evidence proves the target needs it.

Visual proof

Capture the page state users see from the route that matters

A screenshot is useful only when it captures the right page state. Some public pages look different by country, routing quality, cookie state, viewport, JavaScript timing, or delivery path. A simple screenshot may work for easy targets, while harder pages need premium routing, country targeting, waits, or a clearer browser profile.

ScraperFly keeps that decision visible. Test the light screenshot first, inspect the visual result, then add proxy routing only where the capture proves it needs stronger or regional delivery.

visual capturepremium routingcountry context
Team comparing website screenshots captured through different proxy routing contexts

What is a screenshot API with proxies?

A screenshot API captures a rendered public webpage as an image. Proxy routing controls change the delivery path used to reach the target before the browser renders that page. Together, they help teams capture visual evidence when the page state depends on routing, region, target defenses, or request reputation.

The important distinction is that proxy routing should support the screenshot goal, not replace it. The goal is not simply to route every capture through a heavier path. The goal is to produce a trustworthy visual record of what the public page returned under the request profile your workflow actually needs.

Practical takeaway: use proxies for screenshots when routing changes the visual result, not because every screenshot needs the heaviest route.

When do screenshots need proxy routing?

Proxy routing becomes useful when a simple rendered screenshot fails or returns the wrong visual state. A target may show a block screen, a fallback page, an unexpected redirect, a regional page, a thin shell, a consent overlay, or content that differs by delivery path. In those cases, the screenshot itself becomes evidence: it shows whether the capture is useful or whether the request profile needs a stronger route.

Premium routing is best for harder targets where simple delivery repeatedly returns poor visual results. Country targeting is best when the visual page depends on market, availability, local notices, language defaults, currency context, or regional redirects. The strongest workflow compares a normal screenshot against a routed screenshot before applying the heavier profile across a batch.

For broader routing strategy, review the premium proxy scraping API and country targeting scraping API pages.

What should teams compare before escalating screenshot routing?

A bad screenshot can come from many causes. The route may be blocked. The country may be wrong. JavaScript may need more time. A cookie banner may cover the content. The viewport may hide the important area. A redirect may lead to a fallback page. Before repeating the same expensive request, compare the evidence that explains the visual result.

EvidenceWhat it can revealBetter next action
Status and final URLThe capture may have followed a redirect, block, or fallback route.Compare baseline, premium, and country-targeted responses before changing waits.
Screenshot stateThe page may show a consent banner, challenge, empty shell, or wrong market view.Identify whether the issue is routing, state, rendering, or viewport.
Response size and content typeThe browser may be rendering a small fallback response instead of the real page.Check source response alongside the visual capture.
Wait timingThe page may need more time for JavaScript, images, or late modules.Adjust render wait only when the page is still loading, not when it is blocked.
Country and routing profileThe target may return different visual content by region or route reputation.Use country targeting or premium routing only where visual differences are proven.

How do premium routing and country targeting differ for screenshots?

Premium routing and country targeting solve different visual-capture problems. Premium routing helps when the target resists simple delivery or returns low-quality results through the default path. Country targeting helps when the page looks different by market or regional context. A screenshot workflow may need one, both, or neither.

If the screenshot shows a valid page but the wrong regional content, country targeting is the better first test. If the screenshot shows a block, fallback, or unstable delivery across samples, premium routing may be the better escalation. If the screenshot is incomplete because content appears after browser execution, the fix may be rendering or wait timing rather than proxies.

Practical takeaway: choose the routing control based on what the screenshot proves, not on a generic proxy checklist.

How does rendering fit into proxied screenshot capture?

Screenshots are visual output, so the page must be rendered before capture. Rendering executes browser-side JavaScript, loads layout, applies CSS, and produces the viewport state that becomes the image. Proxy routing controls the delivery path before that browser work happens. When a target is both JavaScript-heavy and delivery-sensitive, rendering and routing may need to work together.

That does not mean every screenshot should use every advanced option. If a basic rendered screenshot captures the expected state, keep it simple. If the page renders but returns the wrong region, add country context. If the page renders a block or fallback, test stronger routing. If the page is still loading when captured, tune wait behavior with the screenshot render wait workflow and compare with the JavaScript rendering API.

Which screenshot options matter most?

Screenshot quality depends on more than routing. Viewport size, full-page capture, wait timing, image output, PDF output, country context, premium routing, and response diagnostics all shape the final artifact. The right profile depends on why the screenshot exists: QA, monitoring, compliance review, product proof, visual regression, local market comparison, or archive.

Screenshot decisionUse it whenCost-control note
Basic rendered screenshotThe public page loads correctly through the normal route.Keep this as the default for easy targets.
Premium routingThe target returns blocks, fallback pages, unstable captures, or low-quality visual results.Reserve it for URL groups that prove they need stronger delivery.
Country targetingThe visual result depends on market, language defaults, availability, or local notices.Apply it only to regions and pages where visual differences matter.
Longer wait timingUseful content is still loading when the screenshot is captured.Increase waits for slow pages, not for blocked pages.
PDF or archive outputThe workflow needs portable review, audit, or recordkeeping.Use file outputs for records that need them, not every sample.

For choosing between visual files and structured content, compare the web scraping API response formats. Screenshots are excellent proof, but HTML, text, Markdown, and metadata are often easier for machines to compare at scale.

How should teams control screenshot proxy costs?

Screenshot workflows can become expensive when every capture uses browser rendering, premium routing, country targeting, long waits, retries, and file output by default. The practical path is to segment targets. Easy pages get the simplest rendered screenshot that works. Regional pages get country context. Hard targets get premium routing. Slow JavaScript pages get wait tuning. Archive workflows get PDFs only where records are needed.

ScraperFly's flexible credit model supports that path because teams can test before committing. Use the API Builder to compare request profiles, review pricing, and estimate heavier visual workflows with the web scraping API credit cost calculator.

Where should developers start?

Start with the target URL and a normal screenshot request. Check whether the page captured correctly. If it did, keep the profile light. If it did not, inspect the visual artifact and response metadata: status, final URL, response size, country context, routing profile, render wait, viewport, and output file. Then change one control at a time.

When the capture works, document the production profile by URL group: screenshot dimensions, full-page setting, wait behavior, routing choice, country context, premium routing decision, retry behavior, and the evidence that proves the visual result is useful. That turns proxy screenshots from trial-and-error into a repeatable capture workflow.

Screenshots with proxies

Capture visual proof through stronger routing when simple screenshot requests get blocked

Some targets return different visual states by geography, reputation, or bot handling. ScraperFly combines screenshot capture with routing controls so teams can test the page, inspect the rendered result, and escalate delivery only when visual evidence shows the simple path is not enough.

IMG
Screenshot

Capture the rendered page as visual evidence

Screenshots help QA layout, rendered content, login-free states, banners, product pages, and customer-facing proof.

format=screenshotrender
ROUTE
Routing

Use stronger routing when the target pushes back

Premium routing and country targeting can help when simple delivery returns blocks, fallback content, or the wrong regional view.

premiumcountry
COST
Control

Escalate screenshots based on response evidence

Compare status, final URL, response size, and visual output before making every screenshot request heavier.

statusproofcredits

Controls that shape proxied screenshot capture

url

The public page being captured as a screenshot.

format

Screenshot output for visual proof.

premium

Stronger routing for targets that block simple delivery.

country

Regional routing when the page varies by location.

cURL example

Generate Markdown with the same request shape you can move into production

curl "https://scraperfly.com/api/v1?url=https%3A%2F%2Fexample.com&format=markdown" \
  -H "apikey: YOUR_API_KEY"

Screenshot fit

Map visual, regional, and anti-bot requirements before scaling capture

Screenshots can vary by viewport, country, language, cookie state, redirects, overlays, wait timing, and target defenses. Sampling real captures keeps visual workflows reliable.

Raw HTML response mapped to visible page data
01

Raw HTML availability

Check whether the fields you need are already present in the first HTML response.

Best first test for simple pages, articles, docs, listings, and product details.

Before and after JavaScript rendering comparison
02

JavaScript dependency

Compare raw HTML with the rendered DOM or screenshot before turning on browser rendering.

Use rendering when raw HTML is only a shell and scripts create the useful content.

Cookies, consent, session and access context for scraping
03

State & access context

Identify whether cookies, consent, login boundaries, pagination, or the same visitor state affect the response.

Use sessions and headers when continuity changes the data you receive.

Regional content variations across countries and routes
04

Geo/content variation

Test whether country, language, currency, inventory, SERP, ads, or route reputation changes the result.

Use geo or premium routing only when the target proves the response varies by route.

Checks before screenshot capture with proxies

Where is the target field?

Find whether the field exists in raw HTML, rendered DOM, an API call, structured data, a file, or a later interaction state.

What changes the response?

Sample a few URLs and compare status, final URL, content length, redirects, empty states, and visible result differences.

What context is required?

Mark any dependency on consent, locale, cookies, headers, authentication boundary, pagination, filters, or previous requests.

What does failure look like?

Define the signals for blocked, partial, stale, redirected, empty, timed-out, or region-mismatched responses before scaling.

How target behavior changes screenshot routing

Fetch mode

Raw HTML availability decides whether the first request can stay simple or needs rendering, waits, screenshots, or extraction.

Request context

State requirements decide whether to add headers, cookies, sessions, consent handling, or a stable visitor profile.

Routing choice

Geo and reputation findings decide whether standard routing is enough or a country/premium route is justified.

Validation rules

Known failure states become checks for retries, escalation, QA review, and deciding when a lighter profile is still complete.

Routing choice

Choose the right delivery path before spending more on every screenshot

Visual capture gets expensive when teams jump straight to the heaviest route. Start with the light path, inspect failures, then use stronger routing for targets that prove they need it.

A simple HTTP request returning a clean HTML response
01

Plain HTML request

Use this first for public pages that already include the required data in the initial HTML.

A page changing from an empty HTML shell to a rendered DOM after JavaScript runs
02

JavaScript rendering

Enable rendering when the server returns a shell, but the useful page content appears only after JavaScript executes.

Headers, cookies and session state preserved across two requests
03

Headers, cookies & sessions

Use visitor-state controls when the target expects continuity between requests or returns different content after consent, locale, or navigation state is set.

A request routed through a selected country and higher reputation proxy path
04

Premium proxy & geo

Escalate routing when the response depends on request origin, IP reputation, or target geography.

A browser automation flow with search, filters, scrolling and data capture steps
05

Browser flow

Use a full browser flow when the data is behind interaction rather than a single request: search boxes, filters, scrolling, tabs, or multi-step navigation.

Escalate when:

01

Plain HTML request

the raw response contains the fields you need, status codes are stable, and page size/content do not collapse after repeated checks.

  • Product details, article text, documentation, or listings are visible in the HTML response.
  • The final URL, status, and content length stay consistent across a small sample.
  • No consent wall, visitor state, or client-side API call is required for the target fields.
02

JavaScript rendering

the raw HTML is mostly placeholders, the rendered DOM contains the target fields, or key data arrives through client-side requests.

  • Raw HTML has app containers, loading skeletons, or empty product grids.
  • Browser inspection shows the fields after scripts finish.
  • Screenshots look correct while the HTML response alone is incomplete.
03

Headers, cookies & sessions

pagination, reviews, filters, or consent flows depend on the same visitor context across multiple requests.

  • The first request sets cookies that change later responses.
  • Locale, consent, currency, cart, or filter state must be preserved.
  • The page redirects or empties out when requests look stateless.
04

Premium proxy & geo

the same URL behaves differently by region, returns 403/429 from one route, or shows location-specific pricing, availability, SERP, ads, or catalog data.

  • Datacenter-like traffic receives blocks while a higher-reputation route works.
  • Country, language, currency, inventory, or search results change by geo.
  • Repeated requests trigger rate limits or challenge pages on specific routes.
05

Browser flow

the target data appears only after user-like navigation steps, or protected areas such as reviews, profiles, search result refinements, or special data panels behave differently from simple detail pages.

  • A click, scroll, search, or filter action is required before the fields appear.
  • Reviews, profiles, or dynamic result pages load in separate steps.
  • Simpler fetch/render attempts return partial content, challenge pages, or unstable states.

Stay lower & Credit impact:

01

Plain HTML request

Stay lower: the page already returns complete data. Adding rendering or premium routing here only adds latency and credit usage without improving the result.

Credit impact: lowest request profile because it avoids browser work and special routing.

02

JavaScript rendering

Stay lower: the fields are already present in raw HTML. A modern-looking site does not automatically mean JavaScript rendering is needed.

Credit impact: higher than plain HTML because browser work, wait time, and page resources are involved.

03

Headers, cookies & sessions

Stay lower: public content is stable without state. Do not invent sessions for pages that can be fetched cleanly as anonymous HTML.

Credit impact: usually moderate; the bigger cost is operational complexity and retry discipline.

04

Premium proxy & geo

Stay lower: the target is globally consistent and accepts normal routing. Premium and geo routing should be tied to evidence, not used as a default blanket setting.

Credit impact: can increase credit usage and latency, so apply it to the URL groups that actually need it.

05

Browser flow

Stay lower: a single HTML or rendered request already returns the target. Browser flows are the strongest tool in this ladder, not the default starting point.

Credit impact: highest request profile because it combines browser runtime, waits, navigation, and often heavier routing.

Escalate by evidence, not by habit

  • For most public websites, a plain HTML request or light JavaScript rendering is enough. Start there, inspect the response, and only then decide whether the next step is justified.
  • Anti-bot signals are usually visible in the response: unexpected 403 or 429 statuses, sudden redirects, tiny or empty HTML, challenge pages, CAPTCHA screens, login or consent loops, and content that disappears after repeated requests.
  • Large high-traffic targets such as Amazon, Google, LinkedIn, Instagram, TikTok, and major marketplaces often protect some surfaces aggressively. They may require rendering, sessions, careful routing, or a browser flow, and each target needs its own test profile.
  • Protection is not uniform even inside one site. Product/detail pages may open with a lighter profile, while reviews, profiles, search pages, price-sensitive views, availability panels, or account-adjacent data can require stronger escalation.
  • Geo and premium proxy settings affect both what you receive and how expensive the request profile becomes. Use them when country-specific content, IP reputation, or repeated blocks prove they matter.
  • The practical goal is not to turn on every ScraperFly control. The goal is to find the sufficient level that returns complete, repeatable data while keeping credit usage, latency, and failure modes under control.

Screenshot cost

Keep proxied screenshot capture predictable by escalating only proven targets

Screenshots with stronger routing are valuable when visual proof matters and the target resists simple capture. Flexible credits help teams test before committing to heavier production profiles.

A lightweight HTML request returning a simple response
01

Basic fetch

Use a basic fetch when public HTML already contains the fields you need.

Lightest request profile; keep it when the response is complete.

JavaScript rendering producing a complete DOM
02

Rendering

Use rendering when raw HTML is a shell and JavaScript completes the page.

Heavier profile; use it only when browser output changes the result.

Several requests preserving cookies and visitor state
03

Stateful session

Use sessions when cookies, consent, locale, or pagination change the response.

Heavier state profile; preserve it only when continuity matters.

Request routing through geo and higher quality routes
04

Premium routing & geo

Use premium routing or geo only when origin, country, reputation, or regional content changes the result.

Heaviest routing profile; apply it only to targets that prove they need it.

What makes proxied screenshots heavier

More infrastructure work

Browser rendering, routing choices, and longer waits mean the platform has to do more than return a simple response.

More target uncertainty

Redirects, empty states, rate limits, and challenge pages often require stronger delivery options or retries.

More state to preserve

Cookies, sessions, consent, and multi-page flows add moving parts that a plain stateless fetch does not have.

More evidence to return

Screenshots, PDFs, rendered output, and richer response artifacts are useful, but they are heavier than plain HTML.

How to control visual capture cost

Sample before scale

Test a small URL set first and group targets by the lightest profile that returns complete data.

Do not render by default

Inspect raw HTML before turning on rendering. Many public pages already contain the data you need.

Escalate by evidence

Move up only when the response shows missing content, state dependency, geo variance, or routing problems.

Measure useful results

Optimize around valid records delivered, not raw request volume. A lighter profile is best only when it stays complete.

Screenshot FAQ

Common questions about screenshots with proxies

Proxy screenshot workflows work best when teams compare visual evidence, routing behavior, and cost before applying a heavier capture profile to every target.

Visual answers

Screenshot proof

Use screenshots when the rendered page state needs reviewable evidence.

What does a screenshot prove?

It proves what the rendered public page looked like under a specific request profile, viewport, timing, and routing context.

Should screenshots replace HTML?

Usually no. Screenshots are visual proof; HTML, text, and metadata are easier for machine comparison.

Proxy controls

Routing should match the visual problem shown by the capture.

When do I use premium routing?

Use it when simple screenshot delivery returns blocks, fallback pages, unstable captures, or poor visual results.

When do I use country targeting?

Use it when the screenshot must show a regional page, local notice, market state, or country-specific content.

Browser timing

Rendered screenshot quality depends on page load behavior as well as routing.

Can wait timing fix screenshots?

Yes, when useful content is still loading. It does not fix blocks or wrong-region responses.

Can proxy screenshots render JavaScript?

Yes. Rendering produces the visual page state, while proxies influence the delivery path.

Scaling capture

Keep heavier screenshot profiles limited to targets that prove they need them.

How do I avoid expensive screenshots?

Start with a basic rendered screenshot and add premium routing, country targeting, longer waits, or PDFs only when evidence justifies them.

What should logs store?

Store status, final URL, viewport, wait timing, country, premium routing, output type, and the visual issue being solved.