Detector registry

Do I Need an AI Disclosure on My App or Site?

Find out when AI chat needs a disclosure and how a scanner detects whether your page already tells users they're talking to AI.

Updated 2026-06-19do I need an AI disclosure on my appSignals, not a verdict

If your app or website lets people chat with an AI, a chatbot, a "companion," or any generated-response assistant, users are increasingly expected to be told that the thing answering them is not human. That expectation shows up in three places that matter to an indie launcher at once: EU rules, a California law aimed at companion bots, and Apple's review process. A missing AI disclosure is a common, avoidable reason a launch stalls.

What LaunchTrust checks

The ai_disclosure detector is a positive signal: a disclosure is something you want present, so "detected" is the good outcome and "not detected" is the gap. It fetches your public web page and inspects the returned HTML — what an anonymous visitor's browser receives, nothing behind a login. It looks for two kinds of evidence, in order, and reports one outcome:

  • Detected (info) — a disclosure snippet: a <script src="…disclose.js"> tag (a badge loader). The note says whether the data-disclose attribute sits on that same script tag.
  • Detected (low) — no snippet, but generic, disclosure-directed wording was found, such as "you're chatting with an AI" or "responses are AI-generated" (lower confidence, since it isn't the dedicated badge).
  • Not detected (medium) — neither a snippet nor disclosure wording was found on the fetched page.
  • Unable — the page couldn't be fetched (no response or a fetch error), so the scanner can't say either way.

One deliberate limitation: bare marketing labels like "Chat with AI" or "AI-powered" do not count. They describe a feature; they don't tell a user, in the moment, that they're talking to a machine. Counting them would falsely mark a marketing page as disclosed and hide a real gap.

Why it matters

LaunchTrust tags this detector with three rules:

  • EU AI Act, Article 50. Transparency obligations commonly require that people interacting with an AI system are informed they're dealing with AI, unless it's already obvious. If you have EU users, a plain interaction notice is often expected. See the Article 50 checklist and European Union overview.
  • California SB 243 (companion chatbots). This law targets "companion" chatbots with a clear-disclosure expectation, so users know they're talking to AI, not a person. If your app is a companion or character chat, see the SB 243 checklist.
  • Apple App Review Guideline 5.1.2. Reviewers increasingly expect AI features to be transparent; a visible disclosure reduces the chance of a transparency-related rejection.

None of these are satisfied by the scanner — it tells you whether the signal is present, not whether your product or wording meets a given law.

A concrete example

A "detected (info)" result is a badge loader with data-disclose on the same tag:

<script src="https://cdn.example.com/disclose.js" data-disclose></script>

A "detected (low)" result is plain text near a chat interface, such as "You're chatting with an AI. Responses are AI-generated and may be inaccurate."

How to address it

  1. Put it where the user interacts with AI — the chat screen or assistant panel, not buried only in your terms.
  2. Add a short, plain-language notice, such as "You're chatting with an AI — responses are AI-generated and may be inaccurate." This disclosure-directed wording is what the scanner and a reviewer recognize.
  3. Or install a dedicated snippet, placing the <script src="…disclose.js" data-disclose> tag with the attribute and source together.
  4. Make it visible to logged-out and first-time users, since that's what an anonymous fetch sees first.
  5. Pair it with your privacy policy and terms of service for the full picture, then re-scan to confirm the signal flipped to detected.

Check this in 30 seconds

Run your URL through LaunchTrust's free scanner. It fetches your live page and reports whether a disclosure is detected, not detected, or unable to determine — alongside your privacy policy, terms, and other signals.

FAQ

Do I need an AI disclosure if my app uses AI? Often, yes — when users interact with AI (chat, companion, assistant) it's commonly expected that they're told, especially for conversational experiences and where EU or California users are involved. Whether it applies to your exact product is a legal judgment, not a scan result.

Does a "detected" result mean my app meets the law? No. "Detected" means the scanner found a disclosure snippet or disclosure-directed wording on the page. It doesn't confirm the notice is worded, placed, or sufficient for any specific law. It surfaces a signal — it is not legal advice or certification.

Why did my page come back "not detected" when my homepage says "AI-powered chat"? By design. Labels like "AI-powered" or "Chat with AI" describe a feature but don't tell a user, in the moment, that they're talking to a machine. The detector ignores them so a real gap isn't hidden behind a slogan.

What does "unable" mean here? The scanner couldn't fetch the page (no response or a fetch error). Check that the URL is public and reachable, then re-scan.

Compliance aid, not legal advice. LaunchTrust reports signals, not a verdict or certification.