API Reference
REST API Reference
Ingest logs, verify data integrity, manage incidents, and review human authorization workflows through the HTTPS API.
Auth
X-API-Key header
Format
JSON request/response
Base pattern
/api/v1/...
POST
/api/v1/logsIngest log
Submit a single audit event payload to the secure ledger. Returns the generated UUID.
Request
Headers:
X-API-Key: <your_api_key>
Body (JSON):
{
"event_type": "string",
"data": { ... },
"source": "string (optional)",
"trace_id": "string (UUID, optional)",
"session_id": "string (UUID, optional)"
}Response · 200 OK
{
"log_id": "string (UUID)",
"company_id": "string",
"event_type": "string",
"created_at": "string (ISO-8601)"
}POST
/api/v1/logs/batchIngest logs batch
Submit a batch of events in one API request.
Request
Body (JSON):
{
"logs": [
{ "event_type": "transaction", "data": { ... } }
]
}Response · 200 OK
{
"ingested": 1,
"log_ids": ["string (UUID)"]
}GET
/api/v1/logs/{log_id}/verifyVerify log chain
Check chain validation hashes and signature validity for a specific log ID.
Response · 200 OK
{
"log_id": "string (UUID)",
"hash": "string (hex)",
"chain_valid": true,
"signature_valid": true,
"verified_at": "string (ISO-8601)"
}POST
/api/v1/forensics/replaysCreate forensic replay
Create a forensic replay session for a given trace to build a timeline, causal graph, or staleness assessment.
Request
Body (JSON):
{
"trace_id": "string (UUID)",
"token_id": "string (optional)",
"metadata": {}
}Response · 200 OK
{
"id": "string (UUID)",
"company_id": "string",
"trace_id": "string (UUID)",
"created_at": "string (ISO-8601)"
}GET
/api/v1/forensics/replays/{replay_session_id}/root-causeGet replay root cause
Run heuristics over the replay session timeline to identify anomalies such as stale context or policy denials.
Response · 200 OK
{
"detected": true,
"root_cause_type": "STALE_CONTEXT",
"description": "Execution relied on stale data source at path 'market.feed'.",
"confidence": 0.95,
"remediation": "Refresh the stale resource before executing."
}POST
/api/v1/hitl/rejectSubmit human review rejection
Audit human rejection overrides.
Request
Body (JSON):
{
"reviewer": "reviewer@company.com",
"rejection_reason": "Limit exceeded",
"decision_id": "string (UUID, optional)"
}