Setup guide
cURL proxy command with username and password
curl is the quickest way to learn whether a proxy works before you touch your own code. One flag sets the proxy, and when something fails, the exit code tells you where.
Before you start
- curl, which comes with macOS, most Linux distributions and current Windows.
- On Windows PowerShell, type curl.exe: in Windows PowerShell 5.1 a bare curl is an alias for Invoke-WebRequest.
- 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
Send one request through the proxy
-x takes the proxy URL with the login inside it. The reply is the IP address the site saw.
terminal curl -x http://USERNAME:PASSWORD@HOST:PORT https://api.ipify.orgKeep the login out of the URL
-U passes the username and password on their own, which also spares you from percent-encoding symbols in them.
terminal curl -x http://HOST:PORT -U USERNAME:PASSWORD https://api.ipify.orgSet the proxy for a whole shell
curl reads https_proxy from the environment, so every command in that terminal uses the proxy until you unset it.
terminal export https_proxy="http://USERNAME:PASSWORD@HOST:PORT" curl https://api.ipify.org unset https_proxyWatch rotation from the terminal
Each curl command opens a fresh connection. Run three in a row and compare the lines.
terminal for i in 1 2 3; do curl -s -x http://USERNAME:PASSWORD@HOST:PORT https://api.ipify.org echo done
Rotating and sticky IPs
On residential with Randomize IP, the loop should print three different addresses. With Sticky IP, or on an ISP or datacenter IP, it prints one address three times. That makes the loop a fast way to confirm which mode a set of credentials is in.
Common errors and fixes
curl: (56) CONNECT tunnel failed, response 407
The proxy refused the login. Try the -U form to rule out an encoding problem, then copy the password again from the service page.
curl: (7) Failed to connect
Nothing is listening at HOST:PORT from where you are. Check both values, and whether a firewall on your network blocks outgoing connections to that port.
curl: (28) Connection timed out
The proxy or the site did not answer in time. --connect-timeout and --max-time control how long curl waits. Retry once, since a residential peer can be slow.
curl: (35) with an SSL or TLS message
The proxy URL starts with https://. Use http:// for the proxy; curl still speaks TLS to the site inside the tunnel.
The error does not say enough
Add -v. Lines that start with < show the proxy’s own reply, including a 407 that arrives before the site is ever contacted.
Which line to pick
curl is for checking, so any line works with it. Test the one you plan to use for the real job: residential for sites that block servers, ISP for long-lived logins, datacenter for most of the rest.
Other setup guides
Not sure what a word means? The glossary explains it in plain English.
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.