Building the CLI

PowerDown API v1 Overview

PowerDown provides a beta API sufficient for minimal remote control of the PowerDown service. The API is a simple RESTful API secured via private tokens generated via the PowerDown App.

While in beta, the API is subject to change based on user feedback. Please wrap the API to minimize the impact of any breaking changes. Over time, this API will be expanded to cover all facets of the PowerDown service.

The PowerDown CLI uses the API and is a good example of its use. See the PowerDown CLI GitHub Repository for details.

Base URL

The API is available over TLS only. The base URL is:${VERSION}/

Where the version will be a sequential number for subsequent API releases. Initially VERSION is 1.

RESTful Resources

The API supports the "resource" RESTful resource only. The following routes are provided:

POST /resource/find       Find matching resources.
GET  /resource/ID         Get resource by ID.
POST /resource/ID/ACTION  Invoke a resource action.


To be accepted, API requests must include an authentication token in the HTTP Authorization header.

Authentication tokens are generated via the Create Token page in the PowerDown App and are associated with the logged in user creating the token. When an API request is made with the token, actions are performed on behalf of the user with the user's authorized capabilities.

Tokens can have an expiry and multiple tokens can be active at any one time for an account. It is good practice to rotate tokens regularly.

Resource Names

Some routes use a fuzzy search for matching resources based on the supplied search criteria. The "search" field is used to match either:

The match will be successful only if the search pattern matches exactly and only one entry.


The API supports GET, POST and DELETE methods. GET requests may take query parameters to modify the returned results.

POST requests will have body data with the following properties:

The keys are used to select matching items and will vary by request. The parameters are the arguments used for actions. The options are used to filter responses.

Standard options are:


Successful responses will have an HTTP status code of 200 with a response payload. The payload will be JSON and have the following top level fields:


See Also

© SenseDeep® LLC. All rights reserved. Version 1.0. Generated at 04:01:32 Mar 16, 2018. Privacy Policy and Terms of Use.