Docs Memory API

What to send and how to split it

Good memory starts with good records. Split by event, keep real timestamps, and give every record a stable id.

#One record per event

A message, an email, a ticket comment, a CRM field change, a meeting transcript. Records that are too large blur time (a whole mailbox has no single date); records that are too small lose context (a single sentence without its thread).

#Choosing sourceId

Use the id from the source system, prefixed by type: email-<messageId>, ticket-20931-comment-3. Stable ids make corrections and deletes possible and make re-syncs free.

#Timestamps

Always send occurredAt in ISO 8601 with a timezone. For documents, use the effective date of the version, not the upload time.

#Titles and metadata

title is short and human-readable — it’s what your agent cites. metadata is your JSON, stored and returned with sources; extraction reads it as context but recall never filters on it.

#Batches

Batch send
curl -X POST "$AULD_API_BASE/v1/records:batch" \
  -H "Authorization: Bearer $AULD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "records": [ { "sourceId": "msg-1", "text": "…", "occurredAt": "2026-09-01T10:00:00Z" },
                  { "sourceId": "msg-2", "text": "…", "occurredAt": "2026-09-01T10:04:00Z" } ] }'

Each record in a batch is priced separately: one credit per 350 bytes, rounded up per record.

#What not to send

  • Secrets, credentials and payment card numbers.
  • Data you are not permitted to process for this purpose.
  • Machine noise (heartbeats, unchanged syncs) — filter before sending.