What is TLS Client?
TLS Client is a powerful Go HTTP client library built on top of fhttp and utls that allows you to make HTTP requests while mimicking the TLS fingerprint of real browsers like Chrome, Firefox, and Safari. Some people think it’s enough to change the user-agent header of a request to make the server think the client is a specific browser. Nowadays this is not enough, because servers use a technique called TLS fingerprinting to detect the actual client.Why TLS fingerprinting matters
When your application makes an HTTPS request, the TLS handshake reveals unique characteristics about your client:- Cipher suites in use
- TLS extensions and their order
- Supported curves and signature algorithms
- HTTP/2 and HTTP/3 settings
Key features
Protocol support
Full support for HTTP/1.1, HTTP/2, and HTTP/3 with automatic protocol negotiation and Chrome-like protocol racing.
TLS fingerprinting
Mimic Chrome, Firefox, Safari, and other browsers with accurate TLS and HTTP/2 fingerprints.
WebSocket support
Maintain TLS fingerprinting over WebSocket connections for real-time communication.
Advanced features
Custom header ordering, certificate pinning, bandwidth tracking, proxy support, and more.
Feature highlights
Multiple protocol support
Multiple protocol support
- HTTP/1.1, HTTP/2, HTTP/3 - Full protocol support with automatic negotiation
- Protocol racing - Chrome-like “Happy Eyeballs” for HTTP/2 vs HTTP/3
- Force HTTP/1 - Option to disable HTTP/2 and HTTP/3 when needed
TLS and fingerprinting
TLS and fingerprinting
- Browser profiles - Pre-configured profiles for Chrome, Firefox, Safari, and more
- HTTP/3 fingerprinting - Accurate QUIC/HTTP/3 fingerprints matching real browsers
- Custom profiles - Create custom TLS fingerprints with JA3 strings
- Random extension order - Randomize TLS extension order for additional variance
Connection management
Connection management
- Cookie jar management - Built-in cookie handling and persistence
- Proxy support - HTTP and SOCKS5 proxies with authentication
- Certificate pinning - Enhanced security with custom certificate validation
- Connection pooling - Efficient connection reuse and management
Developer experience
Developer experience
- Language bindings - Use from JavaScript (Node.js), Python, and C# via FFI
- Custom header ordering - Control the exact order of HTTP headers
- Bandwidth tracking - Monitor upload and download bandwidth
- Debug mode - Detailed logging for troubleshooting
Use cases
- Web scraping - Bypass basic bot detection by mimicking real browsers
- API testing - Test how your APIs respond to different browser clients
- Security research - Analyze TLS fingerprinting and antibot systems
- Automation - Build reliable automation tools that don’t get blocked
- Load testing - Test your infrastructure with realistic browser traffic
Get started
Quickstart
Get up and running with your first request in under 5 minutes.
Installation
Install TLS Client for Go or use language bindings for Node.js, Python, or C#.
Configuration
Learn how to configure client options, timeouts, proxies, and more.
Browser profiles
Explore available browser profiles and learn how to create custom ones.
Example
Here’s a quick example of making a request with TLS Client:TLS fingerprinting alone isn’t enough for modern bot protection systems like Cloudflare, DataDome, or Akamai. For production use cases requiring antibot bypass, consider services like Hyper Solutions.
Community and support
Join the community and get help:- Discord - Join the support server for questions and discussions
- GitHub - Report issues or contribute to the project
- Documentation - Full documentation with detailed guides