id to identify content and avoid duplicates, and taskType: "superrag" if you just need it searchable, not remembered — that’s 5x cheaper per token.
Every write goes to one namespace (what v3/v4 called a container tag). The namespace sits in the URL path, never in the body.
Quick start
- TypeScript
- Python
- cURL
Updating content
Useid to update existing documents or conversations. When you send content with the same id, Supermemory intelligently processes only what’s new.
Two ways to update:
Option 1: Send only the new contentReplace entire document
To completely replace a document’s content (not append), usedocuments.update():
Formatting conversations
Format your conversations however you want. Supermemory handles any string format:Upload files
Upload PDFs, images, and documents directly. This is a multipart request, sometadata is a JSON string here, not an object.
- TypeScript
- Python
- cURL
Supported file types
Limits: 50MB max file size
Scale and Enterprise include advanced document extraction for PDFs, with page-by-page OCR and descriptions of figures and diagrams. It is selected automatically from your organization’s plan; no extra upload parameter is needed. Free, Pro, and Max keep standard PDF extraction, including OCR for scans.
Parameters
namespace, taskType, and dreaming are top-level keys on the SDK call (taskType and dreaming are query parameters on the HTTP route). Everything else goes in body.
Parameter details & examples
Parameter details & examples
Content Types:Namespaces:IDs (Recommended):Metadata:
- No nested objects or arrays
- Values: string, number, or boolean only
- Max 1500 characters
- Persists on the namespace
- Combines with org-level organizational context
Processing modes
Dreaming: dynamic vs instant
Thedreaming parameter controls how Supermemory turns a document into memories.
"dynamic"(default) — groups related documents together so memories form from coherent, logical units rather than one isolated entry at a time. A fresh namespace can show zero memories and an empty profile for several minutes."instant"— processes each document on its own right away, and bills one extra operation per document. Use it for quickstarts, tests, and any flow that reads memories or a profile right afteradd.
Memory vs SuperRAG ingestion
ThetaskType parameter controls whether that content also feeds the memory pipeline.
"memory"(default) — chunks/embeds for search and extracts facts, updates the user’s profile, and links into the graph."superrag"— chunks/embeds for search only. No fact extraction, no profile updates. Priced at 5x cheaper per token than"memory".
"superrag" for reference material you want searchable but that shouldn’t shape what Supermemory knows about a user. Full explanation: SuperRAG → Ingesting as pure SuperRAG.
Filtered writes
By default, when you add content, Supermemory uses all existing memories in the namespace as context for generating new memories. With filtered writes, you can scope this context to only memories from documents matching specific metadata. This is useful when you have many documents in a namespace but want new memories to build on top of a specific subset — for example, only memories from a particular source, category, or user.The metadata itself is still written to the document, but the memories will only be built on top of what’s already there matching the filter.
- TypeScript
- Python
- cURL
How it works
Whengroup is provided:
- Profile memories (static context) are filtered to only those from documents matching the metadata
- Similar memories used as context during ingestion are filtered the same way
- The new document’s own metadata is written normally — the filter only affects which existing memories are used as context
group parameter
- Scalar values (string, number, boolean) match exactly
- Array values match if any value in the array matches (OR logic)
- Multiple keys are combined with AND logic
Processing pipeline
When you add content, Supermemory:- Validates your request
- Stores the document and queues for processing
- Extracts content (OCR, transcription, web scraping)
- Chunks into searchable memories
- Embeds for vector search
- Indexes for retrieval
GET /ns/{namespace}/document/{id}:
Batch upload
Batch upload
Process multiple documents with rate limiting:Tips:
- Batch size: 3-5 documents at once
- Delay: 1-2 seconds between requests
- Use
idto track and deduplicate - For large backfills use
documents.batchAddinstead. See Backfill historical data
Error handling
Error handling
Delete Content
Delete Content
Delete by IDs (one or many, Supermemory or your own ids):Delete everything in a namespace:Deletes are permanent — no recovery.
Next steps
- How to backfill historical data — Import dated content with the batch API
- Search Memories — Query your content
- User Profiles — Get user context
- Organizing & Filtering — Namespaces and metadata