Public BetaRisk models continue to evolve during validation.
Campaign API v2Persisted run history

Analysis Run Catalog

Discover every persisted analysis run under one campaign instead of relying on the bounded recent-run preview returned by campaign detail. Use the returned analysis IDs to inspect exact-run decisions or compare two historical runs.

Complete discovery
Page beyond the campaign detail preview with a 100 default and 500 maximum page size.
Stored summaries
Status, wallet totals, decision totals, risk summary and cluster count are read from persisted run metadata.
No recompute
Listing runs never reruns analysis, policy, risk scoring, clustering, or evidence generation.
REST
The cursor is opaque and controls ordering position only. Campaign ownership is verified independently on every request.
curl   "https://triproofprotocol.com/api/v2/campaigns/CAMPAIGN_ID/analyses?limit=100"   -H "Authorization: Bearer YOUR_API_KEY"

# Continue only when pagination.nextCursor is non-null.
# Return the cursor unchanged.
TypeScript SDK
`listCampaignAnalysisRuns()` exposes the same bounded run-history resource through `@triproof/sdk`.
const page = await client.listCampaignAnalysisRuns(
  campaignId,
  { limit: 100, cursor },
)

for (const run of page.runs) {
  console.log(run.id, run.status, run.decisions)
}
Recommended historical workflow
Run Catalog → choose an `analysisId` → read `/decisions` for its persisted wallet decisions → choose a second `analysisId` → use `/decisions/diff?compareTo=...` to inspect persisted transitions. None of these read paths rewrites historical state.