Data & API

Every score, description, and source on this site is available for research use: as plain files you can load into pandas or R, and as a queryable read-only API covering score history, the sources database, verified policy-initiative records, and per-run provenance. How the scores are constructed is documented in the methodology.

Download the dataset

One HTTP GET each, no key, CDN-served. Each research run commits the files it changes in one commit (runs are weekly, every Monday, from 28 September 2026; monthly before that), and the git history makes any past state retrievable by commit hash.

FileContents
scores.csv 196 countries × five 1–5 dimension scores (quarter-point decimals) and the implementation index (the Average Score column, formerly the maturity index), the mean of the three implementation dimensions to two decimals (e.g. 1.83, 2.92); last-updated date, data version.
regulation_data.csv Per-country prose for the five dimensions, key legislation, source URLs, confidence.
history.json Change-point score snapshots per country; the timeline's raw data.
subscores.json The four named sub-indicators behind each dimension score, each an integer 1–5. Countries researched under methodology v2.1 (late September 2026 on) also carry the one-sentence rationale the model gave for each score, and an evidence record of their latest research pass.
country_iso.json ISO 3166 alpha-2 / alpha-3 / numeric codes for every dataset country name.
gold_set.json Gold sub-indicator scores for ten countries, with justifications, sources and a draft or verified status per country; all ten are drafts awaiting the maintainer's hand-check (see the methodology).
drift.json One row per research run that covers the gold countries: how far the model's raw scores for them sat from the gold scores (mean absolute error per dimension, share within one point, largest deviation).

The read-only API

The database behind the site is publicly queryable through PostgREST. The interactive API reference documents every endpoint, column, and filter (generated from the database schema itself), and runs queries against the live API from the browser.

Open the API reference →

EndpointContents
/public_export The whole dataset flat: countries × scores × summaries, with the sub-indicators, their rationales, and evidence coverage.
/countries Canonical names, ISO codes, and name aliases.
/country_scores Current scores, incl. the sub-indicator breakdown (subscores) and evidence coverage (grounded, initiatives_used, web_search).
/country_summaries Per-dimension prose, key legislation, raw source list.
/score_history Every score a country has ever carried, with dates.
/sources_export The accumulating sources database, with citing countries.
/policy_initiatives Verified policy-initiative records (OECD.AI / GAIIN).
/research_runs Provenance: every research run, its model and prompt version.
/gold_checks The gold-set drift check per run: the queryable twin of drift.json.

From your own scripts, authenticate with the public read-only token, in a header or as an apikey query parameter. Add Accept: text/csv for CSV instead of JSON:

curl "https://wlakioilvvuuizxdhsdf.supabase.co/rest/v1/public_export?select=country,iso3,avg_score&order=avg_score.desc.nullslast&limit=10" \
  -H "apikey: sb_publishable_mANlk3lYBOM8DWDKUjvhRg_yq0TyTEM"

Standard PostgREST filter syntax works everywhere: column=eq.value, gte./lte., order=, limit=/offset=, and embedded joins like countries!inner(name). Responses are capped at 1,000 rows per request; page with limit/offset.

The API is infrastructure for research convenience. For archival reproducibility, cite the static files above or keep a copy of your extract.

Evidence coverage

Since evidence coverage was added (September 2026), every research pass records how it was grounded. In grounded runs the research prompt embeds the country's verified policy initiatives (OECD.AI Policy Navigator / GAIIN records, the ones /policy_initiatives serves), up to 15 of them; a country with none on record is researched with the plain prompt. The record sits beside the sub-scores in subscores.json, under countries.<name>.evidence:

FieldMeaning
grounded true when the prompt embedded at least one verified policy initiative. Always equal to initiatives_used > 0 with null counted as 0, so false when the run did not consult the evidence database.
initiatives_used How many verified policy initiatives the prompt embedded, capped at 15. 0: the run consulted the evidence database and it held none for the country. null: the run did not consult it (not a grounded run).
search true when the model had web search for the country.
model The Claude model id the run researched with.
run_id The run's id; equal to research_runs.id when the run was mirrored to the database.

The record describes the pass behind the entry's text, sources and confidence. It updates on every pass, including one where the stability gate holds the scores back. A country without an evidence key has no run record yet: it was last researched before evidence coverage was recorded (September 2026).

In the API, /country_scores and /public_export carry the record as three columns: grounded, initiatives_used and web_search (the file's search), all null for a country with no run record. The model is research_runs.model, reached through country_scores.run_id. In the app, a country entry with a record states it in one sentence under its confidence line, such as "Grounded in 7 verified policy initiatives and web search" or "Web search only; no verified initiatives on record", and the filter's Evidence facet narrows the map to grounded or search-only countries.

Recipes

Worked queries that answer real research questions. Open runs the query live in a new tab; the path works as-is in the reference, curl, or your own code.

Germany's full score history Open ↗ /score_history?select=snapshot_date,scores,countries!inner(name)&countries.name=eq.Germany&order=snapshot_date
Binding initiatives since 2024, most recent first Open ↗ /policy_initiatives?select=name,start_year,source_url,countries(name)&binding=eq.Binding&start_year=gte.2024&order=start_year.desc
High-confidence countries by implementation index Open ↗ /public_export?select=country,iso3,avg_score&confidence=eq.high&order=avg_score.desc&limit=25
Which countries cite the EU AI Act (EUR-Lex)? Open ↗ /sources_export?select=url,countries&url=like.*eur-lex*

Attribution & citation

Policy-initiative records include data from the OECD.AI Policy Observatory (Policy Navigator / GAIIN): OECD.AI Policy Observatory, oecd.ai, accessed on the date shown per record.

To cite the map itself, use the Share button in the app for a formatted APA/Chicago/MLA citation of the exact view you're referencing. Scores are model-assigned; the methodology and the research_runs endpoint record how each one was produced. Cite them as estimates, and verify claims against the primary sources each entry links.