Integration
Fix 407 Proxy Authentication Required
HTTP 407 Proxy Authentication Required means a proxy needs valid authentication before it can forward your request. Check the proxy username, password, authentication settings, and protocol first. Changing the destination URL or rotating an IP will not correct missing proxy credentials.
What is the difference between 407, 401, and 403?
A 407 is an HTTP proxy authentication challenge. A 401 requests authentication for the destination resource. A 403 reports that the responder refuses the request; identify whether that responder is the proxy or the destination before changing credentials.
| Result | What it tells you | First check |
|---|---|---|
| 407 | The HTTP proxy requires acceptable credentials | Proxy username, password, and authentication configuration |
| 401 | The requested resource requires authentication | Destination account or API authentication |
| 403 | The responder refuses the request | Response source and destination permissions |
| Connection timeout | The connection did not complete within the limit | Gateway address, protocol port, network, and destination timing |
Which credentials should you check first?
Use the proxy gateway credentials from your dashboard. Your Google or Discord sign-in password is not the proxy password. Copy the complete generated password when it includes country or sticky-session settings.
- Check for leading spaces, line breaks, or a truncated password.
- Match the gateway hostname and port to the selected HTTP(S) or SOCKS5 protocol.
- Use fresh dashboard output if the proxy password has been rotated.
- For PhantomProxies, verify that the account has purchased bandwidth and that provisioning has completed.
How do you isolate a 407 with cURL?
Make one request to a neutral IP-check endpoint using a known HTTP proxy configuration. A separate cURL configuration file keeps the password out of the command arguments. Store the file privately and replace every placeholder with your actual gateway details.
proxy = "http://GATEWAY_HOST:HTTP_PORT"
proxy-user = "PROXY_USERNAME:GENERATED_PROXY_PASSWORD"
url = "https://api.ipify.org?format=json"
max-time = 30
silent
show-errorWhen does URL encoding fix proxy authentication?
Encode the username and password when embedding them inside a proxy URL. Characters such as @, :, /, and # have structural meanings in a URL and can change how a client parses the credentials.
Use the original credential values when a client accepts username and password as separate fields, such as Playwright's HTTP proxy configuration. Encoding those fields as though they were a URL can instead change the password sent to the gateway.
import os
from urllib.parse import quote
username = quote(os.environ["PROXY_USERNAME"], safe="")
password = quote(os.environ["PROXY_PASSWORD"], safe="")
proxy_url = f"http://{username}:{password}@GATEWAY_HOST:HTTP_PORT"
# Pass proxy_url to your HTTP client. Do not print it.Why can cURL work while Playwright still fails?
The two clients may be sending different settings or using different protocol support. For authenticated access in Playwright, start with the HTTP(S) gateway and pass server, username, and password in the proxy configuration.
An error saying the browser does not support SOCKS5 proxy authentication is a browser compatibility issue. It is different from an HTTP 407 response. Test the service's authenticated HTTP(S) endpoint rather than repeatedly changing a working password.
What should you send to support if authentication still fails?
Send the approximate test time, protocol, sanitized gateway address, HTTP status or error class, and the troubleshooting steps already completed. This lets support distinguish account provisioning, authentication, and routing problems without receiving your password.
A successful neutral IP check followed by failure on one website points to a different layer than a gateway-wide authentication failure. Note that distinction in your report and avoid endless retries.
