How to Use a Proxy List: Formats, Rotation, Testing and Safe Sources

How-to guide Β· Last reviewed 28 September 2026 Β· 11 min read

A proxy list is a text file of proxy addresses, one per line, that your scraper, bot or browser tool reads and rotates through. Knowing how to use a proxy list well, the formats, how to rotate through it, how to test it and when to replace it, decides whether your project runs smoothly or keeps failing. This guide covers all of that, explains why free public lists are a bad idea, and shows how to generate a clean list from a residential proxy account in a few clicks.

The short version

Generate your list from a paid provider in the format your tool expects (usually host:port:username:password), load it, rotate through it with a health check, and drop proxies that fail. With a rotating residential gateway you may not need a list at all: one endpoint already gives you a new IP per request. Lists are most useful for tools that expect many separate proxies, or for sticky sessions where each line keeps its own IP.

What Is a Proxy List?

Many proxies, one file

It is simply a list of proxy servers, each written as an address and port, often with a username and password. Tools read the list and send requests through its entries in turn, so that traffic is spread across many IP addresses instead of one. That helps avoid per-IP rate limits and lets each account, task or thread keep its own IP.

Lists come from two very different places: public “free proxy” websites that collect open proxies found on the internet, and paid proxy providers that generate lists from their own networks. The first kind is unreliable and risky; the second is what professional tools are built for.

A list is only as good as the network behind it. The file format is the easy part.

Proxy List Formats

Match the format your tool expects
FormatExampleUsed by
host:port203.0.113.10:8080Proxies without authentication, allowlisted IPs
host:port:user:passv2.proxyempire.io:5000:USER:PASSMost bots, multi-profile browsers, many scrapers
user:pass@host:portUSER:PASS@v2.proxyempire.io:5000Some bots and SEO tools
scheme://user:pass@host:porthttp://USER:PASS@v2.proxyempire.io:5000Code: Python, Node.js, curl

If your tool will not accept a list, check three things: the separator (colon, at-sign or comma), whether it expects a scheme such as http:// or socks5://, and whether special characters in passwords need URL-encoding.

Free vs Paid Proxy Lists

Why free lists cost more than they save
Free public listPaid provider list
Where the proxies come fromOpen proxies found by scanners, often misconfigured or compromised machinesThe provider’s own network
Working proxiesFew, and they die within hoursGenerated on demand, monitored
Blocked by websitesOften, because everyone uses themRarely, especially residential and mobile
SecurityUnknown operators can log or modify trafficAccountable provider, authenticated access
Location controlWhatever the list happens to containChoose country, city, ISP

How free lists are put together

Free list sites run scanners that probe the internet for machines answering on common proxy ports, then publish whatever responds. Some entries are servers someone configured carelessly; others are routers or computers infected with malware and turned into proxies without their owners knowing. Because the same entries are published to everyone, websites add them to blocklists quickly, and because nobody maintains them, most disappear within hours. The few that stay online the longest are often the ones run deliberately to watch the traffic passing through.

Never send logins, cookies or business data through proxies from a public list. You do not know who runs them, and an open proxy on someone’s machine may be there without their knowledge.

How to Generate a Proxy List

From the ProxyEmpire dashboard
  1. Open the Proxy Manager and go to the connection builder, then pick Residential or Mobile.
  2. Choose the country and, under advanced settings, the region, city or ISP.
  3. Choose rotation: every request, the same IP (sticky), or a custom interval.
  4. In the proxy list panel, set the list length and the output format, for example host:port:user:pass, and copy or download the list.

Each line in a sticky list carries its own session ID in the username, so each line keeps its own IP. A 100-line list therefore gives you 100 parallel sticky sessions, each on a different residential or mobile IP, all through the same gateway.

What a generated list looks like (host:port:user:pass)
v2.proxyempire.io:5000:USERNAME-country-us-sid-a1b2c3:PASSWORD
v2.proxyempire.io:5000:USERNAME-country-us-sid-d4e5f6:PASSWORD
v2.proxyempire.io:5000:USERNAME-country-us-sid-g7h8i9:PASSWORD

Prefer to ask an AI assistant? Connect Claude, ChatGPT or Cursor to the ProxyEmpire MCP server and ask for the list, for example “50 sticky US residential proxies for 30 minutes”. It returns the same host:port:user:pass lines, up to 100 per request.

Do You Need a List or a Rotating Gateway?

Often, one line is enough

Older proxy setups required a long list because each proxy was a separate server with one IP. A rotating residential gateway changes that: a single host and port can give you a new IP on every request from a pool of more than 30 million. So:

  • Use a single rotating endpoint for scrapers and tools that just need a different IP per request.
  • Use a list of sticky sessions when each account, profile or thread needs its own stable IP, or when a tool insists on a list.
  • Use a list of static IPs for accounts that must keep the same IP for weeks. See static residential proxies.

The two approaches also combine well. A scraper can send most requests through the rotating endpoint and switch to a sticky entry only for the steps that need continuity, such as logging in to your own test account or paging through search results. That keeps the file short, the configuration simple, and each IP working on exactly the kind of task it suits. It also means fewer lines to maintain: when you only keep sticky entries for the jobs that truly need them, refreshing the file after a network change takes seconds instead of an afternoon.

How to Rotate Through a Proxy List

Round robin with a health check

The simplest strategy is round robin: take the next proxy for each request, and start again at the top. Add two refinements and it becomes robust: skip proxies that just failed, and retry the request on a different proxy.

Python: rotate through a list with retries and a cool-down
import itertools, time, requests

def load(path):
    out = []
    for line in open(path, encoding="utf-8"):
        host, port, user, pwd = line.strip().split(":", 3)
        out.append(f"http://{user}:{pwd}@{host}:{port}")
    return out

pool = load("proxies.txt")
cycle = itertools.cycle(pool)
cooldown = {}                                   # proxy -> time it may be used again

def fetch(url, tries=4):
    for _ in range(tries):
        p = next(cycle)
        if cooldown.get(p, 0) > time.time():
            continue
        try:
            r = requests.get(url, proxies={"http": p, "https": p}, timeout=30)
            if r.status_code == 200:
                return r
            if r.status_code in (403, 429):
                cooldown[p] = time.time() + 300  # rest this proxy for 5 minutes
        except requests.RequestException:
            cooldown[p] = time.time() + 60
    return None

Other rotation strategies

  • Random choice spreads load evenly without keeping state, but can reuse the same entry twice in a row.
  • Weighted by success sends more traffic to entries that keep working and less to those that fail, adapting as conditions change.
  • Per-domain assignment gives each target website its own subset of entries, so trouble on one site does not affect the others.
  • Sticky per identity ties one entry to one account or browser profile for its whole life. This is the right choice for anything that logs in.

Scrapy, httpx and headless browsers work the same way: pick a proxy per request or per session from your list. Our Python web scraping guide shows each of them.

How to Test a Proxy List

Before and during a job
  1. Check the exit IP and location of a few entries with our proxy checker or curl -x.
  2. Test against your real target, not only an IP-check site. A proxy can work in general and still be blocked by one website.
  3. Measure the success rate and response time per proxy, and remove the slowest and the failing ones.
  4. Re-test during long jobs. Residential devices go offline; sticky entries that stop responding should be replaced with fresh session IDs.

Keep the results. A simple table of entry, target, status code, response time and date lets you compare a new batch with the last one, spot a location or provider that performs worse, and decide on facts rather than impressions when to regenerate. Success rates vary a lot between websites, so compare each site with itself over time rather than against a generic benchmark.

Quick check of every entry with curl (bash)
while IFS=: read -r host port user pass; do
  ip=$(curl -s -m 20 -x "http://$user:$pass@$host:$port" https://api.ipify.org)
  echo "$user -> ${ip:-FAILED}"
done < proxies.txt

Using a Proxy List in Common Tools

Import once, reuse everywhere
  • Browser extensions: our free Chrome proxy extension supports bulk import and one-click switching between profiles.
  • Multi-profile browsers: assign one sticky or static proxy per profile; see our integrations page.
  • OpenBullet 2: import the list into a proxy group; see our OpenBullet proxy guide.
  • Android: the free ProxyEmpire Proxy Manager app stores several proxy profiles.
  • SEO and scraping tools: most accept host:port:user:pass lists in their proxy settings.

Key takeaways

  • A list is a file of proxies in a format such as host:port:user:pass.
  • Free public lists are unreliable and unsafe; generate lists from a paid provider.
  • A rotating gateway often replaces a long list; use lists for sticky sessions per account or thread.
  • Rotate with retries and cool-downs, and test against your real target.

Proxy List Best Practices

Keep lists fresh and fit for purpose
  • One proxy per identity. Never let two accounts share an entry.
  • Match locations to targets. Generate lists in the country of the website you are working with, and in the city too when prices, stock or search results change by location.
  • Keep credentials out of code. Store the list in a file or secret store, not in your repository, and load it at runtime so a password change never needs a code change.
  • Refresh sticky lists when entries start failing, rather than retrying dead sessions.
  • Document what each file is for. Name files by country, product and rotation, for example us-resi-sticky-100.txt, and note the date you generated them, so nobody loads the wrong set into a job.
  • Respect sites. Spread load, keep concurrency per site reasonable, and collect only public data. ProxyEmpire blocks banking, payment and government sites by default.

Treat the file like a password

Every line contains working credentials for your account. Anyone who gets the file can spend your bandwidth. Keep it out of shared folders and code repositories, give each team member or tool its own sub-user where your provider supports it, and rotate the password if the file leaks. ProxyEmpire lets you create sub-users with their own credentials and bandwidth limits, which makes it easy to see who used what and to cut off access for one tool without touching the others.

If entries return errors, our proxy error codes guide explains what each one means.

Proxy List FAQ

Straight answers
What is a proxy list?

A text file or list of proxy servers, usually one per line in a format such as host:port:username:password, that tools use to route requests through many IP addresses.

How do I use a proxy list?

Load it into your tool or script and rotate through the entries, one per request or per session. Remove entries that fail and test against the website you actually need.

Are free proxy lists safe?

No. Their operators are unknown and can log or change your traffic, most entries stop working quickly, and many are already blocked. Use a paid provider for anything important.

What format should my proxy list be in?

Whatever your tool expects. host:port:user:pass is the most widely supported; code usually wants http://user:pass@host:port.

How many proxies do I need in a list?

One per account or parallel sticky session. For simple scraping, a rotating gateway gives a new IP per request from a single entry.

How do I get a residential proxy list?

Generate it in the ProxyEmpire dashboard: choose the location and rotation, set the list length and format, and copy or download it.

References

Primary documentation
  1. Requests: Advanced usageProxies in Python requests
  2. curl manualThe -x / –proxy option
  3. RFC 3986: URI Generic SyntaxUser information and percent-encoding in proxy URLs

Clean proxy lists in seconds

Generate residential and mobile proxy lists in any format, with country, city and ISP targeting at no extra cost, sticky sessions or a new IP per request, and 24/7 support from real people. Try it 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 Β· [email protected]