Wget Proxy: How to Use Wget With a Proxy (Env Vars, .wgetrc, Auth and SOCKS)

Command-line guide · Last reviewed 1 October 2026 · 14 min read

A wget proxy setup comes down to one of three places: the http_proxy and https_proxy environment variables, a few lines in .wgetrc, or -e commands on the command line. This guide shows each one with working commands, how to pass a username and password with --proxy-user and --proxy-password, how to skip the proxy for some hosts, what to do about SOCKS (GNU Wget doesn’t support it), and how to run recursive downloads through rotating residential proxies or a sticky session. Every option is checked against the GNU Wget manual.

The short version

Point https_proxy and http_proxy at your proxy as http://host:port/, in the environment or with -e on the command line, then add --proxy-user and --proxy-password if the proxy needs a login. The variable has to match the URL’s scheme: an https:// download only reads https_proxy. GNU Wget talks to proxies over HTTP only, so there is no SOCKS option; use the proxy’s HTTP port, proxychains or curl instead.

How Wget picks a proxy for each URL

Three places to set it, one order of checks

Wget is a non-interactive downloader for HTTP, HTTPS and FTP. Its manual says it supports proxy servers, which can lighten network load, speed up retrieval and give access from behind firewalls. There is no single “proxy” switch that takes an address. Instead, Wget looks for a proxy URL that matches the scheme of each URL it is about to fetch.

For every URL, Wget first checks whether proxies are turned off (--no-proxy or use_proxy = off) and whether the host is listed in no_proxy. If neither applies, it takes the proxy for that scheme: https_proxy for https:// URLs, http_proxy for http:// URLs and ftp_proxy for ftp://. A value set in .wgetrc or with -e wins over the environment variable of the same name.

Figure 1 — what happens when you run wget through a proxy
wget https://example.com/file.zip
  |
  |-- --no-proxy, or use_proxy = off?     -> connect directly
  |-- host listed in no_proxy?            -> connect directly
  |-- https:// URL -> https_proxy  (.wgetrc / -e first, then environment)
  |-- http://  URL -> http_proxy
  |-- ftp://   URL -> ftp_proxy
  v
proxy  http://v2.proxyempire.io:5000/
  |   http://  URL: sends the request for the full URL to the proxy
  |   https:// URL: CONNECT example.com:443, then TLS end to end
  v
example.com  -->  sees the proxy's exit IP, not yours

Two details catch most people out. First, the proxy URL itself starts with http:// even in https_proxy. Wget speaks plain HTTP to the proxy and, for an HTTPS site, asks it to open a tunnel with the CONNECT method, so the page is still encrypted end to end between Wget and the site. Second, Wget reads the lowercase variable names. HTTPS_PROXY in capitals is not what it looks for on Linux and macOS.

Key takeaways

  • Wget chooses the proxy by the URL’s scheme: https_proxy for HTTPS, http_proxy for HTTP.
  • Settings in .wgetrc or -e override the environment.
  • Proxy authentication is Basic only, via the proxy URL or --proxy-user/--proxy-password.
  • GNU Wget has no SOCKS support; its manual documents HTTP proxies only.
  • Test by fetching an IP-echo service such as api.ipify.org with wget -qO-: you should see the proxy’s IP.

Set a Wget proxy with environment variables

http_proxy, https_proxy, ftp_proxy and no_proxy

The manual calls environment variables the standard way to tell Wget where the proxy is. They also work for many other command-line tools, which is why most people start here. Set https_proxy as well as http_proxy, because most downloads today are HTTPS and Wget won’t fall back from one to the other.

Figure 2 — Linux and macOS (bash, zsh)
# for this shell session
export http_proxy="http://USERNAME:PASSWORD@v2.proxyempire.io:5000/"
export https_proxy="http://USERNAME:PASSWORD@v2.proxyempire.io:5000/"
export no_proxy="localhost,.internal.example.com"

wget https://example.com/file.zip

# for one command only
https_proxy="http://USERNAME:PASSWORD@v2.proxyempire.io:5000/" wget https://example.com/file.zip

# remove them again
unset http_proxy https_proxy no_proxy
  • http_proxy and https_proxy hold the URLs of the proxies for HTTP and HTTPS connections. It is fine, and common, to point both at the same proxy.
  • ftp_proxy is the proxy for ftp:// URLs. The manual notes it is often set to the same URL as http_proxy.
  • no_proxy is a comma-separated list of domain suffixes that should not use the proxy. The manual’s example is .mit.edu, which sends every host under mit.edu direct.

To make the setting permanent for your user, add the export lines to ~/.bashrc or ~/.zshrc. If you only want it for Wget, and not for every other tool that reads the same variables, use .wgetrc instead, covered below.

On Windows, Wget reads the same variables. Set them with set in Command Prompt or $env: in PowerShell, and in PowerShell run wget.exe, not wget. Microsoft’s documentation lists wget as a built-in alias for Invoke-WebRequest in Windows PowerShell 5.1, so typing wget there runs a different program that doesn’t understand any of Wget’s options.

Figure 3 — Windows (Command Prompt and PowerShell)
:: Command Prompt
set https_proxy=http://USERNAME:PASSWORD@v2.proxyempire.io:5000/
wget https://example.com/file.zip

# PowerShell: call wget.exe, not the wget alias
$env:https_proxy = "http://USERNAME:PASSWORD@v2.proxyempire.io:5000/"
wget.exe https://example.com/file.zip

Use a proxy on the Wget command line

-e use_proxy=on and -e https_proxy=…

When you want a proxy for one command without touching the environment, use -e (long form --execute). The manual says it runs a command as if it were part of .wgetrc, after the file has been read, so it takes precedence over whatever the file says. Use one -e per setting.

Figure 4 — a proxy for a single download
wget -e use_proxy=on \
     -e https_proxy=http://v2.proxyempire.io:5000/ \
     -e http_proxy=http://v2.proxyempire.io:5000/ \
     --proxy-user=USERNAME --proxy-password=PASSWORD \
     https://example.com/file.zip

You will often see this written as wget -e use_proxy=yes -e http_proxy=host:port URL. It works, with two caveats worth knowing:

  • use_proxy is already on by default. The sample wgetrc in the manual lists use_proxy = on as the default value. You only need -e use_proxy=on if a system or user wgetrc has turned it off. The manual documents on/off and 1/0; Wget’s source also accepts yes and no.
  • -e http_proxy alone does nothing for an HTTPS URL. An https:// download reads https_proxy. Setting only http_proxy and downloading from an HTTPS site sends the request straight from your own IP, which is the most common “wget ignores my proxy” report. Set both.

If you leave out http:// in the proxy value, Wget adds it for you, but writing it keeps the command clear. Don’t write https:// or socks5:// in front of the proxy address; see common errors for what Wget says when you do.

Wget proxy username and password

–proxy-user, –proxy-password or the proxy URL

Most paid proxies, ProxyEmpire’s included, need a username and password. The GNU Wget manual gives two ways to send them, and notes that for proxies only the Basic authentication scheme is implemented:

  1. In the proxy URL: put USERNAME:PASSWORD@ in front of the host, the pattern shown in Figure 2. Wget decodes percent-encoding in this part of the URL, so a password containing @ or : must be written as %40 or %3A.
  2. With options: --proxy-user=USERNAME --proxy-password=PASSWORD on the command line, or proxy_user and proxy_password in .wgetrc. No encoding is needed, which makes this the easier choice for passwords with special characters.

If you give both, Wget’s source uses the options instead of the URL, but only when both the user and the password options are set. Supplying just --proxy-user quietly falls back to whatever is in the URL. For HTTPS downloads, Wget sends the credentials on the CONNECT request that opens the tunnel, so the website itself never receives them.

Think about who can see the password. The manual warns that a password on the command line, in an option or inside a URL, is visible to anyone on the system who runs ps, and it also ends up in your shell history. On a shared server, put the credentials in ~/.wgetrc and make the file readable only by you. If the proxy still answers with 407, our guide to fixing 407 Proxy Authentication Required walks through the causes.

Wget proxy settings in .wgetrc and /etc/wgetrc

Set it once, for one user or for everyone

The startup file keeps proxy settings out of your commands. According to the manual, Wget first reads a global file, /usr/local/etc/wgetrc by default, or the same path under another prefix if Wget was installed elsewhere. Distribution packages usually use /etc/wgetrc; Debian’s wget package, for example, ships that file. Wget then reads the file named in the WGETRC environment variable, or $HOME/.wgetrc if that variable isn’t set. The user’s file is read last, so it overrides the global one, and -e overrides both.

Figure 5 — ~/.wgetrc with an authenticated proxy
# ~/.wgetrc   (protect it: chmod 600 ~/.wgetrc)
use_proxy = on
http_proxy = http://v2.proxyempire.io:5000/
https_proxy = http://v2.proxyempire.io:5000/
proxy_user = USERNAME
proxy_password = PASSWORD
no_proxy = localhost,.internal.example.com
What you wantEnvironment.wgetrc commandCommand line
Proxy for HTTPS URLshttps_proxyhttps_proxy = URL-e https_proxy=URL
Proxy for HTTP URLshttp_proxyhttp_proxy = URL-e http_proxy=URL
Proxy for FTP URLsftp_proxyftp_proxy = URL-e ftp_proxy=URL
Hosts that skip the proxyno_proxyno_proxy = list-e no_proxy=list
Proxy loginin the proxy URLproxy_user, proxy_password--proxy-user, --proxy-password
Turn proxies offunset the variablesuse_proxy = off--no-proxy

A few rules from the manual make the file easier to work with. Command names are case-, underscore- and minus-insensitive, so https_proxy, https-proxy and httpsproxy are the same. --config=FILE reads a different startup file for one run, which is handy for keeping one file per proxy or location, and --no-config skips the startup files entirely, which is a quick way to test whether a forgotten setting in one of them is the problem.

Use the global file only when every user on the machine should go through the same proxy, such as a build server behind a corporate gateway. For personal credentials, keep them in your own ~/.wgetrc.

Skip the proxy: –no-proxy and no_proxy

For one run, or for certain hosts
  • --no-proxy turns proxies off for that run, even if the *_proxy variables are set. The .wgetrc equivalent is use_proxy = off, and -e use_proxy=off does the same from the command line.
  • no_proxy keeps the proxy on but lists domain suffixes that should go direct, separated by commas. It works as an environment variable or as a .wgetrc command, and the startup-file value overrides the environment.

A typical list covers local and internal hosts, for example localhost and .internal.example.com, separated by a comma. As with the other variables, Wget reads the lowercase name, no_proxy.

Does Wget support SOCKS proxies?

No, and here is what to use instead

No. The GNU Wget manual (version 1.25.0 at the time of writing) says Wget supports proxies for HTTP and FTP retrievals and documents only the http_proxy, https_proxy and ftp_proxy settings, all of which take an HTTP proxy URL. The word SOCKS does not appear anywhere in it. If you write socks5:// into one of those settings, Wget stops with an “Unsupported scheme” error. The Wget2 manual doesn’t document SOCKS either.

You have three practical options:

  1. Use the provider’s HTTP endpoint. Many providers accept HTTP and SOCKS5 on the same gateway. ProxyEmpire does: v2.proxyempire.io:5000 takes HTTP, HTTPS and SOCKS5 with the same username and password, so Wget can simply use it as an HTTP proxy. Our SOCKS vs HTTP proxy guide explains when the difference matters.
  2. Wrap Wget with proxychains-ng. Its documentation says it hooks the network functions of dynamically linked programs and sends their connections through SOCKS4a, SOCKS5 or HTTP proxies. Add the proxy to proxychains.conf and run proxychains4 wget URL. Its sample config expects numeric IPv4 addresses in the proxy list, so resolve a hostname first. Our proxy chaining guide covers the config file in detail.
  3. Use curl for that download. curl supports SOCKS directly: give -x a proxy URL that starts with socks5h://, which lets the proxy resolve the hostname, as in Figure 6. Add -O to save the file under its remote name. See cURL with a proxy for the full set of options.
Figure 6 — SOCKS5 alternatives to a native Wget option
# proxychains-ng: /etc/proxychains.conf (or ~/.proxychains/proxychains.conf)
strict_chain
proxy_dns
[ProxyList]
socks5  203.0.113.10  1080  USERNAME  PASSWORD

proxychains4 wget https://example.com/file.zip

# curl over SOCKS5, remote DNS, save with the remote file name
curl -x socks5h://USERNAME:PASSWORD@v2.proxyempire.io:5000 -O https://example.com/file.zip

Test the exit IP through the proxy

Prove the proxy is used before a big job

Before a long download or a recursive job, check which IP address the outside world sees. Fetch a service that echoes your address, once with the proxy and once without:

Figure 7 — compare your own IP with the proxy’s exit IP
# through the proxy (settings from the environment or .wgetrc)
wget -qO- https://api.ipify.org; echo

# direct, for comparison
wget --no-proxy -qO- https://api.ipify.org; echo

# show response headers and Wget's own messages
wget -S -O /dev/null https://example.com/

-q turns off Wget’s progress output and -O - (written here as -qO-) prints the downloaded document to standard output instead of saving it. If the two commands print the same address, the proxy isn’t being used. The usual reasons are that only http_proxy is set for an HTTPS URL, the variable is in capitals, or a .wgetrc contains use_proxy = off.

Without -q, Wget prints “Proxy request sent, awaiting response…” instead of “HTTP request sent” when a request goes through a proxy. -S prints the headers the server sent, and -d gives full debug output if your build was compiled with debug support. In scripts, check the exit status; the manual defines these codes:

Exit codeMeaning in the GNU Wget manual
0No problems occurred
4Network failure
5SSL verification failure
6Username/password authentication failure
8Server issued an error response

Recursive downloads through a rotating or sticky gateway

Choosing the session type for -r jobs

With ProxyEmpire, the host and port never change: v2.proxyempire.io, port 5000, for rotating residential and mobile proxies. Location and session live in the proxy username, which you copy from the Connection Builder in the dashboard’s Proxy Manager. You choose rotating (a new IP on every request), sticky (the same IP until you rotate it or the device behind it goes offline) or custom rotation (a new IP on a timer you set, up to two hours). With Wget, that just means a different --proxy-user value.

Figure 8 — the same recursive job with a rotating and a sticky username
# many independent public files: rotating username, one file per connection
wget -r -l 2 -np -w 1 --random-wait --no-http-keep-alive \
     -e https_proxy=http://v2.proxyempire.io:5000/ \
     --proxy-user=ROTATING_USERNAME --proxy-password=PASSWORD \
     https://example.com/reports/

# a site that sets cookies or ties a session to one IP: sticky username
wget -r -l 2 -np -w 1 \
     -e https_proxy=http://v2.proxyempire.io:5000/ \
     --proxy-user=STICKY_SESSION_USERNAME --proxy-password=PASSWORD \
     https://example.com/reports/

The options are all from the manual. -r turns on recursive retrieval, with a default maximum depth of 5; -l 2 limits it to two levels. -np (--no-parent) stops Wget climbing above the starting directory. -w 1 waits one second between retrievals, and --random-wait varies that wait between 0.5 and 1.5 times the value. While recursing, Wget respects the site’s robots.txt.

Why --no-http-keep-alive on the rotating run? The manual explains that Wget normally keeps one TCP connection open and fetches several documents from the same server over it. For an HTTPS site that connection is a CONNECT tunnel, and RFC 9110 describes a tunnel as a blind relay of bytes. The proxy can’t change the exit IP in the middle of it, so every file sent down that tunnel shares one IP. Turning keep-alive off makes Wget open a new connection, and a new tunnel, for each file, so a rotating username can give each file its own IP. It costs one extra connection setup per file.

Rotating usernameSticky username
Exit IPNew IP per request (per connection over HTTPS)Same IP until you rotate or the device goes offline
Best forMany independent public files, spreading load across IPsSites with cookies, logins or IP-bound sessions
Keep-aliveAdd --no-http-keep-alive for one IP per fileLeave it on: fewer handshakes, faster
RetriesA retry often leaves from a different IPRetries come from the same IP

Our guide to sticky vs rotating proxies goes deeper into picking a session type. Whichever you choose, keep a sensible -w and -l: a recursive Wget job can fetch far more than you expect, and residential bandwidth is billed per GB.

Wget2 proxy differences

Only what the Wget2 manual documents

GNU Wget2 is the successor to GNU Wget, maintained by the same project. It reads the same http_proxy, https_proxy and no_proxy environment variables, but some options differ:

TaskGNU Wget 1.xWget2
Set the proxy-e http_proxy=URL, -e https_proxy=URL--http-proxy=proxies, --https-proxy=proxies (comma-separated lists)
Proxy login--proxy-user, --proxy-password--http-proxy-user, --http-proxy-password; --proxy-user is marked “not implemented”
Skip the proxy--no-proxy (all hosts)--no-proxy, or --no-proxy=exceptions for a list of hosts
Config file~/.wgetrc, $WGETRC, global wgetrc~/.wget2rc, $WGET2RC, $SYSTEM_WGET2RC
SOCKSNot documentedNot documented

If a script written for Wget suddenly ignores --proxy-user, check whether wget on that machine is really Wget2 (wget --version tells you) and switch to the --http-proxy-user form.

Common Wget proxy errors and fixes

What the message means and what to change
Symptom or messageLikely causeFix
The IP check shows your own IPOnly http_proxy set for an HTTPS URL; capital HTTPS_PROXY; use_proxy = off in a wgetrc; host in no_proxySet lowercase https_proxy; test with --no-config to rule out wgetrc
Works as your user, not with sudosudo’s env_reset, on by default, drops most environment variablesUse sudo -E where policy allows, or put the proxy in a wgetrc
407 Proxy Authentication Required, or “Proxy tunneling failed” for HTTPSWrong or missing credentials, special characters not encoded in the URL, or only one of the two login options givenUse --proxy-user and --proxy-password together; re-copy them from the dashboard
Error parsing proxy URL …: Unsupported schemeA socks5:// or other non-HTTP scheme in a proxy settingUse http://host:port/; for SOCKS, see the alternatives above
Error in proxy URL …: Must be HTTP.The proxy URL starts with something other than http://, such as https:// for an HTTP downloadWrite the proxy as http://host:port/ in every variable
Connection refused or timed out when connecting to the proxyWrong host or port, or a firewall blocks outbound connections to the proxy portCheck v2.proxyempire.io and port 5000; try from another network
Unable to establish SSL connection.The tunnel was refused or the TLS handshake with the site failedRun with -d to see the proxy’s reply; fix credentials first, and avoid --no-check-certificate as a shortcut
PowerShell complains about Wget’s optionswget is an alias for Invoke-WebRequest in Windows PowerShell 5.1Run wget.exe explicitly

When a message doesn’t match any of these, run the same URL with --no-proxy. If it fails direct as well, the problem is the site or the URL, not the proxy. If it works direct and fails through the proxy, compare the proxy settings, one at a time, with the examples above.

Where ProxyEmpire fits

One gateway, residential or mobile exits

ProxyEmpire works with Wget as a standard HTTP proxy with a username and password: host v2.proxyempire.io, port 5000, no IP whitelisting to configure. The exit can be a residential IP from a pool of 30M+ or a 4G/5G mobile IP from 4M+ on our rotating mobile proxies, targeted by country, region, city, ZIP, ISP or carrier and ASN at no extra charge, rotating per request or sticky until you rotate it. Uptime is 99.9%, shown on the public status page, and support is available 24/7 from real people. Residential starts at $3.50/GB pay-as-you-go and falls to $1.50/GB, unused bandwidth rolls over, and a $1.97 trial lets you run the tests in this guide first.

Wget proxy FAQ

Short answers
How do I make wget use a proxy?

Set https_proxy and http_proxy to http://host:port/ in your shell, add them to ~/.wgetrc, or pass the same URL with -e https_proxy= on the command line. Add --proxy-user and --proxy-password if the proxy needs a login.

Why does wget ignore my http_proxy for HTTPS sites?

Because Wget picks the proxy by the URL’s scheme. An https:// URL reads https_proxy only, so set that variable as well, in lowercase.

What does -e use_proxy=yes do?

It runs the .wgetrc command use_proxy = yes, which turns proxy use on. It’s on by default, so it only matters if a wgetrc switched it off. The manual documents on/off; Wget also accepts yes/no.

How do I pass a proxy username and password to wget?

Use --proxy-user=USERNAME --proxy-password=PASSWORD, put them in the proxy URL in front of the host (user:pass@host), or set proxy_user and proxy_password in ~/.wgetrc. Only Basic authentication is supported.

Can wget use a SOCKS5 proxy?

Not natively. GNU Wget only documents HTTP proxies. Use the provider’s HTTP endpoint, run Wget under proxychains-ng, or download that file with curl, which supports socks5h:// proxies.

Where is the wgetrc file?

Your own file is ~/.wgetrc, or the path in $WGETRC. The global file is /usr/local/etc/wgetrc by default, and distribution packages usually place it at /etc/wgetrc. The user file overrides the global one.

How do I stop wget from using a proxy?

Add --no-proxy to the command, or set use_proxy = off in .wgetrc. To skip the proxy only for some hosts, list their domain suffixes in no_proxy.

How do I check that wget is really going through the proxy?

Run wget -qO- https://api.ipify.org with and without --no-proxy. Different addresses mean the proxy is in use. Without -q, Wget also prints “Proxy request sent” for proxied requests.

Should I use rotating or sticky proxies for wget -r?

Rotating for many independent public files, with --no-http-keep-alive if you want a new IP for each file. Sticky when the site uses cookies or sessions that expect the same IP throughout.

References

Primary documentation
  1. GNU Wget 1.25.0 Manual — Proxies, HTTP Options, Download Options, Startup File, Exit Status. gnu.org/software/wget/manual/wget.html
  2. GNU Wget Manual — Proxies (section 8.1). gnu.org/software/wget/manual/html_node/Proxies.html
  3. GNU Wget Manual — Wgetrc Location. gnu.org/software/wget/manual/html_node/Wgetrc-Location.html
  4. GNU Wget2 — wget2 manual (docs/wget2.md). gitlab.com/gnuwget/wget2
  5. proxychains-ng — README and proxychains.conf. github.com/rofl0r/proxychains-ng
  6. curl — man page, -x/–proxy and SOCKS schemes. curl.se/docs/manpage.html
  7. Microsoft Learn — Invoke-WebRequest (Windows PowerShell 5.1), aliases. learn.microsoft.com/powershell/module/…/invoke-webrequest
  8. sudo — sudoers manual, env_reset. sudo.ws/docs/man/sudoers.man
  9. IETF — RFC 9110, “HTTP Semantics”, the CONNECT method. rfc-editor.org/rfc/rfc9110

Point Wget at a proxy that just works

Residential and mobile proxies on one gateway, v2.proxyempire.io:5000, with username and password auth, rotating or sticky sessions, city, ISP and ASN targeting at no extra charge and 24/7 support from real people. Try ProxyEmpire for $1.97.

ProxyEmpire proxy types and prices

ProxyEmpire

Proxies for data collection at scale.

Residential, mobile, ISP and datacenter proxies for scraping, ad verification, SEO monitoring and multi-account work. Choose from 30M+ ethically sourced residential IPs and 4M+ 4G/5G mobile IPs in 170+ countries, target by country, city, ZIP, ISP or carrier, and connect over HTTP(S) or SOCKS5 with 99.9% uptime. Try residential and mobile proxies for $1.97.

🏘️ Rotating Residential Proxies
  • 30M+ Premium Residential IPs
  •  170+ Countries
    Every residential IP in our network corresponds to an actual desktop device with a precise geographical location. Our residential proxies are fast and reliable, with 99.9% uptime, and work for a wide range of use cases. You can use country, region, city, ZIP, ISP, ASN and OS fingerprint targeting for our rotating residential proxies, at no extra charge.

See our Rotating Residential Proxies

📍 Static Residential Proxies
  • 24 Countries
    Buy a dedicated static residential IP from one of the 24 countries that we offer proxies in. Keep the same IP for a month or longer, while benefiting from their fast speed and stability.

See our Static Residential Proxies

📳 Rotating Mobile Proxies
  • 4M+ Premium Mobile IPs
  •  170+ Countries
    Access millions of clean mobile IPs with precise targeting by country, region, city, ZIP, mobile carrier, ASN and OS fingerprint, at no extra charge. Get far fewer IP blocks and CAPTCHAs with our 4G and 5G proxies.

See our Mobile Proxies

📱 Dedicated Mobile Proxies
  • 4 Countries
  • 50+ Locations
    Get your own dedicated mobile proxy in one of our supported locations, with unlimited bandwidth and unlimited IP changes on demand. A great choice when you need a small number of mobile IPs and a lot of proxy bandwidth.

See our 4G & 5G Proxies

🌐 Rotating Datacenter Proxies
  • 197,000+ IPs Premium IPs
  •  62 Countries
    On a budget and need to do some simple scraping tasks? Our datacenter proxies are the perfect fit! Get started with as little as $2

See our Datacenter Proxies

♾️ Unlimited Residential Proxies
  • 1M+ Daily Residential IPs
  • 85+ Countries
    Our unlimited residential proxies bill by connection speed, not gigabytes: 100 to 1000 Mbit with unlimited bandwidth, on daily, weekly or monthly plans. Ask us for a 1-hour trial at 50 Mbit before you pick a plan.

See our Unlimited Residential Proxies

proxy locations

30M+ rotating IPs

99.9% uptime - high speed

99.9% uptime.

dedicated support team

24/7 Dedicated Support.

fair price

Fair Pricing.

🏠 Residential Proxies Rotating / Static / Unlimited
📱 Mobile Proxies Rotating and Dedicated
🖥️ Datacenter Proxies Rotating
🌍 IP Pool 30M+ residential + 4M+ mobile IPs
📶 Uptime 99.9% · Live status
💳 Payment Card · PayPal · Crypto · Bank transfer
💬 Support 24/7 live chat · sales@proxyempire.io