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 ruan. details has the classification result.

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