Residential proxies

The hardest addresses to spot, and how we find them anyway

A residential proxy is somebody's home connection resold by the gigabyte. Nothing about the address gives it away, because it genuinely is a consumer line.

What it is

Every other category on this site can be recognised from the outside. A datacentre publishes its ranges, a VPN answers on a VPN port, Tor lists its own relays. A residential proxy has none of those tells: the ASN is a consumer ISP, the geography is a suburb, and the machine at the end is a phone or a router belonging to somebody who installed a free app.

That is exactly why it is the category worth paying for, and why anyone claiming to detect it should have to say how.

How we actually know

We buy access to the networks and enumerate them from the inside. A request is routed through the provider and we record the address it comes out of. Repeat that often enough and the exit pool maps itself, one confirmed address at a time. Which networks we buy from, and how many, is the one thing on this page we do not publish.

There is no inference in this. An address flagged as a residential proxy is one we have personally been given as an exit by the network selling it, which is a different kind of evidence from a heuristic that thinks a connection looks suspicious.

What to read in the response

Field Why it matters here
residential_proxy The address was observed as an exit of a residential proxy network we buy from. High confidence when true, and no evidence either way when false.
proxy True for HTTP proxies, SOCKS proxies and residential proxies together, when you want one flag rather than three.
score A number from 0 to 1, weighing every signal together. Use it when you would rather keep one threshold than a rule per flag.

What this flag does not mean

This only covers the providers we subscribe to, and a pool of that size is never fully enumerated. A residential proxy from a network we do not buy looks like an ordinary home connection, because that is what it is. Treat the flag as high confidence when it is true and as no information when it is false.

We also do not sweep the addresses around a confirmed one. For VPN and proxy operators that sweep pays, since they buy contiguous blocks and one hit points at many more. A residential proxy's neighbours are ordinary subscribers, so scanning them would spend 254 test slots to find nothing and would queue 254 innocent households behind the addresses a customer is waiting on.

Wiring it up

// residential_proxy is high confidence when true and silent when false, so it
// belongs on the refuse side of a rule rather than on the allow side.
if (check.residential_proxy) return refuse();

// Absence of the flag is not evidence of a clean connection. Whatever you would
// have done without this API is still the right default here.
return yourExistingRules(check);

What happens on an address nobody has seen

An address the database holds nothing on answers 404, not a low score. That is deliberate: there is no country, no operator and no ASN to return either, so a result would be a row of nulls dressed up as an answer. Treat it as no opinion rather than as clean, and decide for your own case whether to let the request through. The address goes into the scan queue and usually resolves within minutes, and the call is free on a paid plan.

Every field, every error code and the exact billing rules are in the documentation. Endpoints

The other detections, explained the same way

Try it against your own traffic.

The free tier is a plan, not a trial. Sign up, copy your key, and make the first call before you decide anything.

Get started