<?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: Andrew</title>
    <description>The latest articles on DEV Community by Andrew (@proxymint).</description>
    <link>https://dev.to/proxymint</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%2F4165857%2F45323fcb-be0d-477a-8993-ca7159096877.png</url>
      <title>DEV Community: Andrew</title>
      <link>https://dev.to/proxymint</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/proxymint"/>
    <language>en</language>
    <item>
      <title>Proxy DNS leak test: check and fix it in your own client</title>
      <dc:creator>Andrew</dc:creator>
      <pubDate>Tue, 13 Oct 2026 08:05:56 +0000</pubDate>
      <link>https://dev.to/proxymint/proxy-dns-leak-test-check-and-fix-it-in-your-own-client-3co7</link>
      <guid>https://dev.to/proxymint/proxy-dns-leak-test-check-and-fix-it-in-your-own-client-3co7</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://proxymint.com/dns-leak-proxy/" rel="noopener noreferrer"&gt;proxymint&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A proxy DNS leak test you run through your own client: where curl, requests, httpx, Playwright and Node resolve names, what a leak exposes, and each fix.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A proxy carries the connection, and the DNS lookup can still happen locally.&lt;/strong&gt; When the client resolves the target hostname itself and hands the proxy an IP, that lookup leaves through the local network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP proxies resolve at the proxy by construction.&lt;/strong&gt; The CONNECT request carries the hostname, so curl, requests, Chromium and Go make no local lookup for the target.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SOCKS5 depends on the client.&lt;/strong&gt; curl, Python requests and Node socks-proxy-agent resolve locally for socks5:// and at the proxy for socks5h://, while httpx, Chromium and Go send the hostname for both.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A leak rarely throws an error.&lt;/strong&gt; It leaks the target list to the local resolver, returns CDN answers for the wrong city and shows a resolver that does not match the exit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;There are two halves to test.&lt;/strong&gt; A local capture shows whether the client sends names; a far-side test shows where the provider resolves them, which only the provider can change.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use an http:// proxy URL for HTTP and HTTPS jobs.&lt;/strong&gt; It sends the hostname to the proxy in every standard client and removes the SOCKS DNS question.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write socks5h:// wherever a job must run over SOCKS5.&lt;/strong&gt; In curl, requests and socks-proxy-agent the h is the difference between local and remote resolution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run a port 53 capture once per client and after every library upgrade.&lt;/strong&gt; Only the proxy's own hostname should appear, and a DoH client needs the Python hook or a NetLog instead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test the far side before a geo-sensitive job scales.&lt;/strong&gt; Compare the resolver's country with the exit's, for every provider, and ask the provider when they never match.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://proxymint.com/dns-leak-proxy/" rel="noopener noreferrer"&gt;Read the full guide on proxymint&lt;/a&gt;&lt;/strong&gt;, with the commands, tables and sources.&lt;/p&gt;

</description>
      <category>proxies</category>
      <category>webscraping</category>
      <category>networking</category>
      <category>devops</category>
    </item>
    <item>
      <title>US mobile proxies: carriers, targeting and exit checks</title>
      <dc:creator>Andrew</dc:creator>
      <pubDate>Mon, 12 Oct 2026 12:05:54 +0000</pubDate>
      <link>https://dev.to/proxymint/us-mobile-proxies-carriers-targeting-and-exit-checks-2ik3</link>
      <guid>https://dev.to/proxymint/us-mobile-proxies-carriers-targeting-and-exit-checks-2ik3</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://proxymint.com/us-mobile-proxies/" rel="noopener noreferrer"&gt;proxymint&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;US mobile proxies exit through US carrier networks. How CGNAT and the three national carriers shape them, how precise targeting is, and how to check the exit.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A US mobile proxy exits from a US carrier network.&lt;/strong&gt; The address belongs to a mobile carrier's ASN and IP databases label it as a cellular connection in the United States, the address class a phone on 4G or 5G uses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three nationwide carriers carry the market.&lt;/strong&gt; The FCC names AT&amp;amp;T, T-Mobile and Verizon as the nationwide facilities-based providers, and prepaid brands and MVNOs run on their networks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carrier addresses are shared.&lt;/strong&gt; More than 90% of cellular networks measured ran carrier-grade NAT (Richter et al., IMC 2016), so one public IP fronts many subscribers, and Cloudflare found CGNAT addresses rate limited three times more often (October 2025).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region is the reliable level on cellular.&lt;/strong&gt; MaxMind says mobile geolocation typically resolves to a broad region rather than a city or postal code, so city and ZIP work also sets location inside the app or site.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Check the connection type, not the label.&lt;/strong&gt; Echo the exit, confirm a carrier ASN and a mobile or cellular flag in two databases, and confirm DNS resolves on the proxy side.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target the region for state work.&lt;/strong&gt; Use country for national jobs and region for state campaigns, and pair a city exit with the app's own location setting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Match rotation to the flow.&lt;/strong&gt; Per-request rotation for stateless ad and page checks, a 5 to 60 minute timer for short flows, sticky for a signed-in session that survives an address change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make the client look like a phone in the same place.&lt;/strong&gt; Set en-US, the IANA time zone of the exit region and a mobile device profile in a fresh browser context per market.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Send other jobs to the tier built for them.&lt;/strong&gt; Rotating residential covers US price monitoring, static ISP holds one US identity for weeks, and datacenter carries volume on lenient targets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://proxymint.com/us-mobile-proxies/" rel="noopener noreferrer"&gt;Read the full guide on proxymint&lt;/a&gt;&lt;/strong&gt;, with the commands, tables and sources.&lt;/p&gt;

</description>
      <category>proxies</category>
      <category>webscraping</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>How to scrape Google Maps: Places API first, then scraping</title>
      <dc:creator>Andrew</dc:creator>
      <pubDate>Mon, 12 Oct 2026 08:05:53 +0000</pubDate>
      <link>https://dev.to/proxymint/how-to-scrape-google-maps-places-api-first-then-scraping-n6h</link>
      <guid>https://dev.to/proxymint/how-to-scrape-google-maps-places-api-first-then-scraping-n6h</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://proxymint.com/how-to-scrape-google-maps/" rel="noopener noreferrer"&gt;proxymint&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;How to scrape Google Maps: how the Places API is billed now, what Google's terms allow, and a scraping method for public business data with city-level proxies.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Try the Places API before scraping.&lt;/strong&gt; Since March 1, 2025 the Google Maps API free tier is a monthly cap per SKU, so a job of a few hundred places with phone and website often fits inside it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google's terms say no to scraping on both routes.&lt;/strong&gt; Section 3.2.3(a) of the Maps Platform terms names bulk downloads of places information, and the end user terms ban mass downloads and bulk feeds of Maps content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The API does not give you a database either.&lt;/strong&gt; Only place IDs may be stored indefinitely and coordinates for up to 30 days, so the API cannot back a permanent lead list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proxies only matter on the browser route.&lt;/strong&gt; Residential exits with city targeting fit it, because the exit can sit in the map area; datacenter IPv4 is located by country only, and mobile is built for carrier-origin targets rather than a catalog-style job.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Write the field mask first.&lt;/strong&gt; List the fields the job needs before choosing a route: phone, website and rating put a Text Search request on the Enterprise SKU, billed per 1,000 requests after 1,000 free a month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measure places per request.&lt;/strong&gt; Log how many new places each request returns on the first 100 calls; that ratio sets how many billable requests the job needs before deciding between the API and a browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leave reviews and personal contact data alone.&lt;/strong&gt; Reviewer names and a sole trader's mobile number are personal data, and Google's terms name user reviews explicitly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treat a challenge page as a stop.&lt;/strong&gt; Slow down, narrow the job or move it to the API; never push through with a captcha solver or a fresh exit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://proxymint.com/how-to-scrape-google-maps/" rel="noopener noreferrer"&gt;Read the full guide on proxymint&lt;/a&gt;&lt;/strong&gt;, with the commands, tables and sources.&lt;/p&gt;

</description>
      <category>proxies</category>
      <category>webscraping</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>How to scrape Amazon: Python, the law and official APIs</title>
      <dc:creator>Andrew</dc:creator>
      <pubDate>Sun, 11 Oct 2026 08:05:48 +0000</pubDate>
      <link>https://dev.to/proxymint/how-to-scrape-amazon-python-the-law-and-official-apis-559b</link>
      <guid>https://dev.to/proxymint/how-to-scrape-amazon-python-the-law-and-official-apis-559b</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://proxymint.com/how-to-scrape-amazon/" rel="noopener noreferrer"&gt;proxymint&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Scrape public Amazon product and price data with Python: what the terms and courts say, the official API routes, polite rate limits and where proxies fit.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;There are three routes to Amazon data.&lt;/strong&gt; The official APIs if you qualify (Creators API for Associates, SP-API for sellers), your own scraper on public logged-out pages, or a bought dataset.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon's terms prohibit scraping.&lt;/strong&gt; The Conditions of Use exclude any collection of product listings or prices and any use of robots or data mining tools, and robots.txt bars 99 named agents, Scrapy included, from the whole site.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Courts separate access from contract.&lt;/strong&gt; US rulings since 2021 treat logged-out collection of public pages as mostly outside computer-crime law, but contract, database right and the GDPR still apply.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The code should stop, not evade.&lt;/strong&gt; A 503, a robot-check page or a sign-in redirect means log it, back off and end the run after a short streak.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Most small jobs need no proxy.&lt;/strong&gt; A few hundred ASINs a day at a slow pace can run from one IP; residential exits fit other countries' marketplaces, and volume past one polite exit belongs on the official APIs or a bought dataset.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Check the official APIs before building anything.&lt;/strong&gt; Associates with 10 qualifying sales in 30 days can use the Creators API, and sellers get pricing data from SP-API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stay on public, logged-out pages.&lt;/strong&gt; Product pages and search pages only: no cart, no sign-in, no reviews behind the login wall and no reviewer names.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set your own slow pace and log every fetch.&lt;/strong&gt; One request every few seconds per exit with jitter, one at a time, with timestamp, marketplace and status on every row.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Match marketplace, language and exit country.&lt;/strong&gt; Prices and currency follow the domain and the request's location, so all three have to agree.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measure MB per page before buying traffic.&lt;/strong&gt; GB needed is pages times MB per page divided by 1,024, and HTML-only fetches are the biggest cost lever.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://proxymint.com/how-to-scrape-amazon/" rel="noopener noreferrer"&gt;Read the full guide on proxymint&lt;/a&gt;&lt;/strong&gt;, with the commands, tables and sources.&lt;/p&gt;

</description>
      <category>proxies</category>
      <category>webscraping</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>Germany proxies: targeting, sessions and exit checks</title>
      <dc:creator>Andrew</dc:creator>
      <pubDate>Sat, 10 Oct 2026 12:05:45 +0000</pubDate>
      <link>https://dev.to/proxymint/germany-proxies-targeting-sessions-and-exit-checks-bh6</link>
      <guid>https://dev.to/proxymint/germany-proxies-targeting-sessions-and-exit-checks-bh6</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://proxymint.com/germany-proxies/" rel="noopener noreferrer"&gt;proxymint&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Germany proxies give a German exit IP. Which proxy type fits, how state and city targeting works, why DE is the code, and how to check the exit before a job.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A Germany proxy exits from an address placed in Germany.&lt;/strong&gt; It can be a home line, a static ISP address, a mobile carrier or a datacenter server, and the source decides how a target classifies it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lookups answer DE, not GER.&lt;/strong&gt; DE is the ISO 3166-1 code for Germany; GER is a sports code and GE is Georgia.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State matters for holidays, delivery and local search.&lt;/strong&gt; German consumer prices already include VAT, so a plain price check rarely needs more than a country exit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The IP is one German signal of several.&lt;/strong&gt; Europe/Berlin with summer time, a de-DE locale and number format, and DNS resolved on the proxy side have to match the exit.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pick the type by requirement.&lt;/strong&gt; Rotating residential for broad consumer coverage, static ISP for one identity over weeks, mobile for app-first platforms, datacenter for lenient targets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick the level from the page.&lt;/strong&gt; Country for national pages, state when holidays or regional offers change it, city only for local search, store stock or city ads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Match on DE.&lt;/strong&gt; Normalise Germany, Deutschland and GER to DE before comparing an exit with the order.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan for the daily reconnect.&lt;/strong&gt; Some German home lines, o2 DSL and fibre among them, are cut once every 24 hours and come back on a new address, so long residential sessions should survive a new IP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parse prices with the page locale.&lt;/strong&gt; German pages write 1.299,99 €, and they show a unit price next to the total.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://proxymint.com/germany-proxies/" rel="noopener noreferrer"&gt;Read the full guide on proxymint&lt;/a&gt;&lt;/strong&gt;, with the commands, tables and sources.&lt;/p&gt;

</description>
      <category>proxies</category>
      <category>webscraping</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>407 Proxy Authentication Required: causes and client fixes</title>
      <dc:creator>Andrew</dc:creator>
      <pubDate>Sat, 10 Oct 2026 08:05:47 +0000</pubDate>
      <link>https://dev.to/proxymint/407-proxy-authentication-required-causes-and-client-fixes-845</link>
      <guid>https://dev.to/proxymint/407-proxy-authentication-required-causes-and-client-fixes-845</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://proxymint.com/407-proxy-authentication-required/" rel="noopener noreferrer"&gt;proxymint&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A 407 means the proxy, not the site, rejected or never got your login. Causes in the order to check, and the fix for curl, Python, Node, browsers and apt.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A 407 comes from the proxy, not the website.&lt;/strong&gt; The proxy got no credentials or the wrong ones, answered with a Proxy-Authenticate challenge, and never forwarded the request to the site.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The challenge scheme tells you which problem you have.&lt;/strong&gt; Basic means a provider or simple proxy that wants a username and password. NTLM or Negotiate means a corporate proxy that wants a Windows or domain login.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;On HTTPS the 407 answers the CONNECT, so there is no response object.&lt;/strong&gt; Clients raise errors such as "Tunnel connection failed: 407" or "CONNECT tunnel failed, response 407", and credentials must ride on the CONNECT itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Most 407s are placement or encoding.&lt;/strong&gt; Credentials in a field the client ignores, a requests proxies dict without an https key, or an unencoded @, : or % in the password cause most cases.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Run curl -v through the proxy with and without -U first.&lt;/strong&gt; If -U works, fix how the client sends credentials; if it fails, fix the credentials or the account.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Percent-encode the username and password in code.&lt;/strong&gt; Use urllib.parse.quote with safe set to empty, or encodeURIComponent, because a % followed by two hex digits silently changes the password.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use each client's own credential fields.&lt;/strong&gt; Playwright needs username and password fields, Puppeteer needs page.authenticate, and Java needs jdk.http.auth.tunneling.disabledSchemes cleared.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Never retry a 407 in a loop.&lt;/strong&gt; Treat it as a configuration error, alert, and keep retries for 429 and 5xx responses.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://proxymint.com/407-proxy-authentication-required/" rel="noopener noreferrer"&gt;Read the full guide on proxymint&lt;/a&gt;&lt;/strong&gt;, with the commands, tables and sources.&lt;/p&gt;

</description>
      <category>proxies</category>
      <category>webscraping</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>UK residential proxies: regions, cities and sessions</title>
      <dc:creator>Andrew</dc:creator>
      <pubDate>Fri, 09 Oct 2026 12:06:01 +0000</pubDate>
      <link>https://dev.to/proxymint/uk-residential-proxies-regions-cities-and-sessions-3cd6</link>
      <guid>https://dev.to/proxymint/uk-residential-proxies-regions-cities-and-sessions-3cd6</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://proxymint.com/uk-residential-proxies/" rel="noopener noreferrer"&gt;proxymint&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;UK residential proxies route through British home broadband. How UK targeting works, why GB is the country code, which session fits and how to check the exit.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A UK residential proxy exits from a British home connection.&lt;/strong&gt; The address belongs to a consumer ISP network such as BT, Sky, Virgin Media or TalkTalk, so databases classify it as residential and place it in the UK.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lookups answer GB, not UK.&lt;/strong&gt; GB is the ISO 3166-1 code for the United Kingdom, so configs, tests and filters should match on GB.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region and city matter for delivery, devolved rules and local search.&lt;/strong&gt; UK consumer prices already include VAT, so a plain price check rarely needs more than a country exit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The IP is one UK signal of several.&lt;/strong&gt; Europe/London with British Summer Time, an en-GB locale and DNS resolved on the proxy side have to match the exit.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pick the level from the page.&lt;/strong&gt; Use country for national pages, region when delivery or devolved rules change, and city only for local search, store stock or city ads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Match on GB.&lt;/strong&gt; Normalise United Kingdom, UK and England labels to GB before comparing an exit with the order.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check exits in two databases first.&lt;/strong&gt; Echo the IP, confirm a consumer ISP network and the city in two lookups, and confirm DNS resolves on the proxy side.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set Europe/London and en-GB per context.&lt;/strong&gt; Never hardcode a +00:00 offset; it is wrong during British Summer Time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use static ISP for a long-lived UK identity.&lt;/strong&gt; A home device can go offline; one assigned UK ISP address holds for the whole term.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://proxymint.com/uk-residential-proxies/" rel="noopener noreferrer"&gt;Read the full guide on proxymint&lt;/a&gt;&lt;/strong&gt;, with the commands, tables and sources.&lt;/p&gt;

</description>
      <category>proxies</category>
      <category>webscraping</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>Why proxies trigger captchas, and what reduces them</title>
      <dc:creator>Andrew</dc:creator>
      <pubDate>Fri, 09 Oct 2026 08:05:46 +0000</pubDate>
      <link>https://dev.to/proxymint/why-proxies-trigger-captchas-and-what-reduces-them-1g9j</link>
      <guid>https://dev.to/proxymint/why-proxies-trigger-captchas-and-what-reduces-them-1g9j</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://proxymint.com/why-proxies-trigger-captchas/" rel="noopener noreferrer"&gt;proxymint&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Why proxies trigger captchas: the risk score behind each challenge, the inputs your proxy tier changes, and what a legitimate client can fix first.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A captcha is a policy action on a risk score.&lt;/strong&gt; reCAPTCHA v3 scores each request from 0.0 to 1.0 with 0.5 as a suggested starting threshold, and each site owner decides what happens below it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The proxy supplies the IP inputs.&lt;/strong&gt; ASN class, the shared history of the address and how many requests it carries all come from the proxy tier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The client supplies the rest.&lt;/strong&gt; Pace, cookies, the TLS stack, the browser checks and the locale belong to the client on every tier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-request rotation can raise the challenge rate.&lt;/strong&gt; Each new address starts without the session history the last one built, so multi-page flows often do better on a sticky session.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Some captchas mean stop.&lt;/strong&gt; When a site challenges every automated request on logins, checkout or search, the answer is its API, a data licence or slower permitted access, not another pool.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Measure before switching tiers.&lt;/strong&gt; Put reCAPTCHA v3 or Turnstile on a page on a domain you own, record 100 requests per tier at a fixed pace, then change one client input and repeat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep clearance cookies.&lt;/strong&gt; Cloudflare's cf_clearance cookie lasts 30 minutes by default and Cloudflare recommends 15 to 45; a client that drops it meets the next challenge sooner.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use sticky sessions for multi-page flows.&lt;/strong&gt; A 5 to 60 minute timer or a sticky session keeps the history that per-request rotation throws away.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask for the market's language.&lt;/strong&gt; Set Accept-Language to the market whose pages the job needs, so the site serves the right locale.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use mobile where the mobile origin matters.&lt;/strong&gt; Carrier IPs are built for platforms that expect phone traffic; residential covers most other targets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://proxymint.com/why-proxies-trigger-captchas/" rel="noopener noreferrer"&gt;Read the full guide on proxymint&lt;/a&gt;&lt;/strong&gt;, with the commands, tables and sources.&lt;/p&gt;

</description>
      <category>proxies</category>
      <category>webscraping</category>
      <category>networking</category>
      <category>devops</category>
    </item>
    <item>
      <title>USA residential proxies: state, city and session guide</title>
      <dc:creator>Andrew</dc:creator>
      <pubDate>Thu, 08 Oct 2026 12:05:40 +0000</pubDate>
      <link>https://dev.to/proxymint/usa-residential-proxies-state-city-and-session-guide-29dl</link>
      <guid>https://dev.to/proxymint/usa-residential-proxies-state-city-and-session-guide-29dl</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://proxymint.com/usa-residential-proxies/" rel="noopener noreferrer"&gt;proxymint&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;USA residential proxies route through US home connections. How state and city targeting works, which session type fits, and how to check the exit.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A US residential proxy exits from a US home connection.&lt;/strong&gt; The address belongs to a consumer ISP network, so databases classify it as residential and place it in the US, usually in a state and city too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State is the reliable level in the US.&lt;/strong&gt; MaxMind places about 80% of US addresses in the right state but 66% within 50 km of the right city, and the state carries tax, licensing and regional promotions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rotation follows the flow.&lt;/strong&gt; Per-request rotation suits stateless pages, a 5 to 60 minute timer suits short cookie flows, and sticky holds while the home device stays online.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The IP is one US signal of several.&lt;/strong&gt; Time zone, locale and the DNS path have to match the exit, and Arizona and Hawaii skip daylight saving time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pick the level from the page.&lt;/strong&gt; Use country for national pages, state when prices, tax or licensing change by state, and city only for local search, store stock or metro ads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check exits in two databases first.&lt;/strong&gt; Echo the IP, confirm a consumer ISP network and the state in two lookups, and confirm DNS resolves on the proxy side.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set time zone and locale per state.&lt;/strong&gt; Run each US market in a fresh browser context with en-US and the IANA zone of the exit city.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set ZIP inside the site.&lt;/strong&gt; A city exit plus the site's own store or ZIP picker reaches a ZIP-level page without ZIP targeting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use static ISP for a long-lived US identity.&lt;/strong&gt; A home device can go offline; one assigned US ISP address holds for the whole term.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://proxymint.com/usa-residential-proxies/" rel="noopener noreferrer"&gt;Read the full guide on proxymint&lt;/a&gt;&lt;/strong&gt;, with the commands, tables and sources.&lt;/p&gt;

</description>
      <category>proxies</category>
      <category>webscraping</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>Datacenter vs residential proxies: which fits the target</title>
      <dc:creator>Andrew</dc:creator>
      <pubDate>Thu, 08 Oct 2026 08:05:43 +0000</pubDate>
      <link>https://dev.to/proxymint/datacenter-vs-residential-proxies-which-fits-the-target-4o1c</link>
      <guid>https://dev.to/proxymint/datacenter-vs-residential-proxies-which-fits-the-target-4o1c</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://proxymint.com/datacenter-vs-residential-proxies/" rel="noopener noreferrer"&gt;proxymint&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Datacenter vs residential proxies compared on ASN, speed, location and billing model, with a 100,000-request job sized in GB and a test to pick per target.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The ASN is the difference the target sees first.&lt;/strong&gt; A datacenter IP is announced by a hosting company, often from published ranges; a residential IP is announced by a consumer ISP on a real home connection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test the target before picking a tier.&lt;/strong&gt; A sample of a few hundred requests at the real pace shows whether the target serves normally, blocks, challenges or serves different content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Residential is usage-based, so page weight sets the traffic.&lt;/strong&gt; 100,000 HTML-only requests at 22 KB move 2.2 GB; the same requests as full 2,164 KB renders move 216.4 GB.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Datacenter fits repeating or heavy jobs on lenient targets.&lt;/strong&gt; A dedicated IPv4 port is billed per month with no bandwidth cap under normal use, so pace sets the limit rather than GB.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Datacenter is usually faster, but measure it.&lt;/strong&gt; Server uplinks beat home lines on latency, while residential latency varies by exit; compare p50 and p95 time to first byte on the real target.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sample every new target on datacenter first.&lt;/strong&gt; Sort the responses into serves normally, blocks, challenges or serves different content, and let that decide the tier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spot-check datacenter data against a home connection.&lt;/strong&gt; A 200 status with different prices or rankings is silent bad data, and it is the one failure that looks like success.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Count valid records, not requests.&lt;/strong&gt; Only responses whose content matches the home control count toward the job.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rule out the client before blaming the proxy.&lt;/strong&gt; Run the same requests at the same pace from a home network with no proxy; if they are challenged there too, a better IP will not help.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route per target, not per company.&lt;/strong&gt; Datacenter for lenient targets, residential for targets that block hosting ranges, static ISP when one address must hold for days, mobile only where a mobile origin is required.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://proxymint.com/datacenter-vs-residential-proxies/" rel="noopener noreferrer"&gt;Read the full guide on proxymint&lt;/a&gt;&lt;/strong&gt;, with the commands, tables and sources.&lt;/p&gt;

</description>
      <category>proxies</category>
      <category>webscraping</category>
      <category>networking</category>
      <category>devops</category>
    </item>
    <item>
      <title>Do proxy providers keep logs? What they record and why</title>
      <dc:creator>Andrew</dc:creator>
      <pubDate>Wed, 07 Oct 2026 18:05:42 +0000</pubDate>
      <link>https://dev.to/proxymint/do-proxy-providers-keep-logs-what-they-record-and-why-2al5</link>
      <guid>https://dev.to/proxymint/do-proxy-providers-keep-logs-what-they-record-and-why-2al5</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://proxymint.com/do-proxy-providers-log/" rel="noopener noreferrer"&gt;proxymint&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Every proxy provider keeps some logs.&lt;/strong&gt; Billing per GB, handling abuse reports and answering legal process all need records, so the real question is which records and for how long.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Over HTTPS a proxy sees the destination, not the content.&lt;/strong&gt; A CONNECT tunnel names only the host and port; paths, headers, passwords and page content stay inside TLS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"No logs" claims have failed under court orders.&lt;/strong&gt; Records from a web proxy service in 2011 and a VPN with a no-logs policy in 2017 both ended up in criminal cases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A good policy names its records.&lt;/strong&gt; Look for the fields logged, the purpose, the rule that sets retention, the disclosure rule and your rights.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Read the privacy page before buying.&lt;/strong&gt; Check for named records, stated purpose, a retention rule, a legal-request rule, no data resale and a way to request your data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Send traffic only to HTTPS targets.&lt;/strong&gt; Plain HTTP requests reach the proxy with the full URL, headers and body readable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Never install a provider root certificate.&lt;/strong&gt; Leave certificate checks on; a trusted proxy certificate is the only way a proxy can read HTTPS content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose where DNS resolves on purpose.&lt;/strong&gt; socks5h sends host names to the proxy; socks5 resolves them locally where your own resolver sees them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://proxymint.com/do-proxy-providers-log/" rel="noopener noreferrer"&gt;Read the full guide on proxymint&lt;/a&gt;&lt;/strong&gt;, with the commands, tables and sources.&lt;/p&gt;

</description>
      <category>proxies</category>
      <category>webscraping</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>Proxy format: IP, port, username and password, every form</title>
      <dc:creator>Andrew</dc:creator>
      <pubDate>Wed, 07 Oct 2026 13:28:42 +0000</pubDate>
      <link>https://dev.to/proxymint/proxy-format-ip-port-username-and-password-every-form-1bp7</link>
      <guid>https://dev.to/proxymint/proxy-format-ip-port-username-and-password-every-form-1bp7</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://proxymint.com/proxy-string-formats/" rel="noopener noreferrer"&gt;proxymint&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Read and write proxy strings: host:port:user:pass, user:pass@host:port, http:// vs socks5h:// URLs, separate fields, password encoding and IPv6 brackets.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Four forms carry the same four values.&lt;/strong&gt; The colon list host:port:user:pass, the authority user:pass@host:port, the full URL with a scheme, and separate server, username and password fields.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The full URL is the portable form.&lt;/strong&gt; curl, Python requests, Node agents, Scrapy and environment variables all parse scheme://user:pass@host:port, and the scheme picks HTTP, SOCKS5 or SOCKS5 with proxy-side DNS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Special characters need percent-encoding inside a URL.&lt;/strong&gt; Write @ as %40, : as %3A, / as %2F and # as %23; separate fields take the raw password.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IPv6 hosts go in brackets.&lt;/strong&gt; &lt;a href="http://user:pass@%5B2001:db8::1%5D:8080" rel="noopener noreferrer"&gt;http://user:pass@[2001:db8::1]:8080&lt;/a&gt; is the only safe way to write one; the colon list cannot carry IPv6.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Store each proxy once as a full URL.&lt;/strong&gt; Keep the password percent-encoded and generate colon lists or separate fields from that one source.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encode credentials separately, never the whole URL.&lt;/strong&gt; Use quote(value, safe='') in Python and encodeURIComponent in JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use socks5h:// or an http:// proxy when location matters.&lt;/strong&gt; Plain socks5:// resolves the target name on the client's own machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Give Playwright and Puppeteer separate fields.&lt;/strong&gt; Playwright drops credentials written inside server and refuses SOCKS5 with a username, so authenticated browsers use the HTTP endpoint.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the error before changing the string.&lt;/strong&gt; A parse error means a malformed string, a 407 means wrong credentials, and a refused connection means the wrong host, port or scheme.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://proxymint.com/proxy-string-formats/" rel="noopener noreferrer"&gt;Read the full guide on proxymint&lt;/a&gt;&lt;/strong&gt;, with the commands, tables and sources.&lt;/p&gt;

</description>
      <category>proxies</category>
      <category>webscraping</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
