OPEN RESEARCH UTILITY

Bulk Data Downloads & Developer Hub

All records in the Cyberattack Case Library are committed as open, machine-readable datasets. Download complete datasets in industry-standard formats for academic research, threat intelligence modeling, or compliance auditing.

Licence: Public Domain / CC0
Build Export: September 24, 2026 at 17:02 UTC
Formats: JSON · STIX 2.1 · CSV · SQLite
JSON 158 KB

Full Cases Archive (JSON)

Complete hierarchical archive of all 46 landmark cases, techniques, defendants, and legal citations.

cyberattack-cases.json Download File
STIX 2.1 51 KB

OASIS STIX 2.1 Threat Intelligence Bundle

Compliant STIX 2.1 bundle ready for direct ingestion into OpenCTI, MISP, and enterprise SIEM platforms.

cyberattack-cases.stix2.json Download File
CSV 18 KB

Spreadsheet Catalog (CSV)

Tabular format for Excel, Google Sheets, or pandas with docket numbers, court, loss, status, and actors.

cyberattack-cases.csv Download File
SQLite 76 KB

Offline Research Database (SQLite)

Pre-packaged relational SQLite database file for local querying, data science, and offline auditing.

cyberattack-cases.sqlite Download File
JSON 68 KB

Known Exploited Vulnerabilities (CVE) Index

Index of active CVEs linked to federal criminal proceedings with CISA KEV dates and CVSS scores.

cyberattack-cves.json Download File
JSON 7.3 KB

Ransom Demands & Crypto Recovery Dataset

Financial intelligence dataset documenting demands, corporate payments, and federal forfeiture seizures.

cyberattack-ransomware.json Download File

Developer API Integration Snippets

Python (pandas / requests)
import requests
import pandas as pd

# Fetch complete cases dataset
url = "https://cyberattackcaselibrary.pages.dev/data/cases-all.json"
cases = requests.get(url).json()

# Load into DataFrame
df = pd.DataFrame(cases)
print(f"Loaded {len(df)} landmark cases.")
print(df[["title", "loss_amount_usd", "status"]].head())
      
cURL / jq Command
# Extract all case titles with total loss amount exceeding $100M
curl -s https://cyberattackcaselibrary.pages.dev/data/cases-all.json | \
  jq '.[] | select(.loss_amount_usd > 100000000) | {title, loss_amount_usd, status}'