Unleash Addons API

Create, update, and delete [Unleash addons](https://docs.getunleash.io/addons).

OpenAPI Specification

unleash-addons-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Unleash Admin Addons 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: Addons
  description: Create, update, and delete [Unleash addons](https://docs.getunleash.io/addons).
paths:
  /api/admin/addons:
    get:
      summary: Get All Addons and Providers
      description: Retrieve all addons and providers that are defined on this Unleash instance.
      tags:
      - Addons
      operationId: getAddons
      responses:
        '200':
          description: addonsSchema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addonsSchema'
        '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.
    post:
      summary: Create a New Addon
      description: Create an addon instance. The addon must use one of the providers available on this Unleash instance.
      tags:
      - Addons
      operationId: createAddon
      requestBody:
        description: addonCreateUpdateSchema
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/addonCreateUpdateSchema'
      responses:
        '200':
          description: addonSchema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addonSchema'
        '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.
        '413':
          description: The request body is larger than what we accept. By default we only accept bodies of 100kB or less
          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: ContentTooLarge
                    description: The name of the error kind
                  message:
                    type: string
                    example: You provided more data than we can handle. Unleash accepts at most X MB.
                    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/addons/{id}:
    get:
      summary: Get a Specific Addon
      description: Retrieve information about the addon whose ID matches the ID in the request URL.
      tags:
      - Addons
      operationId: getAddon
      responses:
        '200':
          description: addonSchema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addonSchema'
        '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.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    put:
      summary: Update an Addon
      description: 'Update the addon with a specific ID. Any fields in the update object will be updated. Properties that are not included in the update object will not be affected. To empty a property, pass `null` as that property''s value.


        Note: passing `null` as a value for the description property will set it to an empty string.'
      tags:
      - Addons
      operationId: updateAddon
      requestBody:
        description: addonCreateUpdateSchema
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/addonCreateUpdateSchema'
      responses:
        '200':
          description: addonSchema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/addonSchema'
        '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.
        '404':
          description: The requested resource was not found.
          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: NotFoundError
                    description: The name of the error kind
                  message:
                    type: string
                    example: Could not find the addon with ID "12345".
                    description: A description of what went wrong.
        '413':
          description: The request body is larger than what we accept. By default we only accept bodies of 100kB or less
          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: ContentTooLarge
                    description: The name of the error kind
                  message:
                    type: string
                    example: You provided more data than we can handle. Unleash accepts at most X MB.
                    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
    delete:
      summary: Delete an Addon
      description: Delete the addon specified by the ID in the request path.
      tags:
      - Addons
      operationId: deleteAddon
      responses:
        '200':
          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.
        '404':
          description: The requested resource was not found.
          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: NotFoundError
                    description: The name of the error kind
                  message:
                    type: string
                    example: Could not find the addon with ID "12345".
                    description: A description of what went wrong.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
  /api/admin/addons/{id}/events:
    get:
      tags:
      - Addons
      operationId: getIntegrationEvents
      summary: Get Integration Events for a Specific Integration Configuration.
      description: Returns a list of integration events belonging to a specific integration configuration, identified by its id.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: limit
        schema:
          type: string
          example: '50'
        description: The number of results to return in a page. By default it is set to 50.
        in: query
      - name: offset
        schema:
          type: string
          example: '50'
        description: The number of results to skip when returning a page. By default it is set to 0.
        in: query
      responses:
        '200':
          description: '#/components/schemas/integrationEventsSchema'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/integrationEventsSchema'
        '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.
        '404':
          description: The requested resource was not found.
          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: NotFoundError
                    description: The name of the error kind
                  message:
                    type: string
                    example: Could not find the addon with ID "12345".
                    description: A description of what went wrong.
components:
  schemas:
    tagSchema:
      type: object
      description: Representation of a [tag](https://docs.getunleash.io/concepts/feature-flags#tags)
      additionalProperties: false
      required:
      - value
      - type
      properties:
        value:
          type: string
          description: The value of the tag.
          minLength: 2
          maxLength: 50
          example: a-tag-value
        type:
          type: string
          minLength: 2
          maxLength: 50
          description: The [type](https://docs.getunleash.io/concepts/feature-flags#tags) of the tag
          example: simple
        color:
          type: string
          description: The hexadecimal color code for the tag type.
          example: '#FFFFFF'
          pattern: ^#[0-9A-Fa-f]{6}$
          nullable: true
    eventSchema:
      type: object
      additionalProperties: false
      required:
      - id
      - createdAt
      - type
      - createdBy
      description: An event describing something happening in the system
      properties:
        id:
          type: integer
          minimum: 1
          description: The ID of the event. An increasing natural number.
        createdAt:
          type: string
          format: date-time
          description: The time the event happened as a RFC 3339-conformant timestamp.
          example: '2023-07-05T12:56:00.000Z'
        type:
          type: string
          description: What [type](https://docs.getunleash.io/concepts/events#event-types) of event this is
          enum:
          - application-created
          - feature-created
          - feature-deleted
          - feature-updated
          - feature-metadata-updated
          - feature-variants-updated
          - feature-environment-variants-updated
          - feature-project-change
          - feature-archived
          - feature-revived
          - feature-import
          - feature-tagged
          - feature-tag-import
          - feature-strategy-update
          - feature-strategy-add
          - feature-strategy-remove
          - feature-type-updated
          - feature-completed
          - feature-uncompleted
          - feature-link-added
          - feature-link-removed
          - feature-link-updated
          - strategy-order-changed
          - drop-feature-tags
          - feature-untagged
          - feature-stale-on
          - feature-stale-off
          - drop-features
          - feature-environment-enabled
          - feature-environment-disabled
          - strategy-created
          - strategy-deleted
          - strategy-deprecated
          - strategy-reactivated
          - strategy-updated
          - strategy-import
          - drop-strategies
          - context-field-created
          - context-field-updated
          - context-field-deleted
          - project-access-added
          - project-access-user-roles-updated
          - project-access-group-roles-updated
          - project-access-user-roles-deleted
          - project-access-group-roles-deleted
          - project-access-updated
          - project-created
          - project-updated
          - project-deleted
          - project-archived
          - project-revived
          - project-import
          - project-user-added
          - project-user-removed
          - project-user-role-changed
          - project-group-added
          - role-created
          - role-updated
          - role-deleted
          - drop-projects
          - tag-created
          - tag-deleted
          - tag-import
          - drop-tags
          - tag-type-created
          - tag-type-deleted
          - tag-type-updated
          - tag-type-import
          - drop-tag-types
          - addon-config-created
          - addon-config-updated
          - addon-config-deleted
          - db-pool-update
          - user-created
          - user-updated
          - user-deleted
          - drop-environments
          - environment-import
          - environment-created
          - environment-updated
          - environment-deleted
          - segment-created
          - segment-updated
          - segment-deleted
          - group-created
          - group-updated
          - group-deleted
          - group-user-added
          - group-user-removed
          - setting-created
          - setting-updated
          - setting-deleted
          - client-metrics
          - client-register
          - pat-created
          - pat-deleted
          - public-signup-token-created
          - public-signup-token-user-added
          - public-signup-token-updated
          - change-request-created
          - change-request-discarded
          - change-added
          - change-discarded
          - change-edited
          - change-request-rejected
          - change-request-approved
          - change-request-approval-added
          - change-request-cancelled
          - change-request-sent-to-review
          - change-request-schedule-suspended
          - change-request-applied
          - change-request-scheduled
          - change-request-scheduled-application-success
          - change-request-scheduled-application-failure
          - change-request-configuration-updated
          - api-token-created
          - api-token-updated
          - api-token-deleted
          - feature-favorited
          - feature-unfavorited
          - project-favorited
          - project-unfavorited
          - features-exported
          - features-imported
          - service-account-created
          - service-account-deleted
          - service-account-updated
          - feature-potentially-stale-on
          - feature-dependency-added
          - feature-dependency-removed
          - feature-dependencies-removed
          - banner-created
          - banner-updated
          - banner-deleted
          - safeguard-changed
          - safeguard-deleted
          - release-plan-progressions-resumed
          - release-plan-progressions-paused
          - project-environment-added
          - project-environment-removed
          - default-strategy-updated
          - segment-import
          - signal-endpoint-created
          - signal-endpoint-updated
          - signal-endpoint-deleted
          - signal-endpoint-token-created
          - signal-endpoint-token-updated
          - signal-endpoint-token-deleted
          - actions-created
          - actions-updated
          - actions-deleted
          - release-plan-template-created
          - release-plan-template-updated
          - release-plan-template-deleted
          - release-plan-template-archived
          - release-plan-added
          - release-plan-removed
          - release-plan-milestone-started
          - milestone-progression-created
          - milestone-progression-updated
          - milestone-progression-deleted
          - milestone-progression-changed
          - user-preference-updated
          - scim-users-deleted
          - scim-groups-deleted
          - cdn-token-created
          - change-request-requested-approvers-updated
          - impact-metric-created
          - impact-metric-updated
          - impact-metric-deleted
          example: feature-created
        createdBy:
          type: string
          description: Which user created this event
          example: johndoe
        createdByUserId:
          type: number
          description: The is of the user that created this event
          example: 1337
          nullable: true
        environment:
          type: string
          description: The feature flag environment the event relates to, if applicable.
          nullable: true
          example: development
        project:
          type: string
          nullable: true
          description: The project the event relates to, if applicable.
          example: default
        featureName:
          type: string
          nullable: true
          description: The name of the feature flag the event relates to, if applicable.
          example: my.first.feature
        data:
          type: object
          nullable: true
          x-enforcer-exception-skip-codes: WSCH006
          description: Extra associated data related to the event, such as feature flag state, segment configuration, etc., if applicable.
          example:
            name: new-feature
            description: Flag description
            type: release
            project: my-project
            stale: false
            variants: []
            createdAt: '2022-05-31T13:32:20.547Z'
            lastSeenAt: null
            impressionData: true
        preData:
          type: object
          nullable: true
          x-enforcer-exception-skip-codes: WSCH006
          description: Data relating to the previous state of the event's subject.
          example:
            name: new-feature
            description: Flag description
            type: release
            project: my-project
            stale: false
            variants: []
            createdAt: '2022-05-31T13:32:20.547Z'
            lastSeenAt: null
            impressionData: true
        tags:
          type: array
          items:
            $ref: '#/components/schemas/tagSchema'
          nullable: true
          description: Any tags related to the event, if applicable.
        label:
          type: string
          nullable: true
          description: The concise, human-readable name of the event.
        summary:
          type: string
          nullable: true
          description: A markdown-formatted summary of the event.
        ip:
          type: string
          nullable: true
          description: The IP address of the user that created the event. Only available in Enterprise.
          example: 192.168.1.1
        groupType:
          type: string
          description: The type of transaction group this event belongs to, if applicable.
          example: change-request
        groupId:
          type: string
          description: The unique identifier for the transaction group this event belongs to, if applicable.
          example: 01HQVX5K8P9EXAMPLE123456
    addonSchema:
      type: object
      description: An [addon](https://docs.getunleash.io/integrate) instance description. Contains data about what kind of provider it uses, whether it's enabled or not, what events it listens for, and more.
      required:
      - id
      - description
      - provider
      - enabled
      - parameters
      - events
      properties:
        id:
          type: integer
          minimum: 1
          example: 27
          description: The addon's unique identifier.
        provider:
          type: string
          description: The addon provider, such as "webhook" or "slack".
          example: webhook
        description:
          type: string
          description: A description of the addon. `null` if no description exists.
          example: This addon posts updates to our internal feature tracking system whenever a feature is created or updated.
          nullable: true
        enabled:
          type: boolean
          description: Whether the addon is enabled or not.
        parameters:
          type: object
          additio

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