Upload files directly to Supermemory for automatic content extraction and processing.

Upload a PDF

Extract text from PDFs with OCR support.
const file = fs.createReadStream('document.pdf');

const response = await client.memories.uploadFile({
  file: file,
  containerTags: 'documents'
});

console.log(response.id);
// Output: pdf_123

Upload Images with OCR

Extract text from images.
const image = fs.createReadStream('screenshot.png');

await client.memories.uploadFile({
  file: image,
  containerTags: 'images'
});

Browser File Upload

Handle browser file uploads.
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('containerTags', 'uploads');

const response = await fetch('https://api.supermemory.ai/v3/documents/file', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${API_KEY}`
  },
  body: formData
});

const result = await response.json();
console.log(result.id);

Upload Multiple Files

Batch upload with rate limiting.
for (const file of files) {
  const stream = fs.createReadStream(file);

  await client.memories.uploadFile({
    file: stream,
    containerTags: 'batch'
  });

  // Rate limit
  await new Promise(r => setTimeout(r, 1000));
}

Supported File Types

Documents

FormatExtensionsProcessing
PDF.pdfText extraction, OCR for scanned pages
Microsoft Word.doc, .docxFull text and formatting extraction
Plain Text.txt, .mdDirect text processing
CSV.csvStructured data extraction

Images

FormatExtensionsProcessing
JPEG.jpg, .jpegOCR text extraction
PNG.pngOCR text extraction
GIF.gifOCR for static images
WebP.webpOCR text extraction

Size Limits

  • Maximum file size: 50MB
  • Recommended size: < 10MB for optimal processing
  • Large files: May take longer to process