Cluster APICampaign API v2
Cluster Case Export
Package one already-stored cluster investigation for downstream review, audit, or customer handoff without recomputing membership, risk, decisions, policy, reviewer state, or evidence semantics.
JSON
Full deterministic investigation package with stored cluster state, provenance, timeline context, latest cluster review, and explicit export boundaries.
CSV
Wallet-level investigation matrix. Free-text cells retain the existing spreadsheet-formula injection protection.
Markdown
Read-only analyst case brief combining stored cluster state, latest human cluster review, matching policy context when available, evidence summary, next actions, and limitations.
Decision boundary
Every successful export carries `X-Tri-Proof-Decision-Boundary: read-only-no-recompute`. Export generation cannot change cluster membership, wallet risk, stored wallet decisions, policy outcomes, reviewer state, or whether existing funding/graph evidence is risk-bearing or neutralized.
REST
All three formats use the same ownership-scoped GET resource.
# JSON investigation package
curl "https://triproofprotocol.com/api/v2/campaigns/CAMPAIGN_ID/analyses/ANALYSIS_ID/clusters/CLUSTER_LABEL/export?format=json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-o cluster-investigation.json
# CSV wallet evidence matrix
curl "https://triproofprotocol.com/api/v2/campaigns/CAMPAIGN_ID/analyses/ANALYSIS_ID/clusters/CLUSTER_LABEL/export?format=csv" \
-H "Authorization: Bearer YOUR_API_KEY" \
-o cluster-investigation.csv
# Markdown analyst case brief
curl "https://triproofprotocol.com/api/v2/campaigns/CAMPAIGN_ID/analyses/ANALYSIS_ID/clusters/CLUSTER_LABEL/export?format=markdown" \
-H "Authorization: Bearer YOUR_API_KEY" \
-o cluster-case-brief.mdTypeScript SDK
The SDK URL-encodes campaign, analysis, and cluster identifiers and returns the attachment body as text.
import { TriProofClient } from "@triproof/sdk"
const client = new TriProofClient({ apiKey: process.env.TRIPROOF_API_KEY! })
const markdown = await client.exportCampaignClusterCase(
campaignId,
analysisId,
clusterLabel,
"markdown",
)
// The SDK returns export bodies as text for every format.
// Parse JSON only if your integration needs an object.
const jsonText = await client.exportCampaignClusterCase(
campaignId,
analysisId,
clusterLabel,
"json",
)Recommended resource flow
Use Cluster Catalog to discover stored groups, Cluster Intelligence to understand grouping support, Evidence and Members pagination for complete forensic inspection, then Case Export for an auditable handoff package.
Catalog → Intelligence → Evidence → Members → Case Export