CFI.co archive-data — verification endpoint

This directory serves the downloadable artefacts behind the verification claims on cfi.co/ai/ and cfi.co/archive/: GPG-signed attestations for the CFI.co transparency archives, and daily JSONL exports of the full corpora. The canonical, append-only archives live on GitHub: cfi-co/articles and cfi-co/awards.

Files

FileWhat it isRefresh
attestation-articles-2026-07-22.txt
.asc (detached GPG signature)
Signed attestation fixing the SHA-256 of the articles archive manifest at release archive-2026-07-schema-2.4 (2,779 records, 2011–2026) Static (dated)
attestation-awards-2026-07-22.txt
.asc (detached GPG signature)
Same, for the awards archive Static (dated)
articles.jsonlFull articles corpus, one JSON record per line (schema v2.4)Daily, ~05:30 UTC
articles.schema.jsonJSON Schema for the articles recordsWith schema releases
awards.jsonlFull awards corpus, one JSON record per line (schema v2.4)Daily, ~05:30 UTC
awards.schema.jsonJSON Schema for the awards recordsWith schema releases
articles-index.jsonl Catalogue of the articles corpus — one line per record with id, url, labels, file paths and both hashes. Carries independence_basis (assessed or default_pre_2025-11-09), which states whether a record’s independence label was assessed or inherited. Prefer this to articles.jsonl for enumeration: it is ~2 MB rather than ~40 MB. Daily, ~05:45 UTC
awards-index.jsonl The same catalogue for the awards corpus Daily, ~05:45 UTC
articles/ Fetch one article record by id, without needing CFI’s year/slug path convention: articles/cfi-article-{id}.json Daily, ~05:45 UTC
awards/ The same for award announcements: awards/cfi-award-{id}.json Daily, ~05:45 UTC
by-hash/ Fetch the record carrying a given hash: by-hash/{sha256}.json. Accepts either content_sha256 or record_sha256, so a verifier that has checked either one can find the record it belongs to. Daily, ~05:45 UTC
ai-evidence.json Machine-readable index of the AI Evidence Library — dated records of how AI systems select and cite CFI.co content. Only cases with status: published make an evidentiary claim; pending cases are listed as placeholders with the subject withheld. Daily, ~04:45 UTC
governance/ The adopted governance file, its Markdown rendering, a principal’s signed agreement, and the manifest with its OpenTimestamps proof and GPG signature. Listed and hashed at cfi.co/governance/. With governance releases
manifest.jsonMachine-readable index of this directoryWith this page

How to verify

Signing key: CFI.co Transparency Archive <[email protected]>, fingerprint B497 BDC1 9FCD 4879 72D5 D2B0 876F F2AA 3913 3BF8 (SIGNING-KEY.asc in each repository root).

gpg --import SIGNING-KEY.asc
gpg --verify attestation-articles-2026-07-22.txt.asc attestation-articles-2026-07-22.txt

git clone https://github.com/cfi-co/articles.git
cd articles && ./scripts/verify.sh

To check a single record without cloning anything — content hashes need no PHP and no special tooling:

curl -s https://cfi.co/archive-data/articles/cfi-article-28811.json \
  | python3 -c 'import json,sys,hashlib; r=json.load(sys.stdin); \
print(hashlib.sha256(r["content_html"].encode()).hexdigest() == r["content_sha256"])'

record_sha256 covers the whole record; verify it from any language with scripts/verify-record.py in either repository (Python standard library only).

Versioned dataset releases with signed manifests: articles releases · awards releases. Mirrors: Hugging Face articles · awards (GitHub is canonical).