Skip to main content
Supermemory automatically extracts and indexes content from various formats. There are two entry points: client.add() for text and URLs, client.documents.uploadFile() for actual files. See Add Memories to learn how to ingest content via the API.

Text Content

Raw text, conversations, notes, or any string content.
Best for: Chat messages, user preferences, notes, logs, transcripts.

URLs & Web Pages

Send a URL and Supermemory fetches, extracts, and indexes the content.
Extracts: Article text, headings, metadata. Strips navigation, ads, boilerplate. URL extraction is powered by Markdowner.

Documents

PDF

Files are binary, so they go through uploadFile, not add — pass a stream, not base64:
Extracts: Text, tables, headers. OCR for scanned documents.

Microsoft Office

Word, Excel, and PowerPoint files upload the same way — Supermemory detects the type from the file itself:

Google Workspace

Automatically handled via Google Drive connector:
  • Google Docs
  • Google Sheets
  • Google Slides

Code & Markdown

Both are plain text, so they go through add like any other string content — no file upload needed:
Extracts: Structure, headings, code blocks with syntax awareness. Code is chunked using code-chunk, which understands AST boundaries to keep functions, classes, and logical blocks intact. See Super RAG for how Supermemory optimizes chunking for each content type.

Images

fileType: "image" and mimeType are both required so Supermemory knows exactly how to process it:
Extracts: OCR text, visual descriptions, diagram interpretations. Supported: PNG, JPG, JPEG, WebP, GIF

Audio & Video

Video has a dedicated fileType; audio is uploaded the same way and detected from the file itself:
Extracts: Transcription, speaker detection, topic segmentation. Supported: MP3, WAV, M4A, MP4, WebM

Structured Data

JSON and CSV are text — stringify and send them through add(), no file upload needed.

JSON

CSV


File Upload

For any binary file, use uploadFile — it accepts a stream, not base64:
No Node fs access? uploadFile also accepts a web File, a fetch Response, or the SDK’s toFile helper:

Auto-Detection

add() tells URLs and plain text apart on its own — no extra flag needed:
For files, uploadFile detects type from the file itself in most cases. fileType only exists to force specific processing — and it’s required (along with mimeType) for images and video.

Content Limits

Typical processing time: text is near-instant; PDFs take 1-5s; images 2-10s; video 10s+; webpages 1-3s. Text content is chunked at the sentence level with a 2-sentence overlap between chunks.
For large files, consider chunking or using connectors for automatic sync.

Next Steps

Add Memories

Upload content via the API

Super RAG

How content is chunked and indexed