Check an AI disclosure
Hash the file you were given and read the signed model and publisher fields on its asset page.
Who this is for
Compliance tools, journalists, editors and due-diligence agents reviewing a vendor or a deal.
The problem
AI disclosures are usually a sentence in a footer that anyone can add or remove. A record is a signed statement, fixed in time, of which model the publisher says it used and who stood behind the file.
How it works
- Hash the exact file you received and look it up.
- Read the record's
model,creatorandedited_byfields and the publisher's key. - Check the verdict, the publisher's verified identities, and the same-operator label.
- Export a bundle if you need to show the check to someone else.
Routes it uses
GET /v1/model/assess?asset={sha256}: rely, check or do_not_rely for the newest record about a file, with the reasons.GET /r/{digest}?format=json: one record: publisher, key, model, log position and verdict.GET /v1/keys/{publisher}: the publisher's keys, with when each was active or revoked.POST /v1/export: an offline bundle with proofs and timestamps for up to 100 records.
Set it up
Step 1. Hash the file
Hash the file exactly as you received it. People can drop it on /lookup, which hashes it in the browser and uploads nothing.
Check: The hash matches the asset digest on the record.
Step 2. Get the verdict and record
Assess the hash, then read the record it names.
curl -s -H 'Accept: application/json' 'https://aisourceoftruth.com/v1/model/assess?asset={sha256}'
Check: The answer names a record and a verdict.
Step 3. Read the disclosure fields
model is the publisher's statement of the model used. edited_by lists the people or desks who edited it. same_operator: true means the publisher and the registry share an operator, so weigh the record as first-party.
curl -s -H 'Accept: application/json' 'https://aisourceoftruth.com/r/{digest}?format=json'
Check: The report quotes the fields exactly as signed.
Step 4. Check the signer
Confirm the signing key was active when the record was signed, and look for verified identities such as a domain.
curl -s -H 'Accept: application/json' 'https://aisourceoftruth.com/v1/keys/{publisher}'
Check: The key appears as active at the record's signing time.
Step 5. Keep the evidence
Export a bundle so a reviewer can check the same answer offline with verify.mjs.
curl -s -X POST 'https://aisourceoftruth.com/v1/export' \
-H 'Content-Type: application/json' \
--data '{"digests":["{digest}"]}'
Check: node verify.mjs bundle.json passes on the exported bundle.
Wire it into your agent
Call it from the review step that reads an incoming file, before the agent writes its finding. Quote the signed fields; never paraphrase them into a stronger claim.
MCP: add https://aisourceoftruth.com/mcp to the agent's MCP servers. Tools used: lookup, resolve_record, get_keys, export_bundle. Read tools need no token.
With the PromptReports products, or alone
- CommitOps: When a vendor promises AI disclosure in a contract, track the promise in CommitOps and link the records that show it was kept.
- Alone: every step above uses only AI Source of Truth.
Expected outcomes
- A disclosure finding cites a record digest instead of a screenshot.
- Reviewers can rerun the check offline from the exported bundle.
What it does not prove
- A record shows what the publisher stated about the model. It cannot show that no other tool was used.
- No record is not proof of human authorship. It means nobody published a record.
The OpenSpec plan for your agent
Your coding agent fetches the plan and writes it into your repo as openspec/changes/integrate-aisot-disclosure-check/:
curl -H 'Accept: application/json' 'https://aisourceoftruth.com/use-cases/check-ai-disclosure/openspec?lang=python&with=commitops'
proposal.md: why, what changes in your product, impact.design.md: where the calls sit in your agent, with code for each call.tasks.md: checkable tasks, each step paired with a check against the live registry.specs/ai-disclosure-check/spec.md: the requirements and scenarios.
Read it here: OpenSpec plan. Back to all use cases or the documentation library.