Memory

Store a JSON document under a key. Creates the collection if it does not exist — with no indexes, which query then cannot use. Declare indexes with POST /v1/memory/collections first if you need them.

This replaces the whole document; it does not merge. Pass If-Match with the revision from a previous read to make the write conditional.

put/v1/memory/collections/{collection}/items/{key}

Request

  • Base URL
    https://api.zavu.dev
  • URL
    https://api.zavu.dev/v1/memory/collections/{collection}/items/{key}
  • Auth
    HTTP bearer

Path parameters

collectionstring required

Collection name.

keystring required

Item key. 1-255 chars from A-Z a-z 0-9 . _ : @ -

Query parameters

scopestring

Scope as a query-string value: contact:<contactId>, conversation:<conversationId>, the literal project, or omitted for project scope.

Only the SHAPE of the id is validated, never its existence — the partition already carries your project, so an id that matches nothing simply addresses an empty scope rather than returning 404.

Example:contact:jd7x2k3m4n5p6q7r8s9t0abc

Which scope to address: contact:<contactId>, conversation:<conversationId>, or omitted for the project scope.

Note the asymmetry with POST /v1/memory and POST /v1/memory/search, which take the scope in the request BODY as scope plus contactId/conversationId. Every other Memory endpoint takes it here.

Headers

If-Matchstring
Example:3

Make the write conditional on the item's current revision, as returned by a previous read or write (plain 3 or ETag-quoted "3"). The write is refused with 409 revision_conflict if the item moved on in between. Without it, the write always wins and silently overwrites a concurrent one.

Request body

valueunknown required
ttlSecondsinteger

Overrides the collection's defaultTtlSeconds for this item.

Response

Existing item replaced.

Example response

{
  "item": {
    "key": "ORD-12345",
    "value": {
      "status": "shipped",
      "total": 42.5
    },
    "rev": 3
  }
}

Changes