{"ok":true,"genesis":"0000000000000000000000000000000000000000000000000000000000000000","priceTableVersion":"2026-09-09.1","publishedFigures":117,"chains":4,"tables":[{"table":"corrections","head":"cb39f70da23bd099e9f8244fb2f320c858fa6b0a83a9b8cfed40b774cdf489b9","rows":1,"updatedAt":"2026-09-10T15:25:27.110Z","covers":["received_at","price_id","verdict","believed_usd","table_version"],"unchainedLegacyRows":0},{"table":"gap_reports","head":"0000000000000000000000000000000000000000000000000000000000000000","rows":0,"updatedAt":"2026-09-09T00:00:00.000Z","covers":["received_at","counts","ranking","table_version"],"unchainedLegacyRows":0},{"table":"interviews","head":"0000000000000000000000000000000000000000000000000000000000000000","rows":0,"updatedAt":"2026-09-09T00:00:00.000Z","covers":["received_at","consent","channel","follow_up"],"unchainedLegacyRows":0},{"table":"survey_responses","head":"87fdbc5c121785c1440037abf1260aadb592d32955edc9f42b4838cdaaf7d310","rows":2,"updatedAt":"2026-09-10T14:41:08.676Z","covers":["received_at","channel","ranking","unasked","lead","decide","clinicians","context (age, sex, insurance, region, state, stage)","survey_version"],"unchainedLegacyRows":0}],"method":{"formula":"row_hash = SHA-256( prev_hash + canonical_json(covered fields) ), lower-case hex; the first row of a table uses prev_hash = 64 zeros.","canonicalJson":"JSON with object keys sorted by code point at every level, no whitespace, undefined written as null.","covers":"Exactly the fields listed under covers[] for each table — the same fields the public CSV export publishes. An optional note, an encrypted sentence and every interview answer are outside the chain on purpose: they are never published, so nobody outside could ever check a hash taken over them.","proves":"No published row was edited, deleted or reordered after it was written without the head changing.","doesNotProve":"That the people who wrote the rows are distinct people, or that every row received was published. Those are different claims, and this endpoint does not make them.","recompute":"Download /api/export/corrections.csv, walk it top to bottom, and recompute each row_hash from the row above. The head you land on is the head published here."},"projections":{"corrections":["received_at","price_id","verdict","believed_usd","table_version"],"gap_reports":["received_at","counts","ranking","table_version"],"survey_responses":["received_at","channel","ranking","unasked","lead","decide","clinicians","context (age, sex, insurance, region, state, stage)","survey_version"],"interviews":["received_at","consent","channel","follow_up"]},"generatedAt":"2026-09-13T03:18:57.107Z"}