Using the REST APIs for authentication and secret access.
---
# Using the REST APIs
All Vault capabilities can be accessed via HTTP, rather than the CLI. In fact some calls, for example [app-id](/docs/auth/app-id.html) authentication cannot be called by the CLI at all. Once you have started your server, you can use curl, or any other http client to make API calls. For example, if you have started Vault in dev mode, you could validated initialization status like this:
Machines will most likely access Vault via the REST APIs. Assuming a machine is using the [app-id](/docs/auth/app-id.html) backend for authentication, the flow would look like this:
Notice that the request to the app-id endpoint needed a token. In this case the only token we have is the root token so we can use it.
The last thing we need to do before using our app-id endpoint is writing the data to the store to associate an app id with a user id. For more information on this process, see the documentation on the [app-id auth backend](/docs/auth/app-id.html).
In the first request above, we associated the app with the ```root``` policy which you would not generally want to do in a production scenario. You would normally need to [create a policy](/docs/concepts/policies.html) with appropriate permissions and associate the application with that.
Now an app can identify itself via the app-id and user-id and get access to the store. The first step is to authenticate:
```
```
Now the token can be used to access the store.
```
```
The current app-id backend implementation doesn't support lease expiration or renewal, so the response will contain...