6 min read
|
Saved February 14, 2026
|
Copied!
Do you care about this?
curl-impersonate is a modified version of curl that mimics the TLS and HTTP handshakes of major browsers like Chrome, Edge, Safari, and Firefox. This allows users to access web services that differentiate content based on client fingerprinting. The tool can be run from the command line or integrated as a library.
If you do, here's more
curl-impersonate is a specialized version of the curl command-line tool designed to mimic the behavior of major browsers like Chrome, Edge, Safari, and Firefox. It achieves this by replicating the TLS and HTTP handshakes that a real browser would perform. By making these modifications, curl-impersonate helps users bypass content restrictions that some web services impose based on the clientβs fingerprint. This is particularly relevant in a web environment where services may display different content based on the client accessing them.
To make curl-impersonate function like a browser, several significant changes were made. It uses the nss library for Firefox and BoringSSL for Chrome, altering how TLS extensions and SSL options are configured. Users can run curl-impersonate from the command line or integrate it as a library. Each supported browser has a dedicated wrapper script to launch curl-impersonate with appropriate headers and flags. The tool supports various versions of browsers, each identified by specific build numbers and target names.
Pre-compiled binaries are available for Linux and macOS, but users must install necessary dependencies like nss and CA certificates. For Docker users, ready-to-use images are provided for both versions of curl-impersonate. The library version includes an additional API function that simplifies the process of setting the necessary options and headers for impersonating browsers. Users familiar with libcurl can replace their existing library at runtime, allowing seamless integration into existing applications.
Questions about this article
No questions yet.