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.

Advanced document extraction

Scale and Enterprise include advanced extraction for PDFs: page-by-page OCR with descriptions of figures and diagrams merged into the extracted text. This helps make the visual content in reports, research papers, and technical documents searchable alongside their text. Free, Pro, and Max continue to support standard PDF extraction, including OCR for scanned documents. The advanced extraction tier applies to PDFs; it does not change support for other file types. Use the same uploadFile call shown above. Supermemory selects the extraction tier automatically from your organization’s plan; no additional request parameter is needed. If advanced extraction cannot process a PDF, Supermemory falls back to standard extraction, so figure and diagram descriptions are not guaranteed for every document. See Billing & usage for plan availability.

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