The AI disclosure file

A website can tell a person that AI is answering. It has no agreed way to tell software. This is a small, open proposal for one: a JSON file at a fixed address that says where AI meets people on a website and who runs it. Version 0.1, a draft, open for comment.

Why a file

More and more of a website's visitors are software: search crawlers, browsing agents acting for a person, monitoring tools, a regulator's script. None of them can read a notice drawn on screen beside a chat. As of November 2026 we found no adopted standard for this. Related drafts exist for other jobs: an IETF draft header describes AI-generated content in a response, and the IETF's Web Bot Auth work lets an agent sign its requests. Neither lets a website say “an AI system answers here”.

The file

Serve it at /.well-known/ai-disclosure.json as application/json. A redirect to a file hosted elsewhere is fine.

{
  "version": "0.1",
  "operator": { "name": "Acme Dental", "url": "https://acmedental.example" },
  "ai_systems": [
    {
      "type": "chat",
      "where": "https://acmedental.example/",
      "discloses": "at_start",
      "answers_when_asked": true,
      "human_contact": "mailto:frontdesk@acmedental.example"
    },
    { "type": "voice", "discloses": "at_start", "answers_when_asked": true, "human_contact": "tel:+15551234567" }
  ],
  "statement": "https://acmedental.example/ai",
  "updated": "2026-11-10",
  "attestations": [
    { "by": "https://botnotice.app", "type": "jws", "value": "eyJhbGciOiJFZERTQSIs...", "keys": "https://botnotice.app/.well-known/jwks.json" }
  ]
}
FieldMeaning
versionThe version of this format. Required.
operatorWho runs the AI systems: a name, and optionally a URL. Required.
ai_systemsOne entry for each place AI meets a person. An empty list says the operator uses no AI with the public. Required.
ai_systems[].typechat, voice, content (AI-generated images, video or text) or agent (software that acts for the operator on other systems).
ai_systems[].disclosesWhen a person is told: at_start, on_request, or labelled for content.
ai_systems[].answers_when_askedThe system says it is AI when a person asks.
ai_systems[].human_contactHow to reach a person: a URL, or a mailto: or tel: address.
statementA page written for people that explains the operator's use of AI.
updatedThe date the file was last changed. Required.
attestationsSigned statements by outside parties about the file's claims. Each names who signed it, carries a JWS, and says where the signer's public keys are published.

The full schema is at /standards/ai-disclosure-file/schema.json.

Pointing to the file

Software that already has a page can find the file from it. Either of these works:

<link rel="ai-disclosure" href="/.well-known/ai-disclosure.json">

Link: </.well-known/ai-disclosure.json>; rel="ai-disclosure"

What a reader should and should not conclude

  • The file is the operator's own statement. On its own it proves nothing about what a visitor saw.
  • An attestation is only as good as its signer and its date. A reader should check the signature against the signer's published keys, check that it names this website, and ignore one that has run out.
  • A missing file means nothing. Most websites that use AI will not have one.
  • Whether telling a person's software satisfies a law written about telling a person is an open legal question. The file is in addition to a notice a person can see, never instead of one.

How BotNotice uses it

BotNotice hosts this file for each customer and adds one attestation: a statement, signed with BotNotice's key, of what its last check of that website verified and on what date. The statement runs out after seven days, so a copied file cannot keep claiming a check that stopped. The free scan reads the file on any website it scans and says so when it finds one.

Licence and comments

This proposal is dedicated to the public domain (CC0 1.0). Anyone may use it, change it or build on it without asking. Comments and objections are welcome at john@botnotice.app. If a standards group takes up the same job, this format will follow it. See also how BotNotice's records can be checked from outside.

The AI disclosure file: a proposal · BotNotice