You found a proxy in the list — now what? This guide shows how to plug a proxy into the tools people use most: browsers, the system settings, curl and Python. Every example uses IP:PORT as a placeholder; copy the real values from the free proxy list.
Before you start
- Pick a proxy that was checked a few seconds ago and has low latency.
- Note the protocol: an HTTP proxy and a SOCKS5 proxy are configured differently.
- Keep two or three spare proxies — free ones can go offline at any moment.
Firefox
Firefox has its own proxy settings, independent of the system:
- Open Settings → General → Network Settings → Settings…
- Choose Manual proxy configuration.
- For an HTTP proxy, enter the IP and port in HTTP Proxy and tick Also use this proxy for HTTPS.
- For SOCKS, fill in SOCKS Host, choose SOCKS v5 (or v4) and tick Proxy DNS when using SOCKS v5.
- Click OK and open any "what is my IP" page to confirm.
Chrome and Edge
Chromium-based browsers use the system proxy by default. To use a proxy only in the browser, start it with a flag:
chrome --proxy-server="http://IP:PORT"
chrome --proxy-server="socks5://IP:PORT"
Proxy-switcher extensions do the same with a button and are handy if you change proxies often.
Windows and macOS
- Windows: Settings → Network & Internet → Proxy → Manual proxy setup → enter the address and port.
- macOS: System Settings → Network → your connection → Details → Proxies → enable Web Proxy (HTTP), Secure Web Proxy (HTTPS) or SOCKS Proxy.
System settings affect every program that respects them, so remember to turn the proxy off afterwards.
curl
curl -x http://IP:PORT https://example.com
curl --socks5-hostname IP:PORT https://example.com
--socks5-hostname makes the proxy resolve the domain, so your DNS requests do not leak. Add --max-time 15 to avoid hanging on a dead proxy.
Python requests
import requests
proxy = "http://IP:PORT" # or "socks5h://IP:PORT"
r = requests.get(
"https://example.com",
proxies={"http": proxy, "https": proxy},
timeout=15,
)
print(r.status_code)
SOCKS support needs one extra package: pip install "requests[socks]".
Scrapy
Set the proxy per request through meta:
yield scrapy.Request(url, meta={"proxy": "http://IP:PORT"})
Rotating free proxies
Free proxies are best used as a pool. Download a fresh list from our API, try proxies in turn, and drop the ones that fail:
import random, requests
pool = requests.get(
"https://SITE/api/v1/proxies?protocol=http&anonymity=elite&format=txt"
).text.split()
for attempt in range(5):
proxy = "http://" + random.choice(pool)
try:
r = requests.get("https://example.com",
proxies={"http": proxy, "https": proxy}, timeout=10)
break
except requests.RequestException:
pool.remove(proxy.removeprefix("http://"))
Replace SITE with this website's address. Refresh the pool every few minutes — the list itself is updated every 30 seconds.
Troubleshooting
- Connection refused or timeout — the proxy went offline. Take the next one.
- 407 Proxy Authentication Required — the proxy now requires a password; skip it.
- Captchas everywhere — switch to an elite proxy or a different country.
- Website sees your real IP — the proxy is transparent, or your program ignores the proxy settings.
When free proxies are not enough, read our comparison of free and paid proxies.