> 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/proxy-output-and-authentication-on-per-proxy.md).

# Proxy Output and Authentication on Per Proxy

Set how your Mobile Per Proxy proxies look and authenticate: User / Pass, Simple Mode or IP whitelist, DNS or IP hostname, static or dynamic ports.

**Proxy output** in the Mobile Per Proxy toolbar is the single place where the shape of your proxies is decided.

It holds four settings, and the button label shows the current state so you can read your setup without opening it, for example `User/Pass · DNS · Static`.

<figure><img src="https://3163533074-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiAQa47xivOtQQ7mQZOnQ%2Fuploads%2F82OU5oBUR821fmnQZqmp%2FProxyOutput.png?alt=media&#x26;token=2e2400d5-e669-4559-bbbf-47bb5f077a10" alt="" width="563"><figcaption></figcaption></figure>

| Setting          | Options                                                  |
| ---------------- | -------------------------------------------------------- |
| **Auth**         | **User / Pass**, **Simple Mode**, or **IP Whitelist**    |
| **Hostname**     | **DNS** for a hostname, or **IP** for the direct address |
| **Port Mapping** | **Static** or **Dynamic**                                |
| **Proxy Format** | **IP:Port:User:Pass** or **User:Pass\@IP:Port**          |

{% hint style="warning" %}
Changes apply to your whole proxy list immediately, with no confirmation step.
{% endhint %}

***

## Authentication

Every proxy has to be identifiable, and the three authentication modes differ in what does the identifying.

| Mode             | What the proxy looks like                                                             | Port Mapping      | Best for                                                        |
| ---------------- | ------------------------------------------------------------------------------------- | ----------------- | --------------------------------------------------------------- |
| **User / Pass**  | Each proxy has its own username and password, and every proxy can share the same port | Static or Dynamic | Most setups, and anything that keeps per-proxy sessions         |
| **Simple Mode**  | One username and password across every proxy, told apart by port alone                | Dynamic only      | Legacy tools that cannot handle different credentials per proxy |
| **IP Whitelist** | No credentials at all, just host and port, authenticated by your public IP            | Dynamic only      | Server-side automation running from a fixed IP                  |

In **Simple Mode** and **IP Whitelist** the username is either shared or absent, so the port is the only thing left to tell your proxies apart, which is why each one needs its own port.

{% hint style="info" %}
The IP allowlist is for connecting without credentials.

When a request sends a username and password, it authenticates by those credentials, and an allowlisted IP does not bypass them.
{% endhint %}

### Choose a mode

{% tabs %}
{% tab title="User / Pass" %}
In **User / Pass** the username identifies each proxy, so every proxy can share the same port.

It suits almost every setup, including anything that keeps per-proxy sessions.
{% endtab %}

{% tab title="Simple Mode" %}
Simple Mode gives every proxy on your plan the same username and password, and tells them apart by port number only.

Use it when a tool cannot store a different username per proxy, which is common in older software and in some scrapers and bots that accept one credential pair and a list of ports.

**Switching to Simple Mode changes two things:**

* **Port Mapping locks to Dynamic** and greys out, since the port is now the only difference between your proxies. Hovering the control confirms it: *"Static port mapping is not available with Simple Mode"*.
* **Every proxy string carries the same username and password**, so **Reset password** changes the credential for your entire list at once.

Everything else keeps working normally, including location, ISP, rotation, rotation intervals, hostname type, and proxy format.
{% endtab %}

{% tab title="IP Whitelist" %}
Selecting **IP Whitelist** opens the **IP Allowlist** window straight away, and that window is where you manage the list from then on.

Adding an IP takes two steps.

{% stepper %}
{% step %}

### Enter the address

Type a public IP and press **Add**, or use **Add My IP** to automatically fill in the address you are currently browsing from.

The entry appears in the list marked **Pending**, which means it is queued but not yet authenticating anything.
{% endstep %}

{% step %}

### Confirm the list

Press the **Add** button at the bottom, which shows how many addresses you are about to activate, for example **Add 1 IP**.

The entries switch to **Active** and start working immediately.
{% endstep %}
{% endstepper %}

<figure><img src="https://3163533074-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiAQa47xivOtQQ7mQZOnQ%2Fuploads%2FlJXHQYUcTNM3Ry425Zlg%2FIpAllowListWindow%20(1).png?alt=media&#x26;token=56c82c9b-c43f-4775-bdc9-494b94b02232" alt="" width="563"><figcaption></figcaption></figure>

* You can hold up to **32 IPs**, and the counter at the top of the window shows your usage as `n/32 IP`.
* You can add up to 5 IPs at a time.
* Once at least one IP is active, **Proxy output** reads **IP List** and a pencil icon next to it reopens the window.
* Removing an active IP asks you to confirm, because that address loses access the moment you remove it.
* Emptying the list entirely switches authentication back to **User / Pass**.
* Your proxy strings become host and port only, with no username or password, and **Proxy Format** disappears because there are no credentials left to format.

{% hint style="warning" %}
**IP whitelisting authenticates by source IP alone.**

If your public IP changes, whether from a network switch or an ISP reassignment, add the new address to the allowlist to keep your proxies connected.
{% endhint %}
{% endtab %}
{% endtabs %}

***

## Port mapping

Port mapping does not affect performance.

It exists so your proxy list can meet the formatting rules some tools require, such as no two proxies sharing a port.

* **Static:** every proxy uses the same port, **20000** for HTTP and **20002** for SOCKS, and the session part of each username tells them apart.
* **Dynamic:** every proxy gets its own port, counting away from the base port in a predictable order:

| Protocol | Starts at | Direction   |
| -------- | --------- | ----------- |
| HTTP     | 20000     | Counts down |
| SOCKS    | 20002     | Counts up   |

So the first proxy in your list is HTTP `20000` and SOCKS `20002`, the second is `19999` and `20003`, and so on.

{% hint style="info" %}
Choose **Dynamic** when a tool expects each proxy to have its own port.

Dynamic is also required in Simple Mode and under IP Whitelist.
{% endhint %}

The predictable ordering makes proxies easier to cross-reference in bulk exports and scripts.

***

## Quick FAQ

<details>

<summary>Which authentication mode should I use?</summary>

Start with **User / Pass**, which suits almost everything. Choose **Simple Mode** if your tool only accepts one username and password for a whole proxy list. Choose **IP Whitelist** if your traffic comes from a server with a fixed public IP and you would rather keep credentials out of your configuration.

</details>

<details>

<summary>Why can I not use static ports with Simple Mode?</summary>

Static ports give every proxy the same port, and Simple Mode gives every proxy the same username. With both in place there would be nothing left to tell your proxies apart, so Simple Mode requires dynamic ports.

</details>

***

## Related articles

* [Mobile Per Proxy](/mobile-per-proxy/mobile-per-proxy.md)
* [Your Per Proxy List](/mobile-per-proxy/your-per-proxy-list.md)
* [Per Proxy Pooling](/mobile-per-proxy/per-proxy-pooling.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/proxy-output-and-authentication-on-per-proxy.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.
