# Residential targeting
Source: https://proxuno.com/docs/residential-targeting
Updated: 2026-09-16

Residential

Choose the country and city of rotating residential IPs with username flags, the list of country codes, and how traffic is counted.

Updated 16 Sept 2026 3 min read API v1

### On this page

- [Endpoint](#endpoint)
- [Username syntax](#username-syntax)
- [Countries and cities](#countries-and-cities)
- [Rotating vs sticky](#rotating-vs-sticky)
- [Generating lists](#generating-lists)
- [How traffic is counted](#how-traffic-is-counted)

Rotating residential proxies use one gateway for the whole of Europe. Where the exit IP is located is decided by flags in the **username** — there is nothing to configure in the dashboard.

## Endpoint[#](#endpoint)

| Field | Value |
| --- | --- |
| Host | `resi.gw.proxuno.com` |
| Ports | `7000` (HTTP/HTTPS) · `7001` (SOCKS5) |
| Username | `<login>-country-<cc>[-city-<city>][-session-<id>-ttl-<minutes>]` |
| Password | your residential password (Dashboard → Residential) |

`<login>` is your residential login, for example `px4k2m9q7a`. It is fixed for the account.

## Username syntax[#](#username-syntax)

TextCopy

```text
px4k2m9q7a-country-fr                         random IP in France, new IP per request
px4k2m9q7a-country-fr-city-lyon               random IP in Lyon
px4k2m9q7a-country-eu                         random IP anywhere in the pool
px4k2m9q7a-country-de-session-k2m9q7ax-ttl-15 same IP for up to 15 minutes (see Sticky sessions)
```

Rules:

- Flags are lowercase and separated by `-`. Order matters: `country`, then `city`, then `session` and `ttl`.
- `country` is required. Use an ISO 3166-1 alpha-2 code; `gb` for the United Kingdom (`uk` is accepted as an alias), `eu` for a random European country.
- `city` is optional and only valid together with a real country code (not `eu`). City slugs are lowercase ASCII without accents: `dusseldorf`, `malmo`, `the-hague`, `cluj-napoca`.
- An unknown country or city makes the gateway refuse the connection with `407`, so typos fail loudly instead of silently falling back to another location.

## Countries and cities[#](#countries-and-cities)

The pool covers 20 countries. Codes and city slugs:

| Code | Country | City slugs |
| --- | --- | --- |
| `fr` | France | paris, lyon, marseille, toulouse, lille, bordeaux, nantes, nice |
| `gb` | United Kingdom | london, manchester, birmingham, glasgow, leeds, bristol, edinburgh, liverpool |
| `de` | Germany | berlin, hamburg, munich, cologne, frankfurt, stuttgart, dusseldorf, leipzig |
| `it` | Italy | rome, milan, naples, turin, bologna, florence, palermo |
| `es` | Spain | madrid, barcelona, valencia, seville, zaragoza, malaga, bilbao |
| `nl` | Netherlands | amsterdam, rotterdam, the-hague, utrecht, eindhoven, groningen |
| `be` | Belgium | brussels, antwerp, ghent, liege, charleroi, bruges |
| `pt` | Portugal | lisbon, porto, braga, coimbra, faro |
| `pl` | Poland | warsaw, krakow, wroclaw, lodz, poznan, gdansk |
| `ch` | Switzerland | zurich, geneva, basel, bern, lausanne |
| `at` | Austria | vienna, graz, linz, salzburg, innsbruck |
| `se` | Sweden | stockholm, gothenburg, malmo, uppsala, vasteras |
| `ie` | Ireland | dublin, cork, limerick, galway |
| `cz` | Czechia | prague, brno, ostrava, plzen, liberec |
| `ro` | Romania | bucharest, cluj-napoca, timisoara, iasi, constanta, brasov |
| `dk` | Denmark | copenhagen, aarhus, odense, aalborg |
| `fi` | Finland | helsinki, espoo, tampere, turku, oulu |
| `no` | Norway | oslo, bergen, trondheim, stavanger |
| `gr` | Greece | athens, thessaloniki, patras, heraklion, larissa |
| `hu` | Hungary | budapest, debrecen, szeged, miskolc, pecs |

The same list is available as JSON from [`GET /countries`](/docs/api-residential#list-countries-and-cities), which is the reference if this page and the API ever disagree.

## Rotating vs sticky[#](#rotating-vs-sticky)

Without a `session` flag every **request** gets a new IP. That is ideal for crawling many independent pages. Logins, carts and multi-step forms need the same IP for several requests — use a [sticky session](/docs/sticky-sessions).

With HTTP keep-alive, several requests can reuse one TCP connection to the gateway; the IP still changes per request because the gateway routes each request separately. With SOCKS5, the IP is chosen per TCP connection.

## Generating lists[#](#generating-lists)

Tools that need a list of "proxies" can be fed many identical rotating lines, or many lines with different sessions. Generate them in **Dashboard → Residential → Endpoints**, or with the API:

cURLCopy

```bash
curl "https://proxuno.com/api/v1/residential/endpoints?country=it&city=milan&count=20" \
-H "Authorization: Bearer $PROXUNO_API_KEY"
```

## How traffic is counted[#](#how-traffic-is-counted)

- Billed traffic = bytes uploaded + bytes downloaded through the gateway, including TLS overhead and headers. 1 GB = 10⁹ bytes.
- Failed connections that never reach the target (wrong credentials, unknown city) are not billed.
- Packages are valid 90 days from purchase. Several packages stack; the one expiring first is consumed first.
- Unused GB can be converted to account balance within 7 days of purchase (Dashboard → Residential → Packages). Traffic already consumed is not refundable.

Live usage per day and per country is in the dashboard and in [`GET /usage`](/docs/api-proxies#usage).

Something unclear, outdated or wrong on this page? Tell us — documentation issues are fixed in the next release at the latest.

[Report an issue with this page](/contact?topic=support&subject=Documentation%20issue%3A%20Residential%20targeting)
