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

Get roles

Request

This route returns all roles for all tenants. To get a role for a specific tenant, send the tenant ID in the frontegg-tenant-id header. Each role is an object containing the name, permissions, and other defining information.

Headers
frontegg-tenant-idstring

For relating a role to a specific tenant, use get tenants API to find the tenant ids

curl -i -X GET \
  https://api.frontegg.com/identity/resources/roles/v1 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Bodyapplication/jsonArray [
idstringrequired
vendorIdstringrequired
tenantIdstringrequired
keystringrequired
namestringrequired
descriptionstringrequired
isDefaultbooleanrequired
firstUserRolebooleanrequired
levelnumberrequired
createdAtstring(date-time)required
updatedAtstring(date-time)required
permissionsArray of stringsrequired
]
Response
application/json
[ { "id": "string", "vendorId": "string", "tenantId": "string", "key": "string", "name": "string", "description": "string", "isDefault": true, "firstUserRole": true, "level": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "permissions": [ … ] } ]

Create roles

Request

This route adds a new role for all tenants. To add a role for a specific tenant, send tenant ID in the frontegg-tenant-id header. Each role you add requires information about the role in the POST body. Note that you do not assign permissions to the role here. Use the attach permissions to role route to do that.

Headers
frontegg-tenant-idstring

For relating a role to a specific tenant, use get tenants API to find the tenant ids

Bodyapplication/jsonrequiredArray [
keystringrequired
namestringrequired
descriptionstring
isDefaultboolean

This role will be assigned for every user that will be added without specified roles

migrateRoleboolean

Set this property to true together with isDefault in order to assign this role to all users

firstUserRoleboolean

This role will be assigned to the first user of a tenant (new tenants only)

levelnumber[ 0 .. 32767 ]required

Role level for roles elevation, lower level means stronger role.

]
curl -i -X POST \
  https://api.frontegg.com/identity/resources/roles/v1 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "key": "string",
      "name": "string",
      "description": "string",
      "isDefault": true,
      "migrateRole": true,
      "firstUserRole": true,
      "level": 32767
    }
  ]'

Responses

Bodyapplication/jsonArray [
idstringrequired
vendorIdstringrequired
tenantIdstringrequired
keystringrequired
namestringrequired
descriptionstringrequired
isDefaultbooleanrequired
firstUserRolebooleanrequired
levelnumberrequired
createdAtstring(date-time)required
updatedAtstring(date-time)required
permissionsArray of stringsrequired
]
Response
application/json
[ { "id": "string", "vendorId": "string", "tenantId": "string", "key": "string", "name": "string", "description": "string", "isDefault": true, "firstUserRole": true, "level": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "permissions": [ … ] } ]

Delete role

Request

This route deletes a role. Add the role ID as a path parameter to the route url to specify which role you are deleting.

Path
roleIdstringrequired
Headers
frontegg-tenant-idstring

For relating a role to a specific tenant, use get tenants API to find the tenant ids

curl -i -X DELETE \
  'https://api.frontegg.com/identity/resources/roles/v1/{roleId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Update role

Request

This route updates an existing role. Add the role ID as a path parameter to the route url to specify which role you are updating. Send the updated information about the role in the PATCH body. Note that you do not update permissions for the role here. Use the attach permissions to role route to do that. Use the Get roles API to get the role ID.

Path
roleIdstringrequired
Headers
frontegg-tenant-idstring

For relating a role to a specific tenant, use get tenants API to find the tenant ids

Bodyapplication/jsonrequired
isDefaultboolean

This role will be assigned for every user that will be added without specified roles

firstUserRoleboolean

This role will be assigned to the first user of a tenant (new tenants only)

migrateRoleboolean

Set this property to true together with isDefault in order to assign this role to all users

levelnumber[ 0 .. 32767 ]

Role level for roles elevation, lower level means stronger role.

keystring
namestring
descriptionstring
curl -i -X PATCH \
  'https://api.frontegg.com/identity/resources/roles/v1/{roleId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "isDefault": true,
    "firstUserRole": true,
    "migrateRole": true,
    "level": 32767,
    "key": "string",
    "name": "string",
    "description": "string"
  }'

Responses

Bodyapplication/json
idstringrequired
vendorIdstringrequired
tenantIdstringrequired
keystringrequired
namestringrequired
descriptionstringrequired
isDefaultbooleanrequired
firstUserRolebooleanrequired
levelnumberrequired
createdAtstring(date-time)required
updatedAtstring(date-time)required
permissionsArray of stringsrequired
Response
application/json
{ "id": "string", "vendorId": "string", "tenantId": "string", "key": "string", "name": "string", "description": "string", "isDefault": true, "firstUserRole": true, "level": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "permissions": [ "string" ] }

Assign permissions to a role

Request

This route assigns permissions to a role. Add the role ID as a path parameter to the route url and include the permission IDs in the request body as an array of strings. Any pre-existing permissions will be overridden by the new permissions. Use the get roles API to get the role IDs. Use the Get permissions API to get the permissions IDs.

Path
roleIdstringrequired
Headers
frontegg-tenant-idstring

For relating a role to a specific tenant, use get tenants API to find the tenant ids

Bodyapplication/jsonrequired
permissionIdsArray of stringsrequired

Set permission ids to attach to the role

curl -i -X PUT \
  'https://api.frontegg.com/identity/resources/roles/v1/{roleId}/permissions' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "permissionIds": [
      "string"
    ]
  }'

Responses

Bodyapplication/json
idstringrequired
vendorIdstringrequired
tenantIdstringrequired
keystringrequired
namestringrequired
descriptionstringrequired
isDefaultbooleanrequired
firstUserRolebooleanrequired
levelnumberrequired
createdAtstring(date-time)required
updatedAtstring(date-time)required
permissionsArray of stringsrequired
Response
application/json
{ "id": "string", "vendorId": "string", "tenantId": "string", "key": "string", "name": "string", "description": "string", "isDefault": true, "firstUserRole": true, "level": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "permissions": [ "string" ] }

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

MFA settings

Operations

Password settings

Operations

Personal tokens

Operations

Sessions management

Operations

User groups

Operations

User management

Operations

User sessions

Operations

Users-applications management

Operations