Drop in a tiny script and ship EU AI Act Article 50 transparency — automatic disclosures plus a tamper-evident audit log. No compliance expertise required.
The EU AI Act’s Article 50 requires that any AI which interacts with people in the EU must tell users they’re dealing with AI, label AI-generated content, and keep evidence it did so. Disclos handles all three:
Drop-in components render the required notices in 24 languages, automatically.
Every disclosure & AI interaction is recorded in a cryptographic, tamper-evident chain.
Generate regulator-ready Article 50 documents and export signed audit bundles.
You need two values from your dashboard. Both take a minute to create:
aiSystemId.dsc_live_… key. It’s shown once — store it as an environment variable.Pick your stack. The SDK is ~6 KB gzipped with zero dependencies, and init() is non-blocking — it never slows your page down.
1style=style="color:#fbbf24">"color:#64748b"><!-- 1 · Load the SDK (≈6 KB, zero deps) -->2<style="color:#60a5fa">script src=style="color:#fbbf24">"https:style="color:#64748bstyle="color:#fbbf24">">//cdn.disclos.dev/v1/sdk.js"></style="color:#60a5fa">script>3 4style=style="color:#fbbf24">"color:#64748b"><!-- 2 · Initialise with your dashboard keys -->5<style="color:#60a5fa">script>6 Disclos.init({7 apiKey: style="color:#fbbf24">'dsc_live_xxxxxxxxxxxx',8 aiSystemId: style="color:#fbbf24">'a1b2c3d4-0000-0000-0000-000000000000',9 });10</style="color:#60a5fa">script>Place these wherever AI appears. They render the legally-required text, adapt to the user’s language, and fire a disclosure_shown event the moment they’re actually visible on screen.
1style=style="color:#fbbf24">"color:#64748b"><!-- style="color:#fbbf24">"You're chatting with an AI" banner — Art. 50(1) -->2<style="color:#60a5fa">disclos-chatbot-banner system-name=style="color:#fbbf24">"Aria" operator-name=style="color:#fbbf24">"Acme Corp"></style="color:#60a5fa">disclos-chatbot-banner>3 4style=style="color:#fbbf24">"color:#64748b"><!-- AI-generated content label — Art. 50(2) -->5<style="color:#60a5fa">disclos-content-label kind=style="color:#fbbf24">"image"></style="color:#60a5fa">disclos-content-label>6 7style=style="color:#fbbf24">"color:#64748b"><!-- Synthetic media / deepfake marker — Art. 50(3) -->8<style="color:#60a5fa">disclos-deepfake-marker></style="color:#60a5fa">disclos-deepfake-marker>| Component | Key props | Article |
|---|---|---|
| <disclos-chatbot-banner> | system-name, operator-name | 50(1) |
| <disclos-content-label> | kind = text · image · audio · video | 50(2) |
| <disclos-deepfake-marker> | — | 50(3) |
The banners log themselves. To record every model call (recommended for a complete audit trail), call log() wherever your AI produces a response:
1style="color:#c084fc">import { log } style="color:#c084fc">from style="color:#fbbf24">'@disclos/sdk-web';2style=style="color:#fbbf24">"color:#64748b">// (or Disclos.log(...) when using the CDN build)3 4style=style="color:#fbbf24">"color:#64748b">// Call this whenever your model produces a response5log({6 type: style="color:#fbbf24">'ai_interaction',7 metadata: { model: style="color:#fbbf24">'gpt-4o', latency_ms: 312, eu_user: true },8});Back in the dashboard, with events flowing, you can:
During the private beta the public CDN and package registry aren’t live yet, and the default ingestion endpoint activates when our custom domain goes live. If you’re an early tester, point the SDK at your beta ingestion URL with the endpoint option — we’ll send it to you:
1Disclos.init({2 apiKey: style="color:#fbbf24">'dsc_live_xxxxxxxxxxxx',3 aiSystemId: style="color:#fbbf24">'a1b2c3d4-...',4 style=style="color:#fbbf24">"color:#64748b">// Private-beta only — your dedicated ingestion URL:5 endpoint: style="color:#fbbf24">'https:style="color:#64748b">//disclos-ingest.<style="color:#60a5fa">your-subdomain>.workers.dev',6});The visible disclosure components work today with no endpoint at all — they render from bundled defaults. Live audit-log capture switches on the moment the domain is connected.
Create your account and grab your keys — the free private beta is on us.