ECSProxy ECSProxy Docs

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.

New to proxies? A proxy sits between your application and the internet. Instead of your requests going out from your own IP address, they go out from one of our residential partner devices — so websites see a real residential IP instead of a server IP.

Endpoints

ECSProxy supports four protocols. Pick whichever your tool expects — they all route through the same network.

ProtocolHostPortNotes
HTTPecsproxy.com8080Plain HTTP requests
HTTPSecsproxy.com8080Same port as HTTP, via CONNECT tunneling
SOCKS5ecsproxy.com9001Full SOCKS5, username/password auth
SOCKS4 / SOCKS4aecsproxy.com9001Same port as SOCKS5, auto-detected
HTTP and HTTPS intentionally share one port. Your proxy client decides which to use automatically based on the URL you're requesting — this is standard behavior across the industry, not a limitation.

Authentication

Authenticate with your account's username and password, exactly like any other proxy provider:

format
http://USERNAME:PASSWORD@ecsproxy.com:8080

For SOCKS4, which has no separate password field, combine both into the user ID, colon-separated:

socks4
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 --:

format
USERNAME--country=us,state=new_york,city=brooklyn
ParameterExample
countrycountry=us
statestate=new_york
citycity=brooklyn
zipzip=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

bash
curl -x "http://USERNAME:PASSWORD@ecsproxy.com:8080" https://api.ipify.org

For SOCKS5:

bash
curl -x "socks5h://USERNAME:PASSWORD@ecsproxy.com:9001" https://api.ipify.org

Python (requests)

python
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

javascript
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

javascript
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

ResponseMeaning
407 Proxy Authentication RequiredUsername or password is incorrect, or a temporary password has expired.
403 ForbiddenThe requested destination is blocked by our acceptable use policy.
502 Bad GatewayNo exit node was available for your request, or the destination couldn't be reached. Try again, or broaden your location targeting.
Connection times outCheck 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.