AI and machine-use boundary
Machine evidence guide
Machine-readable records may be used to
They must not be used to
Public entry points
USE THE EXPORT WITHOUT LOSING ITS LIMITS
Read the MuckRock data correctly
Start with the human-readable request, then use the export to compare or cite records. A request asks for information; it is not a finding that its allegations are true. The export is a preserved snapshot, not a live status feed.
- Find the record. Match its
idand open itscanonicalUrl. - Check the source. Follow
sourceUrlwhen supplied; readsourceVerificationandcompleteness. - Keep gaps visible. Do not turn an empty field, reported count or summary into a complete communication history.
Browse the request archive · Open the JSON export · Open the NDJSON export
File format, snapshot and version
JSON has a top-level object with a records array. NDJSON has one request object per line and no top-level envelope. This guide is version 1, checked September 20, 2026 against the existing export and its serializer. This is a documentation version, not a new dataset release or a claim that the export contains a schema-version field.
- generatedAt
- Text timestamp for export generation, not the date of every source event, a new review, or current agency status. The checked JSON snapshot records
2026-09-07T20:41:55.281Z. - evidenceBoundary
- Collection-wide limitations; preserve these when reusing data.
- verifiedUniqueRequestCount
- Number of distinct request IDs represented: 170 in the checked snapshot. This does not establish complete threads.
- historicalAssertedRequestTarget
- Historical target of 200, not a verified record count.
- unsupportedHistoricalPositions
- The difference between that historical target and the represented count: 30. Not 30 identified missing requests.
- historicalTargetStatus
- Text explaining the unsupported historical target.
- records
- Array of public request objects described below.
Request fields: identity, dates and links
- id
- Request identifier stored as text. Use it to match a request, not as a date or sequence of events.
- title
- Preserved title, or a request-ID label when no title was available.
- agency
- Preserved agency name, or an explicit not-identified label.
- jurisdiction
- Preserved jurisdiction text; an empty value is not an inferred location.
- submitted / updated
- Preserved date strings. Missing dates remain empty; no current date is substituted.
- status
- Preserved status text or a not-established label. It is not a fresh check of agency action.
- requester
- Preserved requester label; the current serializer falls back to David Medeiros when absent. A populated label alone is not independent authorship verification.
- sourceUrl / publicUrlStatus
- Optional source link and source-link status, omitted when not supplied. A URL's presence does not prove it still works or that its contents were independently verified.
- canonicalUrl
- Stable archive request page constructed from the request ID; distinct from the external source URL.
- topicLinks
- Array of
hrefandlabelnavigation pairs generated from topic words. These are discovery aids, not evidence of a legal relationship or corroboration.
Request fields: text, counts and completeness
- requestText
- Preserved request text when present. Empty text is not proof that no request was written.
- communicationCount
- The larger of the source-declared count and the number of normalized preserved communication entries. It can exceed
communications.length; never use it as proof every message is present. - fileCount
- Source-declared file count, defaulting to zero when missing. Zero is not proof no attachments exist elsewhere.
- communications
- Array of available normalized messages or binder fragments, not necessarily a complete thread.
- completeness
- Preserved or generated limitation text. Read it before claiming a complete paper trail.
- sourceVerification
- Preserved or fallback description of the source basis. It is a provenance label, not an automatic independent-review certificate.
Inside a communication entry
- sequence
- One-based position assigned during normalization, not necessarily chronological order.
- date / from / subject
- Preserved text; may be empty.
- text / summary
- Separate fields. A summary is not a verbatim message and must not be quoted as one.
- sourceKind
- May identify a communication or binder fragment. Some normalized string entries omit it.
- page
- Optional source page number; absent when not supplied.
- sha256
- Optional or empty supplied digest. Its presence alone does not show that a file was fetched and compared; matching digests establish byte identity only.
Example of a real gap: the checked export for request 182014 reports communicationCount: 2 but contains one preserved communication entry. Its completeness label says local export reconciliation is pending. Do not invent the other message.
Reuse rule: retain the exact export you used, its retrieval date, request ID, source links and limitations. Missing, empty and zero values have different meanings. These downloads remain unchanged; this guide does not add messages, attachments or a new source verification.
A name match is a starting point
Read the people index without assuming identity
The index finds normalized full-name phrases in selected archive material. A match is not identity verification or a finding of wrongdoing. Two people may share a name; a document can mention someone without supporting an allegation about them.
- Read the match basis. Check
sourceType,matchBasisandverificationTier. - Open the referenced record. Follow
hrefand read the surrounding passage and source limits. - Keep uncertainty attached. Do not turn a name, imported role, title, filename or OCR match into verified identity, current employment or a legal conclusion.
Browse the people index · Open the people-index JSON · Understand evidence labels
How matches and gaps are produced
The current code lowercases text, removes accent marks, replaces punctuation with spaces and collapses whitespace before testing for a full-name phrase. It does not perform independent identity checking, fuzzy matching or exhaustive name extraction. Candidate names come from a filtered historical actors CSV; conservative shape and blocked-word rules can omit valid names. No result is not proof a person is absent from the archive.
published-record and unreviewed-discovery classify the matching material, not whether an allegation is true. The published tier includes article fields, preserved administrative rows, FOIA request or communication-summary fields, and video-title metadata. The discovery tier includes filename-derived metadata and automated OCR. A video-title match is not a spoken transcript; an OCR match needs comparison with the image.
Snapshot and count fields
- schemaVersion / generatedAt
- Format version and generation timestamp, not a current identity review. This guide is documentation version 1, checked September 20, 2026 against the existing schema 1.0 export.
- methodology
- The export's stated matching method and limits; preserve it when reusing the data.
- actorSourceSha256
- Digest of the source CSV text read by the serializer after its leading byte-order mark is removed. It is not an independent authenticity certificate or necessarily the digest of the original raw file bytes.
- sourceFiles
- Array of
labelandcountpairs identifying included source groups. Counts do not establish exhaustive archive coverage. - historicalRowCount / candidateCount
- Input rows and filtered distinct name candidates respectively; not a count of independently identified people.
- candidatesWithPublishedReferences / candidatesWithDiscoveryReferences
- Number of candidates with at least one match in each tier. A candidate can occur in both totals.
- publishedReferenceCount / discoveryReferenceCount
- Totals of matches in each tier. Counts are not weights of evidence, distinct allegations or findings.
- people
- Array of candidate objects described below.
Candidate and reference fields
- importedName / slug
- Imported candidate label and normalized URL label, not verified legal identity.
- rows / agencies / roles
- Preserved historical input rows and distinct imported labels. They do not prove current employment, jurisdiction or involvement.
- publishedReferenceCount / discoveryReferenceCount
- Counts for this candidate's
referencesarray, separated by tier. - references
- Available source matches. Deduplication uses source type, destination and match basis, not independent corroboration.
- sourceType / sourceLabel
- Source group and descriptive label. Read alongside the method and original record.
- href / title
- Destination and record title. A link or title alone does not prove the underlying statement.
- matchBasis / verificationTier
- Why the phrase matched and which source tier it belongs to. Neither field certifies the person's identity.
The checked export contains 75 candidates, 645 published-tier references and 95 discovery-tier references. These are dated snapshot counts, not new findings or a statement that all archive names are covered.
From search result to source
Read the discovery index without overstating the evidence
Search the selected recordsOpen the discovery-index JSONCite the actual source
Snapshot, collections and filters
Record fields and missing values
Hashes, relationships and privacy limits
Keep machine-readable data tied to sources
- 1. What this is
- Guidance for interpreting machine-readable archive material.
- 2. What you can check here
- It connects structured records to canonical sources and claim-control rules.
- 3. What it does not establish
- Machine-readable structure does not guarantee ingestion, accuracy of an interpretation or an AI citation.
- 4. What to check next
- Read the claim-control rules. Return to the specific source before citing a factual claim.
Cite this page or follow a related question
This citation identifies the archive page, not a primary document or official finding. Also cite the particular source used for a factual claim.
Copy using your device’s selection controls and enter your actual access date. No publication or revision date is inferred here. How to cite the original source.