Skip to main content
Send any raw content to Supermemory — conversations, documents, files, URLs. We extract the memories automatically.
Use customId to identify your content (conversation ID, document ID, etc.). This enables updates and prevents duplicates.

Quick Start

Response:

Updating Content

Use customId to update existing documents or conversations. When you send content with the same customId, Supermemory intelligently processes only what’s new.

Two ways to update:

Option 1: Send only the new content
Option 2: Send the full updated content
Both work — choose what fits your architecture.

Replace entire document

To completely replace a document’s content (not append), use memories.update():
This triggers full reprocessing of the document. If you only update metadata (no content change), the document is updated in place with no reindexing.

Formatting conversations

Format your conversations however you want. Supermemory handles any string format:

Upload Files

Upload PDFs, images, and documents directly.

Supported File Types

TypeFormatsProcessing
DocumentsPDF, DOC, DOCX, TXT, MDText extraction, OCR for scans
ImagesJPG, PNG, GIF, WebPOCR text extraction
SpreadsheetsCSV, Google SheetsStructured data extraction
VideosYouTube URLs, MP4Auto-transcription
Limits: 50MB max file size

Parameters

ParameterTypeDescription
contentstringRequired. Any raw content — text, conversations, URLs, HTML
customIdstringRecommended. Your ID for the content (conversation ID, doc ID). Enables updates and deduplication
containerTagstringGroup by user/project. Required for user profiles
metadataobjectKey-value pairs for filtering (strings, numbers, booleans)
filterByMetadataobjectFilter which existing memories are used as context during ingestion. See Filtered Writes
entityContextstringContext for memory extraction on this container tag. Max 1500 chars. See Customization
dreaming"dynamic" | "instant"Processing mode. Default "dynamic". "instant" processes each document on its own and bills one extra operation. See Processing Modes
Content Types:
Container Tags:
Custom IDs (Recommended):
Metadata:
  • No nested objects or arrays
  • Values: string, number, or boolean only
Entity Context:
  • Max 1500 characters
  • Persists on the container tag
  • Combines with org-level filter prompts

Processing Modes

The dreaming 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.
  • "instant" — processes each document on its own right away, and bills one extra operation per document.

Filtered Writes

By default, when you add content, Supermemory uses all existing memories in the space 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 space 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.

How it works

When filterByMetadata 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

filterByMetadata parameter

KeyTypeDescription
filterByMetadataRecord<string, string | number | boolean | string[]>Key-value pairs to filter existing memories by their source document metadata
  • 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:
  1. Validates your request
  2. Stores the document and queues for processing
  3. Extracts content (OCR, transcription, web scraping)
  4. Chunks into searchable memories
  5. Embeds for vector search
  6. Indexes for retrieval
Track progress with GET /v3/documents/{id}:
Process multiple documents with rate limiting:
Tips:
  • Batch size: 3-5 documents at once
  • Delay: 1-2 seconds between requests
  • Use customId to track and deduplicate
StatusErrorCause
400BadRequestErrorMissing required fields, invalid parameters
401AuthenticationErrorInvalid or missing API key
403PermissionDeniedErrorInsufficient permissions
429RateLimitErrorToo many requests or quota exceeded
500InternalServerErrorProcessing failure
Single delete:
Bulk delete by IDs:
Bulk delete by container tag:
Deletes are permanent — no recovery.

Next Steps