ScrapingProxies

TLS Fingerprinting (JA3/JA4) Explained for Web Scrapers (2026)

LO
Network Architect
Published
July 11, 2026
Updated
August 30, 2026
Read Time
3 min read
Ten thousand residential IPs still fail if the handshake looks like a library

Your scraper can rotate through ten thousand residential IPs and still get blocked in one request. Why? Because the target is scoring your TLS fingerprint — the cryptographic handshake before HTTP even starts.

What JA3 and JA4 measure

During TLS Client Hello, your client advertises:

  • TLS version
  • Cipher suites (order matters)
  • Extensions (SNI, ALPN, supported groups)
  • Elliptic curves

JA3 concatenates these fields into a hash. JA4 (newer) normalizes the same idea for HTTP/2 and QUIC-aware clients. Bot vendors maintain allowlists of browser JA3 hashes and block everything else.

Client Hello is a fingerprint: version, ciphers, extensions
JA3 hashes version, cipher order, and extensions. JA4 covers the same idea for HTTP/2 and QUIC.
ClientTypical useJA3 looks like
Chrome 120Real usersBrowser-like hash
Python requestsScriptsDistinct library hash
curlCLI testsDistinct hash
PlaywrightAutomationMatches bundled Chromium
Pro Tip

[!TIP] Pro Tip: If IP rotation fixes nothing but Playwright works immediately, suspect TLS or HTTP/2 fingerprinting — not bandwidth or geo.

TLS vs IP vs HTTP headers

Think in layers:

  1. IP reputation — residential vs datacenter (Premium vs Elite)
  2. TLS (JA3/JA4) — browser vs library
  3. HTTP headers — User-Agent, Accept-Language, sec-ch-ua
  4. Behavior — timing, mouse events, scroll depth
Four layers: IP, TLS, headers, behavior
SOCKS5 versus HTTP only changes the tunnel. Your Client Hello stays the same.

SOCKS5 vs HTTP proxy only changes how you reach the target — not what TLS fingerprint you present. See SOCKS5 vs HTTP for scraping.

How to pass TLS checks in production

Route Playwright through Aethyn:

  • Chromium supplies a mainstream JA3
  • JavaScript runs for Cloudflare interstitials
  • Cookies persist in a sticky session (1–1440 minutes, default 30) when you set session params in the proxy username

Use Elite residential when the target pairs TLS checks with strict IP reputation (major retail, fintech, social login).

Playwright's Chromium handshake is the mainstream path
Sticky holds one rotating-pool IP for 1–1440 minutes (default 30) through login. Elite when IP reputation is also strict.

Option B — TLS impersonation libraries

Some HTTP clients mimic Chrome's JA3. They help on moderate sites but lag behind browser updates — maintain them like any other dependency.

Impersonation still is not a browser
A library that mimics JA3 still is not Chromium. Treat impersonation as a dependency that drifts.

Option C — HTTP-only targets

News sites, legacy APIs, and internal tools often skip JA3 scoring. Premium residential at €2.00/GB is sufficient.

JA3 + Cloudflare 1020

Cloudflare Bot Management combines JA3 with IP and behavior. Fixing only one layer fails.

Follow the combined playbook: Fix Cloudflare error 1020.

Glossary cross-reference

Practical checklist

  • Reproduce block in Playwright with proxy — if pass, TLS was the issue
  • Match geo on proxy username to target market
  • Hold sticky session through login and checkout
  • Escalate IP tier to Elite if TLS-fixed traffic still 403s
  • Log JA3-related failures separately from 429 rate limits

Try Elite residential for hard targets

FAQ

Common questions about this article

What is JA3 fingerprinting?
JA3 hashes the TLS Client Hello — cipher suites, extensions, elliptic curves, and TLS version — into a fingerprint string. Anti-bot vendors match that hash against known browsers and libraries. Python requests and many HTTP clients have distinct JA3 signatures that differ from Chrome or Safari.
Does SOCKS5 hide TLS fingerprinting?
No. SOCKS5 tunnels TCP; your client still performs the TLS handshake to the destination. Switching from HTTP proxy to SOCKS5 does not make requests look like Chrome. Use a real browser (Playwright/Puppeteer) or a TLS impersonation library if the target checks JA3.
Do I need Elite residential for TLS-blocked sites?
TLS and IP reputation are separate layers. Fixing TLS requires a browser-grade client. Elite residential helps when, after fixing TLS, the site still scores IP trust aggressively — common on Cloudflare Bot Management and major retailers.
Share this article

Guides, integrations & docs

Continue reading

Premium or Elite residential proxies

Join developers scaling scraping and automation with Aethyn Premium and Elite pools from €2.00/GB.

Back to all articles