Try it
Get a key from the developer console — API Keys → Create API Key — then add a memory and pull it back with related edges:
Documents vs memories
Think of documents as books you hand the system. Memories are the insights it keeps — connected to each other as new content arrives.
Uploading a long PDF does more than store bytes: Supermemory derives many memories and links them to what it already knows about that entity or user. Chunks of the document remain available for SuperRAG grounding.
Properties and rules of memories
- Memories are atomic - Each memory has enough information and context about one particular topic
- They always build on top of each other - with
updates, the model knows the history, a memoryextendsfrom other memories, and new facts are derived (derivesrelation) from existing knowledg.e
Memory relationships

Updates — information changes
New fact replaces what was true before for search purposes; history can remain for audit.isLatest (and related graph fields) keep retrieval on the current fact without erasing the past.
Extends — information enriches
New fact adds detail without invalidating the old one.Derives — information infers
Supermemory infers a fact you never stated in one place, from patterns across memories.include.relatedMemories — see Search API.
Automatic extraction (one input → many facts)
Input:Had a great call with Alex. He’s enjoying the new PM role at Stripe, though the payments work is intense. He moved to Seattle for the job—Capitol Hill. Wants dinner next time I’m in town.Example extracted memories:
- Alex works at Stripe as a PM
- Alex works on payments infrastructure (extends role)
- Alex lives in Seattle, Capitol Hill
- Alex wants to meet for dinner (episodic)
Dreaming keeps the graph alive
Ingest is not a one-shot snapshot. After (and alongside) indexing, dreaming continues building the graph: extracting facts, linking related memories, resolving updates, and producing derives you never stated in one place. By default Supermemory usesdreaming: "dynamic" — related documents are grouped so memories form from coherent units (e.g. a real multi-turn session), not each isolated write in isolation. That is why production quality is higher when you keep a stable customId on conversations and let dynamic dreaming do its job.
Use dreaming: "instant" when this document must hit the graph immediately (demos, “search right after add”). That path processes the document alone and costs an extra operation.
How to set the flag, statuses, and when done means what: How it works → Dreaming and Processing modes.
Memory types
Automatic forgetting
- Time-based — temporary facts drop after they expire (“exam tomorrow”, “meeting at 3pm today”).
- Contradiction — updates win for “what’s true now.”
- Noise filtering — casual, non-meaningful chatter is less likely to become durable memory.
What you don’t do
You do not hand-maintain the graph. You:- Ingest under a container tag
- Wait for the pipeline when needed
- Search or load a profile
Related in the docs
How it works
Ingest pipeline, statuses, and outputs.
Memory vs RAG
When to use memory vs document retrieval.
Profiles
Static + dynamic context built from the graph.
Quickstart
See entity chains in a full conversation + document flow.