Data and exports
ICHI publishes what it has recorded, with the rules that produced it. Every export below comes from data ICHI already serves on its pages. Each one says where it came from, when it was generated and what it leaves out. Nothing here is a score input, and nothing is reconstructed: a day ICHI did not record is absent, never filled.
Rights and attribution
ICHI's owner has not yet declared a licence for ICHI's own data. Until one is declared, attribute ICHI — Internet Cyber Health Index (https://ichi.global) when you reuse it. ICHI does not redistribute third-party records. Incident rows name each source and link to the source's own page, and each source keeps its own terms (listed in every incidents export as source_terms).
Datasets
| Daily index history | CSV · JSON/api/export?dataset=index-history[&from=YYYY-MM-DD&to=YYYY-MM-DD][&format=csv]The last 90 days by default; a range spans at most 400 days. One row per recorded day, with these fields:
|
|---|---|
| 7 / 30 / 90-day comparisons | CSV · JSON · also /api/history?view=compare[&days=7|30|90][&end=YYYY-MM-DD] and on Score historyFor each series (the composite and each dimension) and each window length, the result is the mean over the window ending on the latest recorded day against the window before it. A change is stated only when:
|
| Incidents | CSV · JSON/api/export?dataset=incidents[&from=…&to=…][&format=csv]The last 30 days by default; a range spans at most 92 days, selected by last report, with at most 500 rows (the response says when the cap was reached). It covers ledger incidents whose status is CONFIRMED (a regulatory filing or the organisation's own disclosure, read first-hand) or REPORTED (newsroom reporting). Each row gives:
|
What is not exported, and why
- Ransomware leak-site claims. They are the groups' own unverified assertions, not incidents. ransomware.live's terms also forbid re-serving its data through an API.
- Report headlines and article text. They are the publishers' work, so only the outlet name and the link are exported.
- Indicators. No IP address, host, URL indicator, hash or IOC, from any feed. ICHI does not store them in the first place.
- Licensed or credentialed feeds. Nothing from abuse.ch, Cloudflare Radar (CC BY-NC), Censys, Shodan, GreyNoise, TweetFeed or Tor Metrics is exported. Their aggregates appear on ICHI's pages under each source's own terms and attribution.
- Research records and raw source documents. Research findings are linked from dossiers, never bulk-exported.
- Personal data. ICHI holds no visitor data to export, and the watchlist stays in your browser.
Methodology changes the history crosses
- 2026-07-24: scoring model VECTORS v7 stamped on every snapshot. Earlier days are UNSTAMPED.
- 2026-10-14: VECTORS v7.1. Threat Actors (T) and Ransomware (R) changed how they measure; the other dimensions and all weights did not.
- 2026-10-14: Supply Chain (S) classifier and volume basis corrected (r89.3.5). Stored history was not restated.
- 2026-10-17: revision
patch-freshness-36h. A patch-coverage observation older than 36 hours is not scored, which affects V's patch-gap modifier.
Recorded values are never recomputed under a later method. A comparison across one of these dates is marked not comparable for the series it affects.
API behaviour
- Requests: GET only. Parameters are matched against closed forms; anything else returns
400with a message that never repeats your input. - Caching: a complete response is public and cached for five minutes. There is no per-client rate limit; please cache on your side.
- Partial reads: if a stored day could not be read, the export is
PARTIAL, lists the day, and is not cached. If nothing could be read the response is503. A failure is never served as an empty dataset. - JSON: a
provenanceblock (dataset, version, generated_at, rights, description, fields, source) and the rows. - CSV: UTF-8 and RFC 4180 with CRLF line endings, delivered as a download. Provenance is sent in the
X-ICHI-*headers, and aLink: rel="describedby"header points to the JSON form. A text cell starting with= + - @is prefixed with an apostrophe so a spreadsheet never runs it. - CORS: allowed from any origin.
- Other public views: /api/dossier (one record and its relationships),
/api/history?view=period|explain|weekly, and the critical-alerts feed /api/alerts (RSS, Atom, JSON Feed).