These curl recipes show you how to change the User-Agent
HTTP header in curl requests. By default, curl sets the User-Agent
header to curl/version
but often you need to make requests as if you were a real browser, a Google bot, or some other critter. To do that, use the -A 'User Agent String'
command line option.
Change the User Agent to Firefox
curl -A 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0' https://google.com
This recipe uses the -A
argument and sets the user agent to Firefox 60, which looks like this Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
.
Change the User Agent to Chrome
curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com
Similar to the previous recipe, this recipe sets the user agent to Chrome 76, which looks like this Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36
.
Pretend to be a Google Bot
curl -A 'Googlebot/2.1 (+http://www.google.com/bot.html)' https://washingtonpost.com
Often, websites will serve the content to a Google bot (so that they are indexed) but when a real browser requests them, they'll show a paywall. To bypass this, set the user agent to Googlebot.
Remove the User Agent
curl -A '' https://google.com
This recipe passes an empty string ''
to the -A
command line option. The empty string tells curl to remove the user agent header and not to send User-Agent
HTTP header.
Change the User Agent via -H Argument
curl -H 'User-Agent: php/1.0' https://google.com
This recipe shows another way how to change the user agent. Instead of using -A 'User Agent String'
, it uses -H 'User-Agent: php/1.0'
. This argument directly adds the HTTP header field and now the websites will think we're PHP.
Send an Empty User Agent
curl -A '' -H 'User-Agent;' https://google.com
This recipe gets tricky. To send an empty user agent (just the User-Agent:
header with no value), first we have to remove curl's own user agent via the -A ''
option, and then add an empty header via the -H 'User-Agent;'
option. Notice the semicolon ;
at the end of the User-Agent
string. It must be there as it tells curl that it's an empty header with no value.
Created by Browserling
These curl recipes were written down by me and my team at Browserling. We use recipes like this every day to get things done and improve our product. Browserling itself is an online cross-browser testing service powered by alien technology. Check it out!
Secret message: If you love my curl recipe, then I love you, too! Use coupon code CURLLING to get a discount at my company.