Skip to content

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, _meta provenance, and machine-readable resources (llms.txt, OpenAPI) for LLM integrations.

  • Verify a domain — hit GET /v1/check?domain=X and get a verdict (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_url links 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/operators for every operator that has held a licence in that jurisdiction, whatever its status — the list has no status field, so check each operator’s licence status via GET /v1/operators/:slug; only active is licensed now.
  • Track regulatory actions — enforcement decisions (fines, warnings, licence revocations) surface via GET /v1/operators/:slug/regulatory-actions.

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.

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.
  1. Getting started — first curl call in under a minute.
  2. Authentication — when you graduate from the public 10 req/hr limit.
  3. Confidence scoring — how the /v1/check endpoint picks between high, medium, and low.
  4. API playground — try any endpoint interactively.
  5. Full endpoint reference — detailed schemas for every route.