
# Ottieni la configurazione dell'ambiente

`GET /fapi/v1/environment` · chiamato dall'host di accesso dell'ambiente

Restituisce la configurazione pubblica di cui una pagina di accesso ha bisogno prima di aprire una transazione: i primi fattori
che una nuova transazione dell'applicazione offrirà, la modalità di registrazione, le lingue abilitate e, quando vengono
offerte le passkey, il `rp_id` della passkey. La risposta non contiene dati personali, non legge alcun cookie e non apre
alcuna transazione.

## Richiesta

Intestazioni:

| Intestazione | Obbligatorio | Descrizione |
| --- | --- | --- |
| `Idp-Client` | sì | Identificatore SDK, `<pacchetto>/<versione> (<runtime>/<versione>)`. |

Parametri di query:

| Parametro | Obbligatorio | Descrizione |
| --- | --- | --- |
| `client_id` | sì | Il `client_id` dell'applicazione. |

## Risposta

`200 OK`:

| Campo | Descrizione |
| --- | --- |
| `schema_version` | `1`. |
| `first_factors` | I metodi che una nuova transazione offre, in quest'ordine: `password`, `passkey`, `email_otp`, `magic_link`. Vuoto quando la policy non consente alcun metodo. |
| `sign_up` | Modalità di registrazione: `open`, `invite_only` o `closed`. |
| `locales` | `enabled` (lingue abilitate) e `default` (lingua predefinita). |
| `passkey` | Solo quando l'accesso con passkey è offerto: `rp_id`. |

La risposta contiene `Cache-Control: max-age=60`; una modifica della policy è visibile entro un minuto.

## Errori

| Stato | Codice | Quando |
| --- | --- | --- |
| 400 | `malformed_request` | `Idp-Client` è mancante. |
| 403 | `environment_suspended` | L'ambiente è sospeso. |
| 403 | `headless_not_allowed` | L'applicazione non è first party. |
| 404 | `not_found` | L'host non appartiene ad alcun ambiente. |
| 422 | `validation_failed` | `client_id` è mancante, troppo lungo o sconosciuto (`/client_id`). |

## Esempio

```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"}
}
```
