Aurra Docs
API Reference

Audit

Full provenance, extraction metadata, and event history for any memory.

Audit returns everything Aurra knows about how a memory came to exist: what input produced it, which LLM extracted it, when, and every event that affected it since.

Audit vs timeline. The timeline endpoint shows every version of a fact. Audit shows every event that happened to one specific memory. Use timeline to reconstruct state over time; use audit to answer "where did this fact come from and what happened to it".

GET /memories/{memory_id}/audit

Get the full audit record for a single memory.

Path parameters

ParamTypeNotes
memory_idUUIDThe memory to audit. Must belong to your account.

Example

curl https://api.aurra.us/memories/ba01899b-6294-4d53-8c04-2dd651e9500d/audit \
  -H "Authorization: Bearer $AURRA_API_KEY"

Response (200)

{
  "memory_id": "ba01899b-6294-4d53-8c04-2dd651e9500d",
  "memory": {
    "summary": "Alice is a senior engineer at Acme Corp.",
    "decision": "Alice is a senior engineer at Acme Corp.",
    "topic": "people"
  },
  "provenance": {
    "source_type": "agent",
    "channel": "agent",
    "tenant_id": "acme-demo",
    "workspace_id": null,
    "org_id": null,
    "external_id": null,
    "original_input": "Alice is a senior engineer at Acme Corp.",
    "captured_at": "2026-05-05T23:09:59.063114+00:00"
  },
  "extraction": {
    "model": "claude-opus-4-7",
    "prompt_version": "v1",
    "extracted_at": "2026-05-05T23:09:59.063114+00:00"
  },
  "temporal": {
    "valid_from": "2026-05-05T23:09:59.008804+00:00",
    "valid_to": null,
    "superseded_by": null,
    "is_current": true
  },
  "history": [
    {
      "event": "created",
      "at": "2026-05-05T23:09:59.063114+00:00",
      "by": "aurra-extractor",
      "details": null
    },
    {
      "event": "memory.created",
      "at": "2026-05-05T23:10:01.774058+00:00",
      "by": "user_3CyGtiPsbcMjBvQYnsU47r4hWKF",
      "details": {
        "shape": "legacy_content",
        "topic": "people",
        "source": "agent",
        "tenant_id": "acme-demo"
      }
    }
  ]
}

Top-level fields

FieldTypeNotes
memory_idUUIDEcho of the requested ID.
memoryobjectThe current fact: summary, decision, topic.
provenanceobjectWhere this memory came from. See below.
extractionobjectWhich LLM / prompt version generated it.
temporalobjectCurrent validity state. Same shape as in /agent/memories.
historyarrayEvent log in chronological order. See event types below.

provenance

FieldNotes
source_typeTop-level category (agent, agent_session, slack, notion, etc.)
channelSub-channel (e.g. Slack channel name, Notion database ID)
tenant_idTenant scope (if any)
workspace_idReserved for multi-workspace accounts (Phase 4).
org_idReserved for multi-org accounts (Phase 4).
external_idYour system's identifier for the source event (e.g. Slack message ts).
original_inputThe raw input that produced this memory. Trust floor.
captured_atISO 8601 timestamp of capture (not extraction).

extraction

FieldNotes
modelLLM identifier (e.g. claude-opus-4-7).
prompt_versionAurra prompt version (e.g. v1). Bumps when Aurra changes extraction behavior.
extracted_atISO 8601 timestamp of extraction.

history[] events

Each entry has event, at, by, details. Common event types:

EventMeaning
createdExtraction completed. by is always aurra-extractor.
memory.createdMemory row inserted into the database. by is the company's Clerk user ID.
memory.supersededThis memory was superseded. details.superseded_by has the new UUID.
memory.expiredThis memory was superseded without a replacement. details.valid_to has the expiry.
memory.classifiedLevel 2 auto-supersession classifier ran against this memory. details has verdict (supersedes/refines/independent), confidence, model, new_memory_id (the new memory triggering the check), and applied (whether the verdict actually triggered supersession).

New event types may appear over time. Clients should accept unknown events without erroring.

Use cases

  • Debate resolution - "why does my agent think X?". provenance.original_input is always the answer.
  • Compliance reports - export provenance + extraction + history for any fact.
  • Extraction regression tracking - filter by extraction.prompt_version to quantify quality changes across extractor releases.

Error responses

StatusTrigger
403memory_id exists but belongs to another account.
404memory_id does not exist.
422UUID format invalid.

On this page