> For the complete documentation index, see [llms.txt](https://help.proxidize.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.proxidize.com/mobile-per-proxy/per-proxy-pooling.md).

# Per Proxy Pooling

Send traffic to every proxy you own through one endpoint, with shared credentials and a choice between rotating and sticky sessions.

Pooling gives you one endpoint for every proxy you own.

Instead of picking a proxy for each connection, you point your tool at a single host, port, username and password, and Proxidize spreads your traffic across the whole pool.

It is most useful once you have two or more proxies on a Per Proxy plan, and it works with both HTTP and SOCKS5.

You will find it under **Proxies → Mobile Proxies → Pooling**.

<a href="https://www.app.proxidize.com/proxies/mobile/pooling/" class="button primary" data-icon="arrow-right">Open Pooling</a>

## How the pool works

Every active proxy on your Per Proxy plan is part of the pool, and there is nothing to switch on.

Connections are handed to the next available proxy in turn, so your traffic spreads across the pool instead of landing on one device.

A proxy that is no longer available, because it expired, was removed, or was dropped in a downgrade, stops receiving pool traffic.

<figure><img src="https://3163533074-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiAQa47xivOtQQ7mQZOnQ%2Fuploads%2Fj8PmAwBng1pYMYAjPQoT%2FperProxyPooling.png?alt=media&#x26;token=ffe032fb-5fb7-470e-b5db-2ddba70f9005" alt=""><figcaption></figcaption></figure>

***

## Setting up the pool

Three controls at the top of the tab decide the shape of your endpoint.

| Control        | Options                             | What it changes                                        |
| -------------- | ----------------------------------- | ------------------------------------------------------ |
| **Type**       | **HTTP Proxy** or **SOCKS5 Proxy**  | The protocol, and the port you connect to              |
| **Stickiness** | **Randomize IP** or **Sticky IP**   | Whether each connection gets a fresh IP or holds one   |
| **Hostname**   | **DNS Hostname** or **IP Hostname** | Whether you reach the pool by hostname or by direct IP |

HTTP uses port `20000` and SOCKS5 uses port `20002`.

**DNS Hostname** is the safer default, because the hostname keeps working if the gateway address ever changes.

{% hint style="info" %}
For SOCKS5, use the `socks5h://` scheme rather than `socks5://` so that hostnames are resolved through the proxy instead of on your own machine.

The **Test with cURL** command already does this.
{% endhint %}

***

## Stickiness

Stickiness decides whether your connections move between IPs or stay put, and it is the one setting worth thinking about before you copy anything.

### Randomize IP

Each new connection goes to a different proxy in the pool.

There is no session to keep track of, and your pool username ends in `-p-default` with nothing after it.

Best for scraping, checking, and any high volume work where a fresh IP per connection is what you want.

### Sticky IP

Your username gains a session segment, `-s-` followed by a generated identifier, and everything using that username stays on the same proxy and IP.

A generated list gives each row its own session, so a list of 50 is 50 separate sticky sessions rather than 50 copies of one.

Best for logins, account work, checkouts, and anything that needs the same IP for the whole task.

**Refresh Session IDs**, at the top right of **Proxy Details**, appears only in Sticky IP and replaces every session identifier at once, with no confirmation step.

{% hint style="warning" %}
Session identifiers are generated fresh every time you change a setting on this tab, and **Refresh Session IDs** replaces them all immediately.

Treat a sticky username you have copied as a snapshot: copy the list you intend to use, and copy it again after any change, since older sessions are replaced.
{% endhint %}

If you run more sessions than you have proxies, sessions begin to reuse proxies, so two of your sessions can end up on the same IP.

***

## Your pool credentials

**Proxy Details** holds the four values your tool needs, each with a copy button.

| Field        | What it is                                                                                        |
| ------------ | ------------------------------------------------------------------------------------------------- |
| **Host**     | DNS Hostname, or the gateway IP address on IP Hostname                                            |
| **Port**     | `20000` for HTTP, `20002` for SOCKS5                                                              |
| **Username** | Your pool username, generated for you, ending in `-p-default` plus a session segment in Sticky IP |
| **Password** | Shared by the whole pool, with a regenerate button beside the copy button                         |

**Test with cURL** below it gives you a ready to run command built from your current settings, which returns the IP your connection went out on.

Run it a few times to watch stickiness work, since the IP changes between runs on **Randomize IP** and holds on **Sticky IP**.

<figure><img src="https://3163533074-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiAQa47xivOtQQ7mQZOnQ%2Fuploads%2FJRtgda6RHhONV4J4cA6e%2FTestWithCurl.png?alt=media&#x26;token=08b87e9d-552c-4e87-944f-0dc396434883" alt=""><figcaption></figcaption></figure>

***

## Generating a proxy list

Many tools want a list of proxy lines rather than a single endpoint, and **Formatted Proxy List** builds one for you.

You choose the number of rows, from **10** to **100**, the line format, either `hostname:port:username:password` or `username:password@hostname:port`, and whether ports are **Static** or **Dynamic**.

Then copy the list, or export it as a `.txt` file.

**Static** gives every row the same port, and **Dynamic** gives each row its own, counting down from `20000` for HTTP and up from `20002` for SOCKS5.

Reach for **Dynamic** when a tool refuses to accept two proxies on the same port.

What you get depends on both settings together:

| Stickiness       | Ports       | Every row in the list                                  |
| ---------------- | ----------- | ------------------------------------------------------ |
| **Randomize IP** | **Static**  | Identical, since one credential reaches the whole pool |
| **Randomize IP** | **Dynamic** | Same username, a different port per row                |
| **Sticky IP**    | **Static**  | Same port, a different session per row                 |
| **Sticky IP**    | **Dynamic** | A different port and a different session per row       |

<figure><img src="https://3163533074-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiAQa47xivOtQQ7mQZOnQ%2Fuploads%2Fo7EvJbRYjk2WsGjGmyjP%2Fimage.png?alt=media&#x26;token=c03c4343-4bd2-4335-9fd2-164cfeb209ca" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}
These selectors only affect the list you generate here.

They are separate from the **Port Mapping** setting on the Proxies tab, which controls your individual proxies.
{% endhint %}

***

## Quick FAQ

<details>

<summary>Do I need to turn pooling on?</summary>

No. Every active proxy on your Per Proxy plan is already in the pool, and the Pooling tab simply gives you the shared endpoint that reaches them.

</details>

<details>

<summary>Can I still use my proxies individually?</summary>

Yes. Pooling does not replace anything. Your individual proxy credentials on the **Proxies** tab keep working, and you can use both at the same time.

</details>

<details>

<summary>Is pooling worth it with only one proxy?</summary>

Not really. With a single proxy the pool has one member, so pooling and using that proxy directly amount to the same thing. It starts paying off at two or more.

</details>

<details>

<summary>Why is every row of my generated list identical?</summary>

That is **Randomize IP** with **Static** ports working as intended, because one credential reaches the whole pool. Switch to **Sticky IP** for a list of distinct sessions, or to **Dynamic** for a list of distinct ports.

</details>

<details>

<summary>Can I choose a location for pool traffic?</summary>

Not from this tab. Location and ISP are set per proxy on the **Proxies** tab, and pooling has no targeting controls of its own.

</details>

***

## Related articles

* [Mobile Per Proxy](/mobile-per-proxy/mobile-per-proxy.md)
* [How Proxy Assignment Works on Per Proxy Plans](/mobile-per-proxy/how-proxy-assignment-works-on-per-proxy-plans.md)
* [Per Proxy vs Per GB](/plans-and-features/perproxy-vs-pergb.md)
* [Setting Up Your Proxidize Proxies](/getting-started/setting-up-your-proxidize-proxies.md)

***

## <mark style="color:$primary;">Need help?</mark>

If you have any questions, concerns, or need further clarification, feel free to reach out to us via live chat or email us directly at <support@proxidize.com>.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.proxidize.com/mobile-per-proxy/per-proxy-pooling.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
