API directory
JavaScript Rendering APIs: Compare Settings, Waits & Costs
Compare scraping APIs for JavaScript pages by rendering settings, readiness controls, output checks and documented cost constraints.
Choose rendering and readiness settings for the content your application needs.
- Set the rendering mode explicitly. Defaults and similarly named browser settings differ between APIs; loading a browser does not always mean JavaScript was executed.
- Choose a selector, network event or action sequence for the required content, then verify the returned fields. Page load or a completed wait alone does not prove the desired data is present.
- Compare the configured request, including proxy tier, actions and output. These APIs return content; persistent CDP connections have a separate hosted-browser collection.
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.
| API / task | Request choice | What to check | Cost or constraint |
|---|---|---|---|
| Crawlbase Crawling API Choose the JavaScript token and budget for additional scrolling. | Use a JavaScript token, or javascript=true with a normal token. page_wait adds a delay; ajax_wait waits for a quiet network interval; click and scroll controls are also documented. | Check the resulting page content after the selected interaction. Rendering and a wait do not establish that all desired records were loaded. | Scrolling has time-based billing: the first 8 seconds count as one request, then each additional started 5-second interval adds one. The reviewed page conflicts on normal-versus-JavaScript base pricing, so no equal-price assumption is made. |
| Decodo Web Scraping API Use the current v2 rendered-HTML request. | The reviewed v2 example posts headless: html to /v2/scrape. Choose the required standard or premium proxy pool separately. | Check the rendered HTML for your target content. A selector-wait parameter was not verified in this v2 guide; do not copy one from an older interface without checking compatibility. | Published rates distinguish the proxy pool and whether JavaScript is enabled. Compare the matching column rather than a plan starting price. |
| Firecrawl API Select the returned content and control waits and freshness. | POST /v2/scrape with the required formats, such as html. The guide documents JavaScript content handling and wait actions without requiring a render=true parameter. | Inspect target status and the requested content. Set maxAge: 0 when cached content is unsuitable; requesting a fresh page is not a guarantee of usable data. | Returned documents, including captured target error pages, can be billable. Extraction options add credits; separate live browser sessions use their own billing basis. |
| Jina Reader API Choose the hosted browser engine and requested representation. | Set X-Engine: browser and X-Wait-For-Selector for the target element. X-Respond-With selects HTML, text or Markdown content. | Avoid X-Respond-Timing: html when you need rendered content: the hosted specification describes that timing mode as unrendered. Use cache controls when freshness matters. | The hosted engine schema and repository engine names differ; browser is shared by both. Check token and rate limits rather than assuming a fixed page-credit charge. |
| Nimble Extract API Choose rendering independently from the returned format. | Set render: true for JavaScript or render: auto to let Nimble select a configuration; the documented default is false. Choose formats separately. | Inspect the requested content after any browser_actions. The quickstart shows inconsistent wait payload shapes, so verify the accepted action schema before copying a wait example. | Screenshot output enables rendering even when it was not chosen independently. Driver and options can affect pricing; do not treat the generic extraction starting rate as every rendered request. |
| Oxylabs Web Scraper API Enable rendering before choosing browser instructions. | Set render: html to request rendered markup. Choose browser_instructions when the page needs an interaction before capture. | Inspect the returned HTML for the expected fields. A wait instruction delays the workflow; it does not prove the target data appeared. | The scraping API returns a result. Stateful browser control belongs to the separate Headless Browser product; a universal rendering multiplier was not verified here. |
| ScrapeOps Proxy API Aggregator Choose the provider pool and rendering mode before readiness controls. | Set render_js=true for standard rendering or render_js_cheap=true for the limited lower-cost provider set. Use wait_for for an element or wait for a fixed delay. | Inspect the required content after any waits, scrolling or browser instructions. The cheaper mode has a smaller upstream provider pool, so confirm it fits your target. | Rendering and proxy choices have different credit units. HTTP 404 responses are billable under the published policy; inspect target outcomes before retrying. |
| ScraperAPI Pair rendering with the required selector. | Set render=true. Add wait_for_selector for the element whose content you need; that wait option requires rendering. | Verify that the returned HTML contains the expected data, not just the matching element. Inspect target errors before sending a retry. | Rendering and premium/ultra-premium proxy choices use different credit units. Target-specific rules and billable 404 responses prevent a blanket cost-per-success assumption. |
| Scrapfly Scrape API Use selector waits or a scripted interaction before returning HTML. | Set render_js=true. wait_for_selector accepts CSS or XPath; rendering_wait adds a delay; js_scenario defines a sequence of browser actions. | Check content in the API result and inspect failures from the selected wait or action. Choose the wait for the target data rather than assuming a page-load event is sufficient. | Rendering, proxy and screenshot options change credits. The documented X-Scrapfly-Api-Cost response header helps inspect the cost of the configured request. |
| ScrapingAnt Web Scraping API Make the rendering choice explicit when public defaults conflict. | Send browser=true and keep return_page_source=false for rendered content. wait_for_selector requires the browser mode. | Verify the returned HTML. return_page_source=true skips JavaScript rendering even while using a browser. The request reference and product page disagree on default browser mode and timeout limits. | Choose the request options explicitly and confirm supported timeout values for your account. JavaScript datacenter and residential modes have different credits; inspect Ant-credits-cost. |
| ScrapingBee HTML API Choose a page-ready condition before adding a fixed delay. | Set render_js=true explicitly. wait_for accepts CSS or XPath; wait_browser chooses a browser event; wait adds milliseconds after the selector wait when both are set. | Check the required content in the returned HTML. The default browser event is domcontentloaded, which may precede the data you need. | Rendering defaults on in the reference. Classic, premium and stealth rendering use different credits; auto mode selects tiers but does not choose your page-specific waits. |
| Thordata Universal Scraping API Form parameters distinguish rendered output from readiness. | For rendered HTML, send type=html and js_render=True. Choose wait for a fixed delay or wait_for for a CSS selector. | wait_for overrides wait and has a documented 30-second maximum; content may return on timeout. Verify the required fields rather than treating a returned page as proof the selector appeared. | The selected parameter reference does not verify rendering prices. Resource blocking can change what loads; preserve resources needed for the target content. |
| Zyte API Select browser HTML and an explicit readiness condition. | Set browserHtml: true. Use a waitForSelector, waitForRequest, waitForResponse or waitForTimeout action when the content needs a later capture point. | Inspect browserHtml and the action outcomes. Browser use and JavaScript execution are separate settings; do not disable JavaScript when the required content depends on it. | Target and HTTP/browser tier determine the base charge. Actions, screenshots, network capture and extraction can add costs. |
Compare documented requirements
13 of 13 listingsSwipe or scroll horizontally to compare requirements. Scroll back to the first column to see listing names.
| API / service | Interface & output | Documented behavior | Billing & restrictions | Evidence |
|---|---|---|---|---|
| Crawlbase Crawling APICrawlbase · official publisher Fetch page content with normal or JavaScript tokens, optional geo-routing and browser interaction controls. Details & setup →Provider discussionSourced JSON record | HTTP API HTML, JSON Scraping API |
| Successful requests; JavaScript request configuration and extended scrolling affect billed usage. Requirements & limitations
| Documentation checkedReview due 1 source references
|
| Decodo Web Scraping APIDecodo · official publisher An HTTP API for rendered web content, with request-level choices for proxy pool and JavaScript execution. Details & setup →Provider discussionSourced JSON record | HTTP API HTML, JSON Scraping API |
| Request credits vary by request complexity, including proxy pool and JavaScript rendering. Requirements & limitations
| Documentation checkedReview due 2 source references
|
| 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 |
| 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
| Documentation checkedReview due 8 source references
|
| Jina Reader APIJina AI · official publisher Choose Jina Reader’s main-content or full-page Markdown, JSON response wrapper and cache controls. Check URL fragments, selectors and output-token billing. Details & setup →Sourced JSON record | HTTP API markdown, text, HTML, JSON Scraping API |
| Basic anonymous URL reading is rate-limited. Keyed Reader usage draws from the supplied API key’s output-token balance; optional modes can change token usage. Jina documents no token deduction for failed requests. Check the current key quota and rate table. Requirements & limitations
| Documentation checkedReview due 3 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 |
| Successful URL extractions; public API pricing lists USD 1 per 1,000 URLs for Extraction Tools. Requirements & limitations
| 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 |
| Product-specific plan and target rates; exact costs and failed-request rules were not verified in this pilot. Requirements & limitations
| 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 |
| Monthly API credits determined by target and options; HTTP 200 and 404 responses consume credits. Requirements & limitations
| Documentation checkedReview due 4 source references
|
| ScraperAPIScraperAPI · official publisher A scraping HTTP API with optional rendering, premium proxy pools and asynchronous requests. Details & setup →Provider discussionSourced JSON record | HTTP API HTML, JSON Scraping API |
| API credits determined by target domain and request options. Requirements & limitations
| Documentation checkedReview due 8 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 |
| API credits per scrape; proxy network, rendering and protection settings affect consumption. Requirements & limitations
| Documentation checkedReview due 4 source references
|
| ScrapingAnt Web Scraping APIScrapingAnt · official publisher Return page HTML through an API with optional browser rendering, selector waits and proxy location controls. Details & setup →Provider discussionSourced JSON record | HTTP API HTML Scraping API |
| API credits based on browser use and proxy network. Requirements & limitations
| Documentation checkedReview due 3 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 |
| Monthly API credits; rendering and proxy tier determine base credits, with AI extraction add-ons. Requirements & limitations
| 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 |
| Not verified; request multipliers, failed-request billing and plan pricing require further evidence. Requirements & limitations
| 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 |
| Successful responses, priced by target and HTTP/browser tier, with feature add-ons. Requirements & limitations
| 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