# Übersicht und Schlüssel

Die Lockpick-API nutzen die CLI und Assistenten, mit denselben Schlüsseln, Berechtigungen und Limits.

Die Lockpick-API liegt unter `/api/cli/v1` auf Ihrer Lockpick-Adresse. Die CLI und der MCP-Server nutzen beide. Einige Werkzeuge setzen API-Lesevorgänge im Client zusammen: Das Warten fragt einen Scan wiederholt ab, und die Bewertung wendet eine Richtlinie auf den Abschlusszeitpunkt, die Abdeckung und die offenen Befunde an. Die HTTP-Operationen dahinter finden Sie in der [Referenz](/de/docs/api/reference).

## Schlüssel

Jede Anfrage trägt einen Schlüssel als Bearer-Token.

```
curl -H "Authorization: Bearer $LOCKPICK_KEY" https://www.lockpick.app/api/cli/v1/agent/me
```

Einen Schlüssel erhalten Sie, indem Sie sich mit der CLI anmelden, `lockpick login`. Dabei müssen Sie die Anmeldung in Ihrem Browser bestätigen. Schlüssel beginnen mit `lpk_`, tragen die [Berechtigungen](/de/docs/mcp/permissions), die Sie freigegeben haben, und laufen ab, wenn sie nicht genutzt werden. Verwalten Sie sie in Lockpick unter **Zu deiner KI hinzufügen** auf dem Tab **CLI und Schlüssel**.

## Antworten

Jede Antwort ist JSON in derselben Form, mit `data`, wenn es funktioniert hat, und `error`, wenn nicht.

```json title="Antwort"
{ "data": { "sites": [] }, "error": null }
```

Fehlgeschlagene HTTP-Aufrufe liefern `data: null`, eine lesbare `error`-Zeichenkette und einen `errorCode`. Fehler bei Operationen enthalten außerdem `details` mit dem strukturierten Agent-Fehler. Frühe Ablehnungen bei Authentifizierung oder Funktionen können ihn weglassen.

```json title="Operationsfehler"
{
  "data": null,
  "error": "The request limit was reached. Retry in 60 seconds.",
  "errorCode": "RATE_LIMITED",
  "details": {
    "agentCode": "RATE_LIMITED",
    "message": "The request limit was reached.",
    "nextStep": "Wait before trying again.",
    "retryAfterSeconds": 60,
    "webUrl": null,
    "requestId": "req_example"
  }
}
```

`retryAfterSeconds` ist eine Anzahl von Sekunden oder `null`, wenn keine Wartezeit bekannt ist. Eine bekannte Wartezeit steht außerdem im HTTP-Header `Retry-After`. `webUrl` ist ein Link zum nächsten Schritt oder `null`. `requestId` erlaubt dem Support, einen Operationsfehler nachzuverfolgen. MCP-Werkzeuge übernehmen diese Felder in ihr Fehlerobjekt, wobei `agentCode` dort `code` heißt.

| HTTP-Status | Bedeutung                                                                                                                            |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| 400         | Ungültige Eingabe oder nicht unterstützte Version                                                                                    |
| 401         | Fehlende, abgelaufene oder widerrufene Zugangsdaten                                                                                  |
| 402         | Tarif, Websitelimit oder Scan-Kontingent verhindert die Operation                                                                    |
| 403         | Berechtigungsumfang der Zugangsdaten oder Projektzugriff erlaubt die Operation nicht                                                 |
| 404         | Ressource oder Funktion nicht verfügbar                                                                                              |
| 409         | Konflikt, fehlender oder abgelaufener Nachweis oder fehlende oder abgelaufene Freigabe, Abbruch oder erneute Prüfung nicht verfügbar |
| 422         | Ausgabe überschreitet die unterstützte Größe                                                                                         |
| 429         | Anfragelimit erreicht                                                                                                                |
| 500         | Interner Fehler                                                                                                                      |
| 503         | Scan-Kapazität nicht verfügbar                                                                                                       |

> **Good to know**
>
> Die API ist in der Beta-Phase. Die [Referenz](/de/docs/api/reference) listet
> jede Operation mit ihren Eingaben, ihrer Antwort und der Berechtigung, die sie
> braucht. [openapi.json](/openapi.json) beschreibt sie in OpenAPI 3.1.