---
title: "Authentifizierung"
description: "Erfahren Sie, wie Sie API-Requests über API keys authentifizieren und Ihre Zugangsdaten sicher verwalten."
---

# Authentifizierung

Alle Requests an die Minds API erfordern eine Authentifizierung über API keys. API keys sind eindeutig Ihrem Account zugeordnet und bieten sicheren Zugriff auf Ihre Ressourcen.

## API key erhalten

1. Melden Sie sich bei Ihrem Minds-Account an
2. Navigieren Sie zu **Settings** → **API Keys**
3. Klicken Sie auf **Generate New API Key**
4. Kopieren Sie Ihren API key sofort (Sie werden ihn später nicht mehr sehen können!)

API keys haben den Präfix `minds_` und sehen so aus: `minds_0000111122223333444455556666777788889999aaaabbbb`

## API key verwenden

Binden Sie Ihren API key im `Authorization`-Header jeder Anfrage ein:

```bash
Authorization: Bearer minds_your_api_key_here
```

### Beispiel-Request

```bash
curl -X GET "https://getminds.ai/api/v1/api-keys" \
  -H "Authorization: Bearer minds_your_api_key"
```

## Best Practices zur Sicherheit

### Halten Sie Ihre Keys geheim

- **Niemals** API keys in Version Control committen
- **Niemals** Keys in öffentlichen Foren oder Chats teilen
- Keys in Umgebungsvariablen oder sicheren Vaults speichern
- Keys regelmäßig aus Sicherheitsgründen rotieren

### Umgebungsvariablen verwenden

```bash
# Key als Umgebungsvariable setzen
export MINDS_API_KEY="minds_your_api_key_here"

# In Requests verwenden
curl -X GET "https://getminds.ai/api/v1/api-keys" \
  -H "Authorization: Bearer $MINDS_API_KEY"
```

### Keys regelmäßig rotieren

Wenn Sie vermuten, dass ein Key kompromittiert wurde:

1. Neuen API key generieren
2. Ihre Anwendungen auf den neuen Key umstellen
3. Alten Key löschen

## API keys verwalten

### Ihre API keys auflisten

```bash
GET /api/v1/api-keys
```

Gibt eine Liste Ihrer API keys mit Metadaten zurück (die tatsächlichen Key-Werte werden nie zurückgegeben):

```json
[
  {
    "id": "key-id",
    "name": "prod",
    "createdAt": "2025-12-10T12:00:00.000Z",
    "lastUsedAt": "2025-12-10T13:00:00.000Z"
  }
]
```

### Neuen API key erstellen

```bash
POST /api/v1/api-keys
```

**Headers:**

```text
Content-Type: application/json
```

**Request Body (optional):**

```json
{
  "name": "prod"
}
```

Das optionale Feld `name` ist eine lesbare Beschriftung für den Key (String, 1–100 Zeichen). Sie hilft beim Identifizieren von Keys in der List-Antwort und im Settings-UI. Whitespace wird getrimmt; ein leerer oder fehlender Wert wird als `null` gespeichert. Ein leerer Request Body wird akzeptiert und erzeugt einen unbenannten Key.

Die Response enthält den tatsächlichen Key (einziger Zeitpunkt, an dem Sie ihn sehen):

```json
{
  "id": "new-key-id",
  "name": "prod",
  "key": "minds_0000111122223333444455556666777788889999aaaabbbb",
  "createdAt": "2025-12-10T12:00:00.000Z"
}
```

#### Beispiel mit name

```bash
curl -X POST "https://getminds.ai/api/v1/api-keys" \
  -H "Authorization: Bearer minds_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"name":"prod"}'
```

⚠️ **Wichtig:** Speichern Sie den `key`-Wert sofort! Sie werden ihn später nicht mehr abrufen können.

### API key löschen

```bash
DELETE /api/v1/api-keys/{keyId}
```

Bei Erfolg wird `204 No Content` mit leerem Body zurückgegeben.

## Authentifizierungsfehler

### 401 Unauthorized

Ihr API key fehlt oder ist ungültig.

```json
{
  "statusCode": 401,
  "statusMessage": "Unauthorized",
  "message": "Invalid or missing API key"
}
```

**Lösungen:**

- Prüfen Sie, ob Sie den `Authorization`-Header eingebunden haben
- Verifizieren Sie, dass Ihr API key korrekt ist
- Stellen Sie sicher, dass Sie das Präfix `Bearer` verwenden
- Generieren Sie einen neuen Key, falls der alte gelöscht wurde

## Plan-basierter Zugriff

API-Zugriff ist eine unterstützte Paid-Plan-Funktion und unterliegt den im Produkt angezeigten oder vertraglich vereinbarten Ressourcen-, Antwort- und Workspace-Limits. Limits nicht fest einprogrammieren, sondern strukturierte `PLAN_LIMIT`- und `plan_limited`-Antworten behandeln. Der Individual-Plan erscheint in API-Payloads als `"premium"`.

[Pläne ansehen](/pricing)
