Know where every entry comes from. Block the ones you shouldn't take.
BoundsCheck decides, in milliseconds, whether a player is inside a jurisdiction where your contest is allowed. Every decision is logged with its reasons, so you can show your work later.
Download the product overview (PDF, 6 pages)
Built by operators, for operators. It runs on our own daily fantasy platform before it runs on yours.
decision ALLOW region US-TX · Travis County activity contest_entry · paid policy v2026.10.02 signals gps ✓ accuracy 25 m mocked ✗ vpn ✗ check_id chk_7f3a…e91c
One API call before money moves.
Your app sends a device location with each paid entry, deposit or withdrawal. BoundsCheck checks it against current boundaries and your policy, returns allow or block with the reasons, and writes an audit row. You keep control of your UI, your players and your data.
Blocks by default
A mocked location, one we can't resolve, or one close enough to a border that it could be in a disallowed state is never approved. With no usable location, the player is asked to share it. Errors answer BLOCK. We never guess a player in.
Rules per state, per county, per format
Allow pick'em in one state and salary-cap only in another. Carve out a county or a custom zone. Policy changes are versioned and take effect without an app release.
Fast enough to sit in the request path
Most decisions return in milliseconds, and approvals stay valid for 15 minutes. Your eligible-states list is served with ETags so the client only re-downloads it when policy changes.
Monitor first, enforce when ready
Run checks on live traffic without acting on them, and use the decision log and review queue to see what would have been blocked and why. Start enforcing when you're ready.
Four parts, one decision.
Each check runs through the same pipeline. Every stage records what it saw, so the audit row explains the decision rather than just stating it.
Boundaries
Official state boundaries and all 3,142 US counties, not a radius around a city centre. Add your own zones, such as tribal land.
- Point-in-polygon at state and county level
- Accuracy radius plus a safety buffer: a location that could be across a border is not approved
- Canada and Mexico provinces and states also mapped
Policy engine
Policy is a set of rules keyed on jurisdiction and contest format, paid or free. You edit it in a panel; every change is versioned with the admin who made it.
- Checks at session start, contest entry, deposit, withdrawal and signup. Custom activities Roadmap
- Formats: pick'em, salary cap, peer-to-peer and free
- State minimum age Roadmap
- Eligible-states endpoint for your app's onboarding screens
Fraud signals
Location spoofing is cheap. We look for the common tells, and an untrusted location is never approved.
- Fake-GPS (mock location) flag from the device
- VPN, proxy and hosting-range detection on the request IP
- IP geolocation compared against the GPS fix
- Stale locations and timezone mismatches
- Impossible travel between a player's checks
- Multi-account links by device, email or phone
Audit trail
Every check is stored with its inputs, the signals observed, the policy version applied and the result. Nothing is sampled.
- Check ID returned on every call to store with the transaction
- Searchable log of decisions and reasons
- Change log naming the admin for every change: rules, settings, zones, IP rules and reviews
- Review queue, with each outcome sent to your system by signed webhook
- Self-serve export of any date range, CSV or JSON Lines, from the panel or the API
Operators who need real state-by-state blocking without an enterprise contract.
If you run paid contests across many states, you already know the map changes. BoundsCheck is for the teams who have been maintaining a hand-edited list of state codes and want something they can defend.
- Daily fantasy sportsPick'em and salary-cap operators who need format-level rules and a clean record for each paid entry.
- Sweepstakes and social casinoPromotional-sweepstakes models where a handful of states and counties must be excluded and proven excluded.
- Free-to-play and prediction contestsProducts that are free today and want the gating in place before a paid tier launches.
- Platforms and white-labelsOne policy engine serving several brands, each with its own rule set and audit log.
What you get
A REST API, an admin panel with a decision log and review queue that you can embed in your own back office or use hosted with two-factor sign-in, and a web script and iOS and Android SDKs Roadmap. Flat monthly pricing by active players, with unlimited checks. No per-ping charges.
How we work with you
We're a small team and we integrate with you directly. Expect a shared channel, a period of running checks on real traffic without enforcing, reviewing the results together, and a go-live plan for web first and mobile once your new build has adoption.
Tell us what you're running.
There's no self-serve signup yet. Send a note and we'll set up a walkthrough, share the API reference, and talk through what the decisions would look like on your traffic.
Direct
New to BoundsCheck? Email hello@boundscheck.com. Existing customers, write to support@boundscheck.com. We reply within one business day.
Not ready to talk yet? Download the six-page overview (PDF) to share with your team.
Good to know before we talk
- Integration effortYour server calls one API before money moves. Mobile needs the location permission and a small payload on your paid-entry calls, which means an app-store release.
- Data handlingWe store device fixes and decisions for the audit trail. We don't sell or share location data, and you can set your own retention window. Questions go to privacy@boundscheck.com.
- PricingPlans from $199 a month, priced by active players with unlimited checks and no minimums. See pricing.