Skip to content
VPNDetection

Keep every bet inside your licensed markets

A license covers certain markets, and a VPN makes a player outside them look like they're inside. Look up the address at sign-up, deposit and bet, and stop play from masked addresses.

Unlimited lookups, no key needed · Sign up to try every field, no card
Location checks
Example
  • Bet, player 5521
    203.0.113.12
    VPNExpressVPNBlocked
  • Deposit, player 2208
    198.51.100.90
    ISPMobile carrierAllowed
  • Sign-up
    192.0.2.77
    HostingDigitalOceanBlocked
  • Bonus claim, player 5530
    203.0.113.140
    Residential ProxyHeld

What it stops

  • Out-of-market play

    Players outside your licensed markets placing bets through a VPN.

    Caught byis_vpnis_relay
  • Bonus abuse

    Welcome offers claimed again and again from accounts on fresh proxy addresses.

    Caught byis_resproxyis_vpn
  • Multi-accounting

    One player behind many accounts, to dodge limits or arbitrage odds.

    Caught byis_vpnis_resproxy
  • Bots

    Accounts run from hosting servers to automate play or collude.

    Caught byis_hostingis_dcproxy

The fields that decide it

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

  • is_vpn
    A commercial VPN. A paid plan names which one.Unlimited
  • is_relay
    A privacy relay such as iCloud Private Relay, which hides the player's address.Unlimited
  • is_resproxy
    A home connection resold as a proxy: the player looks local and isn't.Paid plans
  • is_hosting
    A hosting server, where bots and bonus farms run.Paid plans

Where to check

  1. 01

    At sign-up

    Check the address before the account exists, beside the age and identity checks. A VPN, a proxy or a hosting address there is refused or sent to verification before any bonus is claimed.

  2. 02

    On deposits and withdrawals

    Look up the address wherever money moves. Hold a withdrawal from an address that hides the player's location, and look at accounts that keep arriving through proxies.

  3. 03

    When a session starts

    Check again when a session starts and whenever the address changes, since a player can turn a VPN on mid-session. Pair it with the geolocation your license requires: on a VPN, the location it reports is the VPN's.

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 beforeBet(session) {
const r = await client.lookup(session.ip);
if (r.isVpn || r.isRelay || r.isTor) {
return refuse(session, "location hidden");
}
// Proxies and hosting answer on a paid plan.
if (r.isResproxy || r.isHosting) {
return holdAccount(session, r);
}
}
bets.mjsnpm install vpndetection
On this page

Does this replace a geolocation check?

No. Our location is the country. Pair these flags with the geolocation your license requires: when an address is a VPN, the location it reports is the VPN's, not the player's.

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.