NewsRaised $2.6M to accelerate trust infrastructureBook a demo

Genuine PDF Corpus (PDF-Forensics)

Original PDFs for document-forensics research.

v1.3.1 · · Scam AI

PDFs
82,955
Uncompressed
51.0 GB
PDF parts
6

The original pages

Two legislation PDFs, selected and checked by an AI agent. Illustrative, not a representative sample. Personal financial and court records are not previewed.

What is in the corpus

56 source groups across 14 jurisdictions. Document-type, format and language labels are machine-assigned or supplied by the source. No edited or synthetic documents.

Document types

82,955 shipped files

Legislation and gazettes30,331
Other (recorded category)15,116
Enforcement orders8,570
Audit reports8,113
Court filings6,208
Annual reports5,412
Call reports3,956
Bank statements1,961
Court opinions1,824
Contracts927
6 remaining categories537

“Other” is a recorded category. “Not recorded” means the document-type field is missing. This is separate from the chart’s grouped remaining categories.

All 16 categories
Document types · 82,955 files
CategoryFilesShare
Legislation and gazettes30,33136.56%
Other (recorded category)15,11618.22%
Enforcement orders8,57010.33%
Audit reports8,1139.78%
Court filings6,2087.48%
Annual reports5,4126.52%
Call reports3,9564.77%
Bank statements1,9612.36%
Court opinions1,8242.20%
Contracts9271.12%
Invoices2870.35%
Loan disclosures2080.25%
Not recorded340.04%
Pay stubs4<0.01%
Other tax forms3<0.01%
Utility bills1<0.01%
Total82,955100.00%

PDF formats

82,955 shipped files

Native70,430
Signed native10,733
Scan with OCR1,278
Image-only scan298
Unknown216

Formats describe the source PDF, not its authenticity. “Unknown” remains a recorded category.

All 5 categories
PDF formats · 82,955 files
CategoryFilesShare
Native70,43084.90%
Signed native10,73312.94%
Scan with OCR1,2781.54%
Image-only scan2980.36%
Unknown2160.26%
Total82,955100.00%

Languages

82,955 shipped files

English55,305
Portuguese5,862
Undetermined5,162
French3,190
German2,127
English and French (bilingual)1,362
Spanish1,222
Danish1,203
Japanese779
Dutch692
30 remaining categories6,051

“Undetermined” means the language was not identified. English and French (bilingual) records are Canada’s federal laws printed in both languages.

All 40 categories
Languages · 82,955 files
CategoryFilesShare
English55,30566.67%
Portuguese5,8627.07%
Undetermined5,1626.22%
French3,1903.85%
German2,1272.56%
English and French (bilingual)1,3621.64%
Spanish1,2221.47%
Danish1,2031.45%
Japanese7790.94%
Dutch6920.83%
Latvian4160.50%
Slovenian4160.50%
Estonian4150.50%
Finnish4150.50%
Maltese4150.50%
Lithuanian4130.50%
Greek4120.50%
Croatian4100.49%
Irish4090.49%
Bulgarian4040.49%
Slovak4040.49%
Polish2380.29%
Italian2370.29%
Czech2320.28%
Swedish2310.28%
Romanian2300.28%
Hungarian2290.28%
Chinese440.05%
Norwegian360.04%
Swahili270.03%
Lao4<0.01%
Armenian3<0.01%
Amharic2<0.01%
Arabic2<0.01%
Haitian Creole2<0.01%
Azerbaijani1<0.01%
Indonesian1<0.01%
Korean1<0.01%
Tagalog1<0.01%
Vietnamese1<0.01%
Total82,955100.00%

A screened collection of originals

Study coverage, compare other detectors and follow each file back to its source. Keep the selection process in view.

Selection and provenance

Source files were deduplicated by SHA-256, checked against source-licence and privacy rules, and kept as original PDF bytes. Employee and customer-provided files are excluded.

Of 95,245 candidate originals, 82,955 were retained after Trustable engine 0.18.0 read them CLEAN in scans on 31 October and 1 November 2026. The other 12,290 were withheld: flagged or inconclusive files, unfinished scans, and internal evaluation holdouts.

Each record provides its SHA-256, byte count, package path, provenance, source URL where recorded, document labels and licence information. There is no edited-pair or edit-operation catalogue.

Evaluation limits

The release includes 81,163 born-digital PDFs, including 10,733 with digital signatures, 1,576 scans and 216 with unknown format. Source and format imbalance can affect alert rates.

The CLEAN selection favours files that engine finds unambiguous. It cannot measure that engine’s false-positive rate. There are no edited positive examples, so it cannot alone measure forgery-detection recall, overall accuracy or performance on benign editing.

Labels have no independent human validation. “Genuine” means a collected original with no recorded edit; it does not certify the issuer or contents. A CLEAN reading is not proof of authenticity.

Report input counts, completed checks, unsupported inputs and failures separately. Review alerts and establish independent ground truth before calling an alert rate a false-positive rate.

Download and verify

In Marketplace, open Genuine PDF Corpus (PDF-Forensics), press Download and choose the parts you need. Read the metadata before downloading the PDF archives.

6 PDF archives + metadata

The six independent part-NNNNN.tar.zst archives are storage groups, not train/test splits. Do not concatenate them. They expand under files/.

Release files and contents
FileContents
archives.jsonPart names, compressed sizes, PDF counts and SHA-256 values.
ARCHIVE_SHA256SUMSChecksums for all six PDF parts and the metadata archive.
metadata.tar.zstfiles.jsonl, its CSV mirror, the data card, download guide, summary, changelog, citation, licences, attribution and per-part manifests.

Start with DATASET_CARD.md, DOWNLOADS.md, LICENSES.md, ATTRIBUTION.md, summary.json and licences/. For partial downloads, verify only the matching checksum lines.

Sign in to access

Verify archives and extract a part

# GNU tar, sha256sum and zstd; run beside the downloads.
# This checks every archive listed; missing files fail verification.
sha256sum -c ARCHIVE_SHA256SUMS

mkdir dataset
tar --zstd --extract --file metadata.tar.zst --directory dataset --no-same-owner
tar --zstd --extract --file part-00000.tar.zst --directory dataset --no-same-owner

Check the extracted bytes

cd dataset
sha256sum -c SHA256SUMS

# Python 3: verify the PDF bytes in one extracted part.
python3 -c 'import json, sys
for line in open(sys.argv[1]):
    r = json.loads(line)
    print(r["sha256"] + "  " + r["path"])' parts/part-00000.jsonl |
  sha256sum -c --quiet
Source licences, privacy and takedown

Licences stay with each file

The release has 33 licence records: 49,246 files under redistribution-permitting licences, 26,914 requiring attribution and 6,795 public court records with no licence statement found, shipped under the publisher’s public-record rule. There is no blanket licence.

Check each file’s record, LICENSES.md, ATTRIBUTION.md and licences/. Preserve notices and required credit; public availability does not grant every use.

Public does not mean de-identified

The existing screen checks for Social Security numbers and full account numbers. It does not remove names or home addresses. Do not target or profile people named in public records or misrepresent a research copy as an issuer’s authenticated document.

For rights or privacy concerns, contact the dataset support team with the file’s SHA-256 or release path.

Cite this release

Scam AI. Genuine PDF Corpus (PDF-Forensics). Version 1.3.1, 2026.

Original release

BibTeX

@misc{scamai-pdf-forensics-genuine,
  author = {{Scam AI}},
  title = {{Genuine PDF Corpus (PDF-Forensics)}},
  year = {2026},
  version = {1.3.1},
  howpublished = {\url{https://scam.ai/research/datasets/pdf-forensics-genuine}},
  note = {Dataset, version 1.3.1, dated 2026-11-03}
}