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

# Quickstart

> API-Key erstellen, Agenten auflisten und die erste Chat-Anfrage senden — in wenigen Minuten.

In wenigen Minuten haben Sie einen API-Key erstellt, die verfügbaren Agenten Ihrer Instanz aufgelistet und die erste Anfrage an einen Agent gesendet. Die Beispiele nutzen die Base-URL `https://<deine-instanz>-api.localmind.ai/v1` — ersetzen Sie `<deine-instanz>` durch den Host Ihrer Instanz (beachten Sie das `-api`-Suffix).

<Warning>
  Sie brauchen Zugriff auf eine Localmind-Instanz und mindestens einen Space mit einem konfigurierten Agent. Ihr API-Key kann nie mehr als Ihre eigene Rolle — Schreibzugriff haben Sie zum Beispiel immer in Ihrem [Privaten Space](/api-reference/Authentifizierung-und-Rollen).
</Warning>

<Steps>
  <Step title="API-Key erstellen">
    Öffnen Sie **Benutzereinstellungen → API-Schlüssel** und legen Sie einen neuen Schlüssel an (Admins können Schlüssel auch über **Einstellungen → Sicherheit → API-Schlüssel** ausstellen). Wählen Sie den Scope **„alle Spaces"** oder **„ausgewählte Spaces"**. Der Key gilt nur für Ihre Heim-Organisation und wird **nur einmal** angezeigt — kopieren Sie ihn sofort.

    ```bash theme={null}
    # Linux/macOS
    export LOCALMIND_API_KEY="sk-…"

    # Windows PowerShell
    $env:LOCALMIND_API_KEY = "sk-…"
    ```

    <Tip>
      Speichern Sie API-Keys nie im Code-Repository. Verwenden Sie Umgebungsvariablen oder ein Secret-Management-Tool. Das vollständige Zugriffsmodell beschreibt [Authentifizierung und Rollen](/api-reference/Authentifizierung-und-Rollen).
    </Tip>
  </Step>

  <Step title="Verfügbare Agenten auflisten">
    `GET /v1/models` liefert alle Agenten, auf die Ihr Key Zugriff hat — im OpenAI-`/models`-Format. Das Feld `id` ist die **Agent-UUID**, die Sie im nächsten Schritt als `model` verwenden; `name` dient nur der Lesbarkeit.

    ```bash theme={null}
    curl "https://<deine-instanz>-api.localmind.ai/v1/models" \
      -H "Authorization: Bearer $LOCALMIND_API_KEY"
    ```

    ```json theme={null}
    {
      "object": "list",
      "data": [
        {
          "id": "{agent_id}",
          "name": "Bürgerservice Assistent",
          "object": "model",
          "created": 1781346834,
          "owned_by": "{org_id}"
        }
      ]
    }
    ```
  </Step>

  <Step title="Erste Anfrage senden">
    Senden Sie eine Chat-Anfrage an `POST /v1/chat/completions`. Setzen Sie `model` auf die **Agent-UUID** aus dem vorigen Schritt — **kein** Modellname wie `gpt-4`. Das Modell, die Tools und die Wissensquellen verwendet der Agent automatisch.

    <CodeGroup>
      ```python Python (OpenAI-SDK) theme={null}
      import os
      from openai import OpenAI

      client = OpenAI(
          base_url="https://<deine-instanz>-api.localmind.ai/v1",
          api_key=os.environ["LOCALMIND_API_KEY"],
      )

      # verfügbare Agenten (nur die, auf die Ihr Key Zugriff hat)
      for m in client.models.list().data:
          print(m.id, m.name)

      resp = client.chat.completions.create(
          model="{agent_id}",                       # Agent-UUID, kein Modellname
          messages=[{"role": "user", "content": "Wie beantrage ich einen Reisepass?"}],
      )
      print(resp.choices[0].message.content)
      ```

      ```bash cURL theme={null}
      curl -X POST "https://<deine-instanz>-api.localmind.ai/v1/chat/completions" \
        -H "Authorization: Bearer $LOCALMIND_API_KEY" \
        -H "Content-Type: application/json" \
        -d '{
          "model": "{agent_id}",
          "messages": [
            {"role": "user", "content": "Wie beantrage ich einen Reisepass?"}
          ]
        }'
      ```

      ```javascript JavaScript (fetch) theme={null}
      const response = await fetch(
        "https://<deine-instanz>-api.localmind.ai/v1/chat/completions",
        {
          method: "POST",
          headers: {
            Authorization: `Bearer ${process.env.LOCALMIND_API_KEY}`,
            "Content-Type": "application/json",
          },
          body: JSON.stringify({
            model: "{agent_id}",                    // Agent-UUID, kein Modellname
            messages: [
              { role: "user", content: "Wie beantrage ich einen Reisepass?" },
            ],
          }),
        },
      );

      const data = await response.json();
      console.log(data.choices[0].message.content);
      ```
    </CodeGroup>
  </Step>
</Steps>

## Die Antwort

Die Response folgt dem OpenAI-Chat-Completions-Format. Die Assistent-Antwort liegt in `choices[0].message.content`:

```json theme={null}
{
  "id": "chatcmpl-…",
  "object": "chat.completion",
  "created": 1781434980,
  "model": "{agent_id}",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Einen Reisepass beantragen Sie …",
        "tool_calls": null,
        "refusal": null
      },
      "finish_reason": "stop",
      "logprobs": null
    }
  ],
  "usage": {
    "prompt_tokens": 3787,
    "completion_tokens": 6,
    "total_tokens": 3793
  },
  "system_fingerprint": null,
  "service_tier": null
}
```

<Check>
  Sie erhalten `HTTP 200` und ein `chat.completion`-Objekt mit der Agent-Antwort in `choices[0].message.content`. Damit ist Ihr Setup vollständig — Sie können jetzt eigene Workflows bauen.
</Check>

<Note>
  Erhalten Sie `404 {"detail":"Model '…' not found"}`, ist die `model`-UUID kein gültiger Agent — listen Sie die Agenten erneut mit `GET /v1/models`. Erhalten Sie `401`, prüfen Sie den `Authorization`-Header. Siehe [Konventionen und Fehler](/api-reference/Konventionen-und-Fehler).
</Note>

## Nächste Schritte

<CardGroup cols={2}>
  <Card title="OpenAI-kompatibel" icon="code" href="/api-reference/OpenAI-Kompatibel">
    Alle Parameter von `/v1/chat/completions`, Streaming und JSON-Mode.
  </Card>

  <Card title="Use Cases" icon="lightbulb" href="/api-reference/Use-Cases">
    Fertige Rezepte: OpenAI-Drop-in, RAG, Chatbot, n8n, Dokumenten-Organisation.
  </Card>

  <Card title="Dokumente und Suche" icon="search" href="/api-reference/Dokumente-und-Suche">
    Dokumente hochladen und per Hybrid Search semantisch abfragen.
  </Card>

  <Card title="Authentifizierung und Rollen" icon="shield-check" href="/api-reference/Authentifizierung-und-Rollen">
    Wie Ihr Key Rollen erbt, an die Org gebunden ist und den Zugriff verengt.
  </Card>
</CardGroup>
