Home / Guides

What does JavaScript rendering really cost across scraping APIs?

Current JavaScript rendering rates, multipliers, included-rendering vendors, volume breakpoints, and a test for deciding whether a target needs a browser.

ExactWritten against 74 products21 cited sourcesUpdated 2026-07-26

Where the retained snapshot sits

$99.00ExactHasData, Business. The lowest exact published bill for 100,000 JavaScript-rendered pages a month.No published lower bound sits beneath it.

The dataset behind this guide

Products priced74
Latest recorded source date2026-07-26
Guide last reviewed2026-07-26
Sources cited below21
  1. Successes you want

    100,000 pages

    Your stated workload. Every vendor on this site is priced against this same number.

  2. × 1

    Attempts you are billed for

    100,000 requests

    HasData does not bill failed fetches, so failures cost nothing here.

  3. × 10

    What the meter counts

    1,000,000 credits

    One attempt is not one billed unit here: this workload multiplies by 10 before any money is involved.

  4. =

    Cash per month

    $99.00 /mo

    Business. Cheapest of every eligible purchase option, not the first plan that fits.

Bars share one linear scale across the 3 counted stages, so a multiplier shows as length. Units differ by stage and are labelled. Cash is not on that scale.

What is calculated and what is checked. The bill and ladder above are engine output for this guide's own workload. The prose below is written by a person. Each money figure is checked against the dated vendor price stored with this guide, but that does not mean the vendor page was freshly rechecked. A mismatch must be explained by the shown arithmetic or another cited vendor fact, or the page is not published.

The published answer runs from 1 request with rendering included to 12.66x for Zyte’s highest pay-as-you-go difficulty tier; common credit-metered APIs charge 5x or 10x, but several vendors use plan-specific rates instead. Olostep, ScrapingFish, Scraping Robot, SOAX, ScrapingBee, ScraperAPI, and Zyte, retrieved 2026-07-26.

Do not compare vendors by headline credits. This guide isolates the rendering change on the nearest ordinary proxy path. The scraping-credit guide owns the separate arithmetic for combining rendering with premium proxies or protected modes. Scrapfly billing and ZenRows pricing, retrieved 2026-07-26.

Every published JavaScript rendering meter in the current vendor records

“Factor” below compares the JavaScript path with the same vendor’s nearest ordinary HTTP path. A replacement rate is the whole request cost. An add-on is added to the base. A separate quota means there is no honest single multiplier, because both the included allowance and overage rate change.

Every published JavaScript rendering meter in the current vendor records table

Vendor Published ordinary path Published JavaScript path Effective factor and billing rule Source
Crawlbase Normal-token request One section says the same successful-response price 1x is stated but not verified. The same page later calls the normal token “cheaper,” while the current target record says a rendered call consumes 2 requests. Crawlbase Crawling API, retrieved 2026-07-26
Decodo $0.50, $0.30, or $0.14 per 1,000 standard results on the $19, $49, and $99 plans $0.75, $0.65, or $0.60 per 1,000 JavaScript results 1.5x, 2.17x, or 4.29x by plan. JavaScript also has separate allowances of 25,000, 75,000, and 165,000 results. Decodo Web Scraping API pricing, retrieved 2026-07-26
Nimble VX6 at $0.90 per 1,000 URLs VX8 at $1.30, or VX10 with stealth at $1.45 per 1,000 1.44x for JavaScript or 1.61x with stealth. Nimble may select and escalate the driver automatically. Nimble pricing, retrieved 2026-07-26
Olostep One successful webpage is one request Rendering, proxies, and data use are included in that request 1x. The page says one request equals one webpage or PDF and infrastructure is not billed separately. Olostep, retrieved 2026-07-26
Oxylabs Web Scraper API “Other” results cost $1.15, $1.10, $0.75, or $0.70 per 1,000 by offer JavaScript results cost $1.35, $1.30, $1.00, or $0.95 per 1,000 1.17x to 1.36x, using the same offer’s non-JavaScript “Other” rate. The rendered rate replaces the target rate. Oxylabs pricing, retrieved 2026-07-26
Scrape.do 1 credit with datacenter 5 credits with datacenter rendering 5x on the ordinary datacenter path. Scrape.do request costs, retrieved 2026-07-26
ScrapeNinja Pro, Ultra, and Mega include 100,000, 500,000, and 1,500,000 non-JavaScript requests The same plans include 10,000, 50,000, and 150,000 JavaScript requests The included JavaScript quota is 10x smaller. JavaScript overage is 2x, 10x, or 15x the non-JavaScript overage on Pro, Ultra, or Mega. ScrapeNinja on RapidAPI, retrieved 2026-07-26
ScrapeOps 1 credit on the standard path 10 credits with standard JavaScript rendering 10x on the ordinary standard path. ScrapeOps request costs, retrieved 2026-07-26
ScraperAPI 1 credit for a normal request 10 credits with rendering 10x on the normal path. ScraperAPI credit costs, retrieved 2026-07-26
Scrapfly 1-credit datacenter base Add 5 credits for browser rendering The datacenter total is 6 credits, so rendering makes that path 6x. Scrapfly billing, retrieved 2026-07-26
ScrapingAnt 1 credit on datacenter 10 credits on datacenter with JavaScript 10x on the datacenter path. ScrapingAnt credit costs, retrieved 2026-07-26
ScrapingBee 1 credit on Classic 5 credits on Classic with JavaScript 5x on the Classic path. ScrapingBee credit system, retrieved 2026-07-26
ScrapingDog 1 credit with the rotating proxy 5 credits with standard rendering 5x on the ordinary rotating-proxy path. ScrapingDog documentation, retrieved 2026-07-26
ScrapingFish $0.002 per successful request $0.002 per successful request 1x. The vendor says JavaScript execution and its other available features use the same request price. ScrapingFish, retrieved 2026-07-26
Scraping Robot $0.0018 per successful scrape JavaScript rendering is included in the same successful-scrape rate 1x. Rendering does not add a second meter to the published Business rate. Scraping Robot, retrieved 2026-07-26
SOAX Web Data API $0.90 to $1.30 per 1,000 requests by plan Included in the same request price 1x. The product page says JavaScript rendering is included; the pricing page lists one all-in request rate per plan. SOAX Web Data API and SOAX pricing, retrieved 2026-07-26
ZenRows 1 credit basic 5 credits with JavaScript 5x on the basic path. ZenRows pricing, retrieved 2026-07-26
Zyte API Pay as you go is $0.13 to $1.27 per 1,000 HTTP responses across five tiers $1.01 to $16.08 per 1,000 browser-rendered responses across the same tiers 7.77x to 12.66x on pay as you go. Across the published $100, $200, and $500 commitments, individual tier ratios range from 7.5x to 12.63x. Zyte pricing, retrieved 2026-07-26

One current-data conflict needs to stay visible. The Crawlbase target record says a rendered call consumes 2 requests. The vendor’s current Crawling API page says pricing is the same per successful response on the normal and JavaScript paths, then describes the normal token as “faster, cheaper.” This guide reports the published 1x statement but does not classify Crawlbase as verified free rendering. Crawlbase Crawling API, retrieved 2026-07-26.

Which vendors charge nothing extra for rendering?

Four current records have primary documentation supporting no rendering surcharge:

  • Olostep defines one request as one webpage or PDF processed, says infrastructure costs are included, and supports pages that require JavaScript rendering. Olostep, retrieved 2026-07-26.

  • ScrapingFish publishes one $0.002 successful-request rate and says its available features, including JavaScript execution, have the same price. ScrapingFish, retrieved 2026-07-26.

  • Scraping Robot publishes a $0.0018 rate per successful scrape and includes JavaScript rendering in that rate. Scraping Robot, retrieved 2026-07-26.

  • SOAX Web Data API says JavaScript rendering is included and publishes all-in rates of $0.90 to $1.30 per 1,000 requests by plan. SOAX Web Data API and SOAX pricing, retrieved 2026-07-26.

Crawlbase is excluded from that list. Its page contains both the same-price statement and the “cheaper” normal-token wording, while the current target record says 2 requests for rendering. The surcharge is therefore not verifiable from the available first-party documentation. Crawlbase Crawling API, retrieved 2026-07-26.

“Included with every plan” does not necessarily mean “no usage premium.” Oxylabs includes Headless Browser access in the subscription feature list but still publishes a higher per-1,000 result price when JavaScript is used. Oxylabs pricing, retrieved 2026-07-26.

Worked example: Scraping Robot at 120,000 successful scrapes

Scraping Robot’s public Business rate is $0.0018 per successful scrape from zero through 500,000 scrapes, with JavaScript rendering included. The worked input is 120,000 billable successful scrapes, of which 30% require rendering. The workload size and rendered share are hypothetical inputs, not vendor claims. Scraping Robot, retrieved 2026-07-26.

First split the workload, then apply the same dataset rate to both paths:

rendered successes = 120,000 × 30% = 36,000
ordinary successes = 120,000 - 36,000 = 84,000

rendered cost = 36,000 × $0.0018 = $64.80
ordinary cost = 84,000 × $0.0018 = $151.20
total = $64.80 + $151.20 = $216.00

The rendered share does not change this request bill because the current record has one successful-scrape rate and no separate rendering meter. Scraping Robot, retrieved 2026-07-26.

Worked example: Scraping Robot at 120,000 successful scrapes table

Rendered share Ordinary successes Rendered successes Checkable calculation Total
0% 120,000 0 120,000 × $0.0018 $216.00
30% 84,000 36,000 84,000 × $0.0018 + 36,000 × $0.0018 $216.00
100% 0 120,000 120,000 × $0.0018 $216.00

The surcharge attributable to switching this published workload from 0% rendering to 100% rendering is therefore $216.00 - $216.00 = $0.00. That does not claim the two paths complete the same amount of work in the same time; it states only that the published request rate is unchanged. Scraping Robot, retrieved 2026-07-26.

The record also defines where this arithmetic stops. At 500,000 successful scrapes, the published rate gives 500,000 × $0.0018 = $900.00. Above 500,000, the vendor advertises quote-dependent Enterprise pricing rather than a fixed public tier, so the Business rate should not be extrapolated past that boundary. Scraping Robot, retrieved 2026-07-26.

How to check whether you need rendering before paying for it

Test the required fields, not whether the page “uses JavaScript.” A site can run scripts while placing the data you need in the initial response; ScrapingFish specifically warns that content may be present in raw HTML even when a JavaScript-enabled browser changes what is displayed. ScrapingFish, retrieved 2026-07-26.

  1. Fetch the target without a browser. Use a normal HTTP client, follow redirects, and inspect the response body:

    curl -L "$TARGET_URL"

    -L tells curl to follow HTTP redirects. curl manual, retrieved 2026-07-26.

  2. Search that response for a field whose value you already know. Check the HTML, JSON-LD, and serialized application data. If every required field is present across representative URLs, parse that response and leave rendering off. Chrome DevTools Network panel, retrieved 2026-07-26.

  3. If the field is missing, inspect the browser’s Network panel. Reload the page and compare the main Document response with Fetch/XHR responses. Chrome DevTools documents filters for Fetch/XHR and lets you inspect each response body. If a permitted, stable data endpoint returns the field directly, call that endpoint instead of paying to render the visual page. Chrome DevTools Network panel, retrieved 2026-07-26.

  4. Enable rendering only for the URLs that fail the raw test. Crawlbase recommends using its normal token first and moving to the JavaScript token when the normal response is empty or challenge-blocked. Scrapfly likewise says to enable browser rendering only when the site requires it. Crawlbase Crawling API and Scrapfly billing, retrieved 2026-07-26.

  5. Retest the cheap path when the target changes. ScrapingFish notes that desired content can be present in raw HTML even when opening the same response in a JavaScript-enabled browser changes what is displayed. ScrapingFish, retrieved 2026-07-26.

Pay for rendering when the required data appears only after client-side requests, interaction, or scrolling and there is no usable direct response path. Do not pay for it merely because the site is built with React, Vue, Angular, or another JavaScript framework. Crawlbase Crawling API and Scrapfly billing, retrieved 2026-07-26.

Four rendering meters added by the current dataset

Four current request.js_render records arrived after the earlier table was authored. Each publishes a replacement rendering mode rather than an additive rendering fee. The worked workload below is 10,000 requests. It converts each record’s basic and rendering meters into credits without treating one vendor’s credit as equal to another vendor’s credit.

Four rendering meters added by the current dataset table

Vendor Basic meter Rendering meter Basic workload Rendered workload Multiplier Source
HasData 1 credit 10 credits 10,000 x 1 = 10,000 credits 10,000 x 10 = 100,000 credits 10x Request costs, retrieved 2026-07-26
ScrapeOwl 1 credit 5 credits 10,000 x 1 = 10,000 credits 10,000 x 5 = 50,000 credits 5x Request costs, retrieved 2026-07-26
ScrapingBot 1 credit 5 credits 10,000 x 1 = 10,000 credits 10,000 x 5 = 50,000 credits 5x Request costs, retrieved 2026-07-26
WebScraping.AI 1 credit 5 credits 10,000 x 1 = 10,000 credits 10,000 x 5 = 50,000 credits 5x Pricing, retrieved 2026-07-26

The credit totals are the complete answer available from these four meter records. None publishes one universal cash value per credit that can be compared across vendors without selecting a plan or pack, so this section does not convert the totals into invented dollar prices. The linked records and sources were checked 2026-07-26.

Sources