Developer reference
Mintread's composite risk score for every tracked stablecoin, served as JSON. No auth, no SDK, no rate limits on the public endpoint.
Endpoint contract
/api/risk/<slug> — where slug is one of usdc usdt dai pyusd frax usde.application/jsonpublic, max-age=600 — a 10-minute browser / CDN cache window.If-None-Match to avoid re-downloading an unchanged payload.200 response
A single envelope under risk: the headline composite, the four sub-scores, the issuer's most-recent attestation date, the MiCA / GENIUS jurisdiction badge, and the wall-clock as_of at which the JSON was frozen.
{
"risk": {
"slug": "usdc",
"composite": 94,
"tier": "strong",
"subScores": {
"reserves": 24,
"redemption": 25,
"jurisdiction": 24,
"counterparty": 21
},
"attestationDate": "2026-08-20",
"jurisdictionBadge": "Both",
"as_of": "2026-08-24T18:30:00.000Z"
}
}Field reference
compositeinteger · 0–100The headline risk score. Independent of subScores in spirit — the four sub-scores add to 100 by construction, but the published composite does not enforce equality.
tier"strong" | "moderate" | "watch"Public band derived from composite: strong ≥ 80, moderate ≥ 50, else watch.
subScoresobject · four 0–25 cellsReserves, Redemption, Jurisdiction, Counterparty — each on a 0–25 band. Detail of every dimension below.
attestationDateISO date · YYYY-MM-DDThe issuer's most-recent attested reserve report. Distinct from as_of— the first is the issuer's claim, the second is when this JSON was frozen.
jurisdictionBadge"MiCA" | "GENIUS" | "Both" | "None"Where the issuer stands under applicable regulatory regimes. Both = highest; None = lowest.
as_ofISO-8601 UTC timestampWhen this JSON payload was frozen. Because the route is statically generated, this is the build-time value — a fresh deploy produces a new as_of and a new ETag. Revalidate against the ETag to detect a new build.
Sub-scores
Every sub-score sits on a 0–25 band. Each dimension has the same healthy / watch floor (healthy ≥ 21, watch ≤ 12).
subScores.reserves
0–25Quality and backing of the issuer's reserve assets — T-bills, cash, repo, MMF, and attestation cadence. Drift into non-cash or non-T-bill buckets, or missed attestations, drops this.
subScores.redemption
0–25Reliability of the issuer's redemption / mint-burn process. Open-to-redeemers is the floor; gating or pause drops the score.
subScores.jurisdiction
0–25Standing of the issuer under applicable regulatory regimes — MiCA, the GENIUS Act, national frameworks. Dual coverage scores highest; offshore non-aligned scores lowest.
subScores.counterparty
0–25Concentration and credit standing of the issuer's banking and custody counterparties — prime-broker rails, exchange listings, and OFAC exposure.
cURL
One command, no flags beyond -sS (silent + show errors on failure). Paste it into a terminal and the response matches the example above.
curl -sS https://mintread.app/api/risk/usdcBadge
Drop a coin's risk badge onto your site, README, or dashboard with a single <img> tag. The image is a server-rendered SVG that updates on every Mintread deploy — no JavaScript, no SDK, no CORS dance.
<img src="https://mintread.app/api/risk/usdc/badge"
alt="USDC risk: 94/100, strong tier"
height="20">Replace usdc with any tracked slug — usdt, dai, pyusd, frax, or usde. Cache is public, max-age=600 — a 10-minute CDN edge window — and the endpoint returns HTTP 404 for untracked slugs so <img> renders cleanly as a broken image rather than a hot link to a stale icon.
200 vs 404
Anything outside usdc usdt dai pyusd frax usde returns HTTP 404 with the bare { "error": "Not found" } body — same shape for every untracked slug.
curl -sS https://mintread.app/api/risk/usdc
{
"risk": {
"slug": "usdc",
"composite": 94,
"tier": "strong",
"subScores": {
"reserves": 24,
"redemption": 25,
"jurisdiction": 24,
"counterparty": 21
},
"attestationDate": "2026-08-20",
"jurisdictionBadge": "Both",
"as_of": "2026-08-24T18:30:00.000Z"
}
}curl -sS -i https://mintread.app/api/risk/nope
HTTP/2 404
content-type: application/json
{ "error": "Not found" }Next step
The Enterprise plan unlocks every slug in batch, webhook-style alerts, and seats for your treasury and risk teams.