The register, as JSON
One endpoint returns any selection of cases you could build in the register, with the same analytics panel on top. It is part of Pro. Source links and case pages stay free and need no key.
Effective 21 October 2026
Authentication
Issue a key in your account under Export and API. The key is shown once; we store only its hash. Send it with every request in the X-TMR-Key header. Issuing a new key revokes the old one immediately.
A key works while the Pro subscription behind it is live. Without a key the endpoint answers 401; with a key whose plan has lapsed, 402.
Endpoint
GET https://themachinerecord.com/api/v1/cases
curl -H "X-TMR-Key: tmr_your_key" \ "https://themachinerecord.com/api/v1/cases?category=autonomous_vehicle&severity=fatality&from=2024&limit=100"
Every parameter is optional. With none, you get the newest 200 published cases and a summary of the whole register.
The same call from Python:
import requests
r = requests.get(
"https://themachinerecord.com/api/v1/cases",
headers={"X-TMR-Key": "tmr_your_key"},
params={"category": "autonomous_vehicle", "severity": "fatality", "from": 2024},
)
data = r.json()
print(data["summary"]["total"], "cases;", data["summary"]["escalated"], "reached a regulator")The key goes into your own code, script or tool, wherever that tool lets you set a request header: a notebook, a scheduled job that refreshes your spreadsheet, Postman, Power Query. It is never typed into the website.
Parameters
- category
- Kind of machine: autonomous_vehicle, delivery, humanoid, robot_arm, cobot, industrial, warehouse_amr, surgical, consumer, service, agricultural, other. Comma separated or repeated for several.
- severity
- no_harm, property_damage, minor_injury, serious_injury, fatality. Several allowed.
- type
- Incident type: collision, injury, fatality, fire, malfunction, near_miss, recall, investigation, lawsuit, fine, other. Several allowed.
- environment
- Where it happened: public road, street, factory, warehouse, home, hospital, retail, other. Several allowed.
- stage
- How far the event escalated: report, follow_up, investigation, regulator, recall, fine, lawsuit, settlement, criminal_charge. Several allowed.
- company
- Company slug as it appears in the URL of the company page, for example waymo or tesla. Several allowed.
- from, to
- Year of the incident, inclusive, as four digits.
- escalated
- 1 limits the selection to cases that reached a regulator or further.
- outcome
- 1 limits the selection to cases with a monetary or judicial outcome: lawsuit, fine, settlement, criminal charge.
- q
- Full text search across titles, summaries and timelines. Case insensitive.
- limit
- Cases to return, 1 to 1000. Default 200. Sorted by date of incident, newest first.
Response
JSON with four parts. selection echoes the filters as parsed. summary is the analytics panel for the whole selection, regardless of limit: total, escalated count and rate, the register baseline rate, counts by severity and by year. count and cases are the rows returned.
{
"selection": { "category": ["autonomous_vehicle"], "severity": ["fatality"], "yearFrom": "2024" },
"summary": { "total": 12, "escalated": 9, "rate": 0.75, "baselineRate": 0.136,
"severity": [{ "value": "fatality", "n": 12 }],
"byYear": [{ "year": "2024", "n": 7 }, { "year": "2025", "n": 5 }] },
"count": 12,
"cases": [
{ "ref": "TMR-2025-0141",
"date_of_incident": "2025-03-02",
"title": "...",
"company": "Waymo",
"category": "autonomous_vehicle",
"incident_type": "collision",
"severity": "fatality",
"environment": "public road",
"location": "San Francisco, CA",
"robot_model": "Jaguar I-Pace",
"escalation_stage": "regulator",
"units_affected": null,
"incident_reports": 1,
"sources": 4,
"url": "https://themachinerecord.com/case/..." }
],
"licence": "Internal use by the subscribing organisation. ..."
}Each case carries its public URL. The case page holds the full timeline and every source, and needs no key.
Limits
1,000 requests per key per rolling 24 hours, counted across all our servers. Past the limit the endpoint answers 429. Responses may be cached for up to a minute. If your work needs more, write to us and describe it.
Licence
Data fetched through the API is for internal use by the subscribing organisation, the same terms as CSV and JSON export. Redistribution, resale and model training need a separate licence; see the data licence.
Without code
The same selections are available as CSV or JSON from the register: filter to what you need and export exactly that. No key is involved; a Pro session is enough.