1---
2layout: "api"
3page_title: "/sys/unseal - HTTP API"
4sidebar_title: "<code>/sys/unseal</code>"
5sidebar_current: "api-http-system-unseal"
6description: |-
7  The `/sys/unseal` endpoint is used to unseal the Vault.
8---
9
10# `/sys/unseal`
11
12The `/sys/seal-unseal` endpoint is used to unseal the Vault.
13
14## Submit Unseal Key
15
16This endpoint is used to enter a single master key share to progress the
17unsealing of the Vault. If the threshold number of master key shares is reached,
18Vault will attempt to unseal the Vault. Otherwise, this API must be called
19multiple times until that threshold is met.
20
21Either the `key` or `reset` parameter must be provided; if both are provided,
22`reset` takes precedence.
23
24| Method   | Path                         |
25| :--------------------------- | :--------------------- |
26| `PUT`    | `/sys/unseal`                |
27
28### Parameters
29
30- `key` `(string: "")` – Specifies a single master key share. This is required
31  unless `reset` is true.
32
33- `reset` `(bool: false)` – Specifies if previously-provided unseal keys are
34  discarded and the unseal process is reset.
35
36- `migrate` `(bool: false)` - Available in 1.0 - Used to migrate the seal
37  from shamir to autoseal or autoseal to shamir.  Must be provided on all unseal
38  key calls.
39
40### Sample Payload
41
42```json
43{
44  "key": "abcd1234..."
45}
46```
47
48### Sample Request
49
50```
51$ curl \
52    --request PUT \
53    --data @payload.json \
54    http://127.0.0.1:8200/v1/sys/unseal
55```
56
57### Sample Response
58
59The "t" parameter is the threshold, and "n" is the number of shares.
60
61```json
62{
63  "sealed": true,
64  "t": 3,
65  "n": 5,
66  "progress": 2,
67  "version": "0.6.2"
68}
69```
70
71Sample response when Vault is unsealed.
72
73```json
74{
75  "sealed": false,
76  "t": 3,
77  "n": 5,
78  "progress": 0,
79  "version": "0.6.2",
80  "cluster_name": "vault-cluster-d6ec3c7f",
81  "cluster_id": "3e8b3fec-3749-e056-ba41-b62a63b997e8"
82}
83```
84