Memory endpoints

POST /v1/remember

Record one memory. See remember.

curl -X POST https://mneva.dev/v1/remember \
  -H "x-mneva-key: $MNEVA_KEY" \
  -H "content-type: application/json" \
  -d '{"text":"<what to remember>"}'

Response:

{ "id": 47, "text": "<echo>", "semantic": true }

semantic is true if the embedding was written; false if Ollama was unreachable and only keyword recall will find this row.

POST /v1/recall

Semantic search across memories. See recall.

curl -X POST https://mneva.dev/v1/recall \
  -H "x-mneva-key: $MNEVA_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"<what to recall about>"}'

Response:

{
  "mode": "semantic",
  "results": [
    { "id": 47, "text": "...", "created_at": "...", "score": 0.71 }
  ],
  "keyword_extra": []
}

mode is semantic when Ollama served the query, keyword when it fell back. See Memory for the fallback shape.

GET /v1/dreams

Surface unread overnight wander thoughts. See recall_dreams.

curl "https://mneva.dev/v1/dreams?limit=5" \
  -H "x-mneva-key: $MNEVA_KEY"
Query paramTypeDefaultDescription
limitint 1..205Max dreams to return.

Response:

{
  "dreams": [
    {
      "id": 2,
      "thought": "...",
      "source_memory_ids": [5, 1, 3],
      "novelty": 0.192,
      "created_at": "2026-05-23T00:14:00+00:00"
    }
  ]
}

Each returned dream is marked read on retrieval; calling /v1/dreams again returns only newer unread dreams. The read-once contract is permanent — there is no "unread" toggle.

Was this page helpful?