> ## Documentation Index
> Fetch the complete documentation index at: https://docs.roundproxies.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Proxy Access

> How your customers connect to the residential gateway with sub-user credentials.

Your customers connect through the residential gateway using the sub-user credentials you issued them. They don't need an API key, and they don't call the Reseller API at all.

```text theme={null}
residential.roundproxies.com:5000
```

HTTP, with sticky sessions.

## Username format

Targeting is encoded in the proxy **username**:

```text theme={null}
client-<username>-country-<Country>-session-<sessionId>
```

| Component     | Description                                       |
| ------------- | ------------------------------------------------- |
| `<username>`  | The sub-user's username from the API              |
| `<Country>`   | The country name, e.g. `Germany`                  |
| `<sessionId>` | Any random string, e.g. 8 alphanumeric characters |

The sub-user's **password is used as-is**, unmodified — only the username gets the targeting prefix.

<Note>
  Contact support for the full list of supported country names.
</Note>

### Sessions

The same session id keeps the same exit IP. To get a new IP, use a new session id. Generate one session id per concurrent connection you want.

## Full proxy line

In `host:port:username:password` form:

```text theme={null}
residential.roundproxies.com:5000:client-customer_0001-country-Germany-session-x7k2m9pq:THE_PASSWORD
```

## Testing a connection

<CodeGroup>
  ```bash cURL theme={null}
  curl -x "http://client-customer_0001-country-Germany-session-x7k2m9pq:THE_PASSWORD@residential.roundproxies.com:5000" \
    https://ipinfo.io/json
  ```

  ```python Python theme={null}
  import requests

  proxy = (
      "http://client-customer_0001-country-Germany-session-x7k2m9pq"
      ":THE_PASSWORD@residential.roundproxies.com:5000"
  )

  response = requests.get(
      "https://ipinfo.io/json",
      proxies={"http": proxy, "https": proxy},
  )
  print(response.json())
  ```
</CodeGroup>

You should see a residential IP in the requested country.

## Metering

Traffic is metered against the sub-user's data limit and shows up on the [usage endpoints](/reseller/sub-users#checking-one-sub-user) within moments. Once `rawUsed` reaches `rawTotal`, the account stops working until you top it up.
