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

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

Set temporary users configuration

Request

This route updates the settings for temporary users, use it to enable or disable it for an environment

Bodyapplication/jsonrequired
enabledbooleanrequired
curl -i -X PUT \
  https://api.frontegg.com/identity/resources/users/temporary/v1/configuration \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "enabled": true
  }'

Responses

Bodyapplication/json
enabledbooleanrequired
Response
application/json
{ "enabled": true }

Update user globally

Request

This route updates a user’s information globally, not just for a specific tenant. Send the user’s ID as a path params to identify specific user. Send the updated user values within the PUT body. The PUT request does a complete update of the resource, so include values for all of the body params that you want to have values. This is a global update, so do not send a frontegg-tenant-id within the header.

Path
userIdstringrequired
Bodyapplication/jsonrequired
phoneNumberstring^\+[1-9]{1}(\-?)(([0-9])(\-?)){5,13}(([0-9]$)...
profilePictureUrlstring or null<= 4095 characters
metadatastring

Stringified JSON object

Example: "{}"
vendorMetadatastring

Extra vendor-only data. stringified JSON object

mfaBypassboolean

Indicates whether MFA should be bypassed for this user

namestring
curl -i -X PUT \
  'https://api.frontegg.com/identity/resources/users/v1/{userId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "phoneNumber": "string",
    "profilePictureUrl": "string",
    "metadata": "{}",
    "vendorMetadata": "string",
    "mfaBypass": true,
    "name": "string"
  }'

Responses

Bodyapplication/json
idstringrequired
emailstringrequired
namestring
profilePictureUrlstring
substringrequired
verifiedbooleanrequired
mfaEnrolledbooleanrequired
mfaBypassboolean
phoneNumberstring
rolesArray of objects(RoleResponse)required
roles[].​idstringrequired
roles[].​vendorIdstringrequired
roles[].​tenantIdstringrequired
roles[].​keystringrequired
roles[].​namestringrequired
roles[].​descriptionstringrequired
roles[].​isDefaultbooleanrequired
roles[].​firstUserRolebooleanrequired
roles[].​levelnumberrequired
roles[].​createdAtstring(date-time)required
roles[].​updatedAtstring(date-time)required
roles[].​permissionsArray of stringsrequired
permissionsArray of objects(PermissionResponse)required
permissions[].​idstringrequired
permissions[].​keystringrequired
permissions[].​namestringrequired
permissions[].​descriptionstringrequired
permissions[].​createdAtstring(date-time)required
permissions[].​updatedAtstring(date-time)required
permissions[].​roleIdsArray of stringsrequired
permissions[].​categoryIdstringrequired
permissions[].​fePermissionbooleanrequired
providerstringrequired
tenantIdstringrequired
tenantIdsArray of stringsrequired
activatedForTenantboolean
isLockedboolean
tenantsArray of objects(UserTenantDto)required
tenants[].​tenantIdstringrequired
tenants[].​rolesArray of objects(RoleResponse)required
tenants[].​roles[].​idstringrequired
tenants[].​roles[].​vendorIdstringrequired
tenants[].​roles[].​tenantIdstringrequired
tenants[].​roles[].​keystringrequired
tenants[].​roles[].​namestringrequired
tenants[].​roles[].​descriptionstringrequired
tenants[].​roles[].​isDefaultbooleanrequired
tenants[].​roles[].​firstUserRolebooleanrequired
tenants[].​roles[].​levelnumberrequired
tenants[].​roles[].​createdAtstring(date-time)required
tenants[].​roles[].​updatedAtstring(date-time)required
tenants[].​roles[].​permissionsArray of stringsrequired
tenants[].​temporaryExpirationDatestring(date-time)
tenants[].​isDisabledboolean
invisibleboolean
superUserboolean
metadatastringrequired
vendorMetadatastringrequired
createdAtstring(date-time)required
lastLoginstring(date-time)required
groupsArray of objects
subAccountAccessAllowedbooleanrequired
managedBystring
Enum"frontegg""scim2""external"
Response
application/json
{ "id": "string", "email": "string", "name": "string", "profilePictureUrl": "string", "sub": "string", "verified": true, "mfaEnrolled": true, "mfaBypass": true, "phoneNumber": "string", "roles": [ { … } ], "permissions": [ { … } ], "provider": "string", "tenantId": "string", "tenantIds": [ "string" ], "activatedForTenant": true, "isLocked": true, "tenants": [ { … } ], "invisible": true, "superUser": true, "metadata": "string", "vendorMetadata": "string", "createdAt": "2019-08-24T14:15:22Z", "lastLogin": "2019-08-24T14:15:22Z", "groups": [ {} ], "subAccountAccessAllowed": true, "managedBy": "frontegg" }

Get user

Request

This route gets a user by its ID regardless of any tenant the user belongs to. Send the user’s ID as a path params. The route is for vendor-use only.

Path
userIdstringrequired
curl -i -X GET \
  'https://api.frontegg.com/identity/resources/vendor-only/users/v1/{userId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Bodyapplication/json
idstringrequired
emailstringrequired
namestring
profilePictureUrlstring
substringrequired
verifiedbooleanrequired
mfaEnrolledbooleanrequired
mfaBypassboolean
phoneNumberstring
rolesArray of objects(RoleResponse)required
roles[].​idstringrequired
roles[].​vendorIdstringrequired
roles[].​tenantIdstringrequired
roles[].​keystringrequired
roles[].​namestringrequired
roles[].​descriptionstringrequired
roles[].​isDefaultbooleanrequired
roles[].​firstUserRolebooleanrequired
roles[].​levelnumberrequired
roles[].​createdAtstring(date-time)required
roles[].​updatedAtstring(date-time)required
roles[].​permissionsArray of stringsrequired
permissionsArray of objects(PermissionResponse)required
permissions[].​idstringrequired
permissions[].​keystringrequired
permissions[].​namestringrequired
permissions[].​descriptionstringrequired
permissions[].​createdAtstring(date-time)required
permissions[].​updatedAtstring(date-time)required
permissions[].​roleIdsArray of stringsrequired
permissions[].​categoryIdstringrequired
permissions[].​fePermissionbooleanrequired
providerstringrequired
tenantIdstringrequired
tenantIdsArray of stringsrequired
activatedForTenantboolean
isLockedboolean
tenantsArray of objects(UserTenantDto)required
tenants[].​tenantIdstringrequired
tenants[].​rolesArray of objects(RoleResponse)required
tenants[].​roles[].​idstringrequired
tenants[].​roles[].​vendorIdstringrequired
tenants[].​roles[].​tenantIdstringrequired
tenants[].​roles[].​keystringrequired
tenants[].​roles[].​namestringrequired
tenants[].​roles[].​descriptionstringrequired
tenants[].​roles[].​isDefaultbooleanrequired
tenants[].​roles[].​firstUserRolebooleanrequired
tenants[].​roles[].​levelnumberrequired
tenants[].​roles[].​createdAtstring(date-time)required
tenants[].​roles[].​updatedAtstring(date-time)required
tenants[].​roles[].​permissionsArray of stringsrequired
tenants[].​temporaryExpirationDatestring(date-time)
tenants[].​isDisabledboolean
invisibleboolean
superUserboolean
metadatastringrequired
vendorMetadatastringrequired
createdAtstring(date-time)required
lastLoginstring(date-time)required
groupsArray of objects
subAccountAccessAllowedbooleanrequired
managedBystring
Enum"frontegg""scim2""external"
Response
application/json
{ "id": "string", "email": "string", "name": "string", "profilePictureUrl": "string", "sub": "string", "verified": true, "mfaEnrolled": true, "mfaBypass": true, "phoneNumber": "string", "roles": [ { … } ], "permissions": [ { … } ], "provider": "string", "tenantId": "string", "tenantIds": [ "string" ], "activatedForTenant": true, "isLocked": true, "tenants": [ { … } ], "invisible": true, "superUser": true, "metadata": "string", "vendorMetadata": "string", "createdAt": "2019-08-24T14:15:22Z", "lastLogin": "2019-08-24T14:15:22Z", "groups": [ {} ], "subAccountAccessAllowed": true, "managedBy": "frontegg" }

Unenroll user from MFA globally

Request

This route unenrolls a user from MFA regardless of any tenant the user belongs to. Send the user’s ID as a path params. The route is for vendor-use only.

Path
userIdstringrequired
curl -i -X POST \
  'https://api.frontegg.com/identity/resources/vendor-only/users/v1/{userId}/mfa/unenroll' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Verify user's password

Request

This route verify user email and password. Send the user’s email and password and the response will be true or false. The route is for vendor-use only.

Bodyapplication/jsonrequired
emailstringrequired
passwordstringrequired
curl -i -X POST \
  https://api.frontegg.com/identity/resources/vendor-only/users/v1/passwords/verify \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "string",
    "password": "string"
  }'

Responses

Bodyapplication/json
object(ValidateUserPasswordResponse)
Response
application/json
{}

Create user

Request

This route creates a user and allows setting mfaBypass property on that user for testing purposes. The route is for vendor-use only.

Bodyapplication/jsonrequired
emailstringrequired
namestring
passwordstring
metadatastring

Stringified JSON object

vendorMetadatastring

Extra vendor-only data. stringified JSON object

roleIdsArray of strings

Role IDs to assign to the user

tenantIdstringrequired
expirationInSecondsnumber

Temporary user expiration in seconds

mfaBypassboolean

Bypass MFA for this user

curl -i -X POST \
  https://api.frontegg.com/identity/resources/vendor-only/users/v1 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "string",
    "name": "string",
    "password": "string",
    "metadata": "string",
    "vendorMetadata": "string",
    "roleIds": [
      "string"
    ],
    "tenantId": "string",
    "expirationInSeconds": 0,
    "mfaBypass": true
  }'

Responses

Bodyapplication/json
idstringrequired
emailstringrequired
namestring
profilePictureUrlstring
substringrequired
verifiedbooleanrequired
mfaEnrolledbooleanrequired
mfaBypassboolean
phoneNumberstring
rolesArray of objects(RoleResponse)required
roles[].​idstringrequired
roles[].​vendorIdstringrequired
roles[].​tenantIdstringrequired
roles[].​keystringrequired
roles[].​namestringrequired
roles[].​descriptionstringrequired
roles[].​isDefaultbooleanrequired
roles[].​firstUserRolebooleanrequired
roles[].​levelnumberrequired
roles[].​createdAtstring(date-time)required
roles[].​updatedAtstring(date-time)required
roles[].​permissionsArray of stringsrequired
permissionsArray of objects(PermissionResponse)required
permissions[].​idstringrequired
permissions[].​keystringrequired
permissions[].​namestringrequired
permissions[].​descriptionstringrequired
permissions[].​createdAtstring(date-time)required
permissions[].​updatedAtstring(date-time)required
permissions[].​roleIdsArray of stringsrequired
permissions[].​categoryIdstringrequired
permissions[].​fePermissionbooleanrequired
providerstringrequired
tenantIdstringrequired
tenantIdsArray of stringsrequired
activatedForTenantboolean
isLockedboolean
tenantsArray of objects(UserTenantDto)required
tenants[].​tenantIdstringrequired
tenants[].​rolesArray of objects(RoleResponse)required
tenants[].​roles[].​idstringrequired
tenants[].​roles[].​vendorIdstringrequired
tenants[].​roles[].​tenantIdstringrequired
tenants[].​roles[].​keystringrequired
tenants[].​roles[].​namestringrequired
tenants[].​roles[].​descriptionstringrequired
tenants[].​roles[].​isDefaultbooleanrequired
tenants[].​roles[].​firstUserRolebooleanrequired
tenants[].​roles[].​levelnumberrequired
tenants[].​roles[].​createdAtstring(date-time)required
tenants[].​roles[].​updatedAtstring(date-time)required
tenants[].​roles[].​permissionsArray of stringsrequired
tenants[].​temporaryExpirationDatestring(date-time)
tenants[].​isDisabledboolean
invisibleboolean
superUserboolean
metadatastringrequired
vendorMetadatastringrequired
createdAtstring(date-time)required
lastLoginstring(date-time)required
groupsArray of objects
subAccountAccessAllowedbooleanrequired
managedBystring
Enum"frontegg""scim2""external"
Response
application/json
{ "id": "string", "email": "string", "name": "string", "profilePictureUrl": "string", "sub": "string", "verified": true, "mfaEnrolled": true, "mfaBypass": true, "phoneNumber": "string", "roles": [ { … } ], "permissions": [ { … } ], "provider": "string", "tenantId": "string", "tenantIds": [ "string" ], "activatedForTenant": true, "isLocked": true, "tenants": [ { … } ], "invisible": true, "superUser": true, "metadata": "string", "vendorMetadata": "string", "createdAt": "2019-08-24T14:15:22Z", "lastLogin": "2019-08-24T14:15:22Z", "groups": [ {} ], "subAccountAccessAllowed": true, "managedBy": "frontegg" }

Get users tenants statuses

Request

This route gets the tenants statuses of vendor users. Expects an array of userIds with max of 200 and optionally an array of userTenantStatuses as query params. Note that there is a limit of 2000 tenants statuses per user.

Query
userIdsArray of stringsrequired

User IDs

userTenantStatusesArray of strings

Tenant Statuses

Items Enum"PendingInvitation""PendingLogin""Activated""NotActivated"
curl -i -X GET \
  'https://api.frontegg.com/identity/resources/tenants/users/v1/statuses?userIds=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Bodyapplication/json
userIdstringrequired
tenantsStatusesArray of objects(TenantStatus)required

Tenants Statuses

tenantsStatuses[].​tenantIdstringrequired
tenantsStatuses[].​statusstringrequired
Enum"PendingInvitation""PendingLogin""Activated""NotActivated"
Response
application/json
{ "userId": "string", "tenantsStatuses": [ { … } ] }

Create user phone number verified by default

Request

This route creates new user phone number, phone numbers added by vendor will be automatically verified.

Path
userIdstringrequired
Bodyapplication/jsonrequired
phoneNumberstringrequired

New phone number

curl -i -X POST \
  'https://api.frontegg.com/identity/resources/users/phone-numbers/v1/vendor/{userId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "phoneNumber": "string"
  }'

Responses

Delete user phone number by vendor

Request

This route deletes user phone number without verification.

Path
phoneIdstringrequired
userIdstringrequired
curl -i -X DELETE \
  'https://api.frontegg.com/identity/resources/users/phone-numbers/v1/vendor/{userId}/{phoneId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Invite users to tenant in bulk

Request

This route enables you to invite users to tenant in bulk. Expects an array of users. Each entry must include a user's email.

Headers
frontegg-tenant-idstringrequired

The tenant ID identifier

Bodyapplication/jsonrequired
usersArray of objects(UserBulkInviteRequestDto)required
users[].​emailstring(email)required
users[].​namestring
users[].​profilePictureUrlstring<= 4095 characters
users[].​passwordstring
users[].​phoneNumberstring
users[].​providerstring
Default "local"
Enum"local""saml""google""github""facebook""microsoft""scim2""slack""apple"
users[].​metadatastring

Stringified JSON object

Example: "{}"
users[].​skipInviteEmailboolean
users[].​roleIdsArray of strings
users[].​emailMetadataobject
users[].​expirationInSecondsnumber>= 300

Temporary user expiration in seconds

users[].​verifiedboolean
curl -i -X POST \
  https://api.frontegg.com/identity/resources/users/bulk/v1/invite \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'frontegg-tenant-id: string' \
  -d '{
    "users": [
      {
        "email": "user@example.com",
        "name": "string",
        "profilePictureUrl": "string",
        "password": "string",
        "phoneNumber": "string",
        "provider": "local",
        "metadata": "{}",
        "skipInviteEmail": true,
        "roleIds": [
          "string"
        ],
        "emailMetadata": {},
        "expirationInSeconds": 300,
        "verified": true
      }
    ]
  }'

Responses

Bodyapplication/json
object(TaskContext)
Response
application/json
{}

Get status of bulk invite task

Request

This route enables you to invite users to tenant in bulk. Expects an array of users. Each entry must include a user's email.

Path
idstringrequired
curl -i -X GET \
  'https://api.frontegg.com/identity/resources/users/bulk/v1/status/{id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Get user by email

Request

This route get user by email

Query
emailstringrequired
curl -i -X GET \
  'https://api.frontegg.com/identity/resources/users/v1/email?email=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Bodyapplication/json
idstringrequired
emailstringrequired
namestring
profilePictureUrlstring
substringrequired
verifiedbooleanrequired
mfaEnrolledbooleanrequired
mfaBypassboolean
phoneNumberstring
providerstringrequired
tenantIdstringrequired
tenantIdsArray of stringsrequired
activatedForTenantboolean
isLockedboolean
tenantsArray of objects(UserTenantDto)required
tenants[].​tenantIdstringrequired
tenants[].​rolesArray of objects(RoleResponse)required
tenants[].​roles[].​idstringrequired
tenants[].​roles[].​vendorIdstringrequired
tenants[].​roles[].​tenantIdstringrequired
tenants[].​roles[].​keystringrequired
tenants[].​roles[].​namestringrequired
tenants[].​roles[].​descriptionstringrequired
tenants[].​roles[].​isDefaultbooleanrequired
tenants[].​roles[].​firstUserRolebooleanrequired
tenants[].​roles[].​levelnumberrequired
tenants[].​roles[].​createdAtstring(date-time)required
tenants[].​roles[].​updatedAtstring(date-time)required
tenants[].​roles[].​permissionsArray of stringsrequired
tenants[].​temporaryExpirationDatestring(date-time)
tenants[].​isDisabledboolean
invisibleboolean
superUserboolean
metadatastringrequired
vendorMetadatastringrequired
createdAtstring(date-time)required
lastLoginstring(date-time)required
subAccountAccessAllowedbooleanrequired
managedBystring
Enum"frontegg""scim2""external"
Response
application/json
{ "id": "string", "email": "string", "name": "string", "profilePictureUrl": "string", "sub": "string", "verified": true, "mfaEnrolled": true, "mfaBypass": true, "phoneNumber": "string", "provider": "string", "tenantId": "string", "tenantIds": [ "string" ], "activatedForTenant": true, "isLocked": true, "tenants": [ { … } ], "invisible": true, "superUser": true, "metadata": "string", "vendorMetadata": "string", "createdAt": "2019-08-24T14:15:22Z", "lastLogin": "2019-08-24T14:15:22Z", "subAccountAccessAllowed": true, "managedBy": "frontegg" }

Get user by ID

Request

This route gets a specific user from a tenant. Send the tenant’s ID in the frontegg-tenant-id header to declare which tenant and send the user’s ID as a path params to declare which user. A vendor token is required for this route, it can be obtained from the vendor authentication route.

Path
idstringrequired
Headers
frontegg-tenant-idstringrequired

The tenant ID identifier

curl -i -X GET \
  'https://api.frontegg.com/identity/resources/users/v1/{id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'frontegg-tenant-id: string'

Responses

Bodyapplication/json
idstringrequired
emailstringrequired
namestring
profilePictureUrlstring
substringrequired
verifiedbooleanrequired
mfaEnrolledbooleanrequired
mfaBypassboolean
phoneNumberstring
rolesArray of objects(RoleResponse)required
roles[].​idstringrequired
roles[].​vendorIdstringrequired
roles[].​tenantIdstringrequired
roles[].​keystringrequired
roles[].​namestringrequired
roles[].​descriptionstringrequired
roles[].​isDefaultbooleanrequired
roles[].​firstUserRolebooleanrequired
roles[].​levelnumberrequired
roles[].​createdAtstring(date-time)required
roles[].​updatedAtstring(date-time)required
roles[].​permissionsArray of stringsrequired
permissionsArray of objects(PermissionResponse)required
permissions[].​idstringrequired
permissions[].​keystringrequired
permissions[].​namestringrequired
permissions[].​descriptionstringrequired
permissions[].​createdAtstring(date-time)required
permissions[].​updatedAtstring(date-time)required
permissions[].​roleIdsArray of stringsrequired
permissions[].​categoryIdstringrequired
permissions[].​fePermissionbooleanrequired
providerstringrequired
tenantIdstringrequired
tenantIdsArray of stringsrequired
activatedForTenantboolean
isLockedboolean
tenantsArray of objects(UserTenantDto)required
tenants[].​tenantIdstringrequired
tenants[].​rolesArray of objects(RoleResponse)required
tenants[].​roles[].​idstringrequired
tenants[].​roles[].​vendorIdstringrequired
tenants[].​roles[].​tenantIdstringrequired
tenants[].​roles[].​keystringrequired
tenants[].​roles[].​namestringrequired
tenants[].​roles[].​descriptionstringrequired
tenants[].​roles[].​isDefaultbooleanrequired
tenants[].​roles[].​firstUserRolebooleanrequired
tenants[].​roles[].​levelnumberrequired
tenants[].​roles[].​createdAtstring(date-time)required
tenants[].​roles[].​updatedAtstring(date-time)required
tenants[].​roles[].​permissionsArray of stringsrequired
tenants[].​temporaryExpirationDatestring(date-time)
tenants[].​isDisabledboolean
invisibleboolean
superUserboolean
metadatastringrequired
vendorMetadatastringrequired
createdAtstring(date-time)required
lastLoginstring(date-time)required
groupsArray of objects
subAccountAccessAllowedbooleanrequired
managedBystring
Enum"frontegg""scim2""external"
Response
application/json
{ "id": "string", "email": "string", "name": "string", "profilePictureUrl": "string", "sub": "string", "verified": true, "mfaEnrolled": true, "mfaBypass": true, "phoneNumber": "string", "roles": [ { … } ], "permissions": [ { … } ], "provider": "string", "tenantId": "string", "tenantIds": [ "string" ], "activatedForTenant": true, "isLocked": true, "tenants": [ { … } ], "invisible": true, "superUser": true, "metadata": "string", "vendorMetadata": "string", "createdAt": "2019-08-24T14:15:22Z", "lastLogin": "2019-08-24T14:15:22Z", "groups": [ {} ], "subAccountAccessAllowed": true, "managedBy": "frontegg" }

Verify user

Request

This route marks a user as verified. Send the user’s ID as a path params. A vendor token is required for this route, it can be obtained from the vendor authentication route.

Path
userIdstringrequired
curl -i -X POST \
  'https://api.frontegg.com/identity/resources/users/v1/{userId}/verify' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Make user invisible

Request

This route sets whether a user is invisible or visible. If a user is invisible, the user data remains in the Frontegg system but the user will not appear in the list of users in the admin box. An invisible user remains part of the tenant. Send the user’s ID as a path params. Also send as a PUT body params a Boolean value for invisible. True is invisible and false is visible. A vendor token is required for this route, it can be obtained from the vendor authentication route.

Path
userIdstringrequired
Bodyapplication/jsonrequired
invisiblebooleanrequired
curl -i -X PUT \
  'https://api.frontegg.com/identity/resources/users/v1/{userId}/invisible' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "invisible": true
  }'

Responses

Bodyapplication/json
idstringrequired
emailstringrequired
namestring
profilePictureUrlstring
substringrequired
verifiedbooleanrequired
mfaEnrolledbooleanrequired
mfaBypassboolean
phoneNumberstring
rolesArray of objects(RoleResponse)required
roles[].​idstringrequired
roles[].​vendorIdstringrequired
roles[].​tenantIdstringrequired
roles[].​keystringrequired
roles[].​namestringrequired
roles[].​descriptionstringrequired
roles[].​isDefaultbooleanrequired
roles[].​firstUserRolebooleanrequired
roles[].​levelnumberrequired
roles[].​createdAtstring(date-time)required
roles[].​updatedAtstring(date-time)required
roles[].​permissionsArray of stringsrequired
permissionsArray of objects(PermissionResponse)required
permissions[].​idstringrequired
permissions[].​keystringrequired
permissions[].​namestringrequired
permissions[].​descriptionstringrequired
permissions[].​createdAtstring(date-time)required
permissions[].​updatedAtstring(date-time)required
permissions[].​roleIdsArray of stringsrequired
permissions[].​categoryIdstringrequired
permissions[].​fePermissionbooleanrequired
providerstringrequired
tenantIdstringrequired
tenantIdsArray of stringsrequired
activatedForTenantboolean
isLockedboolean
tenantsArray of objects(UserTenantDto)required
tenants[].​tenantIdstringrequired
tenants[].​rolesArray of objects(RoleResponse)required
tenants[].​roles[].​idstringrequired
tenants[].​roles[].​vendorIdstringrequired
tenants[].​roles[].​tenantIdstringrequired
tenants[].​roles[].​keystringrequired
tenants[].​roles[].​namestringrequired
tenants[].​roles[].​descriptionstringrequired
tenants[].​roles[].​isDefaultbooleanrequired
tenants[].​roles[].​firstUserRolebooleanrequired
tenants[].​roles[].​levelnumberrequired
tenants[].​roles[].​createdAtstring(date-time)required
tenants[].​roles[].​updatedAtstring(date-time)required
tenants[].​roles[].​permissionsArray of stringsrequired
tenants[].​temporaryExpirationDatestring(date-time)
tenants[].​isDisabledboolean
invisibleboolean
superUserboolean
metadatastringrequired
vendorMetadatastringrequired
createdAtstring(date-time)required
lastLoginstring(date-time)required
groupsArray of objects
subAccountAccessAllowedbooleanrequired
managedBystring
Enum"frontegg""scim2""external"
Response
application/json
{ "id": "string", "email": "string", "name": "string", "profilePictureUrl": "string", "sub": "string", "verified": true, "mfaEnrolled": true, "mfaBypass": true, "phoneNumber": "string", "roles": [ { … } ], "permissions": [ { … } ], "provider": "string", "tenantId": "string", "tenantIds": [ "string" ], "activatedForTenant": true, "isLocked": true, "tenants": [ { … } ], "invisible": true, "superUser": true, "metadata": "string", "vendorMetadata": "string", "createdAt": "2019-08-24T14:15:22Z", "lastLogin": "2019-08-24T14:15:22Z", "groups": [ {} ], "subAccountAccessAllowed": true, "managedBy": "frontegg" }

Make user super-user

Request

This route sets a user as a super-user. Note that super-user functionality is no longer maintained due to incompatibility with newer features. A super user has access to all tenants within the workspace. Send the user ID as the path params. Also send as a PUT body params a Boolean value for super user. True is super user and false is not. A vendor token is required for this route, it can be obtained from the vendor authentication route.

Path
userIdstringrequired
Bodyapplication/jsonrequired
superUserbooleanrequired
curl -i -X PUT \
  'https://api.frontegg.com/identity/resources/users/v1/{userId}/superuser' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "superUser": true
  }'

Responses

Bodyapplication/json
idstringrequired
emailstringrequired
namestring
profilePictureUrlstring
substringrequired
verifiedbooleanrequired
mfaEnrolledbooleanrequired
mfaBypassboolean
phoneNumberstring
rolesArray of objects(RoleResponse)required
roles[].​idstringrequired
roles[].​vendorIdstringrequired
roles[].​tenantIdstringrequired
roles[].​keystringrequired
roles[].​namestringrequired
roles[].​descriptionstringrequired
roles[].​isDefaultbooleanrequired
roles[].​firstUserRolebooleanrequired
roles[].​levelnumberrequired
roles[].​createdAtstring(date-time)required
roles[].​updatedAtstring(date-time)required
roles[].​permissionsArray of stringsrequired
permissionsArray of objects(PermissionResponse)required
permissions[].​idstringrequired
permissions[].​keystringrequired
permissions[].​namestringrequired
permissions[].​descriptionstringrequired
permissions[].​createdAtstring(date-time)required
permissions[].​updatedAtstring(date-time)required
permissions[].​roleIdsArray of stringsrequired
permissions[].​categoryIdstringrequired
permissions[].​fePermissionbooleanrequired
providerstringrequired
tenantIdstringrequired
tenantIdsArray of stringsrequired
activatedForTenantboolean
isLockedboolean
tenantsArray of objects(UserTenantDto)required
tenants[].​tenantIdstringrequired
tenants[].​rolesArray of objects(RoleResponse)required
tenants[].​roles[].​idstringrequired
tenants[].​roles[].​vendorIdstringrequired
tenants[].​roles[].​tenantIdstringrequired
tenants[].​roles[].​keystringrequired
tenants[].​roles[].​namestringrequired
tenants[].​roles[].​descriptionstringrequired
tenants[].​roles[].​isDefaultbooleanrequired
tenants[].​roles[].​firstUserRolebooleanrequired
tenants[].​roles[].​levelnumberrequired
tenants[].​roles[].​createdAtstring(date-time)required
tenants[].​roles[].​updatedAtstring(date-time)required
tenants[].​roles[].​permissionsArray of stringsrequired
tenants[].​temporaryExpirationDatestring(date-time)
tenants[].​isDisabledboolean
invisibleboolean
superUserboolean
metadatastringrequired
vendorMetadatastringrequired
createdAtstring(date-time)required
lastLoginstring(date-time)required
groupsArray of objects
subAccountAccessAllowedbooleanrequired
managedBystring
Enum"frontegg""scim2""external"
Response
application/json
{ "id": "string", "email": "string", "name": "string", "profilePictureUrl": "string", "sub": "string", "verified": true, "mfaEnrolled": true, "mfaBypass": true, "phoneNumber": "string", "roles": [ { … } ], "permissions": [ { … } ], "provider": "string", "tenantId": "string", "tenantIds": [ "string" ], "activatedForTenant": true, "isLocked": true, "tenants": [ { … } ], "invisible": true, "superUser": true, "metadata": "string", "vendorMetadata": "string", "createdAt": "2019-08-24T14:15:22Z", "lastLogin": "2019-08-24T14:15:22Z", "groups": [ {} ], "subAccountAccessAllowed": true, "managedBy": "frontegg" }

Set user's tenant

Request

This route is for the vendor to set the active tenant of a user. The active tenant is the tenant the user will see in their admin portal and also the tenant for which the API reference will default to in situations where a route is tenant specific. Send the user ID as a path param and the tenant ID as a PUT body param. When using a non-existing tenant ID, there will be a tenant create for the provided ID. A vendor token is required for this route, it can be obtained from the vendor authentication route.

Path
userIdstringrequired
Bodyapplication/jsonrequired
tenantIdstringrequired

Desired tenant to set as active tenant for user

validateTenantExistboolean
curl -i -X PUT \
  'https://api.frontegg.com/identity/resources/users/v1/{userId}/tenant' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "tenantId": "string",
    "validateTenantExist": true
  }'

Responses

Bodyapplication/json
idstringrequired
emailstringrequired
namestring
profilePictureUrlstring
substringrequired
verifiedbooleanrequired
mfaEnrolledbooleanrequired
mfaBypassboolean
phoneNumberstring
rolesArray of objects(RoleResponse)required
roles[].​idstringrequired
roles[].​vendorIdstringrequired
roles[].​tenantIdstringrequired
roles[].​keystringrequired
roles[].​namestringrequired
roles[].​descriptionstringrequired
roles[].​isDefaultbooleanrequired
roles[].​firstUserRolebooleanrequired
roles[].​levelnumberrequired
roles[].​createdAtstring(date-time)required
roles[].​updatedAtstring(date-time)required
roles[].​permissionsArray of stringsrequired
permissionsArray of objects(PermissionResponse)required
permissions[].​idstringrequired
permissions[].​keystringrequired
permissions[].​namestringrequired
permissions[].​descriptionstringrequired
permissions[].​createdAtstring(date-time)required
permissions[].​updatedAtstring(date-time)required
permissions[].​roleIdsArray of stringsrequired
permissions[].​categoryIdstringrequired
permissions[].​fePermissionbooleanrequired
providerstringrequired
tenantIdstringrequired
tenantIdsArray of stringsrequired
activatedForTenantboolean
isLockedboolean
tenantsArray of objects(UserTenantDto)required
tenants[].​tenantIdstringrequired
tenants[].​rolesArray of objects(RoleResponse)required
tenants[].​roles[].​idstringrequired
tenants[].​roles[].​vendorIdstringrequired
tenants[].​roles[].​tenantIdstringrequired
tenants[].​roles[].​keystringrequired
tenants[].​roles[].​namestringrequired
tenants[].​roles[].​descriptionstringrequired
tenants[].​roles[].​isDefaultbooleanrequired
tenants[].​roles[].​firstUserRolebooleanrequired
tenants[].​roles[].​levelnumberrequired
tenants[].​roles[].​createdAtstring(date-time)required
tenants[].​roles[].​updatedAtstring(date-time)required
tenants[].​roles[].​permissionsArray of stringsrequired
tenants[].​temporaryExpirationDatestring(date-time)
tenants[].​isDisabledboolean
invisibleboolean
superUserboolean
metadatastringrequired
vendorMetadatastringrequired
createdAtstring(date-time)required
lastLoginstring(date-time)required
groupsArray of objects
subAccountAccessAllowedbooleanrequired
managedBystring
Enum"frontegg""scim2""external"
Response
application/json
{ "id": "string", "email": "string", "name": "string", "profilePictureUrl": "string", "sub": "string", "verified": true, "mfaEnrolled": true, "mfaBypass": true, "phoneNumber": "string", "roles": [ { … } ], "permissions": [ { … } ], "provider": "string", "tenantId": "string", "tenantIds": [ "string" ], "activatedForTenant": true, "isLocked": true, "tenants": [ { … } ], "invisible": true, "superUser": true, "metadata": "string", "vendorMetadata": "string", "createdAt": "2019-08-24T14:15:22Z", "lastLogin": "2019-08-24T14:15:22Z", "groups": [ {} ], "subAccountAccessAllowed": true, "managedBy": "frontegg" }

Add user to tenant

Request

This route adds a user to a tenant. Send the user ID as a path params and the tenant ID as a POST body params. To skip the invite email requirement, pass as an optional POST body params for skipInviteEmail. Set its value to true to skip the invite email. A vendor token is required for this route, it can be obtained from the vendor authentication route.

Path
userIdstringrequired
Bodyapplication/jsonrequired
validateTenantExistboolean
tenantIdstringrequired
skipInviteEmailboolean
curl -i -X POST \
  'https://api.frontegg.com/identity/resources/users/v1/{userId}/tenant' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "validateTenantExist": true,
    "tenantId": "string",
    "skipInviteEmail": true
  }'

Responses

Bodyapplication/json
idstringrequired
emailstringrequired
namestring
profilePictureUrlstring
substringrequired
verifiedbooleanrequired
mfaEnrolledbooleanrequired
mfaBypassboolean
phoneNumberstring
rolesArray of objects(RoleResponse)required
roles[].​idstringrequired
roles[].​vendorIdstringrequired
roles[].​tenantIdstringrequired
roles[].​keystringrequired
roles[].​namestringrequired
roles[].​descriptionstringrequired
roles[].​isDefaultbooleanrequired
roles[].​firstUserRolebooleanrequired
roles[].​levelnumberrequired
roles[].​createdAtstring(date-time)required
roles[].​updatedAtstring(date-time)required
roles[].​permissionsArray of stringsrequired
permissionsArray of objects(PermissionResponse)required
permissions[].​idstringrequired
permissions[].​keystringrequired
permissions[].​namestringrequired
permissions[].​descriptionstringrequired
permissions[].​createdAtstring(date-time)required
permissions[].​updatedAtstring(date-time)required
permissions[].​roleIdsArray of stringsrequired
permissions[].​categoryIdstringrequired
permissions[].​fePermissionbooleanrequired
providerstringrequired
tenantIdstringrequired
tenantIdsArray of stringsrequired
activatedForTenantboolean
isLockedboolean
tenantsArray of objects(UserTenantDto)required
tenants[].​tenantIdstringrequired
tenants[].​rolesArray of objects(RoleResponse)required
tenants[].​roles[].​idstringrequired
tenants[].​roles[].​vendorIdstringrequired
tenants[].​roles[].​tenantIdstringrequired
tenants[].​roles[].​keystringrequired
tenants[].​roles[].​namestringrequired
tenants[].​roles[].​descriptionstringrequired
tenants[].​roles[].​isDefaultbooleanrequired
tenants[].​roles[].​firstUserRolebooleanrequired
tenants[].​roles[].​levelnumberrequired
tenants[].​roles[].​createdAtstring(date-time)required
tenants[].​roles[].​updatedAtstring(date-time)required
tenants[].​roles[].​permissionsArray of stringsrequired
tenants[].​temporaryExpirationDatestring(date-time)
tenants[].​isDisabledboolean
invisibleboolean
superUserboolean
metadatastringrequired
vendorMetadatastringrequired
createdAtstring(date-time)required
lastLoginstring(date-time)required
groupsArray of objects
subAccountAccessAllowedbooleanrequired
managedBystring
Enum"frontegg""scim2""external"
Response
application/json
{ "id": "string", "email": "string", "name": "string", "profilePictureUrl": "string", "sub": "string", "verified": true, "mfaEnrolled": true, "mfaBypass": true, "phoneNumber": "string", "roles": [ { … } ], "permissions": [ { … } ], "provider": "string", "tenantId": "string", "tenantIds": [ "string" ], "activatedForTenant": true, "isLocked": true, "tenants": [ { … } ], "invisible": true, "superUser": true, "metadata": "string", "vendorMetadata": "string", "createdAt": "2019-08-24T14:15:22Z", "lastLogin": "2019-08-24T14:15:22Z", "groups": [ {} ], "subAccountAccessAllowed": true, "managedBy": "frontegg" }

Update user email

Request

This route updates the email address for a user globally, regardless of tenant. Send the user’s ID as a path params. Send the user’s new email address as a PUT body params.

Path
userIdstringrequired
Bodyapplication/jsonrequired
emailstring(email)required
curl -i -X PUT \
  'https://api.frontegg.com/identity/resources/users/v1/{userId}/email' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "user@example.com"
  }'

Responses

Bodyapplication/json
idstringrequired
emailstringrequired
namestring
profilePictureUrlstring
substringrequired
verifiedbooleanrequired
mfaEnrolledbooleanrequired
mfaBypassboolean
phoneNumberstring
rolesArray of objects(RoleResponse)required
roles[].​idstringrequired
roles[].​vendorIdstringrequired
roles[].​tenantIdstringrequired
roles[].​keystringrequired
roles[].​namestringrequired
roles[].​descriptionstringrequired
roles[].​isDefaultbooleanrequired
roles[].​firstUserRolebooleanrequired
roles[].​levelnumberrequired
roles[].​createdAtstring(date-time)required
roles[].​updatedAtstring(date-time)required
roles[].​permissionsArray of stringsrequired
permissionsArray of objects(PermissionResponse)required
permissions[].​idstringrequired
permissions[].​keystringrequired
permissions[].​namestringrequired
permissions[].​descriptionstringrequired
permissions[].​createdAtstring(date-time)required
permissions[].​updatedAtstring(date-time)required
permissions[].​roleIdsArray of stringsrequired
permissions[].​categoryIdstringrequired
permissions[].​fePermissionbooleanrequired
providerstringrequired
tenantIdstringrequired
tenantIdsArray of stringsrequired
activatedForTenantboolean
isLockedboolean
tenantsArray of objects(UserTenantDto)required
tenants[].​tenantIdstringrequired
tenants[].​rolesArray of objects(RoleResponse)required
tenants[].​roles[].​idstringrequired
tenants[].​roles[].​vendorIdstringrequired
tenants[].​roles[].​tenantIdstringrequired
tenants[].​roles[].​keystringrequired
tenants[].​roles[].​namestringrequired
tenants[].​roles[].​descriptionstringrequired
tenants[].​roles[].​isDefaultbooleanrequired
tenants[].​roles[].​firstUserRolebooleanrequired
tenants[].​roles[].​levelnumberrequired
tenants[].​roles[].​createdAtstring(date-time)required
tenants[].​roles[].​updatedAtstring(date-time)required
tenants[].​roles[].​permissionsArray of stringsrequired
tenants[].​temporaryExpirationDatestring(date-time)
tenants[].​isDisabledboolean
invisibleboolean
superUserboolean
metadatastringrequired
vendorMetadatastringrequired
createdAtstring(date-time)required
lastLoginstring(date-time)required
groupsArray of objects
subAccountAccessAllowedbooleanrequired
managedBystring
Enum"frontegg""scim2""external"
Response
application/json
{ "id": "string", "email": "string", "name": "string", "profilePictureUrl": "string", "sub": "string", "verified": true, "mfaEnrolled": true, "mfaBypass": true, "phoneNumber": "string", "roles": [ { … } ], "permissions": [ { … } ], "provider": "string", "tenantId": "string", "tenantIds": [ "string" ], "activatedForTenant": true, "isLocked": true, "tenants": [ { … } ], "invisible": true, "superUser": true, "metadata": "string", "vendorMetadata": "string", "createdAt": "2019-08-24T14:15:22Z", "lastLogin": "2019-08-24T14:15:22Z", "groups": [ {} ], "subAccountAccessAllowed": true, "managedBy": "frontegg" }

Unlock user

Request

This route unlocks a locked user. An unlocked user can sign in and use the system globally, regardless of the tenant. To unlock a user, call this route and send the user’s ID as a path params. A vendor token is required for this route, it can be obtained from the vendor authentication route.

Path
userIdstringrequired
curl -i -X POST \
  'https://api.frontegg.com/identity/resources/users/v1/{userId}/unlock' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Lock user

Request

This route locks a user. A locked user cannot sign in or use the system globally, regardless of the tenant. To lock a user, call this route and send the user’s ID as a path params. A vendor token is required for this route, it can be obtained from the vendor authentication route.

Path
userIdstringrequired
curl -i -X POST \
  'https://api.frontegg.com/identity/resources/users/v1/{userId}/lock' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Move all users from one tenant to another

Request

This route migrates all the users from the source tenant to the target. Specify in the request body the srcTenantId (the source tenant ID) and targetTenantId (the target tenant ID). A vendor token is required for this route, it can be obtained from the vendor authentication route.

Bodyapplication/jsonrequired
srcTenantIdstringrequired
targetTenantIdstringrequired
curl -i -X PUT \
  https://api.frontegg.com/identity/resources/users/v1/tenants/migrate \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "srcTenantId": "string",
    "targetTenantId": "string"
  }'

Responses

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