Skip to content
VPNDetection

Stop paying for clicks no person made

Bots run on hosting servers and hide in residential proxy pools. Look up the address behind each click, install or lead, and keep invalid traffic out of your invoices and your reports.

Unlimited lookups, no key needed · Sign up to try every field, no card
Click log
Example
  • Click, ad 3391
    192.0.2.10
    HostingGoogle CloudInvalid
  • Click, ad 3391
    198.51.100.212
    ISPHome broadbandValid
  • Install, app 72
    203.0.113.33
    Residential ProxyInvalid
  • Lead, offer 18
    203.0.113.98
    VPNSurfsharkReview

What it stops

  • Click fraud

    Bots clicking ads from hosting servers to drain a budget.

    Caught byis_hostingis_dcproxy
  • Fake installs and leads

    Affiliate conversions sent through proxy pools, each made to look like a new user.

    Caught byis_resproxyis_mobproxy
  • Geo fraud

    Traffic sold as one country and delivered from VPN exits elsewhere.

    Caught byis_vpnlocation.country
  • Padded reports

    Impressions from data centers counted as audience.

    Caught byis_hostingasn.type

The fields that decide it

The four a rule here reads most, each marked with the plan that answers it.

  • is_hosting
    Traffic from a hosting or cloud server, not a person's device, unless it's also a relay.Paid plans
  • is_resproxy
    A home connection resold as a proxy, where bots pass for real users.Paid plans
  • is_vpn
    A commercial VPN, which hides the visitor's real country.Unlimited
  • location.country
    The country, to hold a campaign to its targeting.Unlimited

Where to check

  1. 01

    On each click

    Look up the address behind a click before it's billed or counted. Clicks from hosting servers and proxy pools go to an invalid bucket, and an ordinary address counts as normal.

  2. 02

    On each conversion

    Check an install, sign-up or lead before an affiliate is paid. One from a residential proxy or a VPN goes to review, where a pattern across one affiliate's traffic shows.

  3. 03

    In bulk

    Send up to 1,000 addresses a call to POST /batch on a paid plan, or load the databases into your own pipeline. Either way, last month's traffic is scored before its invoice is paid.

Start free, then add every field

The same rule runs with no key and with one. Without a key the paid fields are left out of the answer, so the second check waits for your upgrade.

  1. 1

    Call it with no key

    Unlimited

    The snippet runs as it is: the VPN, Tor and relay flags, the location and the network, with no daily or monthly cap.

  2. 2

    Sign up for a key

    No card

    Your account's first 100 lookups each day answer every field, so you can try the paid half of the rule on real traffic.

  3. 3

    Upgrade for every lookup

    From $19 a month

    Every paid plan answers every field on every lookup, proxies, hosting and the operator behind each flag, and up to 1,000 addresses a batch.

import { VPNDetection } from "vpndetection";
// No key needed. With one, every field answers.
const client = new VPNDetection({ apiKey: process.env.VPNDETECTION_API_KEY });
export async function scoreClick(click) {
const r = await client.lookup(click.ip);
// Proxies and hosting answer on a paid plan.
if ((r.isHosting && !r.isRelay) || r.isResproxy) {
return markInvalid(click);
}
if (r.isVpn || r.isTor) {
return sendToReview(click);
}
}
clicks.mjsnpm install vpndetection
On this page

Can it score traffic in bulk?

Yes: POST /batch takes up to 1,000 addresses a call on a paid plan, each costing what its single lookup costs. For real-time bidding, the databases download as MMDB for lookups on your own servers.

00 · Unlimited

Unlimited lookups, no sign-up.

Paste it into a terminal. Any address answers its VPN, Tor and relay flags, where it is and which network announces it, with no daily or monthly cap.

curl "https://api.vpndetection.io/146.70.116.130"
{
"ip": "146.70.116.130",
"is_vpn": true,
"is_relay": false,
"is_tor": false,
"location": {
"country": "AT", ...
},
"asn": { "asn": 9009, ... }
}
01 · Sign up

Try every field, free.

Your first 100 lookups each day answer every field, the evidence behind each flag included.
The rest answer as Unlimited, with no cap.
No card and no sales call: the key is issued on signup.
A paid plan answers every field on every lookup.