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.URLs & Web pages
Send a URL and Supermemory fetches, extracts, and indexes the content.Documents
uploadFile, not add — pass a stream, not base64:
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 sameuploadFile 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 throughadd like any other string content — no file upload needed:
Images
fileType: "image" and mimeType are both required so Supermemory knows exactly how to process it:
Audio & video
Video has a dedicatedfileType; audio is uploaded the same way and detected from the file itself:
Structured data
JSON and CSV are text — stringify and send them throughadd(), no file upload needed.
JSON
CSV
File upload
For any binary file, useuploadFile — it accepts a stream, not base64:
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:
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.
Next steps
Add memories
Upload content via the API
Super RAG
How content is chunked and indexed