Entitlements Overview

The Entitlements Engine is powered by the isEntitledTo query and is designed to manage and control user access within your application. It enables you to grant users specific roles, permissions, feature access, and more, providing a flexible framework for access management.

Below is an overview of API endpoints relevant to managing features, plans, feature flags, and API access control within your application. All endpoints are classified as Management Endpoints, requiring environment-level authorization and offering comprehensive control over entitlement resources.

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

Features

Operations

Get Features

Request

Retrieve a paginated list of features. You can search for specific features or order them by field

Query
offsetnumber

Page offset of the results to return

Default 0
Example: offset=0
limitnumber

Number of results per page

Default 10
Example: limit=10
filterstring

Search input; Searchable fields: name

Example: filter=search-text
orderBystring

Order fields by date created (createdAt) or expired (expirationDate)

Enum"name""key""createdAt"
Example: orderBy=key
sortTypestring

Sort fields by an ascending (ASC) or a decending (DESC) order

Enum"ASC""DESC"
Example: sortType=ASC
featureIdsArray of strings

Comma separated feature IDs that can be used to filter the results

Example: featureIds=e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3
permissionKeysArray of strings

Comma separated permission keys that can be used to filter the results

Example: permissionKeys=permission.read&permissionKeys=permission.write
hasFeatureFlagboolean

Filter out features that are linked/not linked to feature-flag

Example: hasFeatureFlag=flase
featureKeysArray of strings

Comma separated feature Keys that can be used to filter the results

Example: featureKeys=test-feature
curl -i -X GET \
  https://api.frontegg.com/entitlements/resources/features/v1 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Bodyapplication/json
itemsArray of objects(FeatureDto)
hasNextboolean
Response
application/json
{ "items": [ { … } ], "hasNext": true }

Create Feature

Request

Create a new feature

Bodyapplication/jsonrequired
namestringrequired

String representing the feature name

Example: "Test Feature"
keystringrequired

String representing the feature key

Example: "test-feature"
descriptionstring

Feature description

Example: "This is a test feature"
permissionsArray of strings

Array of permissions linked to a feature

Example: ["permission.read","permission.write"]
curl -i -X POST \
  https://api.frontegg.com/entitlements/resources/features/v1 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Test Feature",
    "key": "test-feature",
    "description": "This is a test feature",
    "permissions": [
      "permission.read",
      "permission.write"
    ]
  }'

Responses

Bodyapplication/json
idstringrequired

UUID string representing the feature ID

Example: "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3"
vendorIdstringrequired

UUID string representing the vendor ID

Example: "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3"
namestringrequired

String representing the feature name

Example: "Test Feature"
keystringrequired

String representing the feature key

Example: "test-feature"
metadataobjectrequired

JSON String

Example: "{ \"some-key\": \"some-value\" }"
descriptionstring

Feature description

Example: "This is a test feature"
createdAtstringrequired

Date when a feature was created

Example: "2022-01-01T00:00:00"
updatedAtstring

Date when a feature was last updated

Example: "2022-01-01T00:00:00"
permissionsArray of strings

Array of permissions linked to a feature

Example: ["permission.read","permission.write"]
featureFlagobject

Related Feature-Flag

Response
application/json
{ "id": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "vendorId": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "name": "Test Feature", "key": "test-feature", "metadata": "{ \"some-key\": \"some-value\" }", "description": "This is a test feature", "createdAt": "2022-01-01T00:00:00", "updatedAt": "2022-01-01T00:00:00", "permissions": [ "permission.read", "permission.write" ], "featureFlag": { "id": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "name": "Test Feature Flag", "on": true, "offTreatment": "false", "defaultTreatment": "true", "description": "This is a test feature flag", "updatedAt": "2022-01-01T00:00:00", "createdAt": "2022-01-01T00:00:00" } }

Update Feature

Request

Update an existing feature

Path
featureIdstringrequired
Bodyapplication/jsonrequired
namestring

String representing the feature name

Example: "Test Feature"
keystring

String representing the feature key

Example: "test-feature"
descriptionstring

Feature description

Example: "This is a test feature"
permissionsArray of strings

Array of permissions linked to a feature

Example: ["permission.read","permission.write"]
curl -i -X PATCH \
  'https://api.frontegg.com/entitlements/resources/features/v1/{featureId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Test Feature",
    "key": "test-feature",
    "description": "This is a test feature",
    "permissions": [
      "permission.read",
      "permission.write"
    ]
  }'

Responses

Delete Feature

Request

Delete a feature

Path
featureIdstringrequired
curl -i -X DELETE \
  'https://api.frontegg.com/entitlements/resources/features/v1/{featureId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Create Feature

Request

Create a new feature

Bodyapplication/jsonrequired
namestringrequired

String representing the feature name

Example: "Test Feature"
keystringrequired

String representing the feature key

Example: "test-feature"
descriptionstring

Feature description

Example: "This is a test feature"
permissionsArray of objects(PermissionDto)

Array of permissions linked to a feature

metadatastring

JSON String

Example: "{ \"some-key\": \"some-value\" }"
curl -i -X POST \
  https://api.frontegg.com/entitlements/resources/features/v2 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Test Feature",
    "key": "test-feature",
    "description": "This is a test feature",
    "permissions": [
      {
        "permissionKey": "user.read",
        "permissionId": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3"
      }
    ],
    "metadata": "{ \"some-key\": \"some-value\" }"
  }'

Responses

Bodyapplication/json
idstringrequired

UUID string representing the feature ID

Example: "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3"
vendorIdstringrequired

UUID string representing the vendor ID

Example: "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3"
namestringrequired

String representing the feature name

Example: "Test Feature"
keystringrequired

String representing the feature key

Example: "test-feature"
metadataobjectrequired

JSON String

Example: "{ \"some-key\": \"some-value\" }"
descriptionstring

Feature description

Example: "This is a test feature"
createdAtstringrequired

Date when a feature was created

Example: "2022-01-01T00:00:00"
updatedAtstring

Date when a feature was last updated

Example: "2022-01-01T00:00:00"
permissionsArray of strings

Array of permissions linked to a feature

Example: ["permission.read","permission.write"]
featureFlagobject

Related Feature-Flag

Response
application/json
{ "id": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "vendorId": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "name": "Test Feature", "key": "test-feature", "metadata": "{ \"some-key\": \"some-value\" }", "description": "This is a test feature", "createdAt": "2022-01-01T00:00:00", "updatedAt": "2022-01-01T00:00:00", "permissions": [ "permission.read", "permission.write" ], "featureFlag": { "id": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "name": "Test Feature Flag", "on": true, "offTreatment": "false", "defaultTreatment": "true", "description": "This is a test feature flag", "updatedAt": "2022-01-01T00:00:00", "createdAt": "2022-01-01T00:00:00" } }

Update Feature

Request

Update an existing feature

Path
featureIdstringrequired
Bodyapplication/jsonrequired
namestring

String representing the feature name

Example: "Test Feature"
keystring

String representing the feature key

Example: "test-feature"
descriptionstring

Feature description

Example: "This is a test feature"
permissionsArray of objects(PermissionDto)

Array of permissions linked to a feature

metadatastring

JSON String

Example: "{ \"some-key\": \"some-value\" }"
curl -i -X PATCH \
  'https://api.frontegg.com/entitlements/resources/features/v2/{featureId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Test Feature",
    "key": "test-feature",
    "description": "This is a test feature",
    "permissions": [
      {
        "permissionKey": "user.read",
        "permissionId": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3"
      }
    ],
    "metadata": "{ \"some-key\": \"some-value\" }"
  }'

Responses

Plans

Operations

Entitlements

Operations

Feature Flags

Operations

API Access Control

Operations