> ## Documentation Index
> Fetch the complete documentation index at: https://supermemory.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Ingest

> Turn source content into searchable memory and keep it current

Ingestion gives Supermemory the source material it uses to build searchable context and memories. Add new content or update an existing source without creating a disconnected copy.

| Operation | Purpose |
| - | - |
| `POST /ns/{namespace}/document` | Add text or a URL; reuse an ID to build on an existing document |
| `POST /ns/{namespace}/document/batch` | Bring in up to 600 documents together |
| `POST /ns/{namespace}/document/file` | Turn an uploaded file into searchable memory |
| `PATCH /ns/{namespace}/document/{id}` | Update metadata or replace canonical content |
| `POST /ns/{namespace}/document/file/{id}` | Completely replace a file-backed document |
| `PATCH /ns/{namespace}/document/file/{id}` | Refresh selected file details or its source |

<CodeGroup>
  ```ts TypeScript theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  const { id, status } = await supermemory.add("user_1", {
    content: "The user prefers concise project updates",
    id: "conv_1",
    metadata: { source: "chat" },
    dreaming: "instant",
  })
  ```

  ```bash curl theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  curl -X POST "https://api.supermemory.ai/ns/user_1/document?dreaming=instant" \
    -H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"content":"The user prefers concise project updates","id":"conv_1","metadata":{"source":"chat"}}'
  ```
</CodeGroup>

The `dynamic` processing mode (default) groups related documents together so memories form from coherent, logical units rather than one isolated entry at a time. Use `instant` to process each document on its own right away; it bills one extra operation per document.

Memories appear quickly only with `dreaming: "instant"`. With the default `dynamic` mode, a fresh namespace can show zero memories and an empty profile for several minutes while extraction is batched. Use `instant` in quickstarts and tests.

Every request is scoped to a namespace, keeping each user, project, or tenant isolated. See [document write migration](/docs/migration/api-v5-document-writes).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.