Aurra Docs
API Reference

Timeline

Chronological history of a memory chain (current + superseded versions).

The timeline endpoint returns every version of a memory chain, ordered from oldest to newest. Use it to reconstruct how a fact changed over time.

A chain is a sequence of memories connected by superseded_by pointers. Pass any memory_id in the chain (oldest, newest, or anything in between) and Aurra returns the entire timeline.

GET /memories/{memory_id}/timeline

Get the full history of a memory chain.

Path parameters

ParamTypeNotes
memory_idUUIDAny memory in the chain. Aurra will walk forwards and backwards from here to assemble the full timeline.

Example

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

Response (200)

{
  "memory_id": "ba01899b-6294-4d53-8c04-2dd651e9500d",
  "company_id": "user_3CyGtiPsbcMjBvQYnsU47r4hWKF",
  "chain_length": 1,
  "timeline": [
    {
      "id": "ba01899b-6294-4d53-8c04-2dd651e9500d",
      "summary": "Alice is a senior engineer at Acme Corp.",
      "decision": "Alice is a senior engineer at Acme Corp.",
      "topic": "people",
      "importance": "high",
      "source": "agent",
      "created_at": "2026-05-05T23:09:59.063114+00:00",
      "valid_from": "2026-05-05T23:09:59.008804+00:00",
      "valid_to": null,
      "superseded_by": null,
      "tenant_id": "acme-demo",
      "source_citation": { "...": "..." },
      "temporal": {
        "valid_from": "2026-05-05T23:09:59.008804+00:00",
        "valid_to": null,
        "superseded_by": null,
        "is_current": true,
        "is_expired": false,
        "is_superseded": false
      }
    }
  ]
}

Response fields

FieldTypeNotes
memory_idUUIDThe ID you requested (not necessarily the current head of the chain).
company_idstringYour Clerk user ID.
chain_lengthintegerTotal number of versions in the chain (1 if the fact has never been superseded).
timelinearrayFull memory objects, ordered by valid_from (oldest first).

Reading the chain

In a chain with chain_length > 1, exactly one memory has temporal.is_current: true and valid_to: null. All prior versions have a valid_to timestamp and a superseded_by pointer to the next version.

Example chain after superseding Alice's job details:

[v1] "senior engineer at Acme Corp"
      valid_from: 2026-05-05T23:09:59
      valid_to  : 2026-05-05T23:11:42  --> superseded_by v2
      is_current: false

[v2] "staff engineer at Globex"
      valid_from: 2026-05-05T23:11:42
      valid_to  : null
      is_current: true

Use cases

  • Audit ui - show users how a fact changed ("Alice's title was 'senior engineer' until May 5, then 'staff engineer'").
  • Compliance - prove what your agent knew at any point in the past.
  • Debugging - replay an agent's decision against the memory state at the time it was made.

For a richer view that includes extraction metadata and event history (created, superseded, classified, etc.), use GET /memories/{memory_id}/audit.

Error responses

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

On this page