Introduction
iGregulator is a REST API for verifying iGaming operator licences
against fourteen public registers, each with a short API
code — UKGC (UK Gambling Commission), MGA (Malta Gaming Authority),
CW (Curaçao Gaming Authority, post-LOK), KH (Kahnawake Gaming
Commission), AN (Anjouan Gaming Authority), TGC (Tobique Gaming
Commission), IOM (Isle of Man Gambling Supervision Commission), ON
(Ontario — iGaming Ontario’s operator directory, the public list of the
operators the AGCO registers), SE (Sweden — the Swedish Gambling
Authority’s licence register, Spelinspektionen: commercial online gaming and
betting licences only), ES (Spain — the Dirección General de Ordenación
del Juego, DGOJ: state-level online licences only), BE (Belgium — the
Belgian Gaming Commission, Kansspelcommissie: online licences A+, B+ and F1+
only), DE (Germany — the Gemeinsame Glücksspielbehörde der Länder, GGL:
the four internet game types on its official whitelist only), CO
(Colombia — Coljuegos: its online gaming concessions only) and UA (Ukraine —
the State Agency PlayCity: its online casino, online poker and bookmaking
licences only).
Every register is read daily; each status shows when we last read it.
Live per-register freshness:
igregulator.io/status (Tobique’s site
currently blocks most automated reads).
Kahnawake, Tobique, the Isle of Man, Ontario, Sweden, Spain, Belgium, Germany
and Ukraine publish no licence number. For those nine, the license_number we
return (KH/IG/…, KH/CSPA/…, TGC/B2C/…, IOM/OGRA/…, ON/IGO/…,
SE/ONLINE/…, SE/BETTING/…, ES/APUESTAS/…, ES/CONCURSOS/…,
ES/OTROS-JUEGOS/…, BE/APLUS/…, BE/BPLUS/…, BE/F1PLUS/…, DE/SLOTS/…,
DE/POKER/…, DE/SPORTS/…, DE/HORSES/…, UA/CASINO/…, UA/POKER/…,
UA/BETTING/…) is an iGregulator reference that identifies the
record in our API — not a number the regulator issued, and not something to
quote to the regulator.
Building with AI? → /docs/for-ai-agents covers MCP, structured errors,
_metaprovenance, and machine-readable resources (llms.txt, OpenAPI) for LLM integrations.
What you can do with it
Section titled “What you can do with it”- Verify a domain — hit
GET /v1/check?domain=Xand get averdict(licensed,licensed_provisional, or why not), a sentence to quote, and the operator + licence behind it in one round-trip. Dual-licensed brands come back with every (operator, jurisdiction) pair; where the regulator runs a per-domain verification page (Curaçao, Tobique),verification_urllinks straight to the primary source. - Look up an operator — search by name, registered name or slug via
GET /v1/operators/search?q=…and drill into licences, domain portfolios, and regulatory actions. - Pull a whole jurisdiction — paginate
GET /v1/jurisdictions/:code/operatorsfor every operator that has held a licence in that jurisdiction, whatever its status — the list has no status field, so check each operator’s licencestatusviaGET /v1/operators/:slug; onlyactiveis licensed now. - Track regulatory actions — enforcement decisions (fines, warnings,
licence revocations) surface via
GET /v1/operators/:slug/regulatory-actions.
Data coverage
Section titled “Data coverage”Fourteen registers, each read daily. Live counts per register — licence records, how many active, operators, domains — are /v1/stats, each with its definition; we do not copy them here, where they would go stale.
| Jurisdiction | Source | Cadence |
|---|---|---|
UKGC (UK Gambling Commission) |
Public register ZIP | Daily 03:00 UTC |
MGA (Malta Gaming Authority) |
Playwright-scraped SPA | Daily 03:15 UTC |
CW (Curaçao Gaming Authority) |
OGL PDF + /token registry |
Daily 03:30 UTC |
KH (Kahnawake Gaming Commission) |
Interactive Gaming + CSPA HTML | Daily 03:45 UTC |
AN (Anjouan Gaming Authority) |
Embedded JSON on register page | Daily 04:00 UTC |
TGC (Tobique Gaming Commission) |
Static HTML table (via CF Worker proxy) | Daily 04:15 UTC |
IOM (Isle of Man Gambling Supervision Commission) |
Register HTML page (+ its .xlsx as a cross-check) | Daily 04:25 UTC |
SE (Swedish Gambling Authority, Spelinspektionen) |
Register Excel export — online gaming and betting licences only | Daily 04:35 UTC |
ON (iGaming Ontario operator directory) |
Directory HTML page | Daily 04:50 UTC |
ES (Dirección General de Ordenación del Juego, DGOJ) |
Operators-with-a-licence list + each operator’s page — state-level online licences only | Daily 05:05 UTC |
BE (Belgian Gaming Commission, Kansspelcommissie) |
The Commission’s three published JSON lists of active licences — online classes A+, B+, F1+ only | Daily 05:20 UTC |
DE (Gemeinsame Glücksspielbehörde der Länder, GGL) |
The GGL’s official whitelist page — its four internet game types only | Daily 05:25 UTC |
CO (Coljuegos) |
Coljuegos’ page of authorised online operators — online gaming concessions only | Daily 05:30 UTC |
UA (State Agency of Ukraine PlayCity) |
PlayCity’s register of every licence (a PDF linked from its home page) — online casino, online poker and bookmaking only | Daily 05:35 UTC |
Sweden is two licence types, not the whole register: commercial online
gaming (Kommersiellt online) and betting (Kommersiellt vadhållning).
Software permits, land-based gaming, state gaming machines, ships, and
public-benefit and state lotteries are not loaded — some lotteries run
websites, and /v1/check answers not_found for them. That is not a finding
that the site is unlicensed.
Spain is the DGOJ’s state-level online licences only: one record per
general licence (Apuestas, Concursos, Otros juegos), with the singular
licences under it (Ruleta, Póquer, …) as its license_types. The state
lotteries (SELAE — Loterías y Apuestas del Estado — and ONCE) are reserved by
law and hold no DGOJ licence, and land-based and regional gambling is licensed
by the autonomous communities: none of that is in our data, so not_found for
such a site is not a finding that it is unlicensed.
Belgium is the Gaming Commission’s three online licence classes only:
A+ (online casino games), B+ (online arcade games) and F1+ (online
betting), each the online extension of a land licence. Land-based licences
(A, B, C, F2) and the Loterie Nationale are not in our data. A licence
the Commission still lists past its expiration date stays active, with that
date as its expiry_date: the list is the Commission’s list of active
licences, and we do not overrule it.
Germany is the GGL’s four internet game types only: virtual slots
(Virtuelle Automatenspiele), Online-Poker, sports betting (Sportwetten)
and online horse betting (Pferdewetten im Internet). Online casino table
games licensed by a Land (Schleswig-Holstein, Bayern), lotteries (the state
DLTB lotteries, lottery brokers, charity lotteries) and land casinos are not
in our data, so not_found for such a site is not a finding that it is
unlicensed.
Colombia is Coljuegos’ online gaming concessions only: one record per
concession contract (Juegos operados por internet), its license_number
Coljuegos’ own contract number (2182, C2261) — the regulator’s, not ours.
Land-based gaming (juegos localizados) and the lotteries are not in our data,
so not_found for such a site is not a finding that it is unlicensed.
Ukraine is PlayCity’s online licences only: online casino, online poker
and bookmaking, one record per issuing decision. PlayCity prints no licence
number, so license_number is our reference (UA/CASINO/…). The register is in
Ukrainian; licence types, operator names (transliterated) and upstream_status
are English. PlayCity prints revocations, expiries and its own terminations on
the licence’s row: revoked, expired, and a licence it terminated by its own
decision with no grounds printed is also revoked, its wording kept in
upstream_status; a licence whose last entry is a court’s ruling is unknown. Land casinos, slot halls and the
state lotteries are not in our data, so not_found for such a site is not a
finding that it is unlicensed.
Ontario, Sweden, Spain, Belgium, Germany and Colombia publish no revocations
in a form we read, so a licence there is only ever active or not_in_register (Sweden also
unknown, for a status word other than Aktiv). iGaming Ontario’s directory states an
“accurate as of” date of its own and is served through a long cache; the time
we report is when we read it.
The regulator’s own per-domain verification pages (Curaçao certificate / Tobique
seal) back a large share of the domain links; they are re-read on a rolling
schedule (every Tobique seal nightly, each Curaçao certificate every 2–3 days)
and surfaced as verification_url on /v1/check. The
current figures, each with its definition, are
/v1/stats.
Live freshness per register at
/v1/health/coverage;
how coverage is measured at
coverage methodology. Which regulator page
sets each status, the evidence we keep and how we correct mistakes: our
methodology.
Who it’s for
Section titled “Who it’s for”Five buyer profiles drive the product today:
- Affiliate sites — verify that a brand they’re promoting is still licensed before writing reviews and paying out referral payments.
- Compliance + AML teams — weekly sweeps of their operator counterparties for status changes and enforcement actions.
- Payment providers — merchant onboarding checks + ongoing KYB.
- Investment intelligence — correlate licence churn, enforcement fines, and domain-expiry signals into early-warning scores.
- Game providers and aggregators — check that the casinos carrying their games hold a licence, follow those licences for changes, and (Business) see where the sites open: a supplier answers for supplying an unlicensed operator in its own licence’s markets.
Start here
Section titled “Start here”- Getting started — first curl call in under a minute.
- Authentication — when you graduate from the public 10 req/hr limit.
- Confidence scoring — how the
/v1/checkendpoint picks betweenhigh,medium, andlow. - API playground — try any endpoint interactively.
- Full endpoint reference — detailed schemas for every route.