Skip to content
PhantomProxies

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.

By PhantomProxiesLast updated October 28, 20267 min read

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.

What is the difference between 407, 401, and 403?
ResultWhat it tells youFirst check
407The HTTP proxy requires acceptable credentialsProxy username, password, and authentication configuration
401The requested resource requires authenticationDestination account or API authentication
403The responder refuses the requestResponse source and destination permissions
Connection timeoutThe connection did not complete within the limitGateway 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.

text — proxy-test.conf
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-error

When 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.

python
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.

Sources and further reading