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
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.