workingproxysites.

API directory

Website Screenshot APIs: Compare Capture, Output & Limits

Compare website screenshot APIs by image response, Base64 or download URL, full-page controls, waits and documented billing qualifications.

Choose a screenshot request and an image-handling workflow.

  • Choose the output your application can consume: direct image bytes, Base64 inside JSON, or a separate image-download URL. These require different response handlers.
  • Decide whether the viewport, a full page or one element is required, then set a readiness condition for the expected content. A captured image can still show a loading or error page.
  • Check rendering, image-loading and download restrictions before estimating cost. This comparison covers the reviewed scraping API catalog; dedicated screenshot services are outside its scope.
8 documented listings

This collection covers our reviewed proxy and web-data catalog. It is not an exhaustive market survey or a performance ranking.

Category reviewed . Review due .

Choose the request and check the result

Use these documented differences to shortlist a setup. The full records and billing qualifications follow below. Go to filters and full records.

Swipe or scroll horizontally to compare request choices, checks and constraints.

Request choices, acceptance checks and constraints · alphabetical
API / taskRequest choiceWhat to checkCost or constraint
Firecrawl API

Image URL returned with the selected page formats.

Include a formats object with type: screenshot; set fullPage when the viewport alone is insufficient. Actions can wait or interact before capture.Read data.screenshot in the HTTP response and download the image. The documented screenshot link expires after 24 hours; retain your own copy when needed.Screenshots are incompatible with zeroDataRetention: true. Base credits and enabled options apply; a returned target error page can still be billable, so inspect target status and captured content.
Nimble Extract API

Full-page PNG alongside other requested formats.

Request formats: ["screenshot"]. Other formats can be requested in the same extraction.Decode the Base64 PNG. The documentation alternates between data.screenshots and data.screenshot; validate the actual response shape for your API or SDK version before writing a decoder.Screenshot output automatically enables JavaScript rendering and may change driver pricing. Do not assume the generic extraction starting rate covers every screenshot request.
Oxylabs Web Scraper API

PNG capture through the scraping request interface.

Set render: png on a Web Scraper API request. render: html selects rendered markup instead of a screenshot.The documented screenshot is Base64-encoded PNG. Decode the returned content and verify the required page region; browser instructions can run before the result.This is a returned scrape result. A separate Headless Browser product serves persistent browser control. A universal screenshot price or viewport/full-page contract was not verified here.
ScrapeOps Proxy API Aggregator

Base64 capture inside a JSON response.

Supply screenshot=true, render_js=true and json_response=true together. wait_for and wait can delay capture for the target content.Decode the returned Base64 screenshot and verify its content. The reviewed feature list does not establish a full-page or element-crop contract.Rendering and proxy/bypass options affect credits. The billing policy counts HTTP 404 as billable, so check the target result rather than accepting HTTP success alone.
Scrapfly Scrape API

Named full-page or element captures with authenticated downloads.

Use a GET scrape with render_js=true and named captures such as screenshots[all]=fullpage or a CSS selector. Set screenshot_flags=load_images when page images matter.Require the requested result.screenshots.<name>.url before downloading with the documented authentication. Screenshots are ignored on a cache HIT; reject a missing image and inspect cache and selector outcomes.This feature supports GET requests only. Images are not loaded by default; rendering, downloaded images and selected request options affect credits. Save downloaded bytes rather than treating the authenticated URL as a public asset.
ScrapingBee HTML API

Choose an image response or HTML and image together.

Set screenshot=true with render_js=true. Use screenshot_full_page=true for the whole page or screenshot_selector for a CSS region.The ordinary screenshot response is image data. json_response=true returns HTML and a Base64 screenshot together. Set wait_for, wait or wait_browser for the content you need.Screenshot capture unblocks images and CSS. Rendering and proxy choices determine credits; an image of a loading or error page is not a successful capture for your task.
Thordata Universal Scraping API

PNG output selected on the form-encoded request.

POST the URL with type=png and js_render=True, as in the documented PNG example. HTML is the default output.Use the documented wait or wait_for control when needed. Validate the response encoding in your client; this parameter reference does not establish a binary-versus-Base64 envelope.Screenshot-specific pricing and capture dimensions were not verified. wait_for can time out and still return content, so inspect the captured page before accepting it.
Zyte API

Base64 screenshot with explicit format and capture scope.

Send screenshot: true. Choose screenshotOptions.format (jpeg or png); fullPage defaults to false.Decode the screenshot field from Base64. Full-page capture requires JPEG and is clipped at 5,000 × 10,000 pixels; inspect action outcomes as well as the image.Screenshots add a charge to the target/browser request price. Capture occurs after actions complete or time out, so a returned image can still show an unfinished task.

Compare documented requirements

8 of 8 listings
Clear filters

Swipe or scroll horizontally to compare requirements. Scroll back to the first column to see listing names.

API interfaces, outputs and billing · alphabetical
API / serviceInterface & outputDocumented behaviorBilling & restrictionsEvidence
Firecrawl APIFirecrawl · official publisher

Compare Firecrawl Markdown, HTML and JSON extraction, cache settings and credit charges. Choose a request format and check target status before accepting data.

Details & setup →Sourced JSON record
HTTP API

markdown, HTML, JSON, screenshot

Scraping API
Known page or whole site
POST /v2/scrape reads one URL. For a site traversal, /v2/crawl starts an asynchronous job. Give crawl an explicit page limit and path scope before starting.[1][5]
Markdown response
Request formats: ["markdown"]. Raw HTTP returns content in data.markdown inside a success/data envelope; SDKs return the data object directly.[1]
HTML choices
Use formats: ["html"] for cleaned page HTML at data.html. Use formats: ["rawHtml"] for unmodified page HTML at data.rawHtml. These formats preserve markup; Markdown is the text-oriented choice.[1]
Structured fields
Use a formats object with type: "json" and a prompt or JSON Schema for fields from a known page. Raw HTTP returns the extracted object at data.json. A JSON response envelope alone does not request extraction. Agent is a separate choice when source URLs must be discovered.[1][2]
Freshness
The documented cache default permits data up to two days old. Set maxAge: 0 when the task needs a fresh fetch; this does not guarantee that the target returns the desired page.[1]
Accepting the response
An API HTTP 200 or success: true is not sufficient. Inspect data.metadata.statusCode and the requested content: a captured target 403 or 404 can be returned and billed.[1][3]
Credit decision
For an ordinary returned page, Markdown uses the 1-credit base. JSON extraction totals 5 credits before other options. Extra modifiers stack; optional browser sessions have a separate billing basis.[3][2]
No-document exceptions
Ordinary scrapes that return no document generally cost 0 credits. Paid guards, threat scans and other documented options have exceptions; a returned error page is still a document.[3]
Authentication and capacity
Anonymous Scrape has daily per-IP limits. An account API key uses the team plan and shared request limits. Crawl, Map and batch requests require authentication.[4]
Rate limits versus target errors
A Firecrawl 429 can mean request-rate or concurrency limits. Inspect the response, respect Retry-After when provided and reduce load; repeating a captured target error is a separate decision.[4][6]

Credits per returned page, with option charges. An ordinary scrape is 1 credit; schema-guided JSON adds 4. Account plans and anonymous limits are separate. Check detailed billing before enabling extra options.

Requirements & limitations
  • This record covers the hosted HTTP scraping interface. Self-hosted Firecrawl and local MCP deployment have different dependencies and available services.
  • JavaScript rendering and returned fields are documented capabilities, not a measured success rate or a guarantee for every target.
  • Anonymous daily caps differ from the authenticated Free account plan. The reviewed rate-limit page does not publish a numeric keyless allowance.
  • Cached responses can remain billable. Optional extraction, guards, documents and browser operations can change credit usage; do not assume every failed call is free.
Documentation checkedReview due
8 source references
Nimble Extract APINimble · official publisher

Fetch HTML, Markdown and screenshots with configurable rendering, CSS parsing, browser actions and asynchronous batches.

Details & setup →Provider discussionSourced JSON record
HTTP API

HTML, JSON, markdown, PNG

Scraping API
Formats
The formats array selects HTML, Markdown, Base64 PNG screenshots and response headers.[1]
Rendering
render defaults to false; true enables JavaScript and auto lets Nimble select the configuration.[1]
Parsing and actions
CSS parsing schemas, browser actions and network-capture rules are supported.[1]
Async processing
Async and batch submissions return before processing finishes; poll task or batch progress for completion.[2]
Billing
Extraction Tools are listed at USD 1 per 1,000 URLs, with charges only for successful requests.[3]

Successful URL extractions; public API pricing lists USD 1 per 1,000 URLs for Extraction Tools.

Requirements & limitations
  • The Extraction Tools price is distinct from paid Extraction Templates, Search and Web Search Agent products.
  • Exact concurrency limits and all driver-specific constraints were not verified in this pilot.
Documentation checkedReview due
4 source references
Oxylabs Web Scraper APIOxylabs · official publisher

Fetch public pages or use dedicated target parsers, with rendered HTML and asynchronous batch delivery.

Details & setup →Provider discussionSourced JSON record
HTTP API

HTML, JSON, PNG

Scraping API
Authentication
Use a Web Scraper API user's username and password with HTTP Basic authentication, rather than dashboard credentials.[1]
Rendering and parsing
render=html enables JavaScript rendering. Dedicated supported targets accept parse=true for structured JSON.[1]
Delivery choices
Realtime keeps the connection open; Push-Pull retrieves jobs asynchronously; Proxy Endpoint offers a proxy interface.[2]
Batch size
Push-Pull accepts up to 5,000 query or URL values per batch; Realtime and Proxy Endpoint do not support batch.[2]
Screenshots
render=png returns a Base64-encoded screenshot.[2]

Product-specific plan and target rates; exact costs and failed-request rules were not verified in this pilot.

Requirements & limitations
  • Dedicated parsers apply to supported targets, not every arbitrary URL.
  • Proxy Endpoint accepts fewer additional parameters than the HTTP integrations.
  • Exact plan pricing and failed-request billing remain unverified.
Documentation checkedReview due
4 source references
ScrapeOps Proxy API AggregatorScrapeOps · official publisher

Route scraping requests across upstream services, with rendering, proxy-pool and extraction options.

Details & setup →Provider discussionSourced JSON record
HTTP API

HTML, JSON, markdown, screenshot

Scraping API
Billing outcomes
The credit policy counts both HTTP 200 and 404 responses as successful, billable requests.[1]
Rendering costs
Standard rendering costs 10 credits; residential plus rendering costs 25; render_js_cheap costs 5 using a limited provider set.[1]
Extraction add-on
llm_extract adds 25 credits on top of base proxy costs.[1]
Cheaper rendering tradeoff
render_js_cheap is intended for simpler sites and does not provide the full upstream provider pool.[2]
Response options
The feature list documents screenshot capture and JSON or Markdown LLM extraction responses.[3]

Monthly API credits determined by target and options; HTTP 200 and 404 responses consume credits.

Requirements & limitations
  • Certain domains and premium configurations use different credit schedules.
  • Unused credits do not transfer into the next subscription period.
  • A target 404 can still consume quota.
Documentation checkedReview due
4 source references
Scrapfly Scrape APIScrapfly · official publisher

A scraping API with managed rendering, JavaScript scenarios and configurable anti-blocking options.

Details & setup →Provider discussionSourced JSON record
HTTP API

HTML, JSON, screenshot

Scraping API
Rendering and actions
render_js enables browser rendering; js_scenario defines page interactions before results return.[1]
Result handling
Examples return scraped content and browser data through the API result rather than exposing a browser connection.[1]
Credit model
A scrape can consume multiple credits depending on browser, proxy and protection configuration.[2]
Concurrency examples
Published monthly plans list 5 concurrent requests for Discovery, 20 for Pro, 50 for Startup and 100 for Enterprise.[2]
Quota expiry
Unused subscription quota does not roll over to the next subscription period.[2]
Integrated extraction
extraction_model, extraction_prompt and extraction_template select documented model, prompt and template extraction approaches within a scrape.[3]

API credits per scrape; proxy network, rendering and protection settings affect consumption.

Requirements & limitations
  • This listing covers the Scrape API. Scrapfly lists remote browser sessions separately under its Cloud Browser product.
  • Exact target costs and failed-request billing were not verified in this pilot.
Documentation checkedReview due
4 source references
ScrapingBee HTML APIScrapingBee · official publisher

Fetch rendered pages, apply CSS extraction rules or run browser scenarios through an HTTP API.

Details & setup →Provider discussionSourced JSON record
HTTP API

HTML, JSON, markdown, text, screenshot

Scraping API
Rendering default
render_js defaults to true. HTML, page text, Markdown and screenshots are documented output options.[1]
Request credits
Classic requests cost 1 credit without rendering or 5 with it; premium with rendering costs 25 and stealth with rendering costs 75.[1]
Extraction and interaction
CSS extract_rules and js_scenario support structured extraction and page interactions.[1]
Custom proxy
The own_proxy parameter supports a user-supplied proxy provider.[1]
Automatic cost control
GET-only mode=auto chooses a successful rendering/proxy tier; max_cost caps eligible tiers and all-failed auto attempts cost zero.[1]

Monthly API credits; rendering and proxy tier determine base credits, with AI extraction add-ons.

Requirements & limitations
  • AI extraction adds credits beyond base fetch costs.
  • Auto mode does not supply page-specific waits or browser scenarios.
  • The service returns extracted content through HTTP; this record does not claim a remotely controllable CDP browser.
Documentation checkedReview due
1 source references
Thordata Universal Scraping APIThordata · official publisher

An HTTP endpoint for HTML or PNG results with optional JavaScript rendering and resource controls.

Details & setup →Provider discussionSourced JSON record
HTTP API

HTML, PNG

Scraping API
Request interface
The official example posts form-encoded fields to universalapi.thordata.com/request with a Bearer token.[1]
Rendering
js_render=True enables JavaScript rendering for dynamic content.[1]
Output
The type parameter selects HTML or PNG; HTML is the documented default.[1]
Resource controls
block_resources restricts fetched resources; country selects the scraping proxy location.[1]

Not verified; request multipliers, failed-request billing and plan pricing require further evidence.

Requirements & limitations
  • Pricing, failed-request billing, concurrency and asynchronous delivery were not verified.
  • The documented country parameter defaults to no proxy; confirm the selected request configuration.
Documentation checkedReview due
1 source references
Zyte APIZyte · official publisher

Choose HTTP response bodies, rendered HTML, screenshots or supported structured extraction in one API.

Details & setup →Provider discussionSourced JSON record
HTTP API

HTML, JSON, screenshot

Scraping API
HTTP output
httpResponseBody=true returns the response body Base64-encoded; decode it before parsing.[1]
Browser output
Browser requests return rendered HTML, screenshots or both, and support browser actions and network capture.[2]
Structured extraction
The API supports dedicated extraction types including articles, products, job postings and SERPs.[3]
Billing
Unsuccessful and rate-limited responses are free; browser actions, screenshots and extraction can add costs.[4]
Request model
The /v1/extract endpoint blocks until its single-URL result is ready.[3]

Successful responses, priced by target and HTTP/browser tier, with feature add-ons.

Requirements & limitations
  • This listing covers the HTTP extraction API; Zyte's live CDP browser has separate session and billing rules.
  • Initial browser requests do not support arbitrary HTTP methods, bodies or custom headers beyond Referer.
  • Target tier assignments can change; use the provider's cost estimator for a workload.
Documentation checkedReview due
4 source references

How to use this comparison

Prepared by WPS directory editorial from the linked primary documentation.

Compare the documented request interface, output and account product before checking price. A JSON response can contain raw HTML; it does not by itself establish structured extraction. A browser action in one request does not by itself establish a reusable browser session.

Each row keeps the publisher’s billing basis and restrictions alongside its sources. Unknown prices or limits remain unknown. These are documentation reviews; no live connection, purchase or comparative performance test is claimed.

Review dates show when the documentation was checked. Overdue records remain visible with a label; recheck those sources before choosing a service.

The collection JSON link covers the whole category before filters.

Suggest a correction · Affiliate disclosure · Collection JSON records