Documentation
Everything you need to connect to ECSProxy's residential network — endpoints, authentication, and copy-paste examples.
Getting started
Every request you send through ECSProxy needs four things: a host, a port (which depends on the protocol you're using), your username, and your password. You'll find your own username and password on your dashboard's Endpoint Generator, along with a tool that builds the exact line below for you.
Endpoints
ECSProxy supports four protocols. Pick whichever your tool expects — they all route through the same network.
| Protocol | Host | Port | Notes |
|---|---|---|---|
| HTTP | ecsproxy.com | 8080 | Plain HTTP requests |
| HTTPS | ecsproxy.com | 8080 | Same port as HTTP, via CONNECT tunneling |
| SOCKS5 | ecsproxy.com | 9001 | Full SOCKS5, username/password auth |
| SOCKS4 / SOCKS4a | ecsproxy.com | 9001 | Same port as SOCKS5, auto-detected |
Authentication
Authenticate with your account's username and password, exactly like any other proxy provider:
http://USERNAME:PASSWORD@ecsproxy.com:8080
For SOCKS4, which has no separate password field, combine both into the user ID, colon-separated:
socks4a://USERNAME%3APASSWORD@ecsproxy.com:9001
Location targeting
Target a specific country, state, city, or ZIP code by appending parameters to your username, separated by --:
USERNAME--country=us,state=new_york,city=brooklyn
| Parameter | Example |
|---|---|
| country | country=us |
| state | state=new_york |
| city | city=brooklyn |
| zip | zip=10001 |
Leave any parameter out for a broader match. Combine as many as you like — narrower targeting means fewer available exit nodes, so it may take slightly longer to route your request during off-peak hours.
curl
curl -x "http://USERNAME:PASSWORD@ecsproxy.com:8080" https://api.ipify.org
For SOCKS5:
curl -x "socks5h://USERNAME:PASSWORD@ecsproxy.com:9001" https://api.ipify.org
Python (requests)
import requests
proxies = {
"http": "http://USERNAME:PASSWORD@ecsproxy.com:8080",
"https": "http://USERNAME:PASSWORD@ecsproxy.com:8080",
}
resp = requests.get("https://api.ipify.org", proxies=proxies)
print(resp.text)For SOCKS5, install requests[socks] and use a socks5h:// URL instead.
Node.js
const { HttpsProxyAgent } = require("https-proxy-agent");
const agent = new HttpsProxyAgent(
"http://USERNAME:PASSWORD@ecsproxy.com:8080"
);
fetch("https://api.ipify.org", { agent }).then(async (res) => {
console.log(await res.text());
});Puppeteer
const browser = await puppeteer.launch({
args: ["--proxy-server=http://ecsproxy.com:8080"],
});
const page = await browser.newPage();
await page.authenticate({
username: "USERNAME",
password: "PASSWORD",
});
await page.goto("https://api.ipify.org");Temporary passwords
Your dashboard's Endpoint Generator can create a temporary password that expires automatically after a duration you choose (1 minute up to 24 hours) — useful for handing out one-time access without exposing your permanent password. Click Generate temporary password in the Endpoint Generator; your permanent password keeps working unchanged, side by side.
Errors & troubleshooting
| Response | Meaning |
|---|---|
| 407 Proxy Authentication Required | Username or password is incorrect, or a temporary password has expired. |
| 403 Forbidden | The requested destination is blocked by our acceptable use policy. |
| 502 Bad Gateway | No exit node was available for your request, or the destination couldn't be reached. Try again, or broaden your location targeting. |
| Connection times out | Check you're using the correct port for your protocol (see the Endpoints table above), and that your network allows outbound connections on that port. |
Still stuck? Use the chat widget in your dashboard to reach support directly.
ECSProxy Docs