Your server makes one API call at signup, login, deposit, and contest entry. Entry Check screens the connection for VPNs and proxies, checks the state against your list, and checks age and address at signup. It answers allow or deny, with the reason. Live in an afternoon.
Every customer gets a dashboard. Issue a key, switch license states on, read the docs. No tickets, no waiting.
A check stops at the first gate that fails. Every deny carries a plain-English reason, so your support team can see what happened without asking us.
The connecting IP is matched against thousands of VPN and proxy ranges. A hit stops the check right there.
The IP resolves to a state, and the state is checked against your list. Open states pass. License states pass only once you switch them on.
Runs at signup, after the state passes. It checks age and address state, and runs a format check on the last four of the SSN, which is then dropped.
If a VPN table is missing or the state lookup does not answer, the check denies rather than guesses.
The details that matter once real players show up.
No table, no lookup, no answer: the check denies. It never guesses in a player's favor.
At login and contest entry, send just the IP. The VPN and state gates run, the player screen does not.
Phones on cellular are mostly IPv6. Both are looked up, and both are on the VPN tables.
Thousands of VPN and proxy ranges, pulled every night. Commercial proxy data on the Plus plan.
Open, license, gray, contested, closed. You hold the switches for license states. We keep the map current.
Stored as fingerprints, never in the clear. Issue a new key any time from your dashboard, and the old one stops working at once.
Every deny says which gate stopped the player, in plain English. Your support team reads it, not a code table.
We run it, or you do. Same code, same portal, same nightly refresh.
PHP and Node clients with the fifteen-minute allow cache and fail-closed behavior already built in.
Every state and D.C. sits in one of five buckets for traditional paid fantasy. Switching a license state on is one checkbox on your dashboard. The API reads your saved list, never a list sent by the player.
No fantasy license required. Players from these states pass the state gate from day one.
Registration or licensing required. Switch it on once your paperwork is in hand.
Rules are unclear or changing. Off by default, and we keep watching them.
The legal status of paid fantasy is in dispute. Cannot be switched on.
Paid fantasy is not allowed. Cannot be switched on.
Entry Check applies the list. Deciding when a license state is ready to switch on is your call, and the portal asks you to confirm with counsel first.
Sign in, and your account is in front of you. Issue or replace your API key, switch license states on as your registrations land, and read the docs with your details filled in. Appently sees the same screen when you need a hand.
Call Entry Check from your backend at the four moments that matter. Full check at signup, location-only after that. Cache an allow for about fifteen minutes per player and IP, and you are done.
Stop a bad account before it exists.
Full checkCatch a player who moved, or turned on a VPN.
Location onlyMoney never lands from a locked state.
Location onlyCheck location again right before a player joins a contest.
Location onlyA bearer key, a JSON body, a JSON answer. Your developer will have it wired in an afternoon.
# POST from your server. # At login and entry, send only ip and "mode":"location". curl -s https://appentlygaming.com/entry-check/api/ \ -H "Authorization: Bearer <your key>" \ -H "Content-Type: application/json" \ -d '{ "ip": "152.2.10.1", "name": "Jordan Hale", "dob": "1992-04-02", "state": "NC", "last4": "4242" }'
{ "ip": "152.2.10.1", "mode": "location" }
# Answer: VPN and state gates run, identity is "skip"
{ "decision": "allow", "mode": "location",
"ip": "152.2.10.1", "vpn": "clear", "state": "NC",
"identity": "skip", "reasons": [] }
{
"decision": "allow",
"mode": "full",
"ip": "152.2.10.1",
"vpn": "clear",
"state": "NC",
"identity": "pass",
"reasons": []
}
{
"decision": "deny",
"mode": "full",
"ip": "152.2.10.1",
"vpn": "clear",
"state": "NC",
"identity": "fail",
"reasons": ["Texas is contested. Locked off."]
}
Full docs, sample players for every deny reason, and the drop-in clients are in the portal.
No per-check fees. No monthly minimum that swallows a small operator's budget. Pay a flat monthly rate, or buy the license once and run it on your own server with nothing due after.
One-time, on the monthly plans
For one brand in open states
For operators taking deposits
Own it. Nothing monthly.
Higher volumes and additional brands are quoted. On the monthly plans, pay annually and get twelve months for the price of ten. Prices in U.S. dollars.
You will have a portal login and a test key this week. Send a note, or book a call and we will walk through your states, your stack, and your timeline together.