ScraperFlyAI-ready Web Data API

rendering

Website Screenshot API for rendered page evidence

ScraperFly captures rendered website screenshots for teams that need visual QA, monitoring evidence, archive records, regional checks, and browser-loaded page proof alongside the same request controls used for web data extraction.

Visual proof

Capture what the browser actually shows before teams make decisions

A website screenshot API is useful when markup alone does not answer the question. Teams need to see whether JavaScript finished, whether the right regional version loaded, whether an overlay hides content, whether a layout changed, or whether a page state is good enough for QA, monitoring, archive, review, or customer-facing evidence.

ScraperFly keeps screenshot capture connected to the same request controls used for public web data workflows. Start with a real URL, render the page when needed, choose viewport and timing deliberately, and add headers, sessions, country targeting, or stronger delivery only when those controls change the captured result.

rendered pageviewport QAscreenshot proofrequest evidence
QA team reviewing rendered website screenshot capture with viewport controls and visual checks

What is a website screenshot API?

A website screenshot API receives a public URL, loads the page through a browser-style capture workflow, and returns an image of the rendered page. That image can show the visual state of the page after scripts, styles, images, fonts, responsive layout, regional content, banners, or late-loading sections have had a chance to appear.

This is different from a basic HTML scraping request. HTML tells your application what markup came back. A screenshot shows what a browser saw. Both can be useful, but they solve different jobs. Use HTML, text, Markdown, or metadata when a machine needs to parse content. Use screenshots when a person, QA system, monitoring workflow, archive process, or approval flow needs visual evidence.

Practical takeaway: use screenshot capture when the visual state of a public page changes the decision, not as the default output for every scrape.

When should teams request a rendered screenshot?

Request a rendered screenshot when the final page appearance matters. That may be a product page with price modules, a landing page with regional content, a search result page with dynamic panels, a page behind a consent prompt, a responsive layout that changes by viewport, or a monitoring target where visual proof is easier to review than raw markup.

The best workflow starts with intent. If the job is parsing fields, keep the request machine-readable. If the job is proving what appeared on screen, use screenshot output. If the page depends on browser-side JavaScript, rendering is justified. If the page loads slowly, use a controlled wait. If language, country, cookie state, headers, or routing changes what appears, capture those conditions explicitly instead of treating all screenshots as identical.

Screenshot need What it helps verify Request choice What to avoid
Visual QA Layout, banners, broken modules, final rendered state Screenshot with render and a representative viewport Using HTML-only checks for problems that are visible only in the browser.
Monitoring evidence Page appearance, changed sections, overlays, outage states Screenshot plus final URL, status, and timing context Keeping images without delivery metadata that explains the capture.
Regional checks Country-specific content, language, currency, availability Country routing or headers when response evidence proves they matter Comparing screenshots from different request contexts as if they are equivalent.
Responsive review Desktop, tablet, or mobile state Viewport-specific screenshot profiles Using one viewport to judge every layout state.
Archive or approval Point-in-time proof for human review Screenshot, and PDF only when a document-style record is needed Replacing machine-readable content capture when parsing is the real goal.

How should screenshots fit with HTML, text, Markdown, and metadata?

Screenshots should complement structured response formats, not replace them. If the downstream system needs to extract links, headings, product attributes, article text, or metadata, HTML, rendered HTML, text, Markdown, or JSON context will usually be easier to compare and process. A screenshot is stronger when the workflow needs visual proof: what the user-facing page looked like after loading.

In production, the best pattern is often paired evidence. Store machine-readable output for automation and screenshot output for review. The HTML or Markdown can support parsing, alerts, indexing, or AI workflows. The screenshot can help a human understand why the page looked wrong, why an automated check failed, or whether the captured record is credible. For broader output decisions, compare the options on the web scraping API response formats page.

What controls make website screenshots reliable?

Reliable screenshots depend on more than the URL. The capture may need a browser renderer, viewport size, wait timing, image loading, request headers, cookies, session continuity, country-specific routing, or stronger delivery for difficult targets. The important thing is to connect each control to a real visual requirement.

Use rendering when the page is browser-built. Use waits when late-loading sections change the screenshot. Use a persistent session when one request establishes state that the next screenshot needs. Use headers or country targeting when the page changes by language, region, currency, availability, consent, or client context. Use premium delivery when normal routing produces blocked, challenged, or visibly different page states. The JavaScript rendering API and render wait pages cover the rendering side in more detail.

Control Use it when Screenshot impact Decision rule
Rendering The public page builds useful content after JavaScript runs Completes the browser-visible page state Compare source and rendered behavior before enabling broadly.
Viewport Layout changes by desktop, tablet, mobile, or responsive breakpoint Captures the page state the reviewer actually cares about Define viewport profiles instead of relying on one default size.
Wait timing Lazy content, banners, charts, or widgets appear after initial load Reduces blank or half-loaded screenshots Wait for the shortest time that makes the page state stable.
Headers and sessions Language, cookies, consent, preferences, or continuity change the page Captures the intended user-facing variant Use request context only when it changes visual evidence.
Country or premium routing Geography or network profile changes access, content, or blocks Shows the page from the required delivery context Escalate after response evidence shows the simple path is not enough.

How should teams handle blank or misleading screenshots?

A blank screenshot does not always mean the target page is broken. It may mean the page redirected, JavaScript was still running, the viewport hid the important section, a cookie banner covered content, a region-specific version loaded, the target returned a challenge page, the response timed out, or the request needed a different routing profile.

Treat screenshot failures as evidence work. Compare final URL, status, content type, response size, render timing, screenshot state, source HTML, rendered HTML, and any visible blocking page. Retry only failures that are likely temporary. Change waits, viewport, headers, country targeting, sessions, or routing when the response proves those controls matter. The scraping API error handling page gives the broader recovery model.

Practical takeaway: do not retry visual capture blindly; inspect whether the problem is timing, page state, routing, or the target response itself.

How can screenshot capture stay cost-conscious?

Screenshot capture is heavier than simple content capture because it usually involves browser work and file output. That does not make screenshots bad; it means teams should use them where visual proof changes the workflow. For parsing, indexing, AI ingestion, or automated comparison, lighter formats may be better. For QA, monitoring, compliance, approval, archive, and human review, screenshot output can be exactly the right choice.

ScraperFly's credit-based model makes this decision more practical. Start with free testing, prove which targets need screenshots, and keep one-off or uneven work on pay-as-you-go credits when that fits the project. Move recurring visual workflows to monthly credits once the volume is predictable. Use the Pricing page or the web scraping API credit cost calculator to estimate how request controls affect cost.

Why use ScraperFly for website screenshots?

ScraperFly is useful when screenshot capture needs to live beside the rest of the web data workflow. The same API surface can help with HTML, rendered HTML, text, Markdown, metadata, screenshots, PDFs, routing, sessions, headers, waits, and country-specific delivery. That means teams can test one public URL, compare response formats, and choose the right output without stitching together a separate screenshot service and a separate scraping stack.

The result is a cleaner decision path. Use machine-readable formats when the application needs data. Use screenshots when the workflow needs visual evidence. Keep capture settings explicit. Store response context near the image. Then copy the proven request from the API Builder into your production workflow.

Screenshot request

Build a screenshot capture profile before production jobs depend on it

A useful website screenshot starts with a clear visual question: which page state, viewport, timing, region, and request context must be captured so the image becomes reliable evidence.

VISUAL PROOF
VISUAL PROOF

Capture the browser-visible page

Use screenshot output when QA, monitoring, approval, archive, or review needs to see what appeared on screen.

format=screenshotrenderviewport
PAGE STATE
PAGE STATE

Control timing and context

Use waits, headers, sessions, country targeting, or routing when they change the visual state of the target page.

waitheaderscountry
RIGHT FORMAT
RIGHT FORMAT

Do not screenshot what machines should parse

Use HTML, text, Markdown, or metadata for automated parsing, then add screenshots when visual proof matters.

htmlmarkdownmetadata

Core controls for website screenshot capture

url

The public page being captured visually.

format

Screenshot output for rendered page evidence.

render

Browser execution for JavaScript-built pages.

render_wait

Timing control for lazy content, banners, and settled visual state.

country

Regional routing when geography changes the page appearance.

download

File handling when screenshot artifacts should be stored or reviewed.

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 state before scaling screenshot capture

Reliable screenshots depend on viewport, rendering, timing, language, country, overlays, redirects, cookie banners, responsive layout, and target defenses. Sampling real pages keeps the visual workflow honest.

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 website screenshot capture

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 visual state changes the request

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.

Error handling

Turn scraping failures into fixes

Every web data workflow eventually meets a bad response: a missing URL, an invalid key, an empty HTML shell, a target 403, a rate limit, a render timeout, a broken PDF capture, or a JSON payload that does not contain the fields your product expected. ScraperFly is built to make those moments diagnosable. You inspect the HTTP status, the stable error code, the request profile, and the returned artifact, then choose the cheapest useful next move: fix the request, add credits, slow down, retry with backoff, enable rendering, change country, use premium routing, preserve headers, or validate the output before scaling.

Stable error shapeRetry decisionsCost-aware escalationOutput validation
Developer reviewing code and API request parameters on a laptop

01 / Request setup and access

Fix request mistakes first

Some failures are not target problems at all. They happen before ScraperFly can make a meaningful delivery attempt: a missing or malformed URL, an unsupported output format, an incompatible visual file type, a missing API key, an invalid key, or a key that has been paused or disabled. These errors are configuration signals, not retry signals: stop the workflow, point the developer to the exact field that needs correction, and keep credits focused on real target tests instead of repeated bad inputs.

missing_urlinvalid_urlunsupported_formatinvalid_api_key
  • Validate the URL and encoding before sending a batch.
  • Use supported outputs: HTML, text, Markdown, JSON, screenshot, or PDF.
  • Match screenshot file types to image output and PDF file type to PDF output.
  • Treat missing or invalid API keys as configuration work, not retry work.
Business dashboard with charts, documents and usage planning on a desk

02 / Credits, limits and concurrency

Separate limits from failures

A workload can fail because the account has no usable credits, the monthly plan limit has been reached, or concurrency is too aggressive for the current plan and target mix. ScraperFly makes those limits visible as operating signals, not mysterious scrape failures. That keeps the buying decision practical: start free, test the target, buy pay-as-you-go credits for uneven jobs, move to monthly credits when volume becomes predictable, and use backoff when request pressure is the real issue.

usage_limit_reachedrate_limitedcreditsbackoff
  • Use account status to check remaining credits before large runs.
  • Retry rate limits with backoff instead of immediately increasing pressure.
  • Keep one-off projects on pay-as-you-go when volume is uneven.
  • Move predictable recurring work to monthly credits when the pattern is proven.
Server room representing delivery paths, routing and network infrastructure

03 / Target delivery and network

Find delivery failures first

Many scraping platforms collapse delivery issues into a vague request failure. In production, that is not enough. The team needs to know whether the request timed out, the upstream target returned a temporary server error, the connection failed, the response was too large, redirects went somewhere unexpected, or the page came back as tiny HTML with no useful content. ScraperFly turns those failures into delivery evidence: try the light profile first, compare status and response size, then decide whether the next request needs backoff, another route, premium proxy, country targeting, or a narrower capture.

timeout5xxredirectsresponse_too_large
  • Retry temporary network and upstream failures with a controlled backoff policy.
  • Compare final URL, status, content type and response size across samples.
  • Escalate routing only when the response proves the simple path is unstable.
  • Treat oversized responses as a scope problem before scaling the same profile.
Digital security screen representing anti-bot and protected access signals

04 / Anti-bot, geo and access blocks

Read blocks before escalation

A target 403, 401, 429, CAPTCHA screen, WAF challenge, login wall, consent loop, or region-specific mismatch is not just an error; it is a clue about what the site expects from the visitor. Competitors often push teams toward a heavier default profile, but that can burn budget without proving the fix. ScraperFly's better path is evidence-based escalation: preserve realistic headers when context matters, use sessions when continuity changes the response, enable rendering when the useful content is browser-built, and choose premium or country routing when reputation or geography changes the result.

403429CAPTCHAcountry mismatch
  • Use premium routing when IP reputation is the proven bottleneck.
  • Use country targeting when language, currency, inventory or search results change by market.
  • Use headers, cookies and sessions when visitor state changes the response.
  • Reduce concurrency and add backoff when repeated requests trigger target throttling.
Developer preparing code and output artifacts on a laptop

05 / Rendering and output quality

Ship usable artifacts

A 200 status is not the same thing as a usable scrape. The raw HTML can be an empty app shell, Markdown can miss the main article, JSON can lack expected metadata, text can include noise, screenshots can be blank, and PDF or image output can fail if the browser step times out. ScraperFly is valuable because the same API request can move from raw HTML to rendered DOM, clean text, Markdown, JSON, screenshot or PDF, then be checked against the artifact your product actually needs. That reduces glue code, failed imports, and expensive batch runs that only discover bad output after the fact.

render_timeoutbrowser_render_failedJSON fieldsPDF/image output
  • Enable rendering when raw HTML is only a shell and the useful content appears after JavaScript.
  • Validate text, Markdown and JSON against expected fields before batching.
  • Use screenshot or PDF output when visual proof or audit evidence matters.
  • Treat blank or partial artifacts as quality failures even when HTTP status is successful.
ScraperFly fit

Cleaner error recovery

ScraperFly helps teams decide what to fix, what to retry, and what to escalate without turning every scrape into the most expensive request profile.

Stable error shape

Use HTTP status and error code together so application logic can choose between fixing input, refreshing credentials, slowing down, retrying, or escalating delivery.

Retry only when it helps

Network failures, rate limits, and temporary server errors can use backoff. Invalid URLs, unsupported formats, and bad keys should be corrected once.

Cost-aware escalation

Start with the light request profile, then add rendering, premium routing, country, sessions, headers, waits, or visual capture only when the failure proves it.

Validate output before scale

Confirm the real artifact your product needs: HTML, text, Markdown, JSON, screenshot, or PDF, before copying the same profile across a large URL set.

Screenshot comparison

Choose screenshots as proof, not as an expensive default

ScraperFly is strongest when teams can decide when visual output matters and when lighter response formats are better for automation.

Happy team validating a project on a laptop
01 / Start easy

Easy, free start before any billing pressure

ScraperFly gives you room to test the real target first. Use free credits to check whether the page works, whether the data is present, and which controls are actually needed before you commit money to a plan. That makes the first experiment feel light: no procurement loop, no forced subscription, no guessing your monthly volume on day one.

Free creditsNo card for first testsValidate before scaling
Smiling professional working successfully with a laptop
02 / Spend smart

Affordable, flexible billing for real-world scraping volume

Not every scraping workload is a neat monthly curve. Some projects spike, some pause, and some only become recurring after the data proves value. ScraperFly supports that reality with a pay-as-you-go path plus monthly credit plans when steady volume makes sense. You can buy what you need, keep costs visible, and avoid turning a small test into an oversized subscription.

Pay as you goMonthly when usefulCost control
Developer preparing structured output from a laptop
03 / Ship faster

Response preprocessing that removes cleanup work

A cheap fetch is not enough if your team still has to build converters, cleaners, screenshots, PDF capture, and LLM-ready formatting around it. ScraperFly can return the response as HTML, clean text, Markdown, structured JSON, PDF, or image output, so your pipeline gets closer to the final asset in one request. Less glue code, fewer moving parts, faster delivery.

HTMLTextMarkdownJSONPDFImage

Where ScraperFly wins against typical alternatives

The point is not to claim every competitor is bad. The point is fit: ScraperFly is the stronger choice when you want an API-first workflow, visible request controls, flexible credits, and response formats that help you ship instead of babysitting infrastructure.

Decision pointScraperFly advantageTypical competitor tradeoff
Visual evidenceCapture rendered screenshots when QA, monitoring, archive, approval, or human review needs proof of the page state.Some tools sell screenshot capture as a separate product with less connection to scraping response evidence.
Format choiceUse HTML, text, Markdown, metadata, screenshots, or PDFs from one workflow depending on the downstream job.Single-purpose screenshot services can force another integration for machine-readable data.
Rendering controlsTune rendering, waits, sessions, headers, country targeting, and routing when they change the visible result.Basic capture tools may hide timing and request-context controls behind defaults.
DebuggingKeep status, final URL, content type, response size, and screenshot evidence close together.A standalone image without delivery context can be hard to debug when the page looks wrong.
Cost controlReserve screenshots for workflows where proof matters and keep parsing jobs on lighter formats.Screenshot-first workflows can make simple automation heavier than necessary.

Screenshot cost

Keep screenshot capture practical by matching output to the job

Screenshots are valuable for proof and review, but they are heavier than simple HTML, text, or Markdown responses. Use visual output when it changes the decision, then scale only the profiles that prove useful.

01

Machine-readable content does not need an image

Use HTML, text, Markdown, or metadata when the workflow needs fields, content, links, or logs instead of visual proof.

02

Screenshot proof changes the review

Use screenshot output when QA, monitoring, archive, compliance, or approval needs to see the rendered page.

03

JavaScript and waits complete the page state

Add browser execution and timing only when the target needs them for a trustworthy screenshot.

04

Routing and context affect the visual result

Use country targeting, sessions, headers, or premium delivery when they change access, language, region, overlays, or page state.

What makes screenshot capture 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 keep screenshot usage predictable

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 questions

Common questions about website screenshot APIs

Practical answers for teams deciding when screenshots are worth using, how rendering affects visual capture, and how to keep screenshot workflows reliable without overusing heavy output.

Screenshot FAQ
USE CASE

When visual proof matters

Screenshots are strongest when the workflow needs to see the rendered page.

When should I use screenshot output instead of HTML?

Use screenshots for visual QA, monitoring, archive, approval, compliance, or human review. Use HTML, text, Markdown, or metadata for machine-readable parsing.

Are screenshots good parser inputs?

Usually no. Screenshots are better for proof and review. Parsers should usually work from HTML, rendered HTML, text, Markdown, or metadata.

RENDERING

Capturing browser state

Rendered pages often need timing and viewport choices.

Does screenshot capture require JavaScript rendering?

Often yes for dynamic sites. Use rendering when browser-side JavaScript changes the visible page state that the screenshot needs to prove.

Why might a screenshot be blank or incomplete?

The page may be loading late, redirecting, blocked, covered by an overlay, or using a different regional or session state than expected.

CONTEXT

Viewport, region, and files

The screenshot profile should match the review scenario.

Can I capture mobile and desktop screenshots?

A screenshot workflow should define the viewport that matters. Mobile, tablet, and desktop layouts may need separate capture profiles.

When should I use PDF instead of a screenshot?

Use PDF when the workflow needs a document-style record for archive, approval, compliance, or sharing. Use screenshots for image proof.

COST

Using screenshots deliberately

Visual output is useful, but it should not replace lighter formats by default.

How can screenshot capture stay affordable?

Reserve screenshots for workflows where visual proof matters. Keep content jobs on lighter formats and add rendering or routing only when needed.

Can screenshots work with other ScraperFly outputs?

Yes. A workflow can use HTML, text, Markdown, metadata, screenshot, or PDF output depending on whether the next step needs data, proof, or both.