Before you start

  • The Postman desktop app. Postman’s documentation says the default proxy cannot be configured in the web app, and these steps describe the desktop version.
  • Node.js with npx for the Newman step. npx downloads Newman the first time it runs.
  • HOST, PORT, USERNAME and PASSWORD from your service page.

Your connection details

Sign in to the dashboard and open the service you bought. Its page shows the host, port, username and password for that service. There is no single ProxyPanda address to remember, so copy them from there each time. The code in these guides uses the placeholders below; replace each one with your own value.

HOST
The proxy address for this service, exactly as the service page shows it.
PORT
The port to connect to. Copy it with the host, since it can differ from one service to the next.
USERNAME
Your proxy login. It is separate from the email you use for the dashboard.
PASSWORD
Copy it in full. On residential, the options you choose in the dashboard are added to the end of the password, so a password typed from memory loses them.

You can skip the username and password by adding the IP address you connect from to the service’s allowlist. Then only HOST and PORT go into your code.

The examples use HTTP, which reaches https sites through an encrypted tunnel. SOCKS5 works too: residential ports accept both, and ISP and datacenter proxies switch protocol in the dashboard.

Steps

  1. Open the Proxy tab

    Click the Settings icon in the header, choose Settings, and open the Proxy tab. Your proxy goes under Proxy configurations for sending requests. Default proxy configuration, higher up, is meant for a proxy your own network already forces on you.

  2. Turn on a custom proxy configuration

    Switch on Use custom proxy configuration. Under Use proxy for, keep HTTP and HTTPS both selected. Set Proxy server to HTTP, type HOST with no http:// in front of it, and PORT beside it. Turn on Proxy auth and fill in USERNAME and PASSWORD.

    Settings › Proxy
    Use custom proxy configuration:  On
    Use proxy for:  HTTP, HTTPS
    Proxy server:   HTTP   HOST   PORT
    Proxy auth:     On
    Username:       USERNAME
    Password:       PASSWORD
    Proxy bypass:   (leave empty)
  3. Leave Use system proxy off

    Postman’s documentation says the custom proxy wins when both toggles are on, and keeping the system one off removes any doubt about which carried a request. Proxy bypass takes a comma-separated list of hosts that should skip the proxy, such as an API running on localhost.

  4. Send a test request

    Create a GET request to https://api.ipify.org?format=json and send it. The ip field in the response is the address the site saw. Switch Use custom proxy configuration off, send once more, and the address should change back to your own.

  5. Run the collection through the proxy with Newman

    Newman does not read the app’s proxy settings. Its documentation lists HTTP_PROXY, HTTPS_PROXY and NO_PROXY instead. Export the collection from Postman as a JSON file and run it with the variable set; --verbose prints each response body, so the ip field shows in the terminal. Percent-encode any @, : or / in the password, since it sits inside a URL here.

    terminal
    export HTTPS_PROXY="http://USERNAME:PASSWORD@HOST:PORT"
    npx newman run ip-check.postman_collection.json --verbose
    unset HTTPS_PROXY

Rotating and sticky IPs

Newman opened a new CONNECT tunnel for every request in testing: three iterations with -n 3 produced three tunnels. On residential with Randomize IP, each request in a run can therefore arrive from a different address.

When a collection signs in and then calls endpoints that expect the same client, use Sticky IP, or an ISP or datacenter IP, so the whole run keeps one address.

How the desktop app reuses connections is not documented. Send the ipify request a few times in a row and compare the addresses before relying on either behaviour.

Common errors and fixes

Requests still leave from your own address

Postman’s documentation notes that when http_proxy, https_proxy, HTTP_PROXY or HTTPS_PROXY are set in the operating system, the app follows the system proxy and ignores its own proxy settings. Remove those variables, or point them at your proxy, then restart Postman.

The proxy answers 407 Proxy Authentication Required

Proxy auth is off, or the login differs from the service page. Turn Proxy auth on and paste USERNAME and PASSWORD again, with no spaces at either end.

Newman: tunneling socket could not be established, cause=connect ECONNREFUSED

Newman found nothing listening at HOST:PORT. Compare the variable with the service page and check that the service is still active.

Newman stops with Error: Unknown object type "asyncfunction"

In testing, Newman 6.2.2 crashed with this message when the proxy rejected a wrong password with 407. It reads like a bug in your collection, but the fix is the login: copy it again and percent-encode special characters in the variable.

A Postman setting talks about capturing traffic

Postman also has a built-in proxy for capturing requests that other apps send. It is a separate feature and takes no part in sending your requests through HOST and PORT.

Which line to pick

Postman is for testing APIs, so traffic stays small and any line will do. Datacenter IPs cost least for checking how an API answers from another address. Use residential to see what a home connection gets, and an ISP IP when a test account must stay on one fixed address.

Stuck on a step?

Paste the command and the error into Discord, with your password taken out. People there have met most of these errors before.

Join the Discorddiscord.gg/proxypanda
Start with $5Ask in Discord