OpenAPI Document The App Manager API is documented in a JSON file conforming to the OpenAPI 3.0 specification .
Swagger The best way to visualize and interact with the API is through Swagger.
Using Swagger Editor on the web With Swagger Editor, you can view and edit the OpenAPI document inside your browser, while previewing the documentation in real time.
Visit SwaggerEditor and select File → Import file, or drag-and-drop the openapi.json
file into the browser window.
You can then view and make edits to the OpenAPI document in the left panel (in YAML format) and visualize the UI in the right panel, or simply drag the divider all the way to the left if you are only interested in the UI.
Note: This method will allow you to view the documentation in Swagger UI, but you will only be able to interact with the API if it can be accessed from a public URL/IP address. In that case, replace http://localhost:5000/
in the url
field with the correct address. Otherwise, you will need to install locally (see below) on the system that is running the Django backend in order to issue API calls through Swagger UI.
Starting with Open API version 3.1.0, a new Swagger Editor was release (this is the linked version above)
Legacy Open API Swagger Editor which supports versions 3.0.X can be accessed by visiting Swagger Editor
Installing Swagger Editor locally Swagger Editor can also be installed locally with GitHub - swagger-api/swagger-editor: Swagger Editor , or by cloning the repository.
git clone https://github.com/swagger-api/swagger-editor.git
Then open index.html
and import openapi.json
or drag-and-drop into the browser window.
Using Swagger UI standalone If you do not need to view or edit the OpenAPI document, you can also use a standalone version of Swagger UI.
The tool GitHub - vajahath/open-swagger-ui: A handy CLI / API to open swagger doc in swagger ui. will allow you to open a local openapi.json
file in the Swagger UI.
It requires Node.js >=10
and can be installed via npm:
Then, make sure you are in the directory containing openapi.json
(or point the command to where it is located) and run:
open-swagger-ui .\openapi.json --open
Authentication In order to use the API, you will need to provide an authorization token.
You can generate an authentication token from your username and password with a POST /accounts/api-token-auth/
call, with the following request body:
If you fail to authenticate, any API calls (except for /accounts/api-token-auth/
) will return an error code 401
.
When making an API call, use -H 'Authorization: Token 123abc'
, replacing 123abc
with your token.
If you are using Swagger UI, click on the ‘Authorize’ button and use value Token 123abc
, replacing 123abc
with your token.
If you are using something like Postman, click on Headers and add these, replacing 123abc
with your token.
Error Codes The API uses conventional HTTP response codes to indicate the success or failure of an API request.
200 - Successful operation
Response All API calls will generate a response in the format below:
requestId
contains a unique identifier for each request.
result
contains the result of the request.
error
contains an error code and description if the request failed on the backend.
Endpoints Account management (accounts) General high-level API calls (api)
GET /api/folder/{folderId}/tree/
Return a tree containing all children of the specified folder
GET /api/request/{requestId}/
Return the contents of the specified request
GET /api/status/
Report the status of the API backend, including mode
GET /api/tree/
Return the highest level tree for this install
GET /api/{entity}/allconfig/
Return a full listing of an entity type (nodes, apps, objects)
GET /api/{entity}/allconfigfromtypes/
Return a full listing of an entity type (nodes, apps, objects)
GET /api/{schemaId}/schema/
Return the schema file for the specified schema ID
GET /api/itemTypes
Return list of schema item types
GET /api/schema/
Return the schema files for the specified schema IDs
POST /api/{category}/{itemId}/move/
Move node or folder to new location
POST /api/folder/add/
Add new folder
GET /api/folder/{folderId}/view/
Get folder properties
POST /api/folder/{folderId}/delete/
Delete folder
GET /api/folder/{folderId}/config/
Get folder configurations
POST /api/folder/{folderId}/config/
Adjust the settings of the specified node
Operations on a specified node (api_node)
GET /api/{nodeId}/apps/
Return a list of all apps under the specified node
POST /api/{nodeId}/command/
Send a command to the specified node
GET /api/{nodeId}/config/
Return the settings for the specified node
POST /api/{nodeId}/config/
Adjust the settings for the specified node
POST /api/{nodeId}/delete/
Delete the specified node from the remote manager database
GET /api/{nodeId}/export/
Full recursive export for the specified node
POST /api/{nodeId}/import/
Full recursive import for the specified node
POST /api/{nodeId}/sync/
Sync the specified node to the remote manager
GET /api/{nodeId}/tree/
Return the highest level tree for the specified node
GET /api/{nodeId}/view/
Return the schema and settings for the specified node
GET /api/{nodeId}/defaults/
Return node defaults configurations
Operations on a specified app (api_app)
POST /api/{nodeId}/{appId}/command/
Send a command to the specified app
GET /api/{nodeId}/{appId}/config/
Return the settings for the specified app
POST /api/{nodeId}/{appId}/config/
Adjust the settings for the specified app
GET /api/{nodeId}/{appId}/export/
Full recursive export for the specified app
POST /api/{nodeId}/{appId}/import/
Full recursive import for the specified app
POST /api/{nodeId}/{appId}/license/
Set the license for the specified app
POST /api/{nodeId}/{appId}/licenserequest/
Request a license for the specified app
GET /api/{nodeId}/{appId}/models/
List all models that can be added in the specified app
GET /api/{nodeId}/{appId}/tree/
Return the highest level tree for the specified app
GET /api/{nodeId}/{appId}/view/
Return the schema and settings for the specified app
GET /api/{appId}/{schemaId}/get_metadata/
Return metadata properties associated with the schema for the specified app
GET /api/{appId}/{schemaId}/metadata_schema/
Return schema injected with the properties for the specified app
Operations on a specified object (api_object)
GET /api/{nodeId}/{appId}/{objectId}/children/
List the direct children of the specified object
POST /api/{nodeId}/{appId}/{objectId}/command/
Send a command to the specified object
GET /api/{nodeId}/{appId}/{objectId}/config/
Return the settings for the specified object
POST /api/{nodeId}/{appId}/{objectId}/config/
Adjust the settings for the specified object
POST /api/{nodeId}/{appId}/{objectId}/copy/
Create a recursive copy of the specified object
POST /api/{nodeId}/{appId}/{objectId}/delete/
Delete the specified object
GET /api/{nodeId}/{appId}/{objectId}/export/
Full recursive export for the specified object
POST /api/{nodeId}/{appId}/{objectId}/import/
Full recursive import for the specified object
GET /api/{nodeId}/{appId}/{objectId}/tree/
Return the highest level tree for the specified object
GET /api/{nodeId}/{appId}/{objectId}/view/
Return the schema and settings for the specified object
GET /api/{nodeId}/{appId}/{objectId}/{objectType}/children/
List all children of the specified object that are of the specified type