
# Ihre Umgebungen für die CLI auflisten

`GET https://api.keenauth.com/v1/environments` · aufgerufen von `keenauth env list`

Listet die Umgebungen auf, mit denen Sie über die CLI arbeiten können: die Umgebungen des Kontos, bei dem Sie sich mit `keenauth login` angemeldet haben und in denen Sie eine Dashboard-Rolle besitzen, über eine Zuweisung auf Konto-, Projekt- oder Umgebungsebene. Gelöschte Umgebungen und Umgebungen gelöschter Projekte werden nicht aufgeführt. Sie rufen diesen Endpunkt nicht selbst auf; `keenauth env list` zeigt die Liste an und `keenauth env use <environment_id>` wählt eine aus.

Wenn Sie Mitglied mehrerer Konten sind, enthält die Liste nur die Umgebungen des Kontos Ihrer aktuellen Anmeldung; melden Sie sich beim anderen Konto an, um dessen Umgebungen zu sehen. Wenn Sie in keiner Umgebung eine Rolle haben, ist die Liste leer.

## Anfrage

Header:

| Header | Erforderlich | Beschreibung |
| --- | --- | --- |
| `Authorization` | ja | `DPoP <access token>`: das Zugriffstoken, das die CLI bei Ihrer Anmeldung erhalten hat. |
| `DPoP` | ja | Ein DPoP-Nachweis für diese Anfrage (`htm` `GET`, `htu` `https://api.keenauth.com/v1/environments` ohne Query), signiert mit dem Schlüssel, an den das Zugriffstoken gebunden ist; er enthält den Hash des Zugriffstokens und den Server-Nonce. |

Query-Parameter:

| Parameter | Beschreibung |
| --- | --- |
| `limit` | Seitengröße, 1 bis 100; Standard 20. |
| `after` | Der Wert `list_metadata.after` der vorherigen Seite. |

Die Liste wird nur vorwärts paginiert: `before` und `order` werden mit `validation_failed` abgelehnt.

## Antwort

`200 OK` mit `Cache-Control: no-store`, neueste Umgebung zuerst:

| Feld | Beschreibung |
| --- | --- |
| `data[].id` | Die Umgebung (`env_…`); verwenden Sie sie mit `keenauth env use` und der Anfrage für das Verwaltungstoken. |
| `data[].slug` | Das DNS-Label der Umgebung (`<slug>.<region>.keenauth.app`). |
| `data[].display_name` | Der Name der Umgebung. |
| `data[].environment_type` | `production`, `staging` oder `development`. |
| `data[].region` | Die Region der Daten der Umgebung, zum Beispiel `eu`. |
| `data[].project_id` | Das Projekt (`proj_…`). |
| `data[].project_name` | Der Name des Projekts. |
| `data[].account_id` | Das Konto (`acct_…`). |
| `data[].dashboard_role` | Ihre Dashboard-Rolle in der Umgebung (`owner`, `admin`, `developer`, `support`, `billing`, `viewer` oder `custom`, wenn nur benutzerdefinierte Rollen sie abdecken). |
| `data[].created_at` | Zeitpunkt der Erstellung der Umgebung (RFC 3339, UTC). |
| `list_metadata.after` | Cursor der nächsten Seite; `null` auf der letzten Seite. |
| `list_metadata.before` | Immer `null`. |

Der Cursor ist an Sie und das Konto gebunden; er funktioniert nicht für einen anderen Benutzer oder eine andere Anmeldung.

## Fehler

| HTTP | Code | Wann |
| --- | --- | --- |
| 400 | `invalid_cursor` | Der Cursor `after` ist fehlerhaft, verändert oder wurde für einen anderen Benutzer oder ein anderes Konto ausgestellt. |
| 401 | `unauthenticated` | Es wurde kein Zugriffstoken gesendet. |
| 401 | `invalid_token` | Das Zugriffstoken ist ungültig, abgelaufen oder gehört nicht zur CLI; melden Sie sich mit `keenauth login` erneut an. |
| 401 | `invalid_dpop_proof` | Der DPoP-Nachweis fehlt, ist mehrfach vorhanden oder passt nicht zur Anfrage oder zum Schlüssel des Tokens. |
| 401 | `use_dpop_nonce` | Wiederholen Sie die Anfrage mit einem Nachweis, der den Nonce aus dem Antwort-Header `DPoP-Nonce` enthält. |
| 401 | `insufficient_user_authentication` | Multi-Faktor-Authentifizierung ist erforderlich; melden Sie sich erneut an. |
| 422 | `validation_failed` | `limit` ist keine ganze Zahl von 1 bis 100, ein Parameter ist mehrfach vorhanden, oder `before` bzw. `order` wurde gesendet. |

## Beispiel

```bash
curl "https://api.keenauth.com/v1/environments?limit=50" \
  -H "Authorization: DPoP $ACCESS_TOKEN" \
  -H "DPoP: $DPOP_PROOF"
```
