--- layout: api page_title: /sys/namespaces - HTTP API description: The `/sys/namespaces` endpoint is used manage namespaces in Vault. --- # `/sys/namespaces` The `/sys/namespaces` endpoint is used manage namespaces in Vault. ## List Namespaces This endpoints lists all the namespaces. | Method | Path | | :----- | :---------------- | | `LIST` | `/sys/namespaces` | ### Sample Request ```shell-session $ curl \ --header "X-Vault-Token: ..." \ -X LIST \ http://127.0.0.1:8200/v1/sys/namespaces ``` ### Sample Response ```json ["ns1/", "ns2/"] ``` ## Create Namespace This endpoint creates a namespace at the given path. | Method | Path | | :----- | :---------------------- | | `POST` | `/sys/namespaces/:path` | ### Parameters - `path` `(string: )` – Specifies the path where the namespace will be created. ### Sample Request ```shell-session $ curl \ --header "X-Vault-Token: ..." \ --request POST \ http://127.0.0.1:8200/v1/sys/namespaces/ns1 ``` ## Delete Namespace This endpoint deletes a namespace at the specified path. | Method | Path | | :------- | :---------------------- | | `DELETE` | `/sys/namespaces/:path` | ### Sample Request ```shell-session $ curl \ --header "X-Vault-Token: ..." \ --request DELETE \ http://127.0.0.1:8200/v1/sys/namespaces/ns1 ``` ## Read Namespace Information This endpoint gets the metadata for the given namespace path. | Method | Path | | :----- | :---------------------- | | `GET` | `/sys/namespaces/:path` | ### Sample Request ```shell-session $ curl \ --header "X-Vault-Token: ..." \ http://127.0.0.1:8200/v1/sys/namespaces/ns1 ``` ### Sample Response ```json { "id": "gsudj", "path": "ns1/" } ``` ## Lock Namespace This endpoint locks the API for the current namespace path or optional subpath. The behavior when interacting with Vault from a locked namespace is described in [API Locked Response](/docs/concepts/namespace-api-lock#api-locked-response). | Method | Path | | :----- | :---------------------- | | `POST` | `/sys/namespaces/api-lock/lock/:subpath` | ### Sample Request - Current Namespace ```shell-session $ curl \ --header "X-Vault-Token: ..." \ --request POST \ http://127.0.0.1:8200/v1/sys/namespaces/api-lock/lock ``` ### Sample Response - Current Namespace ```json { "unlock_key": "" } ``` ### Sample Request - X-Vault-Namespace ```shell-session $ curl \ --header "X-Vault-Token: ..." \ --header "X-Vault-Namespace: some/path --request POST \ http://127.0.0.1:8200/v1/sys/namespaces/api-lock/lock ``` ### Sample Response - X-Vault-Namespace ```json { "unlock_key": "" } ``` ### Sample Request - Descendant of Current Namespace ```shell-session $ curl \ --header "X-Vault-Token: ..." \ --request POST \ http://127.0.0.1:8200/v1/sys/namespaces/api-lock/lock/some/descendant/subpath ``` ### Sample Response - Descendant of Current Namespace ```json { "unlock_key": "" } ``` ## Unlock Namespace This endpoint unlocks the api for the current namespace path or optional subpath. | Method | Path | | :----- | :---------------------- | | `POST` | `/sys/namespaces/api-lock/unlock/:subpath` | ### Sample Payload - Current Namespace Non-Root ```json { "unlock_key": "" } ``` ### Sample Request - Current Namespace Non-Root ```shell-session $ curl \ --header "X-Vault-Token: ..." \ --request POST \ --data @payload.json \ http://127.0.0.1:8200/v1/sys/namespaces/api-lock/unlock ``` ### Sample Request - Current Namespace Root ```shell-session $ curl \ --header "X-Vault-Token: " \ --request POST \ http://127.0.0.1:8200/v1/sys/namespaces/api-lock/unlock ``` ### Sample Payload - Descendant Namespace Non-Root ```json { "unlock_key": "" } ``` ### Sample Request - Descendant Namespace Non-Root ```shell-session $ curl \ --header "X-Vault-Token: ..." \ --request POST \ --data @payload.json \ http://127.0.0.1:8200/v1/sys/namespaces/api-lock/unlock/some/descendant/path ```