openapi: 3.0.3 info: title: Unleash Admin Addons Admin UI API version: 7.4.1 description: Create, update, and delete [Unleash addons](https://docs.getunleash.io/addons). servers: - url: https://app.unleash-instance.example.com description: Your Unleash instance (replace with your actual URL) security: - apiKey: [] - bearerToken: [] tags: - name: Admin UI description: Configuration for the Unleash Admin UI. These endpoints should not be relied upon and can change at any point without prior notice. paths: /api/admin/insights/lifecycle: get: tags: - Admin UI operationId: getLifecycleTrends responses: '200': description: lifecycleTrendsSchema content: application/json: schema: $ref: '#/components/schemas/lifecycleTrendsSchema' parameters: - name: projects schema: type: string example: project1,project2,project3 description: Comma-separated list of project IDs to filter lifecycle trends in: query required: false summary: Get Lifecycle Trends description: '**Enterprise feature** Gets lifecycle trends information showing feature flag progression across development, production, and cleanup stages.' /api/admin/feedback: post: tags: - Admin UI operationId: createFeedback summary: Send Unleash Feedback description: Sends feedback gathered from the Unleash UI to the Unleash server. Must be called with a token with an identifiable user (either from being sent from the UI or from using a [PAT](https://docs.getunleash.io/concepts/api-tokens-and-client-keys#personal-access-tokens)). requestBody: description: feedbackCreateSchema required: true content: application/json: schema: $ref: '#/components/schemas/feedbackCreateSchema' responses: '200': description: feedbackResponseSchema content: application/json: schema: $ref: '#/components/schemas/feedbackResponseSchema' '400': description: The request data does not match what we expect. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: ValidationError description: The name of the error kind message: type: string example: The request payload you provided doesn't conform to the schema. The .parameters property should be object. You sent []. description: A description of what went wrong. '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '415': description: The operation does not support request payloads of the provided type. Please ensure that you're using one of the listed payload types and that you have specified the right content type in the "content-type" header. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: ContentTypeerror description: The name of the error kind message: type: string example: We do not accept the content-type you provided (application/xml). Try using one of the content-types we do accept instead (application/json) and make sure the body is in the corresponding format. description: A description of what went wrong. /api/admin/ui-config: get: tags: - Admin UI summary: Get UI Configuration description: Retrieves the full configuration used to set up the Unleash Admin UI. operationId: getUiConfig responses: '200': description: uiConfigSchema content: application/json: schema: $ref: '#/components/schemas/uiConfigSchema' /api/admin/ui-config/cors: post: tags: - Admin UI summary: Sets Allowed Cors Origins description: Sets Cross-Origin Resource Sharing headers for Frontend SDK API. operationId: setCors requestBody: description: setCorsSchema required: true content: application/json: schema: $ref: '#/components/schemas/setCorsSchema' responses: '204': description: This response has no body. /api/admin/feedback/{id}: put: tags: - Admin UI operationId: updateFeedback summary: Update Unleash Feedback description: Updates the feedback with the provided ID. Only provided fields are updated. Fields left out are left untouched. Must be called with a token with an identifiable user (either from being sent from the UI or from using a [PAT](https://docs.getunleash.io/concepts/api-tokens-and-client-keys#personal-access-tokens)). requestBody: description: feedbackUpdateSchema required: true content: application/json: schema: $ref: '#/components/schemas/feedbackUpdateSchema' responses: '200': description: feedbackResponseSchema content: application/json: schema: $ref: '#/components/schemas/feedbackResponseSchema' '400': description: The request data does not match what we expect. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: ValidationError description: The name of the error kind message: type: string example: The request payload you provided doesn't conform to the schema. The .parameters property should be object. You sent []. description: A description of what went wrong. '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '415': description: The operation does not support request payloads of the provided type. Please ensure that you're using one of the listed payload types and that you have specified the right content type in the "content-type" header. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: ContentTypeerror description: The name of the error kind message: type: string example: We do not accept the content-type you provided (application/xml). Try using one of the content-types we do accept instead (application/json) and make sure the body is in the corresponding format. description: A description of what went wrong. parameters: - name: id in: path required: true schema: type: string /api/admin/splash/{id}: post: tags: - Admin UI operationId: updateSplashSettings summary: Update Splash Settings description: This operation updates splash settings for a user, indicating that they have seen a particualar splash screen. responses: '200': description: splashResponseSchema content: application/json: schema: $ref: '#/components/schemas/splashResponseSchema' '400': description: The request data does not match what we expect. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: ValidationError description: The name of the error kind message: type: string example: The request payload you provided doesn't conform to the schema. The .parameters property should be object. You sent []. description: A description of what went wrong. '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. '415': description: The operation does not support request payloads of the provided type. Please ensure that you're using one of the listed payload types and that you have specified the right content type in the "content-type" header. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: ContentTypeerror description: The name of the error kind message: type: string example: We do not accept the content-type you provided (application/xml). Try using one of the content-types we do accept instead (application/json) and make sure the body is in the corresponding format. description: A description of what went wrong. parameters: - name: id in: path required: true schema: type: string /api/admin/record-ui-error: post: tags: - Admin UI operationId: uiObservability summary: Accepts Errors From the UI Client description: This endpoint accepts error reports from the UI client, so that we can add observability on UI errors. requestBody: description: recordUiErrorSchema required: true content: application/json: schema: $ref: '#/components/schemas/recordUiErrorSchema' responses: '204': description: This response has no body. '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. components: schemas: uiConfigSchema: type: object additionalProperties: false description: A collection of properties used to configure the Unleash Admin UI. required: - version - unleashUrl - baseUriPath - versionInfo properties: slogan: type: string description: The slogan to display in the UI footer. example: The enterprise-ready feature flag service. name: type: string description: The name of this Unleash instance. Used to build the text in the footer. example: Unleash enterprise version: type: string description: The current version of Unleash example: 5.3.0-main environment: type: string description: 'What kind of Unleash instance it is: Enterprise, Pro, or Open source' example: Enterprise billing: type: string description: The billing model in use for this Unleash instance. example: subscription enum: - subscription - pay-as-you-go edgeUrl: type: string description: The URL of the Unleash Edge instance. example: https://yourcompany.edge.getunleash.io unleashUrl: type: string description: The URL of the Unleash instance. example: https://unleash.mycompany.com/enterprise baseUriPath: type: string description: The base URI path at which this Unleash instance is listening. example: /enterprise feedbackUriPath: type: string description: The URI path at which the feedback endpoint is listening. example: /feedback disablePasswordAuth: type: boolean description: Whether password authentication should be disabled or not. example: false emailEnabled: type: boolean description: Whether this instance can send out emails or not. example: true maintenanceMode: type: boolean description: Whether maintenance mode is currently active or not. example: false resourceLimits: $ref: '#/components/schemas/resourceLimitsSchema' description: A map of resource names and their limits. example: segmentValues: 10 strategySegments: 10 actionSetActions: 10 actionSetsPerProject: 10 actionSetFilters: 10 actionSetFilterValues: 10 signalEndpoints: 10 signalTokensPerEndpoint: 10 featureEnvironmentStrategies: 30 constraintValues: 250 constraints: 30 environments: 50 apiTokens: 2000 projects: 500 segments: 300 featureFlags: 5000 releaseTemplates: 5 readOnlyUsers: 50 prometheusAPIAvailable: type: boolean description: Whether a Prometheus API is available. example: true frontendApiOrigins: type: array description: The list of origins that the front-end API should accept requests from. example: - '*' items: type: string flags: type: object description: Additional (largely experimental) features that are enabled in this Unleash instance. example: messageBanner: name: disabled enabled: false featuresExportImport: true additionalProperties: anyOf: - type: boolean - $ref: '#/components/schemas/variantFlagSchema' links: description: Relevant links to use in the UI. example: - value: Documentation icon: library_books href: https://docs.getunleash.io/docs title: User documentation - value: GitHub icon: c_github href: https://github.com/Unleash/unleash title: Source code on GitHub x-enforcer-exception-skip-codes: WSCH006 type: array items: type: object authenticationType: type: string description: The type of authentication enabled for this Unleash instance example: enterprise enum: - open-source - demo - enterprise - hosted - custom - none versionInfo: $ref: '#/components/schemas/versionSchema' oidcConfiguredThroughEnv: type: boolean description: Whether the OIDC configuration is set through environment variables or not. example: false samlConfiguredThroughEnv: type: boolean description: Whether the SAML configuration is set through environment variables or not. example: false maxSessionsCount: type: number description: The maximum number of sessions that a user has. example: 10 unleashContext: type: object description: The context object used to configure the Unleash instance. splashResponseSchema: type: object description: Data related to a user having seen a splash screen. required: - userId - splashId - seen properties: userId: type: integer description: The ID of the user that was shown the splash screen. example: 1 splashId: type: string description: The ID of the splash screen that was shown. example: new-splash-screen seen: type: boolean description: Indicates whether the user has seen the splash screen or not. example: true additionalProperties: false feedbackUpdateSchema: type: object description: User feedback information to be updated. properties: userId: description: The ID of the user that gave the feedback. type: integer example: 2 neverShow: description: '`true` if the user has asked never to see this feedback questionnaire again.' type: boolean example: false given: description: When this feedback was given type: string format: date-time nullable: true example: '2023-07-06T08:29:21.282Z' feedbackCreateSchema: required: - feedbackId type: object description: User feedback information to be created. properties: neverShow: description: '`true` if the user has asked never to see this feedback questionnaire again. Defaults to `false`.' type: boolean example: false feedbackId: description: The name of the feedback session type: string example: pnps resourceLimitsSchema: type: object description: A map of resource names and their limits. required: - segmentValues - strategySegments - actionSetActions - actionSetsPerProject - actionSetFilters - actionSetFilterValues - signalEndpoints - signalTokensPerEndpoint - featureEnvironmentStrategies - constraintValues - environments - projects - apiTokens - segments - featureFlags - constraints - releaseTemplates additionalProperties: false properties: segmentValues: type: integer example: 10 description: The maximum number of values per segment allowed. strategySegments: type: integer example: 10 description: The maximum number of strategy segments allowed. actionSetActions: type: integer example: 10 description: The maximum number of actions per action set allowed. actionSetsPerProject: type: integer example: 10 description: The maximum number of action set definitions per project allowed. actionSetFilters: type: integer example: 10 description: The maximum number of filters per action set allowed. actionSetFilterValues: type: integer example: 10 description: The maximum number of filter values inside an action set allowed. signalEndpoints: type: integer example: 10 description: The maximum number of signal endpoints allowed. signalTokensPerEndpoint: type: integer example: 10 description: The maximum number of signal tokens per endpoint allowed. featureEnvironmentStrategies: type: integer example: 30 description: The maximum number of feature environment strategies allowed. constraintValues: type: integer example: 250 description: The maximum number of values for a single constraint. constraints: type: integer example: 30 description: The maximum number of constraints in a single strategy. environments: type: integer minimum: 1 example: 50 description: The maximum number of environments allowed. apiTokens: type: integer minimum: 0 example: 2000 description: The maximum number of SDK and admin API tokens you can have at the same time. This limit applies only to backend and frontend SDK tokens and to admin tokens. Personal access tokens are not subject to this limit. The limit applies to the total number of tokens across all projects in your organization. projects: type: integer minimum: 1 example: 500 description: The maximum number of projects allowed. segments: type: integer example: 300 description: The maximum number of segments allowed. featureFlags: type: integer minimum: 1 example: 5000 description: The maximum number of feature flags you can have at the same time. Archived flags do not count towards this limit. releaseTemplates: type: integer example: 5 description: The maximum number of release templates allowed. readOnlyUsers: type: integer example: 50 description: The maximum number of read-only users allowed. minimum: 0 setCorsSchema: type: object additionalProperties: false description: Unleash CORS configuration. properties: frontendApiOrigins: description: The list of origins that the front-end API should accept requests from. example: - '*' type: array items: type: string feedbackResponseSchema: additionalProperties: false type: object description: User feedback information about a particular feedback item. properties: userId: description: The ID of the user that gave the feedback. type: integer example: 2 neverShow: description: '`true` if the user has asked never to see this feedback questionnaire again.' type: boolean example: false given: description: When this feedback was given type: string format: date-time nullable: true example: '2023-07-06T08:29:21.282Z' feedbackId: description: The name of the feedback session type: string example: pnps recordUiErrorSchema: type: object required: - errorMessage description: An object representing an error from the UI properties: errorMessage: type: string description: The error message errorStack: type: string description: The stack trace of the error variantFlagSchema: type: object additionalProperties: false description: A representation of an evaluated Unleash feature variant. properties: name: description: The name of the variant. Will always be disabled if `enabled` is false. example: blue type: string enabled: type: boolean description: Whether the variant is enabled or not. example: true payload: type: object description: Additional data associated with this variant. additionalProperties: false properties: type: description: The type of data contained. type: string enum: - string - json - csv - number example: json value: description: The actual associated data type: string example: '{ "starter": "squirtle" }' feature_enabled: type: boolean description: Whether the feature is enabled or not. example: true featureEnabled: deprecated: true type: boolean description: Use `feature_enabled` instead. example: true lifecycleTrendsSchema: additionalProperties: false description: Aggregated view of feature flag lifecycle trends across environments type: object required: - lifecycleTrends properties: lifecycleTrends: type: object description: Aggregated view of feature flag lifecycle across environments additionalProperties: false required: - develop - production - cleanup properties: develop: type: object required: - totalFlags - medianDaysInCurrentStage - medianDaysHistorically - categories additionalProperties: false properties: totalFlags: type: number example: 35 medianDaysInCurrentStage: type: number example: 28 medianDaysHistorically: type: number example: 25 categories: type: object required: - experimental - release - permanent additionalProperties: false properties: experimental: type: object required: - flagsOlderThanWeek - newFlagsThisWeek additionalProperties: false properties: flagsOlderThanWeek: type: number example: 15 newFlagsThisWeek: type: number example: 13 release: type: object required: - flagsOlderThanWeek - newFlagsThisWeek additionalProperties: false properties: flagsOlderThanWeek: type: number example: 13 newFlagsThisWeek: type: number example: 0 permanent: type: object required: - flagsOlderThanWeek - newFlagsThisWeek additionalProperties: false properties: flagsOlderThanWeek: type: number example: 7 newFlagsThisWeek: type: number example: 0 production: type: object required: - totalFlags - medianDaysInCurrentStage - medianDaysHistorically - categories additionalProperties: false properties: totalFlags: type: number example: 10 medianDaysInCurrentStage: type: number example: 14 medianDaysHistorically: type: number example: 12 categories: type: object required: - experimental - release - permanent additionalProperties: false properties: experimental: type: object required: - flagsOlderThanWeek - newFlagsThisWeek additionalProperties: false properties: flagsOlderThanWeek: type: number example: 2 newFlagsThisWeek: type: number example: 5 release: type: object required: - flagsOlderThanWeek - newFlagsThisWeek additionalProperties: false properties: flagsOlderThanWeek: type: number example: 2 newFlagsThisWeek: type: number example: 1 permanent: type: object required: - flagsOlderThanWeek - newFlagsThisWeek additionalProperties: false properties: flagsOlderThanWeek: type: number example: 3 newFlagsThisWeek: type: number example: 0 cleanup: type: object required: - totalFlags - medianDaysInCurrentStage - medianDaysHistorically - categories additionalProperties: false properties: totalFlags: type: number example: 5 medianDaysInCurrentStage: type: number example: 16 medianDaysHistorically: type: number example: 18 categories: type: object required: - experimental - release - permanent additionalProperties: false properties: experimental: type: object required: - flagsOlderThanWeek - newFlagsThisWeek additionalProperties: false properties: flagsOlderThanWeek: type: number example: 0 newFlagsThisWeek: type: number example: 3 release: type: object required: - flagsOlderThanWeek - newFlagsThisWeek additionalProperties: false properties: flagsOlderThanWeek: type: number example: 0 newFlagsThisWeek: type: number example: 1 permanent: type: object required: - flagsOlderThanWeek - newFlagsThisWeek additionalProperties: false properties: flagsOlderThanWeek: type: number example: 1 newFlagsThisWeek: type: number example: 0 versionSchema: type: object additionalProperties: false description: Detailed information about an Unleash version required: - current - latest - isLatest properties: current: type: object additionalProperties: false description: The current version of Unleash. properties: oss: description: The OSS version used when building this Unleash instance, represented as a git revision belonging to the [main Unleash git repo](https://github.com/Unleash/unleash/) example: 5.3.0-main type: string enterprise: description: The Enterpris version of Unleash used to build this instance, represented as a git revision belonging to the [Unleash Enterprise](https://github.com/ivarconr/unleash-enterprise) repository. Will be an empty string if no enterprise version was used, example: 5.3.0-main+2105.45ed03c9 type: string latest: type: object additionalProperties: false description: Information about the latest available Unleash releases. Will be an empty object if no data is available. properties: oss: description: The latest available OSS version of Unleash type: string example: 5.1.5 enterprise: description: The latest available Enterprise version of Unleash type: string example: 5.1.5 isLatest: type: boolean description: Whether the Unleash server is running the latest release (`true`) or if there are updates available (`false`) example: true instanceId: type: string description: The instance identifier of the Unleash instance example: 0d652a82-43db-4144-8e02-864b0b030710 buildDate: description: The date and time of when this Unleash instance version was built type: string format: date-time nullable: true example: '2023-06-30T11:41:00.123Z' securitySchemes: apiKey: type: apiKey in: header name: Authorization description: API key needed to access this API bearerToken: type: http scheme: bearer description: API key needed to access this API, in Bearer token format