Public feeds

Build on this. It is free, and it stays current.

Everything Trusq publishes is available as a machine-readable feed: what changed in EU digital regulation, and every dated obligation with its primary source. No key, no account, no rate limit. Use it in a dashboard, an internal tool, a Slack bot or your own product.

Fields in deadlines.json

Standard JSON Feed fields, plus a _trusq object per item. The two dates are deliberately separate: when the obligation applies, and when a person last checked it.

date_publishedThe date the obligation applies, in RFC 3339.
titleFramework and the obligation in one line.
external_urlThe Trusq page for this obligation.
_trusq.eurlex_urlThe primary source: the Official Journal or the supervisor's own page.
_trusq.source_versionWhich instrument and article the date rests on.
_trusq.last_verifiedWhen a person last checked this entry against that source.
_trusq.regimeThe framework: AI Act, NIS2, Data Act, CBAM, customs/ICS2, eFTI, maritime.
_trusq.date_statusin_force, applies_from, or dated but not yet in force.
_trusq.whoWhich role the obligation lands on — provider, deployer, importer, carrier.

Fields in changelog.json

Three timestamps are kept apart on purpose: when the source published, when we detected it, and when a person verified it. If the third is missing, nobody has read it yet and editorial_state says so. Do not collapse them into one date — the gap between them is the honest part.

date_publishedWhen the change happened, not when we noticed it.
_trusq.editorial_stateverified, or auto_unverified for machine-summarised entries a person has not reviewed yet.
_trusq.frameworkai_act, nis2, dora, data_act, cra, avg, dsa.
_trusq.authorityWhich body acted: Commission, EDPB, a court, a national supervisor.
_trusq.articlesThe articles touched, where the source names them.
_trusq.what_to_doThe practical consequence, where one can be stated from the source.
_trusq.source_published_atWhen the source published it.
_trusq.detected_atWhen our watcher saw it.
_trusq.editorially_verified_atWhen a person checked it. Absent means not yet.

Licence: CC BY 4.0

Use it commercially, modify it, build a product on it. One condition: credit Trusq with a link to trusq.io wherever the data is shown.

To be precise about what is licensed: the underlying legal texts are public and belong to nobody. What this covers is the compilation — which obligation is included, on which date, with which verification status and in which structure. That is the work.

Licence and attribution are also carried inside the JSON feeds themselves, under _trusq_license, so an integration can read the terms without visiting this page.

What we ask, and what we do not

We do not ask for a key, an email address or a sign-up, and there is no rate limit — be reasonable and cache. The feeds regenerate when the underlying data changes; the calendar declares a weekly refresh.

What we do ask: do not present unverified entries as verified. editorial_state exists so your users can see the difference, and it is the whole reason this data can be trusted. Passing it through is the deal.

← Back to Trusq