Proxies for Market Research: Samples That Are Not Just Your Desk
Research from one country is a study of one country labelled global. Each observation is accurate; the sample was drawn from wherever you were sitting.
Loading page content.
ASN-level targeting is live on rotating residential, usage now breaks down by country and hour, and the dashboard's first paint dropped from 1.9s to 0.6s. Here is what changed and what you need to do.
Dana Whitfield
· updated 23 Aug 2026
Three changes shipped this month. Two of them are additive and need nothing from you. One changes the shape of a username string, and if you generate credentials programmatically you should read that section.
You can now pin traffic to a specific autonomous system. Previously targeting stopped at city level, which is fine for geo-gated content and useless when the site you are measuring serves different results to Comcast subscribers than it does to a hosting network.
The syntax is an extra segment in the proxy username:
curl -x http://user-country-us-asn-7922:[email protected]:8080 \
-s https://api.fleetproxy.com/v1/ipSegments compose in any order, and a narrower segment wins when they conflict. user-country-us-city-chicago-asn-7922 is valid; user-country-de-asn-7922 is not — AS7922 has no German pool — and returns 407 with a X-Fleet-Reason: no-matching-pool header rather than silently falling back to a different network. Silent fallback is how people end up with three weeks of data they cannot trust.
Coverage is not uniform. The ASN picker in the dashboard shows live IP counts per network per country, and anything under 500 IPs is flagged, because a pool that small will repeat addresses inside a single large crawl.
Two things ASN targeting is good for, from the beta group. Price and inventory testing where the retailer segments on network — a surprising number do, and comparing AS7922 against AS7018 on the same product ID surfaces it immediately. And reducing retries on targets that treat consumer ASNs differently from hosting-adjacent residential ranges: two beta customers measured roughly a third fewer retries once they pinned to a named consumer network instead of taking whatever the country pool offered.
It is also worth saying what it does not do. Pinning an ASN narrows the pool you are drawing from, sometimes drastically. If you pin a network with 4,000 addresses and then run 200 concurrent workers against one target, you will repeat addresses faster than the country pool would have, and your block rate can go up rather than down. Narrower targeting is a trade, not an upgrade.
The usage chart used to show one line: bytes per day, per plan. It now rolls up hourly and splits by country, so a bandwidth spike is traceable to a target rather than just visible.
| Before | Now |
|---|---|
| Daily totals per plan | Hourly buckets per plan |
| No geography | Per-country series, top 5 plus "Other" |
| Bytes only | Bytes, request count, success rate, mean latency |
The rollup is computed on write, so the chart reads one indexed table instead of scanning raw request logs. In practice the usage page went from roughly 1.4s to 90ms on an account with six months of history.
Two caveats. First, buckets are UTC — if your team works in one timezone and reconciles against invoices in another, the boundaries will look off by hours until you account for it. Second, backfill only reaches 1 January 2026. Older plans show daily totals before that date and hourly after.
First contentful paint on /dashboard dropped from 1.9s to 0.6s at the 75th percentile. The work was unglamorous: the plan list stopped fetching every credential eagerly, the usage chart moved to a server-rendered SVG instead of hydrating a client component, and the session table paginates at 20 rather than rendering every session a long-lived account has accumulated.
Nothing about the API changed. If you scripted against the dashboard's HTML — some of you did, we have the user agents — use the API instead. It is stable and documented.
The session list also paginates now, and revoking a session takes effect at the gateway within a second rather than at the next token refresh. If you have ever wondered whether signing out on a lost laptop actually did anything, it now does so immediately.
Sticky session identifiers used to be 8 characters. They are now 12. The old ones still resolve, so existing credentials keep working, but if you validate session strings with a regex, widen it:
SESSION_RE = re.compile(r"^[a-z0-9]{8,12}$")The change came from a collision report: at high concurrency, an 8-character lowercase alphanumeric namespace was producing occasional collisions inside a single account, which showed up as two workers sharing an exit IP they had each expected to own.
The IP replacement flow for static residential is being rewritten so a replacement keeps the same subnet where inventory allows, which matters for anyone who has whitelisted ranges downstream. That is targeted for next month. If you have a use case that depends on subnet stability, tell support before it ships rather than after.
Research from one country is a study of one country labelled global. Each observation is accurate; the sample was drawn from wherever you were sitting.
Campaigns target a geography, a device and often a carrier, and the verification team sits in none of them. Matching the segment is the whole job.
Retailers do not have a price, they have a price per market and per fulfilment region. Ignore that and you collect one arbitrary sample and call it fact.
Every snippet in this article points at the production gateway. Create an account, take the 50 MB residential trial, and swap in your credentials.
No card required for the trial. Cancel or downgrade at any time.