Skip to main content
Changedetection.io supports comprehensive proxy configuration at both the system level and per-watch level. You can use standard HTTP/HTTPS proxies, SOCKS5 proxies, and integrate with premium proxy services like Bright Data and Oxylabs.

System-Level Proxy Configuration

Set global proxy settings using environment variables. These apply to all watches unless overridden at the watch level.
string
HTTP proxy URL for non-SSL requestsExample:
string
HTTPS proxy URL for SSL requestsExample:
string
Comma-separated list of domains/IPs to exclude from proxyExample:
Useful for excluding notification URLs and internal services from proxying.

Docker Compose Example

SOCKS5 Proxy Support

Changedetection.io supports SOCKS5 proxies for the basic HTTP fetcher (requests library).

SOCKS5 with Authentication

SOCKS5 DNS Resolution

Use socks5h:// to perform DNS resolution through the proxy:
Playwright/Puppeteer Limitation: SOCKS5 with authentication is not yet supported for browser-based fetchers (Playwright/Puppeteer). You can use SOCKS5 without authentication or use HTTP/HTTPS proxies with authentication instead.

Per-Watch Proxy Configuration

Configure proxies for individual watches through the web UI or API.

Using proxies.json

Create a proxies.json file in your datastore directory to define reusable proxy profiles:

Mount proxies.json in Docker

Select Proxy in Watch Settings

Once defined in proxies.json, proxies appear in the watch edit page:
  1. Edit a watch
  2. Go to the Request tab
  3. Select your proxy from the Proxy dropdown
  4. Save the watch

Bright Data Proxy Integration

Changedetection.io supports Bright Data (formerly Luminati) proxy services. Bright Data will match any first deposit up to $150 using our signup link.

Bright Data Configuration

string
Bright Data proxy URL with zone and credentialsFormat:
Example:

Bright Data Proxy Types

  • Residential - Port 22225 (rotating residential IPs)
  • Datacenter - Port 22225 (datacenter IPs)
  • Mobile - Port 22225 (mobile carrier IPs)
  • ISP - Port 22225 (ISP-assigned IPs)
Refer to Bright Data documentation for detailed configuration.

Authentication with Playwright/Puppeteer

For browser-based fetchers (Playwright/Puppeteer), proxy authentication is handled automatically via the page.authenticate() method when credentials are present in the proxy URL:
The deprecated Proxy-Authentication header approach is no longer used. Modern browsers handle authentication via the CDP (Chrome DevTools Protocol) authenticate() method.

Playwright and WebDriver Proxy Settings

When using browser-based fetchers, additional proxy configuration options are available.

Playwright Proxy Environment Variables

string
Proxy server URL for PlaywrightExample:
string
Comma-separated domains to bypass proxyExample:
string
Proxy authentication username for Playwright
string
Proxy authentication password for Playwright

WebDriver/Selenium Proxy Settings

string
Proxy type: MANUAL, PAC, DIRECT, AUTODETECT, SYSTEM
string
FTP proxy address
string
Addresses that should bypass the proxy
string
URL for proxy auto-config (PAC) file
boolean
Whether to autodetect proxy settings
string
SOCKS proxy address and port
string
SOCKS proxy username
string
SOCKS proxy password
integer
SOCKS version (4 or 5)
Refer to Selenium proxy documentation for more details.

Oxylabs Proxy Integration

Changedetection.io also supports Oxylabs proxy services, offering Residential, ISP, Rotating and many other proxy types.

Oxylabs Configuration Example

Troubleshooting

Proxy Connection Failed

If you see Proxy connection failed? SOCKSHTTPSConnectionPool errors:
  1. Verify the proxy URL format is correct
  2. Check that the proxy server is accessible from your changedetection.io container
  3. Test the proxy with curl:

DNS Resolution Issues

If you need DNS to be resolved through the proxy (e.g., for accessing internal hostnames), use socks5h:// instead of socks5://:

Proxy Not Working with Playwright

For Playwright/Puppeteer fetchers:
  1. Ensure the proxy doesn’t require SOCKS5 authentication (not yet supported)
  2. Use HTTP/HTTPS proxies with authentication instead
  3. Check the container can reach the proxy server

Best Practices

  1. Use per-watch proxies for sites that block datacenter IPs
  2. Rotate proxies by creating multiple proxy profiles
  3. Set NO_PROXY to exclude notification services and local resources
  4. Test proxies before deploying to production
  5. Monitor proxy usage through your proxy provider’s dashboard