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

# Quickstart

> Create a tenant, get an API key, ingest a document, and query it.

# Quickstart

Get up and running with Remem in 4 steps.

## Prerequisites

* A running Remem instance (local or hosted)
* `curl` or any HTTP client

<Steps>
  <Step title="Sign Up (Public)">
    Create your tenant and receive your first API key in a single call.

    ```bash theme={null}
    curl -X POST https://api.remem.io/public/signup \
      -H "Content-Type: application/json" \
      -d '{
        "name": "Acme Corp",
        "email": "admin@acme.com"
      }'
    ```

    **Response:**

    ```json theme={null}
    {
      "tenant_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "Acme Corp",
      "email": "admin@acme.com",
      "api_key": "vlt_abc123def456ghi789jkl012mno345pqr678stu901"
    }
    ```

    <Note>
      This endpoint returns **both** `tenant_id` and `api_key` in a single response. The `tenant_id` identifies your isolated workspace, and the `api_key` authenticates all future requests.
    </Note>

    <Info>
      New workspaces start with a `default` namespace. You can add more later from the dashboard or the namespace management API.
    </Info>

    <Warning>
      The full API key is only shown once during signup. Store it securely (e.g., in a password manager or environment variable). If you lose it, create a new key from the dashboard or via the management API with a portal JWT.
    </Warning>
  </Step>

  <Step title="Ingest a Document">
    Upload your first document to Remem. Documents can be ingested via JSON body or multipart file upload.

    **JSON body example:**

    ```bash theme={null}
    curl -X POST https://api.remem.io/v1/documents/ingest \
      -H "Content-Type: application/json" \
      -H "X-API-Key: vlt_abc123def456ghi789jkl012mno345pqr678stu901" \
      -d '{
        "title": "Meeting Notes - Q1 Planning",
        "content": "We decided to focus on three priorities: expand to EU markets, launch the mobile app by March, and hire two more engineers.",
        "metadata": {"type": "meeting_notes", "date": "2026-01-15"},
        "source_id": "slack://workspace123/channel456/msg789"
      }'
    ```

    **Response:**

    ```json theme={null}
    {
      "job_id": "job_xyz789abc123",
      "document_id": null,
      "message": "Document queued for ingestion"
    }
    ```

    <Note>
      **Ingestion is asynchronous.** The document is queued for processing and won't be immediately searchable. Behind the scenes, Remem encrypts the content, chunks it into semantic units, generates embeddings, and classifies it using AI. Most documents are searchable within 5-15 seconds.
    </Note>

    <Info>
      If you want the document UUID returned immediately, set `"return_id": true` in the ingest payload.
    </Info>

    <Tip>
      Set a `source_id` to correlate documents with external systems (Slack message IDs, task IDs, sync jobs, session checkpoints). It is stored in document metadata for later traceability.
    </Tip>

    **Multipart file upload alternative:**

    ```bash theme={null}
    curl -X POST https://api.remem.io/v1/documents/ingest \
      -H "X-API-Key: vlt_abc123def456ghi789jkl012mno345pqr678stu901" \
      -F "file=@/path/to/document.pdf" \
      -F "metadata={\"type\": \"contract\", \"client\": \"Acme\"}"
    ```
  </Step>

  <Step title="Query Your Context">
    Retrieve relevant context using Remem's query API. You can choose between **Fast mode** (optimized for speed, `<100ms`) or **Rich mode** (includes AI synthesis, `<2s`).

    ### Fast Mode

    Returns raw chunks ranked by semantic similarity. Best for latency-sensitive use cases or when you want to process results yourself.

    ```bash theme={null}
    curl -X POST https://api.remem.io/v1/query \
      -H "Content-Type: application/json" \
      -H "X-API-Key: vlt_abc123def456ghi789jkl012mno345pqr678stu901" \
      -d '{
        "query": "What are our Q1 priorities?",
        "mode": "fast"
      }'
    ```

    **Response:**

    ```json theme={null}
    {
      "mode": "fast",
      "query": "What are our Q1 priorities?",
      "results": [
        {
          "document_id": "doc_123e4567-e89b-12d3-a456-426614174000",
          "title": "Meeting Notes - Q1 Planning",
          "category": "work",
          "tags": ["meeting", "planning", "strategy"],
          "sensitivity": "internal",
          "chunks": [
            {
              "chunk_id": "chunk_abc123",
              "content": "We decided to focus on three priorities: expand to EU markets, launch the mobile app by March, and hire two more engineers.",
              "score": 0.92,
              "metadata": {"type": "meeting_notes", "date": "2026-01-15"}
            }
          ]
        }
      ],
      "total_chunks": 1,
      "latency_ms": 45.2
    }
    ```

    ### Rich Mode

    Includes AI-generated synthesis that answers your query in natural language. Best for end-user applications or agent workflows.

    ```bash theme={null}
    curl -X POST https://api.remem.io/v1/query \
      -H "Content-Type: application/json" \
      -H "X-API-Key: vlt_abc123def456ghi789jkl012mno345pqr678stu901" \
      -d '{
        "query": "What are our Q1 priorities?",
        "mode": "rich"
      }'
    ```

    **Response:**

    ```json theme={null}
    {
      "mode": "rich",
      "query": "What are our Q1 priorities?",
      "synthesis": "Based on your Q1 planning meeting, your team has three main priorities: (1) expanding to EU markets, (2) launching the mobile app by March, and (3) hiring two more engineers.",
      "results": [
        {
          "document_id": "doc_123e4567-e89b-12d3-a456-426614174000",
          "title": "Meeting Notes - Q1 Planning",
          "category": "work",
          "tags": ["meeting", "planning", "strategy"],
          "sensitivity": "internal",
          "chunks": [
            {
              "chunk_id": "chunk_abc123",
              "content": "We decided to focus on three priorities: expand to EU markets, launch the mobile app by March, and hire two more engineers.",
              "score": 0.92,
              "metadata": {"type": "meeting_notes", "date": "2026-01-15"}
            }
          ]
        }
      ],
      "total_chunks": 1,
      "latency_ms": 1847.3
    }
    ```

    <Note>
      **Fast mode** returns results in `<100ms` and is ideal for autocomplete, background context retrieval, or when you want to handle synthesis yourself. **Rich mode** adds AI-powered synthesis and takes \~1-2s, making it perfect for chatbots, Q\&A interfaces, or when you want a human-readable answer.
    </Note>
  </Step>

  <Step title="Explore Further">
    Now that you've seen the basics, dive deeper into Remem's capabilities:

    * **[Documents & Ingestion](/documents)** — Learn about supported formats, metadata, chunking strategies, and batch ingestion.
    * **[Querying](/querying)** — Explore filtering, sensitivity scoping, reranking, and advanced query options.
    * **[Namespaces](/namespaces)** — Learn how workspace sub-isolation, default namespaces, and API-key grants work.
    * **[Data Lifecycle](/data-lifecycle)** — Understand how documents are processed, updated, archived, and deleted.
    * **[MCP Integration](/mcp-integration)** — Connect Remem to Claude Desktop or other MCP-compatible tools for seamless context injection.
    * **[CLI](/cli)** — Use `remem-cli` for terminal-based query and inspection workflows.
    * **[Agent Toolkit](/agent-toolkit)** — Install `remem-dev-sessions` for Claude/Codex automatic session memory.
    * **[Authentication](/authentication)** — Manage API keys, understand sensitivity levels, and configure tenant settings.
  </Step>
</Steps>

## Next Steps

* Set up continuous ingestion from Slack, Google Drive, or Notion
* Configure sensitivity scoping to control what data is surfaced in different contexts
* Integrate Remem with your LLM application or agent framework
* Explore the MCP server for Claude Desktop integration
