To make a curl request use a Chrome- or Firefox-like User-Agent, pass a browser-style string with -A or --user-agent. That changes one HTTP header only. If a site checks TLS or HTTP/2 fingerprints, expects JavaScript, or requires browser state such as cookies, a User-Agent change alone may not make curl behave like a browser.
Change curl’s User-Agent header
By default, curl identifies itself with a value in the form curl/VERSION. The -A and --user-agent options replace that value with the string you supply. You can also set the header explicitly with -H. The official curl man page documents the option.
curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/...' https://example.com
curl -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:...) Gecko/20100101 Firefox/...' https://example.com
Replace the ellipses with a real, current User-Agent string if the server needs a complete value. The examples show the command shape, not a guarantee that the target will accept the request. Use a string that accurately describes your intended browser environment rather than claiming a particular version arbitrarily.
Choose between -A and -H
-A '...'is the direct option for changing curl’s User-Agent.-H 'User-Agent: ...'explicitly sets the HTTP header and is useful when you are already managing several headers.
These methods change the HTTP header, not curl’s network stack or browser capabilities. The curl scripting guide notes that a page fetched with curl may differ from the page seen in a browser: browsers execute JavaScript and handle redirects differently. See The Art Of Scripting HTTP Requests Using curl.
Recommended Free Tools
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Check what the server returns
After changing the header, inspect the response rather than assuming the impersonation worked. Add -i to include response headers, or -v for verbose connection and request details. Use -L when you want curl to follow redirects.
curl -i -L -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/...' https://example.com
Compare the status, headers, and returned content with what you expect. A page that serves different content to browsers may require more than an adjusted User-Agent; a successful HTTP response does not prove that curl matched a browser’s complete fingerprint.
Why a fake browser User-Agent may still be blocked
A User-Agent is just one signal in a request. Sites can also observe the TLS handshake, HTTP/2 behavior, header set and ordering, and whether the client runs JavaScript or has expected cookies. A plain curl command does not become Chrome or Firefox merely because its User-Agent says so.
- Fingerprint mismatch: the claimed browser and curl’s TLS or HTTP/2 behavior may not match.
- JavaScript requirements: curl retrieves HTTP responses but does not execute page JavaScript as a browser does.
- Missing browser state: cookies or other session data may be required and are not automatically acquired by changing the User-Agent.
- Redirect differences: curl’s redirect behavior is not the same as a browser’s;
-Lfollows redirects but does not add browser execution.
Use these techniques only where you are authorized to access the site and in a way that respects its terms and rate limits. A browser-like header is not a way to bypass access controls.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Use curl-impersonate for browser-style fingerprints
curl-impersonate provides modified curl builds and browser-specific wrapper scripts. Those wrappers apply browser-like headers, header order, TLS settings, and HTTP/2 behavior—signals that a User-Agent-only change leaves untouched. Its quick-start documentation says the wrappers matter: directly invoking the modified binary does not apply the same browser TLS and HTTP/2 signatures.
curl_chrome104 -v -L https://example.com
curl_firefox144 -v -L https://example.com
These are representative wrapper names, not a promise that every installation has those exact targets. Use the wrapper names available in the release you installed; the project’s quick-start and fingerprint documentation lists versioned targets, including Chrome and Firefox profiles. The project documentation identifies release 2.0.0 and lists targets such as Firefox 144; these are software version labels and can change in later releases.
Command-line use and application integration
For a terminal workflow, call the profile wrapper for the browser target you need. The project also documents library-level use and an environment setting, CURL_IMPERSONATE, for selecting a profile. When precise control is needed, a header override can disable built-in defaults. Consult the installed release’s documentation for the exact integration and available profile names rather than assuming a wrapper or target is present.
curl-impersonate retains curl’s original flags and command-line options, according to its quick-start documentation. That does not add JavaScript execution: if the target depends on scripts or browser-managed state, a curl-based impersonation may still be insufficient.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Use curl_cffi from Python
For Python applications, curl_cffi offers a requests-style API with browser impersonation targets. Its documentation describes targets such as chrome and firefox, with versioned targets where supported. Install the package in your Python environment according to the project documentation, then make a request like this:
from curl_cffi import requests
r = requests.get('https://example.com', impersonate='chrome')
print(r.status_code)
print(r.text)
To select Firefox, change the profile:
from curl_cffi import requests
r = requests.get('https://example.com', impersonate='firefox')
print(r.status_code)
print(r.text)
These profiles aim at browser impersonation rather than merely substituting a User-Agent. Check the current project documentation for supported browser and version targets; do not assume a particular target remains available indefinitely.
Choose the right level of impersonation
| Approach | What it changes | Best fit | Important limitation |
|---|---|---|---|
curl -A or -H |
User-Agent header | Testing a server’s response to a different stated client | Does not reproduce browser TLS, HTTP/2, JavaScript, or browser state |
| curl-impersonate wrapper | Browser-like headers and transport fingerprints as configured by its wrapper | Command-line requests that need a closer browser profile | Still does not execute page JavaScript; available profile names depend on release |
| curl_cffi | Browser impersonation through a Python requests-style API | Python code that needs a browser-targeted request | Supported targets and versions depend on the current project release |
| Real browser automation | Actual browser execution and browser-managed state | Pages that require JavaScript or interactive flows | Requires setting up and operating a browser automation environment |
The first three options are documented by curl and the respective impersonation projects. Use a real browser when the task depends on browser execution rather than just HTTP transport. Do not treat any fingerprint-matching technique as a guarantee that a site will accept a request.
Or skip the browser setup
If your goal is to capture a webpage as an image or PDF rather than fetch it with curl, ScreenshotNeo provides a website screenshot API and MCP server. It takes a URL and returns a PNG, JPEG, WebP, or PDF. Its capture can accept cookie or consent banners and remove known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and responses identify the page verdict and billing outcome in headers. The MCP server includes take_screenshot, get_page_info, and capture_pdf tools for AI agents using Claude, Cursor, or another MCP client.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemscurl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
See the ScreenshotNeo API documentation for authentication, response details, output formats, and options. One request can return a clean capture without installing a browser locally. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for 1,000 free screenshots a month, with no card required.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Troubleshooting
The response still looks like a bot or mobile client
First verify that the request contains the User-Agent you intended, using verbose output or a service you control that echoes request headers. If you only used -A, remember that it changes the header alone. For fingerprint-sensitive testing, try the relevant curl-impersonate wrapper or curl_cffi target and confirm that your installed release supports it.
The page is blank, incomplete, or different from the browser
The response may rely on JavaScript to render content. curl does not execute that script. Use a browser automation tool for pages that need browser execution, or inspect whether the server offers an underlying data endpoint suitable for your authorized use.
A redirect leads somewhere unexpected
Use -L to follow redirects, and inspect response headers with -i or request details with -v. Following a redirect does not reproduce a browser’s entire navigation process.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11A wrapper command is not found
The profile name may not be included in the release or installation on your system. Consult that release’s documentation for its exact wrapper names and use an available target; do not assume examples such as curl_chrome104 or curl_firefox144 are universal.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
curl_cffi rejects the requested profile
Check the installed curl_cffi documentation and version for supported target names. The project supports browser targets and versioned targets where available, but a given profile name is not guaranteed across releases.
It works on one site but not another
Different sites make different checks and serve different content. A request can match some expected signals and still fail when a site requires JavaScript, cookies, a session, or another browser capability. Diagnose the specific response rather than repeatedly changing the User-Agent without evidence.
Frequently Asked Questions
Does changing curl’s User-Agent make it Chrome or Firefox?
No. It changes the HTTP User-Agent header. Browser-like TLS and HTTP/2 fingerprints require a tool such as curl-impersonate or curl_cffi, while JavaScript-dependent pages need a browser that executes scripts.
Free tools Windows power users keep installed
One-click scans. No signup required.
Can curl execute JavaScript after I set a browser User-Agent?
No. A User-Agent change does not add a JavaScript engine to curl.
Quick Recap
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.

