Unleash Admin UI API

Configuration for the Unleash Admin UI. These endpoints should not be relied upon and can change at any point without prior notice.

OpenAPI Specification

unleash-admin-ui-api-openapi.yml Raw ↑
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
           

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/unleash/refs/heads/main/openapi/unleash-admin-ui-api-openapi.yml