API
API-first and versioned under /api/v1. Every response is a typed envelope carrying a request_id and trace_id. Authenticate with a bearer token in the authorization header. Mutations accept an idempotency-key.
Endpoints
GET/api/healthpublic
Liveness, engine version, and ruleset digest.GET/api/v1/openapi.jsonpublic
Generated OpenAPI 3.1 document.GET/api/v1/casesauth
List cases.GET/api/v1/cases/{caseId}auth
Case with coverage and gaps.GET/api/v1/claimsauth
List claims, filterable by case.POST/api/v1/claimsauth
Record a claim and run initial verification.GET/api/v1/claims/{id}auth
Claim detail: evidence, versions, verifications, receipts.POST/api/v1/claims/{id}/verifyauth
Re-verify a recorded claim; idempotent.POST/api/v1/verifyauth
Stateless verification of a claim payload.GET/api/v1/receiptsauth
Signed operation receipts (outbox anchor).POST/api/v1/import/correlateauth
Import source material from Correlate.GET/api/eventsauth
Event outbox for automation.Example
POST /api/v1/verify
curl -sX POST https://evidence.platphormnews.com/api/v1/verify \
-H "authorization: Bearer $PLATPHORM_API_KEY" \
-H "content-type: application/json" \
-H "idempotency-key: $(uuidgen)" \
-d '{
"caseId": "CASE-2024-APT-0001",
"statement": "svc-ci-deploy accessed prod-customer-data from a Tor exit node.",
"classification": "OBSERVED",
"evidenceRefs": [
{ "type": "observation", "ref": "obs-003" },
{ "type": "entity", "ref": "ent-ip" },
{ "type": "relationship", "ref": "rel-002" }
]
}'