Warning
Zyte API is replacing Smart Proxy Manager. It is no longer possible to sign up to Smart Proxy Manager. If you are an existing Smart Proxy Manager user, see Migrating from Smart Proxy Manager to Zyte API.
Using Desktop and Mobile profiles using Zyte Smart Proxy Manager#
To use Desktop and Mobile profiles, Zyte Smart Proxy Manager (formerly Crawlera) allows the
use of X-Crawlera-Profile
header while making a request. It not only sets the User-Agent
but also applies a set of headers that are used by the browser. For example, all modern
browsers set Accept-Language
and Accept-Encoding
headers and some browsers set DNT and
Upgrade-Insecure-Requests
headers.
Note
All the code in this documentation has been tested with curl 7.64.1.
Using Desktop Profiles#
To request Desktop Profiles X-Crawlera-Profile:desktop
header should be passed.
Smart Proxy Manager will set appropriate headers, please check X-Crawlera-Profile for details.
curl -U APIKEY: -x proxy.zyte.com:8011 "http://httpbin.scrapinghub.com/headers" -H "X-Crawlera-Profile:desktop"
Expected response:
{
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Language": "en-US,en;q=0.9",
"Forwarded": "for=50.114.29.222;proto=http",
"Host": "httpbin.scrapinghub.com",
"Sec-Ch-Ua": "\"Chromium\";v=\"94\", \"Microsoft Edge\";v=\"94\", \";Not A Brand\";v=\"99\"",
"Sec-Ch-Ua-Mobile": "?0",
"Sec-Ch-Ua-Platform": "\"Windows\"",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-User": "?1",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36 Edg/94.0.992.31"
}
}
Note
The header X-Crawlera-Profile:desktop
is default even if you make a request with it. For example, curl -U APIKEY: -x proxy.zyte.com:8011 "http://httpbin.scrapinghub.com/headers"
.
Using Mobile Profiles#
To request Mobile Profiles X-Crawlera-Profile:mobile
header should be passed.
Smart Proxy Manager will set appropriate headers, please check X-Crawlera-Profile for details.
curl -U APIKEY: -x proxy.zyte.com:8011 "http://httpbin.scrapinghub.com/headers" -H "X-Crawlera-Profile:desktop"
Expected response:
{
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Language": "en-US,en;q=0.9",
"Cache-Control": "max-age=259200",
"Forwarded": "for=23.236.230.6;proto=http",
"Host": "httpbin.scrapinghub.com",
"Sec-Ch-Ua": "\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"",
"Sec-Ch-Ua-Mobile": "?1",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-User": "?1",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Linux; Android 10; moto g(9) play) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.120 Mobile Safari/537.36"
}
}
Override Headers#
To override a header combined with X-Crawlera-Profile
functionality, try
X-Crawlera-Profile-Pass
in the following way:
curl -U APIKEY: -x proxy.zyte.com:8011 "http://httpbin.scrapinghub.com/headers" -H "X-Crawlera-Profile-Pass:Accept-Language" -H "Accept-Language:en-GB"
Expected response:
{
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Language": "en-GB",
"Forwarded": "for=191.101.154.16;proto=http",
"Host": "httpbin.scrapinghub.com",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-User": "?1",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:90.0) Gecko/20100101 Firefox/90.0"
}
}
To learn more, check out X-Crawlera-Profile-Pass.
Override X-Crawlera-Profile Header#
To override X-Crawlera-Profile
either X-Crawlera-Profile-Pass
can be used to
mention the headers Smart Proxy Manager should override or use X-Crawlera-Profile:pass
. Smart Proxy
Manager will pass the headers to the website as received in the request. For example,
curl -U APIKEY: -x proxy.zyte.com:8011 "http://httpbin.scrapinghub.com/headers" -H "X-Crawlera-Profile:pass"
Expected response:
{
"headers": {
"Accept": "*/*",
"Cache-Control": "max-age=259200",
"Forwarded": "for=23.236.230.6;proto=http",
"Host": "httpbin.scrapinghub.com",
"User-Agent": "curl/7.64.1"
}
}