Unleash Addons API
Create, update, and delete [Unleash addons](https://docs.getunleash.io/addons).
Create, update, and delete [Unleash addons](https://docs.getunleash.io/addons).
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