openapi: 3.0.0
paths:
/resources/plans/v1/tenant/{tenantId}:
get:
operationId: PlansControllerV1_getTenantPlans
x-tag: Plans
summary: Get Account (tenant) Plans
description: Retrieve a paginated list of plans for a specific account (tenant) with filtering, search, and sorting capabilities. Search by name, sort by name or creation date, and optionally exclude non-entitled plans.
parameters:
- name: tenantId
required: true
in: path
schema:
type: string
- name: offset
required: false
in: query
description: Page offset of the results to return
example: '0'
schema:
default: 0
type: number
- name: limit
required: false
in: query
description: Number of results per page
example: '10'
schema:
default: 10
type: number
- name: filter
required: false
in: query
description: Search input, searchable by `name`
example: search-text
schema:
type: string
- name: orderBy
required: false
in: query
description: Field to order results by create date (`createdAt`) or expiration date (`expirationDate`)
example: name
schema:
enum:
- name
- createdAt
type: string
- name: sortType
required: false
in: query
description: Sort type, ASC for ascending, DESC for descending
example: DESC
schema:
enum:
- ASC
- DESC
type: string
- name: excludeNonEntitledPlans
required: false
in: query
description: Boolean value to include related entities in the response
schema:
type: boolean
- name: featureKeys
required: false
in: query
description: Filter plans that contain features with these keys
example:
- feature-key-1
- feature-key-2
schema:
type: array
items:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PageDto'
- properties:
items:
type: array
items:
$ref: '#/components/schemas/PlanDto'
hasNext:
type: boolean
tags:
- Plans
/resources/plans/v1:
get:
operationId: PlansControllerV1_getPlans
x-tag: Plans
summary: Get Plans
description: Retrieve a paginated list of plans with filtering, search, and sorting capabilities. Search by name, sort by name or creation date, and filter by feature IDs, user IDs, or account (tenant) IDs.
parameters:
- name: offset
required: false
in: query
description: Page offset of the results to return
example: '0'
schema:
default: 0
type: number
- name: limit
required: false
in: query
description: Number of results per page
example: '10'
schema:
default: 10
type: number
- name: filter
required: false
in: query
description: Search input, searchable by `name`
example: search-text
schema:
type: string
- name: orderBy
required: false
in: query
description: Field to order results by create date (`createdAt`) or expiration date (`expirationDate`)
example: name
schema:
enum:
- name
- createdAt
type: string
- name: sortType
required: false
in: query
description: Sort type, ASC for ascending, DESC for descending
example: DESC
schema:
enum:
- ASC
- DESC
type: string
- name: featureIds
required: false
in: query
description: Comma separated feature IDs to filter results by
example: e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3
schema:
type: array
items:
type: string
- name: userIds
required: false
in: query
description: Comma separated user IDs to filter results by
example: e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3
schema:
type: array
items:
type: string
- name: tenantIds
required: false
in: query
description: Comma separated account (tenant) IDs to filter results by
example: e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3
schema:
type: array
items:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PageDto'
- properties:
items:
type: array
items:
$ref: '#/components/schemas/PlanDto'
hasNext:
type: boolean
tags:
- Plans
post:
operationId: PlansControllerV1_createPlan
x-tag: Plans
summary: Create Plan
description: Create a new plan with features, rules, default treatment, and optional auto-assignment settings.
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePlanDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/PlanDto'
tags:
- Plans
/resources/plans/v1/{id}:
get:
operationId: PlansControllerV1_getSinglePlan
x-tag: Plans
summary: Get Single Plan
description: Retrieve a single plan by its unique identifier, including linked features and entitlements.
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/PlanDto'
tags:
- Plans
patch:
operationId: PlansControllerV1_updatePlan
x-tag: Plans
summary: Update Plan
description: Update an existing plan's name, features, rules, default treatment, or auto-assignment settings.
parameters:
- name: id
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePlanDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/PlanDto'
tags:
- Plans
delete:
operationId: PlansControllerV1_deletePlan
x-tag: Plans
summary: Delete Plan
description: Delete an existing plan by its unique identifier.
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Plans
/resources/plans/v1/{id}/features:
get:
operationId: PlansControllerV1_getPlanFeatures
x-tag: Plans
summary: Get Plan Features
description: Retrieve a paginated list of plan features, with the abillity to search and order (by date (`createdAt`) or expiration date (`expirationDate`)).
parameters:
- name: id
required: true
in: path
schema:
type: string
- name: offset
required: false
in: query
description: Page offset of the results to return
example: '0'
schema:
default: 0
type: number
- name: limit
required: false
in: query
description: Number of results per page
example: '10'
schema:
default: 10
type: number
- name: filter
required: false
in: query
description: 'Search input; Searchable fields: `name`'
example: search-text
schema:
type: string
- name: orderBy
required: false
in: query
description: Order fields by date created (`createdAt`) or expired (`expirationDate`)
example: key
schema:
default: createdAt
enum:
- name
- key
- createdAt
type: string
- name: sortType
required: false
in: query
description: Sort fields by an ascending (`ASC`) or a decending (`DESC`) order
example: ASC
schema:
default: DESC
enum:
- ASC
- DESC
type: string
- name: featureIds
required: false
in: query
description: Comma separated feature IDs that can be used to filter the results
example:
- e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3
schema:
type: array
items:
type: string
- name: permissionKeys
required: false
in: query
description: Comma separated permission keys that can be used to filter the results
example:
- permission.read
- permission.write
schema:
type: array
items:
type: string
- name: hasFeatureFlag
required: false
in: query
description: Filter out features that are linked/not linked to feature-flag
example: flase
schema:
type: boolean
- name: featureKeys
required: false
in: query
description: Comma separated feature Keys that can be used to filter the results
example:
- test-feature
schema:
type: array
items:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PageDto'
- properties:
items:
type: array
items:
$ref: '#/components/schemas/PlanFeatureDto'
hasNext:
type: boolean
tags:
- Plans
/resources/plans/v1/{id}/features/link:
patch:
operationId: PlansControllerV1_linkFeaturesToPlan
x-tag: Plans
summary: Link Features to Plan
description: Link multiple features to an existing plan by their feature IDs.
parameters:
- name: id
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LinkFeaturesDto'
responses:
'200':
description: ''
tags:
- Plans
/resources/plans/v1/{id}/features/unlink:
patch:
operationId: PlansControllerV1_unlinkFeaturesFromPlan
x-tag: Plans
summary: Unlink Features From Plan
description: Unlink multiple features from an existing plan by their feature IDs.
parameters:
- name: id
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UnlinkFeaturesDto'
responses:
'200':
description: ''
tags:
- Plans
/resources/routes/v1:
get:
operationId: RoutesControllerV1_getMany
x-tag: API Access Control
summary: Get Routes
description: Retrieve all configured routes with their HTTP methods, paths, policies, and associated rules for access control and feature gating.
parameters: []
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RouteDto'
tags:
- API Access Control
post:
operationId: RoutesControllerV1_create
x-tag: API Access Control
summary: Create Route
description: Create a new route configuration with HTTP method, path, and policy type (`allow`, `deny`, or `ruleBased`) for access control management.
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateRouteDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/RouteDto'
tags:
- API Access Control
/resources/routes/v1/{id}:
get:
operationId: RoutesControllerV1_getSingle
x-tag: API Access Control
summary: Get Single Route
description: Retrieve detailed information for a specific route by its unique ID, including method, path, policy type, and associated rules.
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/RouteDto'
tags:
- API Access Control
delete:
operationId: RoutesControllerV1_delete
x-tag: API Access Control
summary: Delete Route
description: Delete a specific route by its unique ID, permanently removing the route configuration and its associated access control rules.
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- API Access Control
patch:
operationId: RoutesControllerV1_update
x-tag: API Access Control
summary: Update Route
description: Update an existing route's configuration, including HTTP method, path, policy type, and description for access control management.
parameters:
- name: id
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateRouteDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/RouteDto'
tags:
- API Access Control
/resources/routes/v1/import-open-api:
post:
operationId: RoutesControllerV1_importOpenApi
x-tag: API Access Control
summary: Import Open API
description: Import route configurations from an OpenAPI specification in JSON format, automatically creating routes based on the API definition.
parameters: []
responses:
'200':
description: ''
tags:
- API Access Control
/resources/routes/v1/{id}/rules:
put:
operationId: RoutesControllerV1_replaceRules
x-tag: API Access Control
summary: Create or Replace Route Rules
description: Create or replace route rules for a specific route, defining access control through feature flags or permission-based restrictions that determine user authorization.
parameters:
- name: id
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ReplaceRouteRulesDto'
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RouteRuleDto'
tags:
- API Access Control
/resources/routes/v1/configuration:
get:
operationId: RoutesConfigurationsControllerV1_getRoutesConfiguration
x-tag: API Access Control Configurations
summary: Get Routes Configuration
description: Retrieve routes configuration
parameters: []
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/RoutesConfigurationDto'
tags:
- API Access Control Configurations
patch:
operationId: RoutesConfigurationsControllerV1_updateRoutesConfiguration
x-tag: API Access Control Configurations
summary: Update Routes Configuration
description: Update route configurations
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateRoutesConfigurationDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/RoutesConfigurationDto'
tags:
- API Access Control Configurations
/resources/features/v1:
get:
operationId: FeaturesControllerV1_getFeatures
x-tag: Features
summary: Get Feature Flags
description: Retrieve a paginated list of features with filtering, search, and sorting capabilities. Filter by feature IDs, keys, permission keys, or feature flag association. Search by name and sort by name, key, or creation date.
parameters:
- name: offset
required: false
in: query
description: Page offset of the results to return
example: '0'
schema:
default: 0
type: number
- name: limit
required: false
in: query
description: Number of results per page
example: '10'
schema:
default: 10
type: number
- name: filter
required: false
in: query
description: 'Search input; Searchable fields: `name`'
example: search-text
schema:
type: string
- name: orderBy
required: false
in: query
description: Order fields by date created (`createdAt`) or expired (`expirationDate`)
example: key
schema:
default: createdAt
enum:
- name
- key
- createdAt
type: string
- name: sortType
required: false
in: query
description: Sort fields by an ascending (`ASC`) or a decending (`DESC`) order
example: ASC
schema:
default: DESC
enum:
- ASC
- DESC
type: string
- name: featureIds
required: false
in: query
description: Comma separated feature IDs that can be used to filter the results
example:
- e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3
schema:
type: array
items:
type: string
- name: permissionKeys
required: false
in: query
description: Comma separated permission keys that can be used to filter the results
example:
- permission.read
- permission.write
schema:
type: array
items:
type: string
- name: hasFeatureFlag
required: false
in: query
description: Filter out features that are linked/not linked to feature-flag
example: flase
schema:
type: boolean
- name: featureKeys
required: false
in: query
description: Comma separated feature Keys that can be used to filter the results
example:
- test-feature
schema:
type: array
items:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PageDto'
- properties:
items:
type: array
items:
$ref: '#/components/schemas/FeatureDto'
hasNext:
type: boolean
tags:
- Features
post:
operationId: FeaturesControllerV1_createFeature
x-tag: Features
summary: Create Feature
description: Create a new feature with a unique name and key, optional description, and associated permissions.
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateFeatureDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/FeatureDto'
tags:
- Features
/resources/features/v1/{featureId}:
patch:
operationId: FeaturesControllerV1_updateFeature
x-tag: Features
summary: Update Feature
description: Update an existing feature's name, key, description, or associated permissions.
parameters:
- name: featureId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateFeatureDto'
responses:
'200':
description: ''
tags:
- Features
delete:
operationId: FeaturesControllerV1_deleteFeature
x-tag: Features
summary: Delete Feature
description: Delete an existing feature by its unique identifier.
parameters:
- name: featureId
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Features
/resources/features/v2:
post:
operationId: FeaturesControllerV2_create
x-tag: Features
summary: Create Feature
description: Create a new feature with a unique name and key, optional description, associated permissions, and custom metadata.
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateFeatureDtoV2'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/FeatureDto'
tags:
- Features
/resources/features/v2/{featureId}:
patch:
operationId: FeaturesControllerV2_update
x-tag: Features
summary: Update Feature
description: Update an existing feature's name, key, description, associated permissions, or custom metadata.
parameters:
- name: featureId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateFeatureDtoV2'
responses:
'200':
description: ''
tags:
- Features
/resources/entitlements/v2:
get:
operationId: EntitlementsControllerV2_getEntitlements
x-tag: Entitlements
summary: Get Entitlements
description: Retrieve a paginated list of entitlements with sorting and filtering capabilities. Sort by expiration date (`expirationDate`) or creation date (`createdAt`), filter by plan IDs (`planId`, `planIds`), assign level (`assignLevel`) for user or account, user IDs (`userIds`), or account (tenant) IDs (`tenantIds`), and optionally include related entities (`withRelations`).
parameters:
- name: offset
required: false
in: query
description: Page offset of results to return
example: '0'
schema:
type: number
- name: limit
required: false
in: query
description: Number of results per page
example: '10'
schema:
type: number
- name: sortType
required: false
in: query
description: Sort type, `ASC` for ascending, `DESC` for descending
example: DESC
schema:
enum:
- ASC
- DESC
type: string
- name: planId
required: false
in: query
description: UUID string representing the plan ID
example: e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3
schema:
type: string
- name: planIds
required: false
in: query
description: UUIDs string array representing the plan IDs
example: '["e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3"]'
schema:
type: array
items:
type: string
- name: assignLevel
required: false
in: query
description: Assign level, `USER` for user-level entitlements, `TENANT` for tenant-level entitlements
example: User
schema:
enum:
- USER
- TENANT
type: string
- name: orderBy
required: false
in: query
description: Field to order results by date (`createdAt`) or expiration date (`expirationDate`)
example: expirationDate
schema:
enum:
- expirationDate
- createdAt
type: string
- name: userIds
required: false
in: query
description: Comma separated user IDs to filter results by
example: e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3
schema:
type: array
items:
type: string
- name: tenantIds
required: false
in: query
description: Comma separated account (tenant) IDs to filter results by
example: e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3
schema:
type: array
items:
type: string
- name: withRelations
required: false
in: query
description: Boolean value to include related entities in the response
schema:
type: boolean
responses:
'200':
description: ''
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PageDto'
- properties:
items:
type: array
items:
$ref: '#/components/schemas/EntitlementDto'
hasNext:
type: boolean
tags:
- Entitlements
post:
operationId: EntitlementsControllerV2_createEntitlement
x-tag: Entitlements
summary: Create Entitlement
description: Create a new entitlement by associating a plan with an account (tenant) and optionally a specific user, with configurable expiration settings.
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEntitlementDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntitlementDto'
tags:
- Entitlements
/resources/entitlements/v2/batch:
post:
operationId: EntitlementsControllerV2_createBatchEntitlements
x-tag: Entitlements
summary: Batch Create Entitlements
description: Create multiple entitlements in a single batch operation, efficiently associating plans with accounts (tenants) and optionally specific users.
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateManyEntitlementsDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntitlementIdsDto'
tags:
- Entitlements
patch:
operationId: EntitlementsControllerV2_updateBatchEntitlements
x-tag: Entitlements
summary: Batch Update Entitlements
description: Update multiple existing entitlements in a single batch operation, allowing efficient modification of expiration dates and other entitlement properties.
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateManyEntitlementsDto'
responses:
'200':
description: ''
tags:
- Entitlements
delete:
operationId: EntitlementsControllerV2_deleteBatchEntitlements
x-tag: Entitlements
summary: Batch Delete Entitlements
description: Delete multiple entitlements in a single batch operation by providing an array of entitlement IDs, enabling efficient bulk removal of entitlements.
parameters:
- name: ids
required: true
in: query
description: UUID string that represents the entitlement ID
example: e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3
schema:
type: array
items:
type: string
responses:
'200':
description: ''
tags:
- Entitlements
/resources/entitlements/v2/{id}:
get:
operationId: EntitlementsControllerV2_getSingleEntitlement
x-tag: Entitlements
summary: Get Single Entitlement
description: Retrieve detailed information for a specific entitlement by its unique ID, including associated plan details and metadata.
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntitlementDto'
tags:
- Entitlements
patch:
operationId: EntitlementsControllerV2_updateEntitlement
x-tag: Entitlements
summary: Update Entitlement
description: Update an existing entitlement's properties, such as expiration date, by providing the entitlement ID and the fields to modify.
parameters:
- name: id
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateEntitlementDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntitlementDto'
tags:
- Entitlements
delete:
operationId: EntitlementsControllerV2_deleteEntitlement
x-tag: Entitlements
summary: Delete Entitlement
description: Delete a specific entitlement by its unique ID, permanently removing the entitlement and its associated permissions.
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Entitlements
/resources/feature-flags/v1:
get:
operationId: FeatureFlagsControllerV1_getFeatureFlags
x-tag: Feature Flags
summary: Get Feature Flags
description: Retrieve a paginated list of feature flags with search, filtering, and sorting capabilities by name or creation date (`createdAt` or `name` fields).
parameters:
- name: offset
required: false
in: query
description: Page offset of the results to return
example: '0'
schema:
default: 0
type: number
- name: limit
required: false
in: query
description: Number of results per page
# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/frontegg/refs/heads/main/openapi/frontegg-entitlements-openapi.yml