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

# Authentifizierung

> So authentifizieren Sie sich bei der Wappfy API mit API-Schluesseln oder JWT-Token.

# Authentifizierung

Die Wappfy API unterstuetzt zwei Authentifizierungsmethoden. Alle Anfragen muessen eine davon enthalten.

## API-Schluessel (empfohlen)

Uebergeben Sie Ihren API-Schluessel im `X-Api-Key`-Header:

```bash theme={null}
curl https://api.wappfy.io/api/instances \
  -H "X-Api-Key: wappfy_sk_abc123def456..."
```

### API-Schluessel erstellen

API-Schluessel werden ueber das Dashboard oder die API erstellt. Schluessel sind einem Benutzer zugeordnet und haben die gleichen Berechtigungen wie das Benutzerkonto.

```bash theme={null}
curl -X POST https://api.wappfy.io/api/api-keys \
  -H "Authorization: Bearer YOUR_SUPABASE_JWT" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Production Key" }'
```

<Warning>
  Der Schluesselwert wird nur einmalig bei der Erstellung angezeigt. Speichern Sie ihn sicher.
</Warning>

## Bearer-Token (Supabase JWT)

Uebergeben Sie ein Supabase-Zugriffstoken im `Authorization`-Header:

```bash theme={null}
curl https://api.wappfy.io/api/instances \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
```

JWT-Token sind kurzlebig und muessen erneuert werden. Sie werden typischerweise vom Frontend-Dashboard verwendet, nicht fuer Server-zu-Server-Integrationen.

## Best Practices fuer Sicherheit

<AccordionGroup>
  <Accordion title="API-Schluessel fuer Server-zu-Server verwenden">
    API-Schluessel laufen nicht ab und sind einfacher fuer Backend-Integrationen zu verwalten.
  </Accordion>

  <Accordion title="Schluessel regelmaessig rotieren">
    Wenn ein Schluessel kompromittiert wurde, loeschen Sie ihn und erstellen Sie einen neuen.
  </Accordion>

  <Accordion title="Immer HTTPS verwenden">
    Alle API-Anfragen muessen HTTPS verwenden. HTTP-Anfragen werden abgelehnt.
  </Accordion>

  <Accordion title="Schluessel nicht im Frontend-Code exponieren">
    API-Schluessel sollten nur in serverseitigem Code verwendet werden, niemals in clientseitigem JavaScript.
  </Accordion>
</AccordionGroup>

## Fehlerantworten

| Status | Beschreibung                                       |
| ------ | -------------------------------------------------- |
| `401`  | Fehlender oder ungueltiger Authentifizierungstoken |
| `403`  | Unzureichende Berechtigungen fuer diese Ressource  |
