Premium Proxies (residential IPs) are essential for accessing websites with advanced anti-bot protection. However, they can sometimes present unique challenges. This guide will help you troubleshoot common issues and optimize your use of Premium Proxies.

Common Premium Proxy Issues

Still Getting Blocked Despite Using Premium Proxies

Symptoms:

  • HTTP 403 Forbidden errors
  • CAPTCHA or bot protection challenges
  • Messages like “Access Denied” or “Your IP has been blocked”

Solutions:

1. Enable JavaScript Rendering

Many modern websites require JavaScript to load content and check browser fingerprints as part of their security. Enabling JavaScript rendering can help bypass these checks.

params = {
    "url": target_url,
    "apikey": "YOUR_ZENROWS_API_KEY",
    "premium_proxy": "true",
    "js_render": "true"  # Enable JavaScript rendering
}
You can find more information about the js_render parameter in the JavaScript Rendering documentation.

2. Implement a Wait Strategy

Some websites use time-based bot detection. Adding a delay between requests can help avoid detection.

params = {
    "url": target_url,
    "apikey": "YOUR_ZENROWS_API_KEY",
    "premium_proxy": "true",
    "js_render": "true",
    "wait": "5000"  # Wait 5 seconds (5000ms)
}
We also recommend using the wait_for parameter to wait for the content to load. You can find more information about this parameter in the Wait for Selector documentation.

3. Try Different Countries

Websites may block access differently based on your location. Switching to a proxy from another country can help.

# Try multiple countries if one is getting blocked
countries = ["us", "gb", "ca", "de", "fr"]

for country in countries:
    params = {
        "url": target_url,
        "apikey": "YOUR_ZENROWS_API_KEY",
        "premium_proxy": "true",
        "js_render": "true",
        "proxy_country": country
    }
    response = requests.get("https://api.zenrows.com/v1/", params=params)
    if response.status_code == 200:
        print(f"Success with country: {country}")
        break
    else:
        print(f"Failed with country: {country}, status: {response.status_code}")
You can find more information about the proxy_country parameter in the Proxy Country documentation.

4. Use Custom Referer Header

Some websites are easier to access when a custom referrer header is set. It can make your requests appear more legitimate.

headers = {
    "Referer": "https://www.google.com/"
}

params = {
    "url": target_url,
    "apikey": "YOUR_ZENROWS_API_KEY",
    "premium_proxy": "true",
    "js_render": "true",
    "custom_headers": "true"
}
You can find more information about the custom_headers parameter in the Custom Headers documentation.

When to Contact Support

If you’ve tried all the troubleshooting steps and still encounter issues, it might be time to contact ZenRows support. Here’s what to include in your support ticket:

  1. Target URL - The exact URL you’re trying to access
  2. Configuration Used - All parameters you’ve tried
  3. Error Messages - Full error details, including status codes
  4. Response Headers - If available, include response headers
  5. Success Patterns - Note any patterns in successful vs. failed requests
  6. Business Use Case - Explain what you’re trying to accomplish

Contact success@zenrows.com or use the live chat support available on the ZenRows website with these details to get expert assistance with your specific case.