<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Proxy Universe</title>
    <description>The latest articles on DEV Community by Proxy Universe (@proxyuniverse).</description>
    <link>https://dev.to/proxyuniverse</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4032549%2F9cb42099-a6d6-4a7b-a5a8-74e935dd91c8.jpg</url>
      <title>DEV Community: Proxy Universe</title>
      <link>https://dev.to/proxyuniverse</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/proxyuniverse"/>
    <language>en</language>
    <item>
      <title>Don't Trust the Marketing Page: Score Your Proxy Provider's IP Quality in ~60 Lines of Python</title>
      <dc:creator>Proxy Universe</dc:creator>
      <pubDate>Tue, 21 Jul 2026 16:20:40 +0000</pubDate>
      <link>https://dev.to/proxyuniverse/dont-trust-the-marketing-page-score-your-proxy-providers-ip-quality-in-60-lines-of-python-1k7n</link>
      <guid>https://dev.to/proxyuniverse/dont-trust-the-marketing-page-score-your-proxy-providers-ip-quality-in-60-lines-of-python-1k7n</guid>
      <description>&lt;p&gt;&lt;em&gt;Subtitle: Every provider claims "clean residential IPs". After the 2026 outage wave I trust none of them — I test. Here's the scorer I run before putting money on any network: latency, fraud score, and ban-rate against real targets.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In my previous posts I covered building a failover layer and monitoring provider uptime. This closes the trilogy: how do you know a provider's IPs are actually good &lt;strong&gt;before&lt;/strong&gt; you commit a deposit?&lt;/p&gt;

&lt;p&gt;"Good" is measurable. For any proxy, three numbers tell you most of what matters:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Latency&lt;/strong&gt; — time to first byte through the proxy&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fraud/abuse score&lt;/strong&gt; — is the IP already burned in reputation databases&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target survival&lt;/strong&gt; — does the IP get challenged by the sites you actually care about&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The scorer
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;concurrent.futures&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;cf&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="c1"&gt;# proxies to test: grab 20-50 fresh IPs from the provider's gateway
&lt;/span&gt;&lt;span class="n"&gt;PROXIES&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://user:pass@gate.provider.com:7777&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;# ... more sessions/IPs
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;# swap for your real targets
&lt;/span&gt;&lt;span class="n"&gt;TARGETS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://www.amazon.com/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://www.google.com/search?q=test&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;IPINFO&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://ipinfo.io/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;SCAMALYTICS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://scamalytics.com/ip/{ip}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;  &lt;span class="c1"&gt;# manual check; API is paid
&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;test_proxy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;proxy_url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;proxy_url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;proxy_url&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;proxy&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;proxy_url&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ok&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;# 1. latency + exit IP
&lt;/span&gt;    &lt;span class="n"&gt;t0&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;IPINFO&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;proxies&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;latency_ms&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;t0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;exit_ip&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;info&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ip&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;geo&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;info&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;country&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;info&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;city&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;org&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;info&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;org&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)[:&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;error&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;connect: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;__name__&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;

    &lt;span class="c1"&gt;# 2. datacenter smell test: residential orgs are ISPs, not clouds
&lt;/span&gt;    &lt;span class="n"&gt;dc_words&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;amazon&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;google&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;digitalocean&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ovh&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;hetzner&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;m247&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;looks_dc&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;any&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;org&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;dc_words&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# 3. target survival: 200 = pass, 403/429/503 or captcha markers = burned
&lt;/span&gt;    &lt;span class="n"&gt;burned&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;TARGETS&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;tr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;proxies&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                              &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;User-Agent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Mozilla/5.0 (Windows NT 10.0; Win64; x64)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
            &lt;span class="n"&gt;text_sample&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="mi"&gt;4000&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;tr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;captcha&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;text_sample&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;burned&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
        &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;burned&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;burned_targets&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;burned&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TARGETS&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ok&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;cf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ThreadPoolExecutor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_workers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;ex&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;rows&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ex&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;test_proxy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;PROXIES&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;latency_ms&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;99999&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;good&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;rows&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ok&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;looks_dc&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;burned_targets&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;startswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;PASS: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;good&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
      &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;(median latency &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;latency_ms&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;rows&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ok&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])[&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;ms)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to read the results
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Latency.&lt;/strong&gt; Residential proxies add 300–900ms TTFB normally. Median above ~1.5s means an overloaded gateway — it won't get better under your production load.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The &lt;code&gt;looks_dc&lt;/code&gt; flag.&lt;/strong&gt; If a "residential" provider's exit IPs resolve to Amazon or M247 orgs, you're paying residential prices for datacenter IPs. Walk away. (This exact test has saved me from two providers this year.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Burned targets.&lt;/strong&gt; This is the one that matters most and the one no review can tell you, because it depends on &lt;em&gt;your&lt;/em&gt; targets. A pool that's clean for Amazon may be torched for sneaker sites. Test with 30+ IPs to get a real rate: anything above ~15% burned on first contact means the pool is oversold in your niche.&lt;/p&gt;

&lt;h2&gt;
  
  
  The workflow that actually protects you
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Deposit the minimum ($5–10) at any new provider.&lt;/li&gt;
&lt;li&gt;Pull 30–50 IPs, run the scorer against your real targets.&lt;/li&gt;
&lt;li&gt;Score again a week later — pool quality drifts as providers resell capacity.&lt;/li&gt;
&lt;li&gt;Keep results per provider; when quality drops two checks in a row, shift volume to your backup &lt;strong&gt;before&lt;/strong&gt; it becomes an emergency.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Step 4 is why I do all of this on an aggregator (&lt;a href="https://go.proxyuniverse.org/art-quality" rel="noopener noreferrer"&gt;one balance across 10+ networks&lt;/a&gt;) — moving volume between networks is a dropdown, not a new vendor onboarding. After watching PIA S5, IP2World, 922 S5 and 9Proxy users scramble this year, "migration is one click" stopped being a convenience and became the whole point.&lt;/p&gt;

&lt;p&gt;Next post: putting the three scripts together into a self-healing proxy layer with automatic weight shifting. If you want it sooner, say so in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>proxy</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Best Proxies for Online Surveys in 2026: Residential vs Mobile, Geo-Targeting, and a No-Ban Setup</title>
      <dc:creator>Proxy Universe</dc:creator>
      <pubDate>Sat, 18 Jul 2026 16:45:37 +0000</pubDate>
      <link>https://dev.to/proxyuniverse/best-proxies-for-online-surveys-in-2026-residential-vs-mobile-geo-targeting-and-a-no-ban-setup-3mlb</link>
      <guid>https://dev.to/proxyuniverse/best-proxies-for-online-surveys-in-2026-residential-vs-mobile-geo-targeting-and-a-no-ban-setup-3mlb</guid>
      <description>&lt;p&gt;If you take paid surveys or run survey accounts at any kind of scale, you already know the real bottleneck isn't finding surveys — it's not getting flagged, screened out, or banned. And nine times out of ten, the thing that gets you flagged is your IP.&lt;/p&gt;

&lt;p&gt;I've been supplying proxies to survey operators since 2023, and the same questions come up every week: which proxy type, which country, sticky or rotating, how many accounts per IP. This guide is the distilled answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why survey sites care so much about your IP
&lt;/h2&gt;

&lt;p&gt;Survey and market-research platforms make money by selling clean, unique respondents to their clients. So they invest heavily in filtering out anything that looks like duplicate or low-quality traffic. Your IP is the first signal they check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IP reputation&lt;/strong&gt; — datacenter and known-VPN ranges get scored down or blocked outright.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geo consistency&lt;/strong&gt; — if your profile says you're in Chicago but your IP resolves to a server farm in Frankfurt, you're screened out before question one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uniqueness&lt;/strong&gt; — multiple respondents from the same IP or subnet look like one person farming accounts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Timezone, language and IP alignment&lt;/strong&gt; — mismatches between browser locale and IP geo are a classic flag.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Datacenter proxies fail almost all of these. That's why survey work is one of the clearest use cases for residential and mobile proxies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Residential vs mobile vs datacenter for surveys&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Datacenter:&lt;/strong&gt; cheap and fast, but the IP ranges are known and widely blacklisted by survey panels. Fine for scraping public pages, wrong tool for surveys. Skip.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Residential:&lt;/strong&gt; real ISP-assigned IPs from actual homes. This is the default choice for surveys — high trust score, real geo, and you can target specific countries and cities. The vast majority of survey operators I supply run residential.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mobile (4G/5G):&lt;/strong&gt; carrier IPs shared by thousands of real users, so they carry very high trust and are the hardest to ban. Best when a survey platform is mobile-first, or when you need the absolute highest trust for high-value panels. More expensive per GB, so people usually reserve mobile for their most valuable accounts.&lt;/p&gt;

&lt;p&gt;Geo-targeting: pick the country before the proxy&lt;/p&gt;

&lt;p&gt;Survey payouts are not equal across countries. Tier-1 English-speaking geos — United States, United Kingdom, Canada, Australia — consistently pay the most per completed survey, because that's where the buying-power demographics are. Many high-value surveys are only offered to respondents in those countries.&lt;/p&gt;

&lt;p&gt;So the rule is simple: the account's declared country, the browser locale and timezone, and the proxy IP geo must all match. A US account needs a US residential IP, US timezone, en-US locale. Consistency is what keeps you in the high-paying survey queues instead of the "no surveys available" wall.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sticky sessions are non-negotiable
&lt;/h2&gt;

&lt;p&gt;This is the mistake that burns most beginners. Surveys are long — screeners, the main questionnaire, sometimes 10 to 30 minutes. If your IP rotates mid-survey, the platform sees the session jump IPs and voids the response, or bans the account.&lt;/p&gt;

&lt;p&gt;You want &lt;strong&gt;sticky (session) residential IPs&lt;/strong&gt;: one stable IP held for the entire survey, ideally for the whole life of that account. Rotating proxies are for scraping, not for surveys. Configure a sticky session per account and leave it.&lt;/p&gt;

&lt;h2&gt;
  
  
  A clean per-account setup that survives
&lt;/h2&gt;

&lt;p&gt;The setup that has worked for operators running anywhere from a handful to hundreds of accounts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One antidetect browser profile per survey account (AdsPower, Dolphin, GoLogin, Multilogin, and so on). Separate cookies, canvas, fonts and WebGL fingerprint per profile.&lt;/li&gt;
&lt;li&gt;One sticky residential IP per profile, in the account's country. Never share an IP across two accounts.&lt;/li&gt;
&lt;li&gt;Match locale, timezone and language to the IP geo.&lt;/li&gt;
&lt;li&gt;Keep the mapping stable: profile A always uses IP A. Don't shuffle IPs between profiles.&lt;/li&gt;
&lt;li&gt;Warm accounts up — don't blast 20 surveys in the first hour on a brand-new profile.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Proxy string format is the standard &lt;code&gt;host:port:user:pass&lt;/code&gt; (HTTP or SOCKS5), which drops straight into any antidetect browser's proxy field.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common mistakes that get you banned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Using datacenter proxies (instant low trust).&lt;/li&gt;
&lt;li&gt;Rotating IPs mid-survey (voided responses).&lt;/li&gt;
&lt;li&gt;Piling multiple accounts on the same IP or subnet.&lt;/li&gt;
&lt;li&gt;IP in one country, browser locale and timezone in another.&lt;/li&gt;
&lt;li&gt;Reusing a residential IP that's already burned on the same panel.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A note on scale and rules
&lt;/h2&gt;

&lt;p&gt;Running many accounts is against most survey platforms' terms of service, so understand the risk before you scale. This guide is about the networking layer — how IPs are detected and how to keep sessions clean — not legal advice. Operate within the rules that apply to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to use
&lt;/h2&gt;

&lt;p&gt;For survey work you want sticky residential IPs with real country and city targeting, and mobile as a premium option for the highest-trust accounts. I run &lt;a href="https://go.proxyuniverse.org/surveys" rel="noopener noreferrer"&gt;ProxyUniverse&lt;/a&gt; for this — residential, mobile and IPv4 across 10+ networks in one panel, with sticky sessions and country/city targeting, so you can keep one clean IP per account and switch networks if one degrades.&lt;/p&gt;

&lt;p&gt;Whatever provider you pick, the checklist above is what actually keeps survey accounts alive.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Surveys get you banned on IP first. Use sticky residential IPs (mobile for premium accounts), match the country to high-payout geos like the US, UK, Canada and Australia, keep one IP per antidetect profile, and never rotate mid-survey. Get those five things right and your completion rate — and your earnings — stop bleeding out to screen-outs.&lt;/p&gt;

&lt;p&gt;What's your survey stack — which antidetect browser and proxy setup are you running? Curious how others structure it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Best Proxies for Online Surveys in 2026: Residential vs Mobile, Geo-Targeting, and a No-Ban Setup</title>
      <dc:creator>Proxy Universe</dc:creator>
      <pubDate>Fri, 17 Jul 2026 15:26:45 +0000</pubDate>
      <link>https://dev.to/proxyuniverse/best-proxies-for-online-surveys-in-2026-residential-vs-mobile-geo-targeting-and-a-no-ban-setup-2h5b</link>
      <guid>https://dev.to/proxyuniverse/best-proxies-for-online-surveys-in-2026-residential-vs-mobile-geo-targeting-and-a-no-ban-setup-2h5b</guid>
      <description>&lt;p&gt;If you take paid surveys or run survey accounts at any kind of scale, you already know the real bottleneck isn't finding surveys — it's not getting flagged, screened out, or banned. And nine times out of ten, the thing that gets you flagged is your IP.&lt;/p&gt;

&lt;p&gt;I've been supplying proxies to survey operators since 2023, and the same questions come up every week: which proxy type, which country, sticky or rotating, how many accounts per IP. This guide is the distilled answer.&lt;/p&gt;

&lt;p&gt;Why survey sites care so much about your IP&lt;/p&gt;

&lt;p&gt;Survey and market-research platforms make money by selling clean, unique respondents to their clients. So they invest heavily in filtering out anything that looks like duplicate or low-quality traffic. Your IP is the first signal they check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IP reputation — datacenter and known-VPN ranges get scored down or blocked outright.&lt;/li&gt;
&lt;li&gt;Geo consistency — if your profile says you're in Chicago but your IP resolves to a server farm in Frankfurt, you're screened out before question one.&lt;/li&gt;
&lt;li&gt;Uniqueness — multiple respondents from the same IP or subnet look like one person farming accounts.&lt;/li&gt;
&lt;li&gt;Timezone, language and IP alignment — mismatches between browser locale and IP geo are a classic flag.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Datacenter proxies fail almost all of these. That's why survey work is one of the clearest use cases for residential &lt;br&gt;
and mobile proxies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fijcwwcvjzeqhn7jkldbp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fijcwwcvjzeqhn7jkldbp.png" alt=" " width="495" height="1003"&gt;&lt;/a&gt;&lt;br&gt;
Residential vs mobile vs datacenter for surveys&lt;/p&gt;

&lt;p&gt;Datacenter: cheap and fast, but the IP ranges are known and widely blacklisted by survey panels. Fine for scraping public pages, wrong tool for surveys. Skip.&lt;/p&gt;

&lt;p&gt;Residential: real ISP-assigned IPs from actual homes. This is the default choice for surveys — high trust score, real geo, and you can target specific countries and cities. The vast majority of survey operators I supply run residential.&lt;/p&gt;

&lt;p&gt;Mobile (4G/5G): carrier IPs shared by thousands of real users, so they carry very high trust and are the hardest to ban. Best when a survey platform is mobile-first, or when you need the absolute highest trust for high-value panels. More expensive per GB, so people usually reserve mobile for their most valuable accounts.&lt;/p&gt;

&lt;p&gt;Geo-targeting: pick the country before the proxy&lt;/p&gt;

&lt;p&gt;Survey payouts are not equal across countries. Tier-1 English-speaking geos — United States, United Kingdom, Canada, Australia — consistently pay the most per completed survey, because that's where the buying-power demographics are. Many high-value surveys are only offered to respondents in those countries.&lt;/p&gt;

&lt;p&gt;So the rule is simple: the account's declared country, the browser locale and timezone, and the proxy IP geo must all match. A US account needs a US residential IP, US timezone, en-US locale. Consistency is what keeps you in the high-paying survey queues instead of the "no surveys available" wall.&lt;/p&gt;

&lt;p&gt;Sticky sessions are non-negotiable&lt;/p&gt;

&lt;p&gt;This is the mistake that burns most beginners. Surveys are long — screeners, the main questionnaire, sometimes 10 to 30 minutes. If your IP rotates mid-survey, the platform sees the session jump IPs and voids the response, or bans the account.&lt;/p&gt;

&lt;p&gt;You want sticky (session) residential IPs: one stable IP held for the entire survey, ideally for the whole life of that account. Rotating proxies are for scraping, not for surveys. Configure a sticky session per account and leave it.&lt;/p&gt;

&lt;p&gt;A clean per-account setup that survives&lt;/p&gt;

&lt;p&gt;The setup that has worked for operators running anywhere from a handful to hundreds of accounts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One antidetect browser profile per survey account (AdsPower, Dolphin, GoLogin, Multilogin, and so on). Separate cookies, canvas, fonts and WebGL fingerprint per profile.&lt;/li&gt;
&lt;li&gt;One sticky residential IP per profile, in the account's country. Never share an IP across two accounts.&lt;/li&gt;
&lt;li&gt;Match locale, timezone and language to the IP geo.&lt;/li&gt;
&lt;li&gt;Keep the mapping stable: profile A always uses IP A. Don't shuffle IPs between profiles.&lt;/li&gt;
&lt;li&gt;Warm accounts up — don't blast 20 surveys in the first hour on a brand-new profile.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Proxy string format is the standard host:port:user:pass (HTTP or SOCKS5), which drops straight into any antidetect browser's proxy field.&lt;/p&gt;

&lt;p&gt;Common mistakes that get you banned&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using datacenter proxies (instant low trust).&lt;/li&gt;
&lt;li&gt;Rotating IPs mid-survey (voided responses).&lt;/li&gt;
&lt;li&gt;Piling multiple accounts on the same IP or subnet.&lt;/li&gt;
&lt;li&gt;IP in one country, browser locale and timezone in another.&lt;/li&gt;
&lt;li&gt;Reusing a residential IP that's already burned on the same panel.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A note on scale and rules&lt;/p&gt;

&lt;p&gt;Running many accounts is against most survey platforms' terms of service, so understand the risk before you scale. This guide is about the networking layer — how IPs are detected and how to keep sessions clean — not legal advice. Operate within the rules that apply to you.&lt;/p&gt;

&lt;p&gt;What to use&lt;/p&gt;

&lt;p&gt;For survey work you want sticky residential IPs with real country and city targeting, and mobile as a premium option for the highest-trust accounts. I run ProxyUniverse for this — residential, mobile and IPv4 across 10+ networks in one panel, with sticky sessions and country/city targeting, so you can keep one clean IP per account and switch networks if one degrades. Link: &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffldwrve0q5q88dzu62e2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffldwrve0q5q88dzu62e2.png" alt=" " width="495" height="1003"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1jrxwy8oaafilgvjascu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1jrxwy8oaafilgvjascu.png" alt=" " width="495" height="1003"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcskr3ah32584khb8mvcu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcskr3ah32584khb8mvcu.png" alt=" " width="495" height="1003"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whatever provider you pick, the checklist above is what actually keeps survey accounts alive.&lt;/p&gt;

&lt;p&gt;TL;DR&lt;/p&gt;

&lt;p&gt;Surveys get you banned on IP first. Use sticky residential IPs (mobile for premium accounts), match the country to high-payout geos like the US, UK, Canada and Australia, keep one IP per antidetect profile, and never rotate mid-survey. Get those five things right and your completion rate — and your earnings — stop bleeding out to screen-outs.&lt;/p&gt;

&lt;p&gt;What's your survey stack — which antidetect browser and proxy setup are you running? Curious how others structure it.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>vpn</category>
      <category>proxy</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Is 9Proxy Down in 2026? Verified Status, Timeline &amp; Best Alternatives Is 9Proxy Down in 2026? Verified Status, Timeline &amp; Best Alternatives</title>
      <dc:creator>Proxy Universe</dc:creator>
      <pubDate>Thu, 16 Jul 2026 17:25:25 +0000</pubDate>
      <link>https://dev.to/proxyuniverse/is-9proxy-down-in-2026-verified-status-timeline-best-alternatives-is-9proxy-down-in-2026-1fo</link>
      <guid>https://dev.to/proxyuniverse/is-9proxy-down-in-2026-verified-status-timeline-best-alternatives-is-9proxy-down-in-2026-1fo</guid>
      <description>&lt;p&gt;Last updated: July 16, 2026&lt;br&gt;
Quick answer: 9Proxy is not fully back. The public website loads again after going dark on June 28, 2026, but new purchases are still paused, the company has published no root cause, and full proxy stability is unconfirmed. If your workflow depends on it, keep a funded alternative running. Below is the verified timeline, what actually happened, whether it was "seized," and the alternatives that work right now.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1q4xmmv3m2kdu0lzf7uh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1q4xmmv3m2kdu0lzf7uh.png" alt=" " width="495" height="1003"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is 9Proxy down right now?&lt;/strong&gt;&lt;br&gt;
As of July 16, 2026:&lt;br&gt;
Website (9proxy.com): up. Homepage, login and docs respond.&lt;br&gt;
New purchases: still officially paused ("temporarily paused to support current customers first").&lt;br&gt;
Proxy service: partially restored, stability uneven across plans/regions per user reports.&lt;br&gt;
Root cause: never explained.&lt;br&gt;
So the honest description is "recovering, not recovered." A homepage that returns HTTP 200 is not proof your proxies authenticate, rotate and hold sessions — those are different systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happened&lt;/strong&gt;&lt;br&gt;
Reports clustered on June 28, 2026: the website wouldn't load, the desktop app timed out, active sessions dropped, and prepaid IP/GB balances became unusable. Support went quiet. This wasn't a marketing-site blip — login, dashboard, session generation and already-purchased capacity were all affected.&lt;br&gt;
On June 29, 9Proxy posted an identical notice to its Facebook page and its BlackHatWorld seller account: "We're currently experiencing a service disruption… our team has identified an unexpected issue… we're focused on a stable and secure recovery rather than a rushed fix… we don't have an exact restoration time yet." No cause, no ETA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verified timeline&lt;/strong&gt;&lt;br&gt;
Jun 28 — Website + app down, sessions drop, balances locked.&lt;br&gt;
Jun 29 — Official "service disruption" notice (Facebook + BlackHatWorld), no cause/ETA.&lt;br&gt;
Jul 1 — Login + app still unavailable; homepage sometimes returns HTTP 200.&lt;br&gt;
~Jul 6 — First "it's working again" user comments (not an official all-clear).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why "HTTP 200" is not a proxy test&lt;/strong&gt;&lt;br&gt;
An uptime checker only confirms a web server answered. It does not verify a paying customer can:&lt;br&gt;
authenticate and see the correct balance,&lt;br&gt;
generate a residential endpoint,&lt;br&gt;
open an authenticated HTTP/SOCKS5 session,&lt;br&gt;
keep a sticky session alive,&lt;br&gt;
rotate to a fresh IP,&lt;br&gt;
get the requested country/city,&lt;br&gt;
actually reach the target site.&lt;br&gt;
That's why a status page can read "up" while users still report failures. Test authenticated sessions against your real targets before trusting production traffic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was 9Proxy seized or shut down?&lt;/strong&gt;&lt;br&gt;
No credible evidence supports a seizure. The domain shows an ordinary registrar lock, unchanged Cloudflare nameservers, and registration paid through 2027 — no government banner, no agency, no court filing. The "seized" story traces back to a single competitor blog.&lt;br&gt;
For context, 2026 has been brutal for the proxy industry — the January IPIDEA-linked disruption (PIA S5, 922 S5, ABCProxy, Cherry Proxy) and the July NetNut/FBI action are real, better-attributed events. But sharing a calendar year with those isn't evidence. On verifiable facts, 9Proxy is a recovering service with paused sales, not a taken-down network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9Proxy not working? Fast troubleshooting&lt;/strong&gt;&lt;br&gt;
Confirm it's them, not you — check a status monitor first.&lt;br&gt;
Re-authenticate — sign in fresh, verify balance, regenerate credentials.&lt;br&gt;
Update the desktop app — IP-based plans route through the client; timeouts often clear on the latest build.&lt;br&gt;
Test HTTP and SOCKS5 separately, and try a second location.&lt;br&gt;
Switch networks — rule out local firewall/DNS/ISP issues.&lt;br&gt;
Check the purchase pause — if you were topping up, that's expected right now.&lt;br&gt;
If sessions still fail, treat 9Proxy as unreliable for now and keep a funded fallback.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyqdluf2wwzhjddxr6a23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyqdluf2wwzhjddxr6a23.png" alt=" " width="495" height="1003"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best 9Proxy alternatives in 2026&lt;/strong&gt;&lt;br&gt;
With sales paused and stability unproven, the smart move is to keep a working provider ready — even if you plan to return. These are residential-first, credible swaps:&lt;br&gt;
&lt;a href="https://go.proxyuniverse.org/711proxy" rel="noopener noreferrer"&gt;711Proxy&lt;/a&gt; — broad geo coverage for scraping and multi-accounting. Closest like-for-like swap. → &lt;a href="https://go.proxyuniverse.org/711proxy" rel="noopener noreferrer"&gt;https://go.proxyuniverse.org/711proxy&lt;/a&gt;&lt;br&gt;
&lt;a href="https://go.proxyuniverse.org/novproxy" rel="noopener noreferrer"&gt;NovProxy&lt;/a&gt; — clean residential pool, straightforward pricing. → &lt;a href="https://go.proxyuniverse.org/novproxy" rel="noopener noreferrer"&gt;https://go.proxyuniverse.org/novproxy&lt;/a&gt;&lt;br&gt;
&lt;a href="https://go.proxyuniverse.org/swiftproxy" rel="noopener noreferrer"&gt;Swiftproxy&lt;/a&gt; — value residential with sticky sessions. → &lt;a href="https://go.proxyuniverse.org/swiftproxy" rel="noopener noreferrer"&gt;https://go.proxyuniverse.org/swiftproxy&lt;/a&gt;&lt;br&gt;
&lt;a href="https://go.proxyuniverse.org/residential" rel="noopener noreferrer"&gt;IPRocket&lt;/a&gt; / LokiProxy — solid residential options worth benchmarking. → &lt;a href="https://go.proxyuniverse.org/residential" rel="noopener noreferrer"&gt;https://go.proxyuniverse.org/residential&lt;/a&gt;&lt;br&gt;
PIA Proxy GB — pay-per-GB, maps cleanly onto 9Proxy's GB budgeting. → &lt;a href="https://go.proxyuniverse.org/pia-gb" rel="noopener noreferrer"&gt;https://go.proxyuniverse.org/pia-gb&lt;/a&gt;&lt;br&gt;
&lt;a href="https://go.proxyuniverse.org/mobile" rel="noopener noreferrer"&gt;Mobile proxies&lt;/a&gt; — if you need true mobile IPs, not residential. → &lt;a href="https://go.proxyuniverse.org/mobile" rel="noopener noreferrer"&gt;https://go.proxyuniverse.org/mobile&lt;/a&gt;&lt;br&gt;
Migrate in stages: move 20–30% of traffic first, measure connection + target success rates, then scale.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fon6hblsx8f2y1npu6uj3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fon6hblsx8f2y1npu6uj3.png" alt=" " width="495" height="1003"&gt;&lt;/a&gt;&lt;br&gt;
Buy the alternatives cheaper — from one panel&lt;br&gt;
Here's the real lesson of this outage: a single provider is a single point of failure. When 9Proxy went dark, customers couldn't even reach money they'd already paid for.&lt;br&gt;
ProxyUniverse is a multi-provider panel — 711Proxy, NovProxy, Swiftproxy, IPRocket, PIA GB and mobile in one dashboard. Because it aggregates several networks, per-unit prices are often lower than buying direct, and you can switch networks the moment one starts failing — exactly the resilience an outage like this rewards. Diversify across providers and no single blackout ever locks you out again. → &lt;a href="https://go.proxyuniverse.org/catalog" rel="noopener noreferrer"&gt;https://go.proxyuniverse.org/catalog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;9Proxy refund &amp;amp; prepaid balance&lt;br&gt;
9Proxy's terms: GB traffic stays valid 180 days; unused IP balances don't expire — a paused store doesn't erase what you already bought.&lt;br&gt;
There are no monetary refunds (only automatic replacement of a dead IP within 60 seconds of allocation).&lt;br&gt;
If you can't reach a paid balance: open a support ticket, keep records (dates, screenshots, error codes), and if you paid by card with no resolution, a chargeback is the standard fallback.&lt;br&gt;
Because purchases are still paused, don't commit new spend to 9Proxy right now — keep a funded alternative running instead.&lt;/p&gt;

&lt;p&gt;FAQ&lt;br&gt;
Is 9Proxy down right now? Not completely — the site is back, but new purchases are paused and full stability is unconfirmed (as of July 16, 2026).&lt;br&gt;
Did 9Proxy get shut down / seized? No evidence of a seizure. It's an unconfirmed outage; the domain and registry look normal.&lt;br&gt;
When did the outage start? June 28, 2026.&lt;br&gt;
Can I get my money / balance back? GB stays valid 180 days and IP balances don't expire; no cash refunds. Keep records; chargeback as last resort.&lt;br&gt;
What are the best alternatives? 711Proxy, NovProxy, Swiftproxy, PIA GB — all available in one panel via ProxyUniverse.&lt;/p&gt;

&lt;p&gt;~Jul 8 — New "server down / all proxies failing" reports resurface.&lt;br&gt;
Jul 15 — Site stable (~99.86% uptime on monitors); new purchases still paused.&lt;br&gt;
There is no confirmed full-restoration date.&lt;/p&gt;

</description>
      <category>proxy</category>
      <category>webscraping</category>
      <category>privacy</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
