---
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
```