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

Get permissions

Request

This route returns all permissions for the vendor. Each permission is an object containing the name, description, assigned roles, categories, and other defining information.

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

Responses

Bodyapplication/jsonArray [
idstringrequired
keystringrequired
namestringrequired
descriptionstringrequired
createdAtstring(date-time)required
updatedAtstring(date-time)required
roleIdsArray of stringsrequired
categoryIdstringrequired
fePermissionbooleanrequired
]
Response
application/json
[ { "id": "string", "key": "string", "name": "string", "description": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "roleIds": [ … ], "categoryId": "string", "fePermission": true } ]

Create permissions

Request

This route adds a new permission. Each permission you add requires information about the permission in the POST body. Note that you do not associate permissions to the role here. Use the associate permission to roles route to do that.

Bodyapplication/jsonrequiredArray [
keystringrequired
namestringrequired
descriptionstring
categoryIdstring
assignmentTypestring
Enum"NEVER""ALWAYS""ASSIGNABLE"
]
curl -i -X POST \
  https://api.frontegg.com/identity/resources/permissions/v1 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "key": "string",
      "name": "string",
      "description": "string",
      "categoryId": "string",
      "assignmentType": "NEVER"
    }
  ]'

Responses

Bodyapplication/jsonArray [
idstringrequired
keystringrequired
namestringrequired
descriptionstringrequired
createdAtstring(date-time)required
updatedAtstring(date-time)required
roleIdsArray of stringsrequired
categoryIdstringrequired
fePermissionbooleanrequired
]
Response
application/json
[ { "id": "string", "key": "string", "name": "string", "description": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "roleIds": [ … ], "categoryId": "string", "fePermission": true } ]

Delete permission

Request

This route deletes a permission. Add the permission ID as a path parameter to the route url to specify which permission you are deleting. Use the Get permissions API to get the permission ID.

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

Responses

Update permission

Request

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

Path
permissionIdstringrequired
Bodyapplication/jsonrequired
keystring
namestring
descriptionstring
categoryIdstring
curl -i -X PATCH \
  'https://api.frontegg.com/identity/resources/permissions/v1/{permissionId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "key": "string",
    "name": "string",
    "description": "string",
    "categoryId": "string"
  }'

Responses

Bodyapplication/json
idstringrequired
keystringrequired
namestringrequired
descriptionstringrequired
createdAtstring(date-time)required
updatedAtstring(date-time)required
roleIdsArray of stringsrequired
categoryIdstringrequired
fePermissionbooleanrequired
Response
application/json
{ "id": "string", "key": "string", "name": "string", "description": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "roleIds": [ "string" ], "categoryId": "string", "fePermission": true }

Set a permission to multiple roles

Request

This route associates a permission to multiple roles. Add the permission ID as a path parameter to the route url and include the role IDs in the request body as an array of strings. Any pre-existing roles associated with the permission will stay associated. Use the Get roles API to get the role IDs.

Path
permissionIdstringrequired
Bodyapplication/jsonrequired
roleIdsArray of stringsrequired

The permission will be assigned to the specified roles

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

Responses

Bodyapplication/json
idstringrequired
keystringrequired
namestringrequired
descriptionstringrequired
createdAtstring(date-time)required
updatedAtstring(date-time)required
roleIdsArray of stringsrequired
categoryIdstringrequired
fePermissionbooleanrequired
Response
application/json
{ "id": "string", "key": "string", "name": "string", "description": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "roleIds": [ "string" ], "categoryId": "string", "fePermission": true }

Set permissions classification

Request

This route accepts an array of permissionIds and the type for these permissions classifications. This allows segregating which permissions will be used from self service

Bodyapplication/jsonrequired
permissionIdsArray of stringsrequired
typestringrequired
Enum"NEVER""ALWAYS""ASSIGNABLE"
curl -i -X PUT \
  https://api.frontegg.com/identity/resources/permissions/v1/classification \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "permissionIds": [
      "string"
    ],
    "type": "NEVER"
  }'

Responses

Bodyapplication/json
idstringrequired
keystringrequired
namestringrequired
descriptionstringrequired
createdAtstring(date-time)required
updatedAtstring(date-time)required
roleIdsArray of stringsrequired
categoryIdstringrequired
fePermissionbooleanrequired
Response
application/json
{ "id": "string", "key": "string", "name": "string", "description": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "roleIds": [ "string" ], "categoryId": "string", "fePermission": true }

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

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