Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › browser automation

TLS Fingerprinting in Playwright and Puppeteer: Detection, JA3/JA4, and Bypass Limits

By Freedom251 Team · · 7 min read

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

TLS fingerprinting can help identify the kind of client opening a connection, but a JA3 or JA4 match alone cannot prove that a session is automated—and the available evidence does not establish a generally reliable way to bypass it. Playwright and Puppeteer control browsers; the browser and network stack perform the TLS handshake. For a meaningful test, record the exact browser, framework, protocol, connection path, and whether the fingerprint was actually available to the detector.

What TLS fingerprinting observes

TLS fingerprinting examines details in the client’s TLS handshake, especially the ClientHello sent when a connection begins. In TLS 1.3, defined by RFC 8446 (August 2018), the ClientHello offers information used to negotiate the connection, including cipher suites and extensions. A detector can turn selected details into a fingerprint and use it as one signal about the connecting client.

As an Amazon Associate I earn from qualifying purchases.

This is a network-handshake signal, not the same thing as properties a website reads from JavaScript after a page loads. A browser can expose one set of page-level properties while its connection presents a separate TLS pattern.

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

What are JA3 and JA4 fingerprints?

JA3: selected ClientHello values condensed into a hash

The Salesforce JA3 project describes collecting decimal values for the SSL version, accepted ciphers, extensions, elliptic curves, and elliptic-curve point formats. It concatenates the selected values into a string and MD5-hashes that string to create a compact fingerprint. The project says JA3 was developed at Salesforce in 2017 and is no longer actively maintained by Salesforce.

#1 Best Overall

JA4: extension sorting to make grouping easier

Cloudflare describes JA3 and JA4 as identifiers derived from how a TLS client initiates a connection. Its documentation, last updated May 6, 2026, says JA4 sorts ClientHello extensions. This reduces the number of unique fingerprints for modern browsers and makes grouping easier. That makes JA4 useful for grouping similar client patterns; it does not make the value a permanent identity for a person or device.

JA3 and JA4 are fingerprints of observed connection patterns, not proof of who is using a browser or why. A match or a difference can be useful context, but should not be treated as a verdict on its own.

How does TLS fingerprinting detect Playwright or Puppeteer?

Playwright and Puppeteer automate browsers through browser-control protocols. They do not themselves perform the TLS negotiation: the browser and its network stack do. As an architectural consequence, the observed handshake depends on the browser and network stack in use, rather than having one guaranteed fingerprint for every Playwright or Puppeteer session.

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

The framework name alone is therefore not enough to predict what a detector will see. Playwright can launch Chromium, Firefox, or WebKit, or attach to an existing browser instance. Its documentation warns that custom browser arguments can break functionality and describes Chrome DevTools Protocol (CDP) attachment as lower fidelity than its own Playwright protocol connection. Puppeteer uses CDP for Chrome by default and supports WebDriver BiDi for Chrome and Firefox; its FAQ notes that releases are tied to particular browser revisions for protocol compatibility.

The cited documentation does not provide a controlled test establishing a universal JA3 or JA4 fingerprint for Playwright or Puppeteer, or a universal detection rate. Compare observations only when the relevant setup is specified:

  • Browser engine and exact browser build.
  • Automation framework and version.
  • Browser-control protocol and whether the browser was launched or attached.
  • Fingerprint method (JA3 or JA4) and whether the detector received a value.
  • Network path, TLS termination point, and session-resumption status.
  • Detector or vendor context, including whether that deployment exposes the signal.

What a fingerprint can—and cannot—prove

A JA3 or JA4 value can help identify or group a client pattern. It cannot, by itself, establish that a particular session is a bot, that it is malicious, or that it belongs to a human. Nor does a changed or missing value prove that detection has been defeated. Cloudflare’s documentation describes field behavior and product access; it does not publish universal bot-classification accuracy. The Salesforce JA3 project’s examples likewise do not establish present-day accuracy for Playwright or Puppeteer traffic.

There is no supported universal ranking of Playwright versus Puppeteer detection, and the cited sources do not demonstrate a generally reliable bypass. Treat claims that a framework setting, browser option, or fingerprint change will reliably evade detection with caution.

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

Can Playwright change its TLS fingerprint?

The evidence here does not establish a general Playwright setting that reliably changes a TLS fingerprint, nor a configuration that defeats detection. Playwright’s browser choices, launch or attachment mode, and control protocol matter to an experiment, but the framework documentation does not establish one fixed TLS identity per mode. The same caution applies to Puppeteer: its supported browser and protocol combinations do not amount to a documented, universal fingerprint-changing or bypass method.

For defensive testing, compare controlled configurations rather than trying to infer a framework-wide rule. Record the exact browser build and framework version, and verify the fingerprint value at the detector before drawing conclusions.

Does rotating an IP change a TLS fingerprint?

An IP address and a TLS ClientHello are different parts of a connection. Changing the source IP alone is not evidence that the ClientHello fingerprint changed. However, a different route may change where TLS is terminated or which detector sees the connection, so log the network path and termination point alongside the fingerprint. The sources do not establish IP rotation as a reliable way to bypass TLS fingerprint detection.

When the fingerprint may be missing

A missing value is not necessarily evidence that a detector failed to recognize automation. Cloudflare documents several cases in which its JA3/JA4 fields may be null or empty:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • The traffic is not encrypted HTTP.
  • A Worker-to-zone, third-party, or other documented routing path does not provide the field.
  • Bot Management is skipped.
  • A TLS session is resumed after the initial handshake, so subsequent connections do not present the same full handshake information.

These are Cloudflare-specific product details, not a guarantee that other vendors handle missing data the same way. Cloudflare says JA3/JA4 fields are available only to Enterprise customers who have purchased Bot Management. Workers using JA4 Signals should handle missing fields rather than assuming a value is always present.

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

How can I test TLS fingerprint detection on your own site?

Use a site and detector you own or are authorized to assess. The aim is to learn whether a signal is present and how your system uses it—not to claim a universal bypass.

  1. Define the detector and signal. Confirm whether your deployment evaluates JA3, JA4, or both, and where that value is made available to your application or logs.
  2. Record the test setup. Note the browser engine and exact build, Playwright or Puppeteer version, browser-control protocol, launch or attachment mode, endpoint, network path, and TLS termination point.
  3. Separate new and resumed connections. Record whether the observation is from an initial TLS handshake or a resumed session. Do not treat an absent field on a later connection as a changed fingerprint.
  4. Run controlled comparisons. Change one relevant variable at a time, such as browser build or protocol mode, while holding the endpoint and network path steady. Keep the observations tied to that exact setup.
  5. Verify signal availability before interpreting a decision. Check whether the detector actually received a fingerprint. If the value is null or empty, check the vendor’s documented availability conditions before attributing the outcome to the fingerprint.
  6. Evaluate the decision in context. Treat JA3/JA4 as one network signal, not as standalone proof of automation, identity, intent, or successful evasion.

Troubleshooting missing or confusing observations

The fingerprint field is null or empty

First check whether the request used plaintext HTTP, a documented Worker or routing path, or a configuration that skips Bot Management. If the connection was resumed, check whether you are looking at a later connection rather than the initial handshake. These are documented Cloudflare cases; another vendor may have different rules.

Two runs with the same automation framework do not match

Compare the exact browser engine and build, framework version, protocol, launch or attachment mode, and network path. “Playwright” and “Puppeteer” do not specify those variables, and the cited sources do not establish one fingerprint for either framework.

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

A changed value seems to confirm a bypass

Check whether the fingerprint method, handshake visibility, session status, or TLS termination point changed. A different or missing fingerprint is not proof that a detector was bypassed; test the detector’s actual decision and signal availability in your authorized environment.

Or skip the browser setup

If your immediate task is to capture a page image rather than inspect its TLS handshake, ScreenshotNeo offers a screenshot API and MCP server. It does not change or test a browser’s TLS fingerprint, so it is not a bypass or a substitute for the diagnostic workflow above. A single GET request can return a PNG, JPEG, WebP, or PDF; for example, this cURL request saves a WebP screenshot of Stripe:

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

See the ScreenshotNeo API documentation for the request options. Before capture, it can accept cookie or consent banners and remove more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and responses report the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots.

Learn about ScreenshotNeo, or sign up free for 1,000 screenshots a month with no card.

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.

browser automationJA3JA4PlaywrightPuppeteerTLS fingerprintingWeb Security

Leave a Reply

Your email address will not be published. Required fields are marked *

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

Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.