Quick start
Pick an endpoint, set query parameters, and click Send request. Each box is a live sandbox — no API key, same as production.
Pick an endpoint, set query parameters, and click Send request. Each box is a live sandbox — no API key, same as production.
| Live | — |
|---|---|
| Production | https://chillyproxy.com |
| Local dev | http://127.0.0.1:5500 (proxies /api → :8787) |
| Prefix | /api/tools/free-proxies |
Used on the main endpoint; shortcuts fix protocol for you.
| Parameter | Default | Description |
|---|---|---|
protocol | all | all, http, socks4, socks5 (main path only). |
country | all | ISO 3166-1 alpha-2, e.g. US, DE. |
limit | 500 | Max lines returned (1–2000). |
Content-Type: text/plain; charset=utf-8
185.182.65.64:1080 139.162.200.213:80 80.78.74.8:65530
Errors return JSON: success: false and message.
curl "BASE/api/tools/free-proxies?limit=500"
import urllib.request
with urllib.request.urlopen("BASE/api/tools/free-proxies/http?limit=500", timeout=60) as r:
print(r.read().decode())
const res = await fetch("BASE/api/tools/free-proxies/socks?limit=200");
const text = await res.text();
console.log(text.split("\n").filter(Boolean).length, "proxies");
Cache-Control: public, max-age=300.API key?
Not required — public docs endpoints only.
JSON output?
No — public API is text ip:port only. The live list page uses a separate JSON details route for the table UI.
Uptime?
Free public proxies — test with our Proxy Checker.