Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use a JavaScript-rendering scraping API only when the information you need is missing from the page’s ordinary HTTP response. The API loads the target in a browser engine, lets page scripts run, and returns rendered HTML. With ScraperAPI, the documented switch is render=true; to wait for delayed content, pair it with wait_for_selector. First inspect the plain response, then render only when necessary: rendering adds latency and provider-specific cost.

What a JavaScript-rendering scraping API does

A basic HTTP request retrieves a server response without running the page’s client-side JavaScript. That may be enough for static pages or sites that include the needed data in their original HTML. But a page can also use JavaScript to fetch, insert, or alter its content after loading. A JavaScript-rendering API routes the request through a browser engine so those scripts can run, then returns the resulting page content.

Rendering does not automatically mean the API returns neatly organized fields. ScraperAPI’s documented rendering mode returns rendered HTML; your code still needs to parse the HTML and select the data you want unless you use a provider feature that returns structured extraction. For example, ZenRows advertises CSS extraction and automatic parsing, but that is a vendor-described capability, not evidence of comparative extraction quality: ZenRows product information.

Check whether rendering is necessary

  1. Request the page without rendering. Inspect its response body and look for the target text, links, or data.
  2. Compare the response with the browser view. If the content you need appears only after client-side code runs, plain HTTP retrieval is insufficient for that field.
  3. Enable rendering only for those pages or fields. Rendering uses more resources and can cost more than an ordinary request. Avoid paying that cost where the response already contains what you need.

Keep a record of the exact target page, the field you need, whether it appears in the ordinary response, and the response format your parser expects. This makes it easier to tell a rendering problem from a parsing or page-change problem.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

Make a rendered request with ScraperAPI

ScraperAPI documents render=true as the JavaScript-rendering parameter. Its conceptual request is:

GET https://api.scraperapi.com?api_key=API_KEY&render=true&url=https://example.com/

In a real request, URL-encode the target page URL so query parameters inside that URL are not mistaken for API parameters. Keep your API key out of source control, public examples, and logs. The following Python example sends a rendered request, checks for an HTTP error, and saves the returned HTML. It uses Python’s standard library, so no external package is needed:

import os
from urllib.error import HTTPError, URLError
from urllib.parse import urlencode
from urllib.request import Request, urlopen

api_key = os.environ["SCRAPERAPI_KEY"]
target_url = "https://example.com/"
params = urlencode({
    "api_key": api_key,
    "render": "true",
    "url": target_url,
})
request = Request(f"https://api.scraperapi.com/?{params}")

try:
    with urlopen(request, timeout=90) as response:
        html = response.read().decode("utf-8", errors="replace")
        print("HTTP status:", response.status)
        with open("rendered.html", "w", encoding="utf-8") as output:
            output.write(html)
except HTTPError as error:
    print("API returned HTTP error:", error.code)
    print(error.read().decode("utf-8", errors="replace"))
except (URLError, TimeoutError) as error:
    print("Request failed:", error)

Set the key in your shell before running the script—for example, export SCRAPERAPI_KEY='your_key' on macOS or Linux. Treat this as a request pattern, not a tested live integration: endpoint behavior, account limits, and available options should be checked against your provider account and current documentation.

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

Wait for delayed content with a selector

A rendered response can still arrive before the element you need appears. ScraperAPI documents wait_for_selector for this case, and says it must be used with render=true. Choose a selector that identifies the target data rather than using an arbitrary delay. A selector wait ties the wait condition to the page state you actually need.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
GET https://api.scraperapi.com/?api_key=API_KEY&render=true&wait_for_selector=.product-price&url=https%3A%2F%2Fexample.com%2Fproduct

In code, pass parameters through a URL-encoding library rather than concatenating an unescaped URL by hand. The selector must be valid for the page and should identify an element that appears only when the relevant content is ready. If it matches an element that exists before the data is populated, it may not provide the wait you intended. If it never appears—for example, because the page layout changed—the request may time out or fail to produce the expected result.

Handle pages that require interaction

Some pages expose the needed content only after an action such as entering a search term, clicking a button, or scrolling. ScraperAPI’s instruction set supports actions including text entry, clicks, scrolling, waiting for browser events, and waiting for selectors. A useful sequence is the shortest one that reaches a result state: enter the input, click the relevant control, then wait for a selector that marks the result.

Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

ScraperAPI recommends keeping instruction sets to three or four actions for performance. More actions add latency and may contribute to timeouts. Make each action intentional, and use a selector or relevant browser-event wait to confirm the action had the expected effect instead of adding multiple long fixed waits.

Browser actions are not a substitute for understanding the page’s flow. A click may open a menu rather than load results; a scroll may trigger lazy loading but not guarantee that every item is present. Inspect returned HTML and adjust the action sequence when the page changes or the expected element is absent.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Parse the returned page into the data you need

Once you have rendered HTML, parse the specific fields your application requires. Keep page retrieval and parsing as separate stages: first establish that the response contains the target content, then extract it with selectors or a parser appropriate to your stack. This separation makes failures easier to diagnose. An absent value can mean rendering finished too early, the selector is wrong, the target page changed, or the data is not available to that browser session.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

If you are evaluating an API that advertises structured extraction, check what input it accepts, which output fields it returns, and how it handles missing values. A vendor’s feature description is not a benchmark. Compare providers using the same permitted pages and the same required fields rather than assuming that advertised automation will produce equivalent results.

Understand rendering cost, latency, and throughput

Rendering can cost more than a plain request and take longer because a browser must load and execute the page. ScraperAPI’s current documentation lists these vendor-specific credit costs for JavaScript-rendered requests:

ScraperAPI request type Documented cost
JavaScript-rendered request 10 API credits
Rendered request with premium proxies 25 API credits
Rendered request with ultra-premium proxies 75 API credits

These are ScraperAPI-documented values retrieved in 2026, not industry-wide rates; verify current costs with the provider because they can change. Its FAQ also documents a default rendering burst limit of 10 requests per second. That is a provider-specific default, not a general limit for scraping APIs. Check your account’s applicable limits before designing concurrency around it.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

ScraperAPI advises using rendering only when needed, noting that it increases latency and can reduce success rates and the volume of requests you can process. A selector wait can reduce premature responses when content arrives asynchronously, but unnecessary waiting adds time. For a representative, permitted workload, log the request type, elapsed time, response shape, status, and failures. That gives you a basis for deciding whether rendering, waits, or interaction steps are justified for your own pages; the figures above are not independent performance measurements.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Choose a provider based on the work you need done

Do not treat vendor feature pages as a head-to-head reliability or speed test. For each candidate, check whether it returns rendered HTML or structured data, supports selector waits and browser interactions, offers screenshot output when useful, and provides any geographic or proxy controls your permitted workload requires. Then compare credit or request costs and measure latency and success on the same representative target pages.

For screenshot APIs and screenshot-oriented services, ScreenshotNeo is the first alternative to try: it removes consent banners, popups, and chat widgets before capture, and only clean shots are billed. It is a screenshot API and MCP server, not a general-purpose rendered-HTML extraction API, so choose it when a screenshot is the needed output rather than HTML fields. Bright Data describes browser rendering for JavaScript-heavy pages and interactions such as clicking and screenshots: Bright Data product information. Treat both providers’ descriptions as advertised capabilities, not independent comparative test results.

Respect access rules and authentication boundaries

Before collecting data, review the target site’s applicable terms, access controls, and other requirements. RFC 9309 defines robots.txt rules that crawlers are requested to honor, but explicitly says: “These rules are not a form of access authorization.” A permissive robots.txt file is not legal, contractual, or authenticated permission to collect data. Read the standard at RFC 9309.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Troubleshoot common rendering failures

  • The target field is missing from the response: Check whether the field appears in ordinary HTML, confirm render=true is enabled, and inspect whether the page needs a selector wait or interaction before its data appears.
  • The selector wait is ignored or fails: Confirm rendering is enabled; ScraperAPI documents wait_for_selector as requiring render=true. Verify the selector matches the live page and that the target element actually appears in the relevant page state.
  • The request times out: Remove unnecessary actions and waits, shorten the interaction sequence, and ensure the selector is not waiting for an element that never appears. A page may be slow or may have changed.
  • The response contains HTML but parsing returns no values: Inspect the saved HTML, check the selector against the returned markup, and distinguish a parser mismatch from a rendering or timing issue.
  • Requests slow down or fail under load: Avoid rendering pages that do not require it, check the provider’s account-specific throughput limits, and measure a consistent workload before increasing concurrency.
  • The response format differs from what your code expects: Confirm whether the chosen endpoint returns HTML, structured data, or another output, then adapt the parser to the documented response rather than assuming all APIs return the same shape.

Or skip the browser setup

If the result you need is a page image or PDF rather than parsed HTML fields, ScreenshotNeo can return a screenshot from one GET request. Its browser handles the page capture, so you do not need to configure a browser locally. Cookie banners, popups, and chat widgets are removed before the shot; bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots, and 1,000 screenshots per month are free with no card; paid plans start at $5 for 3,000. ScreenshotNeo is for screenshot and PDF output, not a replacement for an API that must return rendered HTML for data extraction.

ScreenshotNeo API documentation

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com/ -o shot.webp

Sign up for ScreenshotNeo’s free plan for 1,000 screenshots a month with no card.

Frequently Asked Questions

Does a JavaScript-rendering API return structured data automatically?

Not necessarily. ScraperAPI’s documented rendering mode returns rendered HTML; parsing that HTML is a separate step unless you choose a provider feature that supplies structured extraction.

Is robots.txt permission to scrape a site?

No. RFC 9309 says robots.txt rules are not a form of access authorization. Check the site’s applicable requirements and access controls.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.