Get the environment configuration
GET /fapi/v1/environment · called from the environment's sign-in host
Returns the public configuration a sign-in page needs before it opens a transaction: the first factors a new
transaction of the application will offer, the sign-up mode, the enabled languages and, when passkeys are offered, the
passkey rp_id. The response contains no personal data, reads no cookie and opens no transaction.
Request
Headers:
| Header | Required | Description |
|---|---|---|
Idp-Client |
yes | SDK identifier, <package>/<version> (<runtime>/<version>). |
Query parameters:
| Parameter | Required | Description |
|---|---|---|
client_id |
yes | The application's client_id. |
Response
200 OK:
| Field | Description |
|---|---|
schema_version |
1. |
first_factors |
The methods a new transaction offers, in this order: password, passkey, email_otp, magic_link. Empty when the policy allows no method. |
sign_up |
Sign-up mode: open, invite_only or closed. |
locales |
enabled (enabled languages) and default (default language). |
passkey |
Only when passkey sign-in is offered: rp_id. |
The response carries Cache-Control: max-age=60; a policy change shows within a minute.
Errors
| Status | Code | When |
|---|---|---|
| 400 | malformed_request |
Idp-Client is missing. |
| 403 | environment_suspended |
The environment is suspended. |
| 403 | headless_not_allowed |
The application is not first party. |
| 404 | not_found |
The host belongs to no environment. |
| 422 | validation_failed |
client_id is missing, too long or unknown (/client_id). |
Example
curl "https://example.keenauth.app/fapi/v1/environment?client_id=app_01j9zq3k5m7n8p9r0s1t2v3w4x" \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)"
{
"schema_version": 1,
"first_factors": ["password", "passkey", "email_otp"],
"sign_up": "open",
"locales": {"enabled": ["tr", "en"], "default": "tr"},
"passkey": {"rp_id": "example.keenauth.app"}
}