api reference

free, read-only, no auth, cors open. static json snapshots regenerated with every index run (updated 2026-07-04) - the same numbers the pages render, nothing more. correctness is vs uma's own resolved price, not ground truth.

GET /api/disputes.json

every recorded dvm-resolved dispute (trailing 364d window + hash-chained archive). fields per dispute: slug · url (permalink) · title · resolved_at · resolvable · resolved_price (1/0/0.5; absent when the round rolled) · n_voters · n_against · against_frac · top_share · top_voter · total_weight · request_key.

curl -s https://thoth.markets/api/disputes.json | jq '.disputes[0]'

GET /api/voters.json

every wallet that revealed a vote in the window. fields per voter: voter · url (rap sheet) · votes (revealed) · gradable · correct (matched the resolved outcome) · correct_rate · weight (cumulative revealed numTokens/1e18).

curl -s https://thoth.markets/api/voters.json | jq '.voters[:10]'

raw layers

/data.json - the full board aggregate (disputes + voters, one file). /ledger.jsonl - the hash-chained per-dispute ledger; each record carries the hash of the previous one. verify the chain, or re-derive everything from the votingv2 logs on ethereum mainnet: 0x004395edb43efca9885cedad51ec9faf93bd34ac.

per-dispute vote rows live on each dispute page (html) and in the ledger records; a bulk votes endpoint is deliberately not published - re-derive from the chain, trust no snapshot.