> ## Documentation Index
> Fetch the complete documentation index at: https://supermemory-temp-snowcone-command.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Supported Content Types

> All the content formats Supermemory can ingest and process

Supermemory automatically extracts and indexes content from various formats. Just send it—we handle the rest. See [Add Memories](/add-memories) to learn how to ingest content via the API.

## Text Content

Raw text, conversations, notes, or any string content.

```typescript theme={null}
await client.add({
  content: "User prefers dark mode and uses vim keybindings",
  containerTags: ["user_123"]
});
```

**Best for:** Chat messages, user preferences, notes, logs, transcripts.

***

## URLs & Web Pages

Send a URL and Supermemory fetches, extracts, and indexes the content.

```typescript theme={null}
await client.add({
  content: "https://docs.example.com/api-reference",
  containerTags: ["documentation"]
});
```

**Extracts:** Article text, headings, metadata. Strips navigation, ads, boilerplate.

***

## Documents

### PDF

```typescript theme={null}
await client.add({
  content: pdfBase64,
  contentType: "pdf",
  title: "Q4 Financial Report"
});
```

**Extracts:** Text, tables, headers. OCR for scanned documents.

### Microsoft Office

| Format     | Extension | Content Type |
| ---------- | --------- | ------------ |
| Word       | `.docx`   | `docx`       |
| Excel      | `.xlsx`   | `xlsx`       |
| PowerPoint | `.pptx`   | `pptx`       |

```typescript theme={null}
await client.add({
  content: docxBase64,
  contentType: "docx",
  title: "Product Roadmap"
});
```

### Google Workspace

Automatically handled via [Google Drive connector](/connectors/google-drive):

* Google Docs
* Google Sheets
* Google Slides

***

## Code & Markdown

```typescript theme={null}
// Markdown
await client.add({
  content: markdownContent,
  contentType: "md",
  title: "README.md"
});

// Code files (auto-detected language)
await client.add({
  content: codeContent,
  contentType: "code",
  metadata: { language: "typescript" }
});
```

**Extracts:** Structure, headings, code blocks with syntax awareness.

Code is chunked using [code-chunk](https://github.com/supermemoryai/code-chunk), which understands AST boundaries to keep functions, classes, and logical blocks intact. See [Super RAG](/concepts/super-rag) for how Supermemory optimizes chunking for each content type.

***

## Images

```typescript theme={null}
await client.add({
  content: imageBase64,
  contentType: "image",
  title: "Architecture Diagram"
});
```

**Extracts:** OCR text, visual descriptions, diagram interpretations.

**Supported:** PNG, JPG, JPEG, WebP, GIF

***

## Audio & Video

```typescript theme={null}
// Audio
await client.add({
  content: audioBase64,
  contentType: "audio",
  title: "Customer Call Recording"
});

// Video
await client.add({
  content: videoBase64,
  contentType: "video",
  title: "Product Demo"
});
```

**Extracts:** Transcription, speaker detection, topic segmentation.

**Supported:** MP3, WAV, M4A, MP4, WebM

***

## Structured Data

### JSON

```typescript theme={null}
await client.add({
  content: JSON.stringify(userData),
  contentType: "json",
  title: "User Profile Data"
});
```

### CSV

```typescript theme={null}
await client.add({
  content: csvContent,
  contentType: "csv",
  title: "Sales Data Q4"
});
```

***

## File Upload

For binary files, encode as base64:

```typescript theme={null}
import { readFileSync } from 'fs';

const file = readFileSync('./document.pdf');
const base64 = file.toString('base64');

await client.add({
  content: base64,
  contentType: "pdf",
  title: "document.pdf"
});
```

***

## Auto-Detection

If you don't specify `contentType`, Supermemory auto-detects:

```typescript theme={null}
// URL detected automatically
await client.add({ content: "https://example.com/page" });

// Plain text detected automatically
await client.add({ content: "User said they prefer email contact" });
```

<Note>
  For binary content (files), always specify `contentType` for reliable processing.
</Note>

***

## Content Limits

| Type  | Max Size                   |
| ----- | -------------------------- |
| Text  | 1MB                        |
| Files | 50MB                       |
| URLs  | Fetched content up to 10MB |

<Tip>
  For large files, consider chunking or using [connectors](/connectors/overview) for automatic sync.
</Tip>

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Add Memories" icon="plus" href="/add-memories">
    Upload content via the API
  </Card>

  <Card title="Super RAG" icon="bolt" href="/concepts/super-rag">
    How content is chunked and indexed
  </Card>
</CardGroup>
