Eridian

Audit Log

Immutable events for inference, keys, policy, and operators.

The audit log is an append-only record of inference completions, key lifecycle, policy diffs, dual-control decisions, and budget events. Events store counts, route, region, and actor. They do not store raw prompts when PII redaction or ZDR is on.

List Events

GET /v1/audit/events?project_id=prj_legal_001&start=2026-09-01&end=2026-09-30&limit=100
Authorization: Bearer eridian_sk_...

Required scope: audit:read

Query Parameters

ParameterTypeRequiredDescription
project_idstringYesProject to query
startdatetimeYesInclusive start (RFC 3339)
enddatetimeYesInclusive end
typestringNoEvent type filter
actorstringNoUser ID, key ID, or service account
starting_afterstringNoCursor. See Pagination

Event Object

{
  "id": "aud_7c21",
  "object": "eridian.audit.event",
  "type": "inference.completed",
  "created_at": 1718400000,
  "actor": "key_8f3a2b1c",
  "project_id": "prj_legal_001",
  "region": "eu-west-1",
  "data": {
    "request_id": "axm_req_8f3a2b1c",
    "route": "gpt",
    "cache_hit": false,
    "pii_redacted": 2,
    "cost_usd": 0.0042,
    "template_id": "tpl_contract_summary_v3",
    "template_version": "3.2.1"
  }
}

Event Types

TypeWhen
inference.completedSuccessful or failed inference
key.create / key.rotate / key.revokeKey lifecycle
policy.updatedRouting, PII, or residency policy
budget.threshold / budget.exceededBudget alerts
template.publishTemplate version published
approval.approved / approval.rejectedDual control
eval.run.completedEvaluation finished
webhook.delivery.failedExhausted retries

Integrity

Each event includes prev_hash and hash (SHA-256 over the canonical payload). Exports are signed. Tampering with a stored event breaks the chain and fails verification in Evidence Export.

X-Eridian-Audit-Cursor: aud_7c21
X-Eridian-Request-Id: axm_req_9aa0

Retention

Default inference-adjacent audit retention is 90 days, configurable on Enterprise. Billing records follow the order form and UAE accounting rules. Legal hold freezes deletion for named project_id values.

TypeScript

const page = await client.audit.events.list({
  projectId: "prj_legal_001",
  start: "2026-09-01T00:00:00Z",
  end: "2026-09-30T23:59:59Z",
  type: "inference.completed",
});

See Evidence Export and Observability.

Production API credentials are issued with an institution workspace. Contact sales if you need access.