OrbTop

AI Incident Database Tracker

AIDEVELOPER TOOLSOTHER

AI Incident Database Incident Scraper

Scrape structured incident records from the AI Incident Database. Returns titles, dates, descriptions, alleged deployers/developers, harmed parties, linked source reports, and CSET/GMF/MIT taxonomy tags for every catalogued AI-harm incident — over 1,500 and growing.


AI Incident Database Scraper Features

  • Extracts full incident records — title, date, description, and every organization named as a deployer, developer, or harmed party
  • Resolves entity IDs to display names, so you get "YouTube," not youtube
  • Pulls every linked source report per incident, with title, source domain, publish date, and URL
  • Returns CSET, GMF, and MIT taxonomy classifications — intent, severity, harm type, AI technique, risk domain — flattened into readable tags
  • Walks the incident id space directly, one request per incident. No browser required
  • Pick up mid-range with startId — useful for incremental delta runs as new incidents get published

Who Uses AI Incident Database Data?

  • AI governance and policy teams — build an evidence base for regulation proposals instead of screenshotting individual incidents
  • Insurers underwriting AI liability — track real-world harm patterns by sector, deployer, and technology
  • Researchers — study incident frequency, severity trends, and recurring failure modes across CSET's own taxonomy
  • Safety and red-team teams — cross-reference known failure modes against systems they're evaluating, or at least the public record of what's already gone wrong
  • Journalists — source specific, citable incidents with linked reporting instead of relying on memory

How AI Incident Database Scraper Works

  1. Set a starting incident id (default 1) and a maxItems cap.
  2. The scraper walks the id space sequentially, fetching each incident's structured record directly — not the rendered HTML page, and not the site's GraphQL API (which only answers browser-origin requests).
  3. Each valid incident returns its full record: description, deployer/developer/harmed-party lists resolved to names, every linked report, and its taxonomy classifications.
  4. The run stops once it hits maxItems, or after enough consecutive ids come back invalid to signal the end of the known range.

Input

{
  "startId": 1,
  "maxItems": 50
}
Field Type Default Description
startId Integer 1 Incident id to begin enumeration from. Leave at 1 for a full crawl, or set it to pick up where a previous run left off.
maxItems Integer 10 Maximum number of incident records to return.

AI Incident Database Scraper Output Fields

{
  "incident_id": 1,
  "title": "Google’s YouTube Kids App Presents Inappropriate Content",
  "date": "2015-05-19",
  "description": "YouTube’s content filtering and recommendation algorithms exposed children to disturbing and inappropriate videos.",
  "alleged_deployer": ["YouTube"],
  "alleged_developer": ["YouTube"],
  "alleged_harmed_parties": ["Minors"],
  "report_count": 14,
  "reports": [
    "YouTube Kids, Criticized for Content, Introduces New Parental Controls (nytimes.com, 2018-04-26) [https://www.nytimes.com/2018/04/25/business/media/youtube-kids-parental-controls.html]"
  ],
  "editor_notes": "",
  "taxonomy_tags": [
    "CSETv0:Intent=Accident",
    "CSETv0:Severity=Moderate",
    "CSETv0:Harm Type=Psychological harm",
    "MIT:Risk Domain=1. Discrimination and Toxicity"
  ],
  "similar_incidents": [],
  "source_database": "aiid",
  "incident_url": "https://incidentdatabase.ai/cite/1/",
  "first_seen_at": "2026-07-13T06:34:38.570Z",
  "scraped_at": "2026-07-13T06:34:38.570Z"
}
Field Type Description
incident_id Integer AIID sequential incident identifier
title String Incident title
date String Incident date (editorially assigned)
description String One-paragraph incident summary
alleged_deployer Array<String> Organizations/entities alleged to have deployed the AI system
alleged_developer Array<String> Organizations/entities alleged to have developed the AI system
alleged_harmed_parties Array<String> Parties alleged to have been harmed or nearly harmed
report_count Integer Number of linked source reports
reports Array<String> Linked reports, formatted as title (source_domain, date_published) [url]
editor_notes String AIID editor notes, where present
taxonomy_tags Array<String> CSET/GMF/MIT classification tags, formatted as Namespace:Field=Value
similar_incidents Array<String> Similar incident ids, where surfaced (best-effort — the source site computes this client-side via a gated endpoint, so it's often empty)
source_database String Always aiid in this version
incident_url String Canonical incidentdatabase.ai URL
first_seen_at String ISO-8601 timestamp this id was first observed by this actor
scraped_at String ISO-8601 timestamp this record was scraped

FAQ

How do I scrape the AI Incident Database?

Run this actor with a startId and maxItems. It returns full incident records — no need to click through hundreds of /cite/<id>/ pages by hand.

What data can I get from AI Incident Database?

Every catalogued incident's title, date, description, alleged deployer/developer, harmed parties, linked source reports, and CSET/GMF/MIT taxonomy classifications. That's the same data editors see on the site, structured for export.

Does AI Incident Database Scraper need a browser or proxies?

No. It fetches the site's own JSON data endpoint directly. No Playwright, no proxy configuration, no CAPTCHA handling — the source is a plain public dataset once you know where to ask.

Why isn't the AIID GraphQL API used directly?

Because it's origin-gated — the AI Incident Database's /api/graphql endpoint rejects any request that isn't a browser tab on their own site. This actor reads the same structured data via the public page-data endpoint the site itself serves, which isn't gated.

Can I resume a large crawl where I left off?

Set startId to the incident id right after the last one you received, and run again with the same maxItems. The scraper walks ids sequentially, so this picks up cleanly.


Need More Features?

Need OECD AI Incidents Monitor coverage, a different taxonomy filter, or a different output shape? File an issue or get in touch.

Why Use AI Incident Database Scraper?

  • No browser required — pure JSON fetches against the site's own data endpoint, so runs are fast and cheap
  • Structured, not scraped-looking — entity ids resolve to real names, reports are deduplicated against the incident's actual citation list, and taxonomy tags are flattened into readable strings instead of a nested classification blob
  • Fills a real gap — the AI Incident Database's API only answers browser-origin requests, so this is the only programmatic route to its data