
# Umgebungskonfiguration abrufen

`GET /fapi/v1/environment` · aufgerufen vom Anmelde-Host der Umgebung

Gibt die öffentliche Konfiguration zurück, die eine Anmeldungsseite benötigt, bevor sie eine Transaktion öffnet: die ersten
Faktoren, die eine neue Transaktion der Anwendung anbietet, den Registrierungsmodus, die aktivierten Sprachen und, wenn
Passkeys angeboten werden, die `rp_id` des Passkeys. Die Antwort enthält keine personenbezogenen Daten, liest kein Cookie
und öffnet keine Transaktion.

## Anfrage

Header:

| Header | Erforderlich | Beschreibung |
| --- | --- | --- |
| `Idp-Client` | ja | SDK-Identifizierung, `<Paket>/<Version> (<Laufzeit>/<Version>)`. |

Abfrageparameter:

| Parameter | Erforderlich | Beschreibung |
| --- | --- | --- |
| `client_id` | ja | Die `client_id` der Anwendung. |

## Antwort

`200 OK`:

| Feld | Beschreibung |
| --- | --- |
| `schema_version` | `1`. |
| `first_factors` | Die Methoden, die eine neue Transaktion anbietet, in dieser Reihenfolge: `password`, `passkey`, `email_otp`, `magic_link`. Leer, wenn die Richtlinie keine Methode erlaubt. |
| `sign_up` | Registrierungsmodus: `open`, `invite_only` oder `closed`. |
| `locales` | `enabled` (aktivierte Sprachen) und `default` (Standardsprache). |
| `passkey` | Nur wenn die Passkey-Anmeldung angeboten wird: `rp_id`. |

Die Antwort enthält `Cache-Control: max-age=60`; eine Richtlinienänderung wird innerhalb einer Minute sichtbar.

## Fehler

| Status | Code | Wenn |
| --- | --- | --- |
| 400 | `malformed_request` | `Idp-Client` fehlt. |
| 403 | `environment_suspended` | Die Umgebung ist ausgesetzt. |
| 403 | `headless_not_allowed` | Die Anwendung ist keine First-Party-Anwendung. |
| 404 | `not_found` | Der Host gehört zu keiner Umgebung. |
| 422 | `validation_failed` | `client_id` fehlt, ist zu lang oder unbekannt (`/client_id`). |

## Beispiel

```bash
curl "https://example.keenauth.app/fapi/v1/environment?client_id=app_01j9zq3k5m7n8p9r0s1t2v3w4x" \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)"
```

```json
{
  "schema_version": 1,
  "first_factors": ["password", "passkey", "email_otp"],
  "sign_up": "open",
  "locales": {"enabled": ["tr", "en"], "default": "tr"},
  "passkey": {"rp_id": "example.keenauth.app"}
}
```
