Create a collection
Declare a collection of JSON documents addressed by key. This is the counterpart to facts: POST /v1/memory recalls by meaning, a collection recalls by key.
Create it explicitly when you need query. Writing to an unknown collection creates it implicitly, but with no indexes — and indexes cannot be added afterwards. If you will ever look items up by a field rather than by key, declare that field here, before the first write.
A collection is defined once for the project. Its ITEMS are per-scope, so the same collection holds a separate set of documents for the project, for each contact, and for each conversation.
Authorization
AuthorizationheaderrequiredBearer YOUR_API_KEY. Create a key in the dashboard.
Body
application/json
namestringrequired1-63 chars: lowercase letters, digits,
-and_, starting with a letter or digit.indexesobject[]Up to 2 fields to index for
query. This is the only way to declare them — a collection created implicitly by its first write has none, and querying an unindexed field returns400 field_not_indexed. Indexes cannot be added later, so declare them here before the first write.Limitsmax items 21 properties
fieldstringrequired1-64 chars: letters, digits and
_, starting with a letter. Top-level field of the stored document.
defaultTtlSecondsintegerLimitsmin 60 · max 63072000
Responses
201Collection created.
collectionobjectrequiredA namespace of JSON documents addressed by key.
6 properties
namestringrequiredindexesobject[]requiredFields that
POST /v1/memory/collections/{collection}/querycan filter on. Immutable after creation.1 properties
fieldstringrequired
defaultTtlSecondsintegerrequiredTTL applied to items written without their own
ttlSeconds. Null means items are kept until deleted.statusstringrequiredactive, ordeletingwhile a delete drains in the background.createdAtstring<date-time>requiredupdatedAtstring<date-time>required
400Invalid name, index field, or TTL.
codestringrequiredmessagestringrequireddetailsobject
401Unauthorized.
codestringrequiredmessagestringrequireddetailsobject
409A collection with that name already exists (`already_exists`), or one is still being deleted (`collection_deleting`).
codestringrequiredmessagestringrequireddetailsobject
429The plan's collection cap is reached.
codestringrequiredmessagestringrequireddetailsobject