> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.getunleash.io/api/get-addons/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.getunleash.io/_mcp/server. # Get all addons and providers GET https://app.unleash-instance.example.com/api/admin/addons Retrieve all addons and providers that are defined on this Unleash instance. Reference: https://docs.getunleash.io/api/get-addons ## Authentication - `Authorization` header (required) — API key needed to access this API - `Authorization` header (bearer token, required) — API key needed to access this API, in Bearer token format ## Response ### 200 addonsSchema - `addons` (list of addonSchema, required) — All the addons that exist on this instance of Unleash. - `providers` (list of addonTypeSchema, required) — A list of all available addon providers, along with their parameters and descriptions. ## Errors ### 401 Unauthorized Error Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. - `id` (string, optional) — The ID of the error instance - `name` (string, optional) — The name of the error kind - `message` (string, optional) — A description of what went wrong. ## Types ### addonSchema 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. - `id` (integer, required) — The addon's unique identifier. - `provider` (string, required) — The addon provider, such as "webhook" or "slack". - `description` (string, required, nullable) — A description of the addon. `null` if no description exists. - `enabled` (boolean, required) — Whether the addon is enabled or not. - `parameters` (map from string to any, required) — Parameters for the addon provider. This object has different required and optional properties depending on the provider you choose. - `events` (list of string, required) — The event types that trigger this specific addon. - `projects` (list of string, optional) — The projects that this addon listens to events from. An empty list means it listens to events from **all** projects. - `environments` (list of string, optional) — The list of environments that this addon listens to events from. An empty list means it listens to events from **all** environments. ### addonTypeSchema An addon provider. Defines a specific addon type and what the end user must configure when creating a new addon of that type. - `name` (string, required) — The name of the addon type. When creating new addons, this goes in the payload's `type` field. - `displayName` (string, required) — The addon type's name as it should be displayed in the admin UI. - `documentationUrl` (string, required) — A URL to where you can find more information about using this addon type. - `description` (string, required) — A description of the addon type. - `howTo` (string, optional) — A long description of how to use this addon type. This will be displayed on the top of configuration page. Can contain markdown. - `tagTypes` (list of tagTypeSchema, optional) — A list of [Unleash tag types](https://docs.getunleash.io/concepts/feature-flags#tags) that this addon uses. These tags will be added to the Unleash instance when an addon of this type is created. - `parameters` (list of addonParameterSchema, optional) — The addon provider's parameters. Use these to configure an addon of this provider type. Items with `required: true` must be provided. - `events` (list of string, optional) — All the [event types](https://docs.getunleash.io/concepts/events#event-types) that are available for this addon provider. - `installation` (AddonTypeSchemaInstallation, optional) — The installation configuration for this addon type. - `alerts` (list of AddonTypeSchemaAlertsItems, optional) — A list of alerts to display to the user when installing addons of this type. - `deprecated` (string, optional) — This should be used to inform the user that this addon type is deprecated and should not be used. Deprecated addons will show a badge with this information on the UI. ### tagTypeSchema A tag type. - `name` (string, required) — The name of the tag type. - `description` (string, optional) — The description of the tag type. - `icon` (string, optional, nullable) — The icon of the tag type. - `color` (string, optional, nullable) — The hexadecimal color code for the tag type. ### addonParameterSchema An addon parameter definition. - `name` (string, required) — The name of the parameter as it is used in code. References to this parameter should use this value. - `displayName` (string, required) — The name of the parameter as it is shown to the end user in the Admin UI. - `type` (string, required) — The type of the parameter. Corresponds roughly to [HTML `input` field types](https://developer.mozilla.org/docs/Web/HTML/Element/Input#input_types). Multi-line inut fields are indicated as `textfield` (equivalent to the HTML `textarea` tag). - `required` (boolean, required) — Whether this parameter is required or not. If a parameter is required, you must give it a value when you create the addon. If it is not required it can be left out. It may receive a default value in those cases. - `sensitive` (boolean, required) — Indicates whether this parameter is **sensitive** or not. Unleash will not return sensitive parameters to API requests. It will instead use a number of asterisks to indicate that a value is set, e.g. "******". The number of asterisks does not correlate to the parameter's value. - `description` (string, optional) — A description of the parameter. This should explain to the end user what the parameter is used for. - `placeholder` (string, optional) — The default value for this parameter. This value is used if no other value is provided. ### AddonTypeSchemaInstallation The installation configuration for this addon type. - `url` (string, required) — A URL to where the addon configuration should redirect to install addons of this type. - `title` (string, optional) — The title of the installation configuration. This will be displayed to the user when installing addons of this type. - `helpText` (string, optional) — The help text of the installation configuration. This will be displayed to the user when installing addons of this type. ### AddonTypeSchemaAlertsItems - `type` (enum, required) — The type of alert. This determines the color of the alert. - Allowed values: `success`, `info`, `warning`, `error` - `text` (string, required) — The text of the alert. This is what will be displayed to the user. - `link` (AddonTypeSchemaAlertsItemsLink, optional) — An optional link to display at the end of the alert text. ### AddonTypeSchemaAlertsItemsLink An optional link to display at the end of the alert text. - `url` (string, required) — The URL of the link. - `title` (string, optional, nullable) — The display title of the link. ## Examples **Response** ```json { "addons": [ { "id": 27, "provider": "webhook", "description": "This addon posts updates to our internal feature tracking system whenever a feature is created or updated.", "enabled": true, "parameters": { "url": "http://localhost:4242/webhook" }, "events": [ "feature-created", "feature-updated" ], "projects": [ "new-landing-project", "signups-v2" ], "environments": [ "development", "production" ] } ], "providers": [ { "name": "webhook", "displayName": "Webhook", "documentationUrl": "https://docs.getunleash.io/integrate/webhook", "description": "A Webhook is a generic way to post messages from Unleash to third party services.", "parameters": [ { "name": "url", "displayName": "Webhook URL", "type": "url", "required": true, "sensitive": true, "description": "(Required) Unleash will perform a HTTP Post to the specified URL (one retry if first attempt fails)" }, { "name": "contentType", "displayName": "Content-Type", "type": "text", "required": false, "sensitive": false, "description": "(Optional) The Content-Type header to use. Defaults to \"application/json\".", "placeholder": "application/json" }, { "name": "authorization", "displayName": "Authorization", "type": "text", "required": false, "sensitive": true, "description": "(Optional) The Authorization header to use. Not used if left blank.", "placeholder": "" }, { "name": "bodyTemplate", "displayName": "Body template", "type": "textfield", "required": false, "sensitive": false, "description": "(Optional) You may format the body using a mustache template. If you don't specify anything, the format will be similar to the events format (https://docs.getunleash.io/concepts/events)", "placeholder": "{\n \"event\": \"{{event.type}}\",\n \"createdBy\": \"{{event.createdBy}}\",\n \"featureToggle\": \"{{event.data.name}}\",\n \"timestamp\": \"{{event.data.createdAt}}\"\n}" } ], "events": [ "feature-created", "feature-updated", "feature-archived", "feature-revived", "feature-stale-on", "feature-stale-off", "feature-environment-enabled", "feature-environment-disabled", "feature-strategy-remove", "feature-strategy-update", "feature-strategy-add", "feature-metadata-updated", "feature-variants-updated", "feature-project-change", "feature-tagged", "feature-untagged", "change-request-created", "change-request-discarded", "change-added", "change-discarded", "change-request-approved", "change-request-approval-added", "change-request-cancelled", "change-request-sent-to-review", "change-request-applied" ] }, { "name": "new-app", "displayName": "Addon Name", "documentationUrl": "https://docs.getunleash.io/integrate/", "description": "The App for X that can be combined with Unleash.", "tagTypes": [ { "name": "tag-name", "description": "A tag used by the X-addon to specify a configuration.", "icon": "S" } ], "parameters": [ { "name": "accessToken", "displayName": "Access token", "type": "text", "required": true, "sensitive": true, "description": "(Required)" }, { "name": "defaultChannels", "displayName": "Channels", "type": "text", "required": false, "sensitive": false, "description": "A comma-separated list of channels to post the configured events to. These channels are always notified, regardless of the event type or the presence of a addon tag." } ], "events": [ "addon-config-created", "feature-created" ] }, { "name": "teams-workflow", "displayName": "Microsoft Teams Workflow", "documentationUrl": "https://docs.getunleash.io/integrate/teams-workflow", "description": "Allows Unleash to post updates to Microsoft Teams through a predefined Workflow", "parameters": [ { "name": "url", "displayName": "Microsoft Teams Workflow webhook URL", "type": "url", "required": true, "sensitive": true, "description": "(Required)" } ], "events": [ "feature-created", "feature-updated", "feature-archived", "feature-revived", "feature-stale-on", "feature-stale-off", "feature-environment-enabled", "feature-environment-disabled", "feature-strategy-remove", "feature-strategy-update", "feature-strategy-add", "feature-metadata-updated", "feature-variants-updated", "feature-project-change", "feature-potentially-stale-on", "change-added", "change-discarded", "change-edited", "change-request-applied", "change-request-approval-added", "change-request-approved", "change-request-cancelled", "change-request-created", "change-request-discarded", "change-request-rejected", "change-request-sent-to-review", "change-request-scheduled", "change-request-scheduled-application-success", "change-request-scheduled-application-failure", "change-request-schedule-suspended", "release-plan-progressions-paused", "release-plan-progressions-resumed" ] }, { "name": "teams", "displayName": "Microsoft Teams", "documentationUrl": "https://docs.getunleash.io/integrate/teams", "description": "Allows Unleash to post updates to Microsoft Teams.", "parameters": [ { "name": "url", "displayName": "Microsoft Teams webhook URL", "type": "url", "required": true, "sensitive": true, "description": "(Required)" } ], "events": [ "feature-created", "feature-updated", "feature-archived", "feature-revived", "feature-stale-on", "feature-stale-off", "feature-environment-enabled", "feature-environment-disabled", "feature-strategy-remove", "feature-strategy-update", "feature-strategy-add", "feature-metadata-updated", "feature-variants-updated", "feature-project-change" ], "deprecated": "This plugin is deprecated due to Microsoft no longer supporting direct incoming webhooks. Use teams-workflow instead" }, { "name": "datadog", "displayName": "Datadog", "documentationUrl": "https://docs.getunleash.io/integrate/datadog", "description": "Allows Unleash to post updates to Datadog.", "tagTypes": [ { "name": "datadog", "description": "All Datadog tags added to a specific feature are sent to datadog event stream.", "icon": "D" } ], "parameters": [ { "name": "url", "displayName": "Datadog Events URL", "type": "url", "required": false, "sensitive": false, "description": "Default URL: https://api.datadoghq.com/api/v1/events. Needs to be changed if your're not using the US1 site." }, { "name": "apiKey", "displayName": "Datadog API key", "type": "text", "required": true, "sensitive": true, "description": "(Required) API key to connect to Datadog", "placeholder": "j96c23b0f12a6b3434a8d710110bd862" } ], "events": [ "feature-created", "feature-updated", "feature-archived", "feature-revived", "feature-stale-on", "feature-stale-off", "feature-environment-enabled", "feature-environment-disabled", "feature-strategy-remove", "feature-strategy-update", "feature-strategy-add", "feature-metadata-updated", "feature-project-change", "feature-variants-updated" ] } ] } ``` **SDK Code** ```python import requests url = "https://app.unleash-instance.example.com/api/admin/addons" headers = {"Authorization": ""} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'https://app.unleash-instance.example.com/api/admin/addons'; const options = {method: 'GET', headers: {Authorization: ''}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://app.unleash-instance.example.com/api/admin/addons" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://app.unleash-instance.example.com/api/admin/addons") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = '' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://app.unleash-instance.example.com/api/admin/addons") .header("Authorization", "") .asString(); ``` ```php request('GET', 'https://app.unleash-instance.example.com/api/admin/addons', [ 'headers' => [ 'Authorization' => '', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://app.unleash-instance.example.com/api/admin/addons"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", ""); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Authorization": ""] let request = NSMutableURLRequest(url: NSURL(string: "https://app.unleash-instance.example.com/api/admin/addons")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```