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" }
    ]
  }'