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.
- VPNExpressVPNBlockedBet, player 5521203.0.113.12
- ISPMobile carrierAllowedDeposit, player 2208198.51.100.90
- HostingDigitalOceanBlockedSign-up192.0.2.77
- Residential ProxyHeldBonus claim, player 5530203.0.113.140
What it stops
Out-of-market play
Players outside your licensed markets placing bets through a VPN.
Caught byis_vpnis_relayBonus abuse
Welcome offers claimed again and again from accounts on fresh proxy addresses.
Caught byis_resproxyis_vpnMulti-accounting
One player behind many accounts, to dodge limits or arbitrage odds.
Caught byis_vpnis_resproxyBots
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_vpnA commercial VPN. A paid plan names which one.Unlimitedis_relayA privacy relay such as iCloud Private Relay, which hides the player's address.Unlimitedis_resproxyA home connection resold as a proxy: the player looks local and isn't.Paid plansis_hostingA hosting server, where bots and bonus farms run.Paid plans
Where to check
- 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.
- 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.
- 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
Call it with no key
UnlimitedThe snippet runs as it is: the VPN, Tor and relay flags, the location and the network, with no daily or monthly cap.
- 2
Sign up for a key
No cardYour account's first 100 lookups each day answer every field, so you can try the paid half of the rule on real traffic.
- 3
Upgrade for every lookup
From $19 a monthEvery 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);}}
Common questions
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.
What about players on mobile data?
A mobile carrier's address isn't flagged unless it's in a mobile proxy pool, which is_mobproxy marks on every paid plan.
How often should we check a player?
At sign-up, on each deposit and withdrawal, and when a session starts or the address changes. The official clients keep each answer for an hour by default, so repeat checks on one address cost no extra lookups.
How fresh is the data?
Every dataset rebuilds daily, and the API answers from those builds. A proxy's evidence covers a rolling 90 days, with the last day each address was seen.
What does it cost?
The VPN, Tor and relay flags are free with no cap. Every paid plan answers every field, from Starter at $19 a month for 250,000 lookups to Max at $199 for 5,000,000, and Enterprise is priced to your volume.
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.
{"ip": "146.70.116.130","is_vpn": true,"is_relay": false,"is_tor": false,"location": {"country": "AT", ...},"asn": { "asn": 9009, ... }}