Get the data
256 cases, 671 archived sources, 49 companies. Everything below is free and needs no account. Case metadata is CC BY 4.0; quoted text from news sources stays with its publisher.
Effective 24 September 2026
JSON API
/api/public/cases returns every published case, 200 per page, with the licence stated in each response. Filter with ?page=, ?year= and ?category=. CORS is open, so it works from a browser.
- fields
- ref, url, title, date_of_incident, company, category, incident_type, severity, location, escalation_stage, sources
- rate
- Be reasonable. Pro adds an API key with 1,000 requests a day, filtered exports and capture dates.
MCP server for agents
The register is also an MCP server at https://themachinerecord.com/api/mcp: add that URL to Claude, ChatGPT, Cursor or any client that speaks Streamable HTTP and the agent can search cases, open one with its timeline and sources, read a company profile, pull the totals and query the NHTSA Standing General Order file. No key, read only, the same CC BY 4.0 data as the JSON API.
- tools
- search_cases, get_case, list_companies, get_company, register_totals, search_nhtsa_sgo
- stdio clients
- npx -y mcp-remote https://themachinerecord.com/api/mcp
CSV and JSON files
The whole register as flat files, refreshed every day at 08:00 UTC: cases with 24 columns, the timeline events of every case, every source with its tier and archived copy, and the links to NHTSA filings. A codebook defines every column and closed vocabulary, the annotation guidelines state the rules each field is assigned by, and a limitations note says what the data cannot support.
- GitHub
- https://github.com/vzolot/machine-record-data
- Codebook
- https://github.com/vzolot/machine-record-data/blob/main/CODEBOOK.md
- Guidelines
- https://github.com/vzolot/machine-record-data/blob/main/ANNOTATION_GUIDELINES.md
- Limitations
- https://github.com/vzolot/machine-record-data/blob/main/LIMITATIONS.md
- Inter-rater pilot
- https://github.com/vzolot/machine-record-data/blob/main/irr/2026-10-model-pilot.md
- cases.csv
- https://raw.githubusercontent.com/vzolot/machine-record-data/main/data/cases.csv
- events.csv
- https://raw.githubusercontent.com/vzolot/machine-record-data/main/data/events.csv
- sources.csv
- https://raw.githubusercontent.com/vzolot/machine-record-data/main/data/sources.csv
- Hugging Face
- https://huggingface.co/datasets/Vzolot/machine-record
- Kaggle
- https://www.kaggle.com/datasets/volodymyrzolotukhin/commercial-robot-incidents
import pandas as pd
cases = pd.read_csv("https://raw.githubusercontent.com/vzolot/machine-record-data/main/data/cases.csv")
cases[cases.company == "Waymo"].groupby("severity").size()The same four tables come from the API without a key, 500 rows a page: /api/public/cases, /api/public/events, /api/public/sources and /api/public/sgo-links.
Research releases
A versioned release is cut every quarter and archived on Zenodo with the codebook, the annotation guidelines and a changelog frozen with it, so a paper can cite a fixed snapshot. Release 1.1.0 of 23 October 2026 is the first research release: 284 cases, 720 timeline events, 694 sources across 326 domains. The next is due in January 2027. Between releases the daily mirror moves. The changelog lists every change of method and vocabulary: CHANGELOG.md.
NHTSA SGO crash reports
Every filing under NHTSA's Standing General Order, the current files and the 2021-2025 archive, driverless and Level 2 together, one row per report at its latest version: /reports/sgo. The CSV endpoint takes the same filters as the page and needs no account.
- CSV, latest versions
- https://themachinerecord.com/reports/sgo/csv
- CSV, all versions
- https://themachinerecord.com/reports/sgo/csv?versions=all
- filters
- program=ADS|ADAS|OTHER, entity=, severity=, state=, year=, crash=, q=
import pandas as pd
sgo = pd.read_csv("https://themachinerecord.com/reports/sgo/csv")
sgo[sgo.injury_severity == "Fatality"].groupby(["program", "reporting_entity"]).size()Data descriptor preprint
The methods, tables, vocabularies and limitations are written up as a data descriptor, preprint version 1 of 26 October 2026: doi.org/10.5281/zenodo.23664150. Journal submission follows the January 2027 release. Cite the preprint for the method and the dataset DOI below for the data.
Citing the register
The dataset has a DOI that always resolves to the latest archived release: 10.5281/zenodo.22925531. Cite a single case by its reference and permanent URL, for example TMR-0238 and its case page.
The Machine Record (2026). The Machine Record: incidents involving commercial physical robots [Data set]. Zenodo. https://doi.org/10.5281/zenodo.22925531
Feeds
- all cases
- https://themachinerecord.com/feed.xml
- one company
- https://themachinerecord.com/company/waymo/feed.xml, and the same for any company slug
- weekly digest
- https://themachinerecord.com/digest, one email every Monday
Badge for dashboards and notebooks
If you build on the data, this badge links back to the register and tells your readers where the numbers come from:
[](https://themachinerecord.com)
Questions about the data, and requests for slices that are not on the site, go to hello@themachinerecord.com. See also the licence and the methodology.
Live counter for a page or a README
The number of verified cases on the register, with how many involved a person hurt, rebuilt every fifteen minutes. One image, no script, and it always carries the address of the register so a reader can check the count.
<a href="https://themachinerecord.com"><img src="https://themachinerecord.com/embed/counter" alt="Verified commercial robot incidents on The Machine Record" width="320" height="96"></a>