Skip to main content

Take it, it is yours

The data

The whole enforcement dataset, 18 records, downloadable as JSON or CSV and subscribable as an Atom feed. No key, no sign up, no rate limit. Licensed CC BY 4.0, so the only condition is that you credit GAGE with a link.

Endpoints

Three ways to take it

  • tracker.json

    application/json

    The complete dataset: metadata block plus every record with every field. This is the same file the site renders from, so it can never disagree with the pages.

  • tracker.csv

    text/csv

    One row per action, flattened for a spreadsheet or a stats package. Array fields are joined with a pipe. UTF-8 with a header row.

  • feed.xml

    application/atom+xml

    Atom feed of new and updated records, newest first. Point a reader or a bot at it and you find out about a new enforcement action without checking.

The authority register and the changelog are published the same way, as authorities.json and changelog.json.

Schema

Every field, and what it means

Field reference for the enforcement tracker dataset.
FieldTypeMeaning
idstringPermanent record identifier, AIT-{year}-{sequence}. Never changes, never reused.
slugstringURL slug. The page lives at /actions/{id}-{slug}.
titlestringOne sentence naming the authority, the target and the outcome.
statusenumconfirmed, announced, under_appeal, annulled, settled or incomplete.
action_typeenumfine, corrective_order, warning, investigation, rfi, interim_measure, ban, deletion_order, structured_dialogue, commitment, complaint or other.
regimestring[]AI_ACT, GDPR, DSA, DMA or NATIONAL_AI_LAW. An action can sit under more than one.
ai_act_relevanceenumdirect for an AI Act action, adjacent for another regime against an AI system, context for a complaint or regulator position.
provisionsobject[]instrument, article and role (cited, violated or adjacent). This is the field that links the record into the EU AI Act Explorer graph.
authority_idstringKey into authorities.json.
targetobjectname, sector and hq_country of the organisation the action was taken against.
ai_systemstringThe system or model the action concerns.
date_announceddateISO date. Always present.
date_decisiondate or nullISO date the decision was adopted, where it differs from the announcement.
fine_amount_eurnumber or nullAmount in euro, null where no penalty was imposed. Never adjusted for inflation.
fine_originalobject or nullAmount and currency as issued, for actions not denominated in euro.
corrective_measuresstring[]What the authority ordered, in its own terms.
summarystringNeutral prose summary, 150 to 300 words.
key_factsstring[]The extractable facts, one per line.
timelineobject[]Append only. date and event. Appeals, suspensions and annulments are added here rather than overwriting history.
appealobjectstatus and notes. Populated on every record, including where the status is none.
sourcesobject[]name, url, type (primary or secondary) and date. At least one per record.
related_idsstring[]Editorially chosen related records.
date_addeddateWhen the record first appeared on the tracker.
last_verifieddateStamped on every record at every Monday pass, whether or not anything changed.
last_modifieddateChanges only when the record itself changes. This is what drives sitemap lastmod.

Using it well

Four things to know before you compute on this

Filter by status before you sum. Summing fine_amount_eur across every record produces a number that includes an amount a court annulled. Filter to status equals confirmed for a headline total, and report under appeal separately.

Exclude context records from action counts. ai_act_relevance equals context marks complaints and regulator positions, which are on the tracker for background and are not enforcement.

Sub paragraph citations fold onto their article. A provision entry of 5(1)(f) belongs to Article 5. If you are grouping by article, take the leading digits.

Counts are a floor. Read the method page before you publish a conclusion drawn from this data. It states what the numbers do not claim, and that section exists because a truncated slice reported as a total is the easiest mistake in this field to make.

Cite this page

Free to reuse under CC BY 4.0, with attribution.

In a sentence
According to the GAGE EU AI Act Enforcement Tracker (as of 20 August 2026), eu ai act enforcement data.
APA
GAGE (Global Academy of Generative-AI Education). (2026). EU AI Act enforcement data. EU AI Act Enforcement Tracker. Retrieved 20 August 2026, from https://www.gage.academy/tools/eu-ai-act-enforcement-tracker/data
MLA
"EU AI Act enforcement data." EU AI Act Enforcement Tracker, GAGE (Global Academy of Generative-AI Education), 20 August 2026, https://www.gage.academy/tools/eu-ai-act-enforcement-tracker/data.
Chicago
GAGE (Global Academy of Generative-AI Education). "EU AI Act enforcement data." EU AI Act Enforcement Tracker. Last modified 20 August 2026. https://www.gage.academy/tools/eu-ai-act-enforcement-tracker/data.
Permalink
https://www.gage.academy/tools/eu-ai-act-enforcement-tracker/data

Last updated . Every record re verified . The tracker is checked every Monday, and the same day for any action under the AI Act.

Dataset build 20 August 2026. Every record is verified against a named source. Counts are a floor, not a ceiling: authorities publish on their own timetable and some decisions are never announced.