--- layout: api page_title: /sys/plugins/pins - HTTP API description: The `/sys/plugins/pins` endpoint is used to manage pinned plugin versions. --- # `/sys/plugins/pins` Use the `/sys/plugins/pins` endpoint to read, create, update, and delete pinned plugin versions in your Vault catalog. When you pin a plugin version, Vault starts all instances of that name and type with the configured version, even if the mount was originally configured with a different version. - You must register a plugin version before pinning it. - You must delete a pin before deleting the associated plugin version. - You must [reload](/vault/api-docs/system/plugins-reload) any plugins currently in use for the pinned version to take effect. ## Create/update pinned version Create a pinned version for a plugin with the given type and name. | Method | Path | | :----- | :------------------------------ | | `POST` | `/sys/plugins/pins/:type/:name` | ### Parameters - `type` `(string: )` – Path parameter specifying the target plugin type for the pinned version. May be "auth", "database", or "secret". - `name` `(string: )` – Path parameter specifying the plugin name for the pinned version. - `version` `(string: )` - Specifies the semantic version of the plugin to pin. Cannot be a builtin version and must already exist in the catalog. ### Sample payload ```json { "version": "v1.0.0" } ``` ### Sample request ```shell-session $ curl \ --header "X-Vault-Token: ..." \ --request POST \ --data @payload.json \ http://127.0.0.1:8200/v1/sys/plugins/pins/auth/github ``` ## List pinned versions This endpoint lists all pinned versions. | Method | Path | | :----- | :------------------ | | `GET` | `/sys/plugins/pins` | ### Sample request ```shell-session $ curl \ --header "X-Vault-Token: ..." \ http://127.0.0.1:8200/v1/sys/plugins/pins ``` ### Sample response ```json { "data": { "pinned_versions": [ { "name": "github", "type": "auth", "version": "v1.0.0" } ] } } ``` ## Read pinned version Read the pinned version for a plugin with the given type and name. | Method | Path | | :----- | :------------------------------ | | `GET` | `/sys/plugins/pins/:type/:name` | ### Parameters - `type` `(string: )` – Path parameter specifying the target plugin type for the pinned version. May be "auth", "database", or "secret". - `name` `(string: )` – Path parameter specifying the plugin name for the pinned version. ### Sample request ```shell-session $ curl \ --header "X-Vault-Token: ..." \ --request GET \ http://127.0.0.1:8200/v1/sys/plugins/pins/auth/github ``` ### Sample response ```json { "data": { "name": "github", "type": "auth", "version": "v1.0.0" } } ``` ## Delete pinned version Delete any pinned version for a plugin with the given type and name. | Method | Path | | :------- | :----------------------------- | | `DELETE` | `/sys/plugins/pins/:type/:name | ### Parameters - `type` `(string: )` – Path parameter specifying the target plugin type for the pinned version. May be "auth", "database", or "secret". - `name` `(string: )` – Path parameter specifying the plugin name for the pinned version. ### Sample request ```shell-session $ curl \ --header "X-Vault-Token: ..." \ --request DELETE \ http://127.0.0.1:8200/v1/sys/plugins/pins/auth/github ```