Authentication and Identity Management

Frontegg offers a comprehensive suite of authentication, user management, and security features to streamline identity management and enhance application security. This section provides an overview of all relevant API endpoints, organized into Authentication, Management, and Self-Service categories.

Authentication Endpoints: Enable secure user login, multi-factor authentication (MFA), passwordless options, and social login integrations, allowing for a flexible and robust sign-in experience.

Management Endpoints: Require environment-level authorization and provide full control over SSO (SAML and OpenID Connect) resources, user roles, permissions, and configurations. These endpoints are designed for administrative use, allowing for centralized identity and access management.

Self-Service Endpoints: Accessible with a user token (JWT), these endpoints empower users to manage their SSO connections and other account settings. Users with the necessary permissions can create, update, or delete SSO configurations directly, ensuring they have the tools to manage their access securely and independently.

Each category in this section helps you configure and extend Frontegg’s capabilities, providing the flexibility to manage user identities, authentication protocols, and access controls as per your application’s needs.

Languages
Servers
EU Region
https://api.frontegg.com/identity/
US Region
https://api.us.frontegg.com/identity/
CA Region
https://api.ca.frontegg.com/identity/
AU Region
https://api.au.frontegg.com/identity/
Frontegg sub-domain for use with user tokens
https://{domain}.frontegg.com/identity/

API token

Operations

General

Operations

MFA

Operations

Passwordless

Operations

SMS code prelogin

Request

This route triggers the system to send an SMS to the user and is the first step when authenticating using the sms otc passwordless mechanism. Send the frontegg-vendor-host as a header to declare which vendor. This is your domain name in the Frontegg Portal âžś Workspace Settings âžś Domains âžś Domain Name. Send the user's email as POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login.

Bodyapplication/jsonrequired
recaptchaTokenstring
invitationTokenstring
emailstringrequired
userIdstringrequired
phoneNumberstringrequired
curl -i -X POST \
  https://api.frontegg.com/identity/resources/auth/v1/passwordless/smscode/prelogin \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "recaptchaToken": "string",
    "invitationToken": "string",
    "email": "string",
    "userId": "string",
    "phoneNumber": "string"
  }'

Responses

Bodyapplication/json
phoneNumberstring
resetPhoneNumberTokenstring
Response
application/json
{ "phoneNumber": "string", "resetPhoneNumberToken": "string" }

SMS code postlogin

Request

This route authenticates a local user and is the second step when authenticating using the sms otc passwordless mechanism. Send the frontegg-vendor-host as a header to declare which vendor. This is your domain name in the Frontegg Portal âžś Workspace Settings âžś Domains âžś Domain Name. Send the user's token id as a POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login. The route returns the refresh cookie and JWT.

Bodyapplication/jsonrequired
tokenstringrequired

One time code to login with - get it from the email sent after prelogin request

recaptchaTokenstring
invitationTokenstring
curl -i -X POST \
  https://api.frontegg.com/identity/resources/auth/v1/passwordless/smscode/postlogin \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "token": "string",
    "recaptchaToken": "string",
    "invitationToken": "string"
  }'

Responses

Bodyapplication/json
tokenTypestring
Default "bearer"
mfaRequiredbooleanrequired
mfaTokenstring
mfaEnrolledboolean
mfaDevicesobject(UserMFADevicesResponse)
mfaStrategiesobject
qrCodestring
recoveryCodestring
accessTokenstringrequired
refreshTokenstringrequired
expiresInnumberrequired
expiresstringrequired
userIdstring
userEmailstring
emailVerifiedboolean
isBreachedPasswordboolean
Response
application/json
{ "tokenType": "bearer", "mfaRequired": true, "mfaToken": "string", "mfaEnrolled": true, "mfaDevices": { "webauthn": [ … ], "phones": [ … ], "authenticators": [ … ], "emails": [ … ] }, "mfaStrategies": {}, "qrCode": "string", "recoveryCode": "string", "accessToken": "string", "refreshToken": "string", "expiresIn": 0, "expires": "string", "userId": "string", "userEmail": "string", "emailVerified": true, "isBreachedPassword": true }

Magic link prelogin

Request

This route triggers the system to send the magic link to the user and is the first step when authenticating a local user with the magic link passwordless mechanism. Send the frontegg-vendor-host as a header to declare which vendor. This is your domain name in the Frontegg Portal âžś Workspace Settings âžś Domains âžś Domain Name. Send the user's email as POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login.

Bodyapplication/jsonrequired
recaptchaTokenstring
invitationTokenstring
emailstringrequired
userIdstringrequired
curl -i -X POST \
  https://api.frontegg.com/identity/resources/auth/v1/passwordless/magiclink/prelogin \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "recaptchaToken": "string",
    "invitationToken": "string",
    "email": "string",
    "userId": "string"
  }'

Responses

Magic link postlogin

Request

This route authenticates a local user and is the second step when using the magic link passwordless mechanism. Send the frontegg-vendor-host as a header to declare which vendor. This is your domain name in the Frontegg Portal âžś Workspace Settings âžś Domains âžś Domain Name. Send the user's token id as POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login. The route returns the refresh cookie and JWT.

Bodyapplication/jsonrequired
tokenstringrequired

One time code to login with - get it from the email sent after prelogin request

recaptchaTokenstring
invitationTokenstring
curl -i -X POST \
  https://api.frontegg.com/identity/resources/auth/v1/passwordless/magiclink/postlogin \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "token": "string",
    "recaptchaToken": "string",
    "invitationToken": "string"
  }'

Responses

Bodyapplication/json
tokenTypestring
Default "bearer"
mfaRequiredbooleanrequired
mfaTokenstring
mfaEnrolledboolean
mfaDevicesobject(UserMFADevicesResponse)
mfaStrategiesobject
qrCodestring
recoveryCodestring
accessTokenstringrequired
refreshTokenstringrequired
expiresInnumberrequired
expiresstringrequired
userIdstring
userEmailstring
emailVerifiedboolean
isBreachedPasswordboolean
Response
application/json
{ "tokenType": "bearer", "mfaRequired": true, "mfaToken": "string", "mfaEnrolled": true, "mfaDevices": { "webauthn": [ … ], "phones": [ … ], "authenticators": [ … ], "emails": [ … ] }, "mfaStrategies": {}, "qrCode": "string", "recoveryCode": "string", "accessToken": "string", "refreshToken": "string", "expiresIn": 0, "expires": "string", "userId": "string", "userEmail": "string", "emailVerified": true, "isBreachedPassword": true }

OTC (One-Time Code) prelogin

Request

This route triggers the system to send a one-time code to the user and is the first step when authenticating a local user using the email otc passwordless mechanism. Send the frontegg-vendor-host as a header to declare which vendor. This is your domain name in the Frontegg Portal âžś Workspace Settings âžś Domains âžś Domain Name. Send the user's email as POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login.

Bodyapplication/jsonrequired
recaptchaTokenstring
invitationTokenstring
emailstringrequired
userIdstringrequired
curl -i -X POST \
  https://api.frontegg.com/identity/resources/auth/v1/passwordless/code/prelogin \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "recaptchaToken": "string",
    "invitationToken": "string",
    "email": "string",
    "userId": "string"
  }'

Responses

OTC (One-Time Code) postlogin

Request

This route authenticates a local user and is the second step when using the email otc passwordless mechanism. Send the frontegg-vendor-host as a header to declare which vendor. This is your domain name in the Frontegg Portal âžś Workspace Settings âžś Domains âžś Domain Name. Send the user's token id as POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login. The route returns the refresh cookie and JWT.

Bodyapplication/jsonrequired
tokenstringrequired

One time code to login with - get it from the email sent after prelogin request

recaptchaTokenstring
invitationTokenstring
curl -i -X POST \
  https://api.frontegg.com/identity/resources/auth/v1/passwordless/code/postlogin \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "token": "string",
    "recaptchaToken": "string",
    "invitationToken": "string"
  }'

Responses

Bodyapplication/json
tokenTypestring
Default "bearer"
mfaRequiredbooleanrequired
mfaTokenstring
mfaEnrolledboolean
mfaDevicesobject(UserMFADevicesResponse)
mfaStrategiesobject
qrCodestring
recoveryCodestring
accessTokenstringrequired
refreshTokenstringrequired
expiresInnumberrequired
expiresstringrequired
userIdstring
userEmailstring
emailVerifiedboolean
isBreachedPasswordboolean
Response
application/json
{ "tokenType": "bearer", "mfaRequired": true, "mfaToken": "string", "mfaEnrolled": true, "mfaDevices": { "webauthn": [ … ], "phones": [ … ], "authenticators": [ … ], "emails": [ … ] }, "mfaStrategies": {}, "qrCode": "string", "recoveryCode": "string", "accessToken": "string", "refreshToken": "string", "expiresIn": 0, "expires": "string", "userId": "string", "userEmail": "string", "emailVerified": true, "isBreachedPassword": true }

SMS

Operations

Account invitations settings

Operations

Core settings

Operations

Custom social OAuth provider

Operations

Data migration

Operations

Delegation

Operations

Email configuration

Operations

Email templates

Operations

M2M tokens

Operations

MFA configuration

Operations

Permissions categories

Operations

Permissions

Operations

Roles

Operations

SMS configuration

Operations

SMS templates

Operations

Sessions configuration

Operations

User pools

Operations

Users

Operations

Account invitations

Operations

Account roles

Operations

API tokens

Operations

Domain restrictions

Operations

IP restrictions

Operations

Lockout policy

Operations

Password settings

Operations

Personal tokens

Operations

Sessions management

Operations

User groups

Operations

User management

Operations

User sessions

Operations

Users-applications management

Operations