---
title: "Update existing plugin"
method: PUT
path: "/plugins/{pluginId}"
tags: ["Plugins"]
---

# Update existing plugin

`PUT /plugins/{pluginId}`

Updates a plugin with the specified plugin details.

## Path parameters

- `pluginId` string, uuid, required

## Request body

- PluginDto
  - `externalId` string, nullable — Optional id provided by the external system that owns this plugin.
  - `application` 'Native' | 'Web' | 'Archie' — The application that the plugin should be rendered in.
  - `type` 'Button' | 'Tab' — The type of component the plugin should represent.
  - `version` PluginVersionDto
    - `name` string, nullable — The name of the plugin.
    - `description` string, nullable — A description of the plugin.
    - `placement` string, nullable — A placement key representing where the plugin should be rendered in the UI. Placement key must correspond to the type of the plugin. Refer to documentation for valid placement keys.
    - `requestEndpointUrl` string, nullable — The url that is called to request the plugin endpoint. When a user views a plugin, we request the url to view securely through your backend. Matter and user information is passed to the endpoint through POST body, and the endpoint is expected to return a JSON object containing a url field. The plugin will then load the URL and display it to the user.
    - `attributes` PluginAttributes
      - `text` string, nullable — The text to be rendered on the plugin component (where applicable).
      - `icon` string, nullable — The Icon to be rendered on the plugin component (where applicable). Refer to documentation for a full list of icons.
      - `color` string, nullable — The hex color code to be rendered on the plugin component (where applicable).
      - `tooltip` string, nullable — Optional: The tooltip to display on component hover (where applicable).
      - `page` PluginPage
        - `title` string, nullable — Optional: The title of the page rendered by the plugin (where applicable). If not specified, the name of the plugin will be used.
        - `width` integer — Optional: The width of the page rendered by the plugin (where applicable). If not specified, a default width will be used.
        - `height` integer — Optional: The height of the page rendered by the plugin (where applicable). If not specified, a default width will be used.
        - `useDefaultBrowser` boolean — Optional: Override browser behavior. When true, loads the endpoint in the internal browser (where applicable).
    - `availability` PluginAvailability
      - `matterTypeIds` string[], nullable — Optional matter types applicable for the plugin. Plugin is applicable for all matter types if this is left empty.
  - `key` string, nullable — Signing key of the plugin to verify integrity of requesting secure URLs. Only available to set on Plugin creation.
  - `additionalData` object, nullable — Collection of KeyValuePair(string, object) to update Plugin meta data.

## Response `202`

When request is accepted. Returns a 'Link' object.

- Link
  - `id` string, nullable
  - `href` string, nullable
  - `relation` string, nullable
  - `method` string, nullable

## Other responses

- `400` — When an unsupported request is made.
- `403` — When the authenticated account does not have access to update plugins.
- `404` — When plugin with specified id does not exist.

---

[API](https://skmtc.net/smokeball/apis/api.md) · [All operations](https://skmtc.net/smokeball/apis/api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smokeball/api/revisions/197984da9b42/schema)
