Docs

Everything you need to ship Article 50 disclosures. Get your keys from a product in your dashboard.

Embedding the widget

Add one script tag to your site. It auto-initialises from data-key(your product's public key) and renders the disclosure notice in an isolated Shadow DOM. It is under 15 KB gzip, has zero dependencies and sets no cookies.

Auto-init

<script src="https://disclosekit.eu/widget/v1.js" data-key="pk_your_key" defer></script>

To place the notice yourself (for example inside a chat widget), use the custom element instead:

Manual placement

<disclosekit-notice data-key="pk_your_key"></disclosekit-notice>
  • Variants: floating badge, top/bottom banner, inline chip, pre-chat notice, configured in the dashboard.
  • Languages: English, German and French, auto-selected from the browser with an English fallback.
  • Accessibility: the notice uses a live status role, supports keyboard dismissal (Esc) and respects prefers-reduced-motion.
  • Impressions: the widget sends a cookie-free beacon that increments an anonymous daily count. No IP is stored.

Machine-readable marking

Article 50(2) asks for AI-generated content to be marked in a machine-readable format. DiscloseKit generates three interoperable signals per content type: HTML metatags, a JSON-LD block, and HTTP header examples. Generate them in the dashboard under a product's Marking tab.

This is a documented convention, not a cryptographic provenance standard. For signed provenance, see C2PA. DiscloseKit does not implement C2PA in this version. The voluntary EU Code of Practice on transparency of AI-generated content describes how to operationalise the duty.

Marking API

On paid plans, each product has a secret API key (sk_…). POST a content type to get the marking snippets back as JSON. Every call is written to your evidence log.

POST /api/v1/mark

curl -X POST https://disclosekit.eu/api/v1/mark \ -H "Authorization: Bearer sk_your_secret_key" \ -H "Content-Type: application/json" \ -d '{"content_type":"image","url":"https://acme.com/asset.png"}'

content_type must be one of text, image, audio, video. Pass an optional url to embed it in the JSON-LD. Responses include metaTags, jsonLd and httpHeader.

Sources

This is compliance tooling, not legal advice. Consult counsel for your specific case.