
# Obtener la configuración del entorno

`GET /fapi/v1/environment` · llamado desde el host de inicio de sesión del entorno

Devuelve la configuración pública que una página de inicio de sesión necesita antes de abrir una transacción: los primeros
factores que ofrecerá una nueva transacción de la aplicación, el modo de registro, los idiomas habilitados y, cuando se
ofrecen passkeys, el `rp_id` de la passkey. La respuesta no contiene datos personales, no lee ninguna cookie y no abre
ninguna transacción.

## Solicitud

Encabezados:

| Encabezado | Obligatorio | Descripción |
| --- | --- | --- |
| `Idp-Client` | sí | Identificador SDK, `<paquete>/<versión> (<tiempo de ejecución>/<versión>)`. |

Parámetros de consulta:

| Parámetro | Obligatorio | Descripción |
| --- | --- | --- |
| `client_id` | sí | El `client_id` de la aplicación. |

## Respuesta

`200 OK`:

| Campo | Descripción |
| --- | --- |
| `schema_version` | `1`. |
| `first_factors` | Los métodos que ofrece una nueva transacción, en este orden: `password`, `passkey`, `email_otp`, `magic_link`. Vacío cuando la política no permite ningún método. |
| `sign_up` | Modo de registro: `open`, `invite_only` o `closed`. |
| `locales` | `enabled` (idiomas habilitados) y `default` (idioma predeterminado). |
| `passkey` | Solo cuando se ofrece el inicio de sesión con passkey: `rp_id`. |

La respuesta incluye `Cache-Control: max-age=60`; un cambio de política se ve en menos de un minuto.

## Errores

| Estado | Código | Cuándo |
| --- | --- | --- |
| 400 | `malformed_request` | Falta `Idp-Client`. |
| 403 | `environment_suspended` | El entorno está suspendido. |
| 403 | `headless_not_allowed` | La aplicación no es de primera parte (first party). |
| 404 | `not_found` | El host no pertenece a ningún entorno. |
| 422 | `validation_failed` | `client_id` falta, es demasiado largo o es desconocido (`/client_id`). |

## Ejemplo

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