# Static Residential Proxies How to Connect

Source: https://docs.evomi.com/proxy-instructions/static-residential-proxies/how-to-connect/

This page is a basic guide with information about Static Residential Proxies and how to connect to them.

Static Residential works differently from our rotating products in one way that matters before you write any code: you rent a set of dedicated IPs, and you pick which one to go out through on each request. You still connect to a single gateway — there is no separate host or port per IP — and the IP you want is named in your password.

## Endpoint and Port Information

To connect to the evomi proxy system with Static Residential proxies, you need to use the following endpoint and port configurations:

| Proxy Protocol   | Static Residential Endpoint | Static Residential Port |
|--------------|---------------|--------|
| HTTP Proxy   | isp-2.evomi.com  | 12345  |
| SOCKS5 Proxy | isp-2.evomi.com  | 12346  |

Your dashboard is the source of truth for the gateway hostname. Static Residential gateways are assigned per account, so use the endpoint shown next to your IPs rather than assuming the one above. The port numbers are the same on every gateway.

There is no HTTPS proxy port for Static Residential. Use the HTTP endpoint: as with our other products, the HTTP proxy protocol carries HTTPS requests perfectly well, and your traffic to the target site is still encrypted end to end. Only the hop between your machine and the proxy is unencrypted.

## Choosing which IP to use

Your dashboard lists every IP you rent in this form:

```
isp-2.evomi.com:12345:USERNAME:203.0.113.10_PASSWORD
```

That is `host:port:username:password` — the same host-first notation the [Generate Proxies](https://docs.evomi.com/public-api/endpoints/generate/) endpoint can return. It is a display format for listing proxies, not a string you paste into a client as-is. Reading it left to right:

- `isp-2.evomi.com` — the gateway host
- `12345` — the port, or `12346` for SOCKS5
- `USERNAME` — your Evomi username
- `203.0.113.10_PASSWORD` — your password, prefixed with the IP you want to exit from and an underscore

Changing the IP prefix is how you switch between the IPs you rent. Everything else stays identical, so a single set of credentials reaches your whole allocation.

Because the IP lives in the password, none of the geo-targeting or session parameters used by our rotating products apply here. The IP already fixes the location, and it does not rotate.

## Basic Connection Instructions

Here are step-by-step instructions to help you connect using different programming languages and tools. Replace `203.0.113.10` with one of your own IPs, and `testuser` / `testpassword` with your Evomi credentials.

### CURL
To connect using CURL, use the following command format:

```bash
curl -x http://isp-2.evomi.com:12345 -U testuser:203.0.113.10_testpassword https://ip.evomi.com/s
```

For SOCKS5, use port 12346 and the `socks5h://` scheme so DNS is resolved by the proxy:

```bash
curl -x socks5h://isp-2.evomi.com:12346 -U testuser:203.0.113.10_testpassword https://ip.evomi.com/s
```

### Python
To connect using Python with the `requests` library, follow these steps:

1. Install the `requests` library if you haven't already:

    ```bash
    pip install requests
    ```

2. Use the following script:

    ```python
    import requests

    proxy_pass = "203.0.113.10_testpassword"
    proxy_url = f"http://testuser:{proxy_pass}@isp-2.evomi.com:12345"

    proxies = {
        "http": proxy_url,
        "https": proxy_url,
    }

    response = requests.get("https://ip.evomi.com/s", proxies=proxies)
    print(response.text)
    ```

### JavaScript
To connect using JavaScript, particularly with Node.js, follow these steps:

1. Install the `node-fetch` and `http-proxy-agent` packages if you haven't already:

    ```bash
    npm install node-fetch http-proxy-agent
    ```

2. Use the following script:

    ```javascript
    const fetch = require('node-fetch');
    const HttpsProxyAgent = require('https-proxy-agent');

    const proxyPass = '203.0.113.10_testpassword';
    const proxyUrl = `http://testuser:${proxyPass}@isp-2.evomi.com:12345`;
    const agent = new HttpsProxyAgent(proxyUrl);

    fetch('https://ip.evomi.com/s', { agent })
        .then(res => res.text())
        .then(body => console.log(body))
        .catch(err => console.error('Error:', err));
    ```

The output should display the static IP you selected in the password. If it shows a different address, check that the IP prefix matches one of the IPs listed in your dashboard.

## Tips and Troubleshooting

- **407 Proxy Authentication Required**: the username or password was rejected. Confirm the IP prefix is one you currently rent and that the underscore between the IP and the password is present.
- **Wrong exit IP**: the IP prefix is missing or misspelled. Without a valid prefix the gateway cannot tell which of your IPs to use.
- **Special characters in your password**: pass credentials with cURL's `-U` flag, or build the URL from variables as in the examples above, so you do not have to URL-encode them.
- **Choosing a protocol**: use 12345 for HTTP and 12346 for SOCKS5. SOCKS5 handles non-HTTP traffic and, with `socks5h://`, resolves DNS at the proxy.
