Coverage methodology
/v1/health/coverage returns a domain_coverage object per
jurisdiction:
"MGA": { "domain_coverage": { "operators_with_domain": 106, "normative_operators": 114, "coverage_pct": 93 }}This page explains what those three numbers mean — because the honest answer depends on which question you’re asking. It covers domain coverage only; how we read each register and which regulator page sets each licence status is in our methodology.
The numbers
Section titled “The numbers”| Field | Meaning |
|---|---|
normative_operators |
Operators in this jurisdiction whose license type is one where domain disclosure is normative — i.e., the operator is consumer-facing and the regulator publishes (or could publish) a website field. |
operators_with_domain |
Subset of those operators that have ≥1 linked domain (a row in domain_operators) in our DB. |
coverage_pct |
operators_with_domain / normative_operators × 100. The honest “what fraction of operators we should have a domain for, do we?” number. |
Why exclude non-consumer license types
Section titled “Why exclude non-consumer license types”Different regulators license different activities. A B2B software supplier or a non-remote arcade operator can hold a perfectly valid license without ever running a consumer website. Including them in the denominator deflates coverage in a way that has nothing to do with our scraper quality — it just measures the regulator’s mix of consumer-facing vs. supplier licenses.
The normative subset filters them out. What’s left is operators where a missing domain is interesting — either we missed it (scraper bug we can fix) or the regulator didn’t publish it (upstream ceiling, defer to enrichment).
Per-jurisdiction filter
Section titled “Per-jurisdiction filter”| Jur | Normative subset | Excluded |
|---|---|---|
| UKGC | license_type_raw = 'Remote' |
Non-Remote (physical premises), Ancillary Remote (B2B suppliers, game studios) |
| MGA | license_number LIKE 'MGA/B2C/%' |
MGA/B2B/* (suppliers), MGA/CRP/* (Critical Gaming Supply / Recognition / Personal) |
| CW | license_type_raw ILIKE 'b2c%' |
b2b (suppliers post-LOK) |
| KH | license_type_raw = 'Interactive Gaming Permit' |
CSPA (Casino Software Provider Authorisation, B2B suppliers) |
| AN | 'B2C' = ANY(license_types) |
pure-B2B and pure-White-Labeling-only operators |
| TGC | license_type_raw = 'B2C' |
B2B (suppliers) |
| IOM | license_type_raw = 'Full' |
Network Services, Software Supply (B2B — networks and game suppliers) |
| ON | every operator in the directory | nothing — iGaming Ontario’s operator directory lists operators of player-facing sites only, and prints no licence type |
| SE | license_type_raw IN ('Kommersiellt online', 'Kommersiellt vadhållning') |
nothing we hold — but see below: every other Swedish licence type is not loaded at all |
| ES | every licence | nothing — every DGOJ licence is an online one; but see below: lotteries and land-based gambling are not DGOJ licences at all |
| BE | every licence | nothing we hold — only the three online classes (A+, B+, F1+) are loaded; but see below: land-based licences are not loaded at all |
| DE | every licence | nothing we hold — only the GGL’s four internet game types are loaded; but see below: a Land’s online casino permits, lotteries and land casinos are not loaded at all |
| CO | every licence | nothing — every Coljuegos concession we load is an online one; but see below: land-based gaming and the lotteries are not loaded at all |
| UA | every licence | nothing we hold — only PlayCity’s three online types (Online casino, Online poker, Bookmaking) are loaded; but see below: land casinos, slot halls and the lotteries are not loaded at all |
For MGA we filter on the license-number prefix because
license_type_raw carries the gaming-service breakdown
(Type 1, Type 2, Type 3, Type 4), not the B2B/B2C class
distinction.
For AN, operators with mixed license_types (e.g., ["B2C","B2B"])
are included — having any B2C component makes the operator
consumer-facing.
For IOM, Full is the Online Gambling Regulation Act licence to offer
gambling to the public; the Isle of Man Gambling Supervision Commission
lists a website in a licensee’s profile only “where a licence holder is
actively offering services to the public”. A Network Services licensee
(a poker network, say) can run a consumer site and still falls outside
the subset — the filter follows the licence type the Commission names.
For ON, what we read is iGaming Ontario’s operator directory — the public list of the operators the Alcohol and Gaming Commission of Ontario (AGCO) registers; the AGCO’s own list page points at it. Each entry names the operator’s gaming sites, so every operator is in the subset. A site is linked by its host; a host the directory lists under two operators is linked to both, and a look-up names each of them.
For SE, we load two of the licence types in Spelinspektionen’s register —
Kommersiellt online (commercial online gaming) and Kommersiellt vadhållning (betting), the two the register lists web addresses for.
Not loaded: B2B software permits (Spelprogramvara), land-based
casino and card games, state gaming machines, ships, and public-benefit
and state lotteries. Some of those lotteries run websites (bingolotto.se
is one), and /v1/check answers not_found for them: that is a limit of
our coverage, not a finding that the site is unlicensed. The register
lists some addresses with a market section (betsson.com/sv); we link the
host, and keep the address as listed in the licence’s raw_data.
For ES, we load the Dirección General de Ordenación del Juego’s (DGOJ)
state-level online licences: one record per general licence (Apuestas,
Concursos, Otros juegos) of each operator on the DGOJ’s “Operadores con
licencia” list, and the domains its operator page lists (“Lista de
dominios”). Every one can cover a website, so every operator is in the
subset. Not in our data: the state lotteries (SELAE — Loterías y
Apuestas del Estado — and ONCE), which are reserved by law and hold no DGOJ
licence, and land-based and regional gambling, which the autonomous
communities license. /v1/check answers not_found for such a site: a
limit of our coverage, not a finding that the site is unlicensed.
For BE, we load the Belgian Gaming Commission’s (Kansspelcommissie) three
online licence classes, each the online extension of a land licence: A+
(online casino games), B+ (online arcade games) and F1+ (online betting),
read from the Commission’s published lists of active licences. Each row names
the sites it licenses; we link the host, and a site the Commission lists for
two operators is linked to both. Not in our data: the land-based classes
(A, B, C, F2) and the Loterie Nationale. /v1/check answers
not_found for such a site: a limit of our coverage, not a finding that the
site is unlicensed.
For DE, we load the four internet game types the Gemeinsame
Glücksspielbehörde der Länder (GGL) itself permits, from its official
whitelist: Virtuelle Automatenspiele (virtual slots), Online-Poker,
Sportwetten (sports betting) and Pferdewetten im Internet (online horse
betting); a retail-only betting permit is not loaded. The whitelist lists each
permit’s websites, sometimes with a section (pokerstars.de/sports); we link
the host, and keep the listing as printed in the licence’s raw_data. Not in
our data: online casino table games licensed by a Land (Schleswig-Holstein,
Bayern), lotteries (the state DLTB lotteries, lottery brokers, charity
lotteries) and land casinos, though the whitelist names them. /v1/check
answers not_found for such a site: a limit of our coverage, not a finding
that the site is unlicensed.
For CO, we load Coljuegos’ online gaming concessions — juegos novedosos of
the juegos operados por internet kind — from its page of authorised online
operators: one record per concession contract, its license_number Coljuegos’
own contract number (2182, C2261). The page names each operator’s website;
we link the host. Not in our data: land-based gaming (juegos
localizados) and the lotteries. /v1/check answers not_found for such a
site: a limit of our coverage, not a finding that the site is unlicensed.
For UA, we load PlayCity’s online casino, online poker and bookmaking licences
from its register of every licence (a PDF linked from playcity.gov.ua): one
record per issuing decision, license_number our reference (PlayCity prints
none). The register names each licensee’s websites and apps; we link every
website host. Not in our data: land casinos, slot halls, per-machine and
per-table licences, bookmaker shops and the state lotteries. /v1/check
answers not_found for such a site: a limit of our coverage, not a finding
that the site is unlicensed.
Reading the numbers
Section titled “Reading the numbers”For a given jurisdiction, coverage_pct is the most useful single
indicator of “how complete is iGregulator on this regulator?”
relative to what’s recoverable. It’s not the same as “% of all
licensees that have a domain” — that older framing mixed B2B and
consumer-facing operators and obscured the real ceiling.
Two consequences worth flagging:
- A
coverage_pctof 0 means either (a) the upstream regulator doesn’t publish website data at all, or (b) our scraper hasn’t started picking up the field yet. - A
coverage_pctnear 100 means we’re at the upstream ceiling — any remaining gap is operators who haven’t disclosed a domain to the regulator, not a scraper bug.
Regulator-verified domains (Curaçao, Tobique)
Section titled “Regulator-verified domains (Curaçao, Tobique)”Curaçao and Tobique publish no bulk domain list — but both run a
per-domain verification surface of their own: the CGA certificate
portal (cert.cga.cw, including the /token registry that lists each
licence’s complete approved-domain cluster) and the Tobique validation
seal (validate.thetgc.ca). Our coverage for these two jurisdictions
is built directly on those pages:
- Every CW/TGC domain we hold carries the regulator’s own
verification_url— surfaced on/v1/checkso you can confirm the verdict against the primary source yourself. - A nightly re-verification pass re-reads up to 500 stored pages
per jurisdiction, oldest first — every Tobique seal each night, each
Curaçao certificate every 2–3 days — and
moves
domain_statusonly on a clean read of the regulator’s own words — in both directions (active↔delisted), never on a guess. A page we cannot fetch or parse changes nothing. - Weekly discovery finds what’s new: a CGA
/tokenregistry sweep (more complete than the published OGL PDF) and a Tobique headless-render pass over candidate casino sites (the seal is JS-injected in site footers, so a plain fetch can’t see it).
This makes CW/TGC domain rows stronger than a register listing: each one is backed by a regulator page we re-checked within the last three days.
Numbers can shift when methodology changes
Section titled “Numbers can shift when methodology changes”The 1.4.0 changelog (2026-04-28) introduced this metric. Prior
versions reported coverage as total_domains / total_licenses per
jurisdiction, which inflated KH (3+ domains per IGL holder average
made it read 91% even though only 42 of 61 holders had any domain
disclosed) and deflated UKGC (the 17.3% denominator was 2,660 total
ops including 1,594 non-remote licensees, dragging the rate down).
If you compare numbers in a 1.3.x response to numbers in ≥1.4.0,
expect movement. The DB hasn’t changed — only the question we’re
asking it.
Current per-jurisdiction status
Section titled “Current per-jurisdiction status”As of 2026-09-30 (read from
/v1/health/coverage,
where the live numbers always are):
| Jur | coverage_pct |
With domain / normative | Reading |
|---|---|---|---|
| AN | 99% | 1,394 / 1,405 | Near-ceiling — the remaining AN operators chose not to disclose a domain upstream |
| CW | 93% | 566 / 607 | Was 0% until 1.9.0 — built from the CGA’s own verification portal (/token clusters + certificates), ~4,850 domain links, each re-verified against its certificate every 2–3 days |
| MGA | 93% | 106 / 114 | Post-enrichment ceiling (a handful of B2C operators omit the Website Urls section upstream) |
| KH | 73% | 46 / 63 | Matches the upstream ceiling — the missing IGL holders chose not to disclose |
| UKGC | 55% | 520 / 937 | Upstream ceiling — only Remote-license holders in domain-names.csv can be covered |
| TGC | 16% | 28 / 171 | Seal-discovery live (weekly headless-render pass) — growing run by run; the register itself publishes no website column |
| IOM | 88% | 14 / 16 | At the upstream ceiling — the two Full licensees without a domain (PlaySmart IOM, Premier Gateway International) have no website in their register profile. 50 domain links across 27 licensees in all, suppliers included |
| ON | — | — | New on 2026-10-08; the live endpoint has the figures. The directory listed 49 operators and 84 gaming sites on 2026-10-07 |
| SE | — | — | New on 2026-10-08; the live endpoint has the figures. On 2026-10-07 the register held 139 online-gaming and betting licences over 80 holders, listing 197 hosts on 137 of them (two licences list no website) |
| ES | — | — | New on 2026-10-15; the live endpoint has the figures. 78 licensed operators, 135 general licences and 126 .es domains at the first read |
| BE | — | — | New on 2026-10-15; the live endpoint has the figures. 81 licences (A+ 9, B+ 48, F1+ 24) over 76 operators and 79 hosts at the first read |
| DE | — | — | New on 2026-10-15; the live endpoint has the figures. 72 licences over 50 operators and 123 hosts at the first read |
| CO | — | — | New on 2026-10-16; the live endpoint has the figures. 14 concessions over 14 operators and ~15 hosts (all .co / .com.co) at the first read |
| UA | — | — | New on 2026-10-21; the live endpoint has the figures |
Questions about a specific jurisdiction’s upstream behaviour — founder@igregulator.io.