Refer a friend: you earn 15% of every order, they get 10% off
HomeGlossaryTLS Fingerprint (JA3)
Glossary

TLS Fingerprint (JA3)

A signature derived from how a client negotiates a TLS handshake, used to identify the software making a request - often via the JA3 hash.

A TLS fingerprint identifies the software behind a connection by the specific way it negotiates the TLS (HTTPS) handshake. The list of cipher suites, extensions, and parameters a client offers is characteristic of the library or browser it uses. JA3 is a popular method that hashes these values into a short signature representing the client.

This is powerful for bot detection because it operates below the application layer. You can set a perfect browser user agent and clean headers, but if your HTTP library negotiates TLS differently than a real Chrome browser, the JA3 fingerprint gives you away. Real Chrome, Firefox, and Safari each have recognizable TLS fingerprints; Python's requests and Go's net/http have their own, obviously non-browser ones.

Anti-bot systems maintain databases of known-good browser fingerprints and known-bad automation fingerprints. A request whose TLS fingerprint does not match its claimed user agent - Chrome header, non-Chrome handshake - is flagged as spoofed, often before the site even returns content.

Defeating TLS fingerprinting requires tools that mimic a real browser's handshake, such as curl-impersonate, specialized TLS libraries, or full browsers. Combined with residential proxies and matching headers, a browser-accurate TLS fingerprint is often what separates scrapers that get through from those that get blocked.

Ready to use tls fingerprint (ja3)?

SotaProxy gives you access to rotating residential, mobile, datacenter, and ISP proxies. No minimum commitment.

Get started