Get the data

The full dataset, published in three formats to GitHub Releases. Exports are triggered on demand by the curator and tagged in CalVer format (YYYY.MM.DD), not scheduled—a snapshot of an unchanged dataset adds noise without value. Internet Archive and Hugging Face mirrors are a planned growth path, not yet active. Data license: CDLA-Sharing-1.0.

machine-readable JSON pa-incidents.jsonl

The canonical download format. One incident per line, all fields, all sources included. Suitable for analysis, import, or direct use. No credentials required.

Download JSONL
flat-format TSV pa-incidents.tsv

Column headers in row 1. Designed for spreadsheet tools, R, pandas. Fields that contain arrays are JSON-encoded strings in the TSV cells.

Download TSV
embeddable SQLite pa-incidents.sqlite

Full dataset in one file—open with sqlite3, DuckDB, pandas, or R. Generated by the export script and attached to each CalVer release tag on GitHub. There is no live /export/incidents.sqlite server endpoint; downloads are published alongside each milestone release.

Durability guarantee

Each release is published to GitHub Releases (tagged, immutable CalVer). A checksum manifest (SHA-256) is published alongside every release so you can verify the file you downloaded is the same file we published. The Internet Archive and Hugging Face are a planned growth path for additional independence; activating either requires no schema change.

Schema

Schema version 1. The public schema is immutable: fields are never renamed or removed, only added (see Methodology). Every record carries schema_version so pipelines can branch on format changes. Breaking changes, should one ever become necessary, get 90 days notice and 12 months of parallel publication.

Field Type Meaning
id string Permanent identifier. PA-YYYY-NNNN. Year is the intake year; counter never reused, never renumbered.
status enum DRAFT · PUBLISHED · REJECTED. Rejected records keep their IDs and remain in exploratory state.
reported_by string Who publicly reported the incident (handle or publication). Required on every documentary record.
platform string Controlled vocabulary, extensible without schema change. Values expand as new platforms are documented.
enforcement_action_type enum Terminal: account-disable · account-ban · account-termination · channel-termination · server-termination · account-deletion · deplatforming
Restrictive: account-suspend · account-restriction · account-lock · demonetization
Platform-specific slugs are automatically classified via keyword patterns.
platform_policy_cited string? The policy the platform cited, verbatim. null means no policy was cited—a research signal, not missing data.
ai_system_involvement enum DETECTION · CLASSIFICATION · EXECUTION · APPEALS · UNKNOWN. Curator inference from documented signal rules—never a verified fact.
date_from / date_to date? ISO 8601 bounds of the plausible action date. Equal when exact; range when approximate.
sources array [{ url, archive_url }]—live source plus independent archive, one pair per source. Never empty on published records; every element archive-anchored.
enforcement_screenshot_url string? Project-hosted screenshot of the platform's enforcement notification. Cleared on verified subject erasure request.
verification_level enum UNVERIFIED · SOURCE_CONFIRMED · PLATFORM_CONFIRMED
platform_acknowledged boolean True only when the platform has publicly confirmed the action.
confidence_score int 1–5 Curator's rubric-anchored reliability assessment. Supplementary signal only. Required, no default. Assigned by curator at intake.
summary string Curator-written summary in schema-enforced reportedly-speech framing.
curator_commentary string? Labeled analytical interpretation. Public, clearly separated from the documentary record.
created_at datetime Intake timestamp (UTC).
erasure_note string? Public annotation set when a verified erasure request is granted: screenshot cleared, record retained under GDPR Art 17(3)(d). null on most records.
schema_version int Monotonic schema version; branch on it for format handling.

Consume via API

Three programmatic surfaces, in increasing order of structure:

MCP / natural language

Connect any MCP client to https://platformactions.org/mcp and ask analytical questions. See the Ask page.

REST

Paginated JSON endpoints for incidents and findings; stable cursor pagination; read-only without authentication. Planned for v0.2 release.

Bulk

The milestone releases above, for reproducible analysis. If you are publishing research, cite the release tag (e.g. 2026.06.12) so your numbers are reproducible.

License: CDLA-Sharing-1.0

Use the data for anything. Articles, papers, statistics, and models trained on it carry no obligations (the license's Results exemption). Republishing a modified dataset requires the same license, attribution to platformactions.org, and prominent change notices—an altered copy cannot be silently presented as the original. A party that initiates litigation based on the data loses its license to use it (§5.2).