-
Notifications
You must be signed in to change notification settings - Fork 0
API Endpoints
When trying to debug programs using this API, we recommend using a browser with network debugging capabilities (such as https://developer.chrome.com/docs/devtools/network/) to inspect the network activity used by our web interface. This should provide many examples of how data is being sent and how to format responses sent to and from the interface.
When doing error checking, it is worth noting that most of our endpoints redirect to the login page if permissions for your session aren't sufficient (or you aren't logged in). In some cases it may not be sufficient to simply check the status code for 200 for success, especially if your library automatically redirects.
This API handles user authentication, and using the session cookie provided by logging in is required to access most of the other tool functions. To log in, post a json named 'data' with username and password keys to /auth/login
Logs in the the specified user. Will return a 403 response code if login fails.
Endpoint: /auth/login
Request Type: POST
Required Permission: None
Required Submission Data: data = {'username' = username, 'password' = password}
Logs out the client that sends this command.
Endpoint: /auth/logout
Request Type: GET
Required Permission: None
Required Submission Data: None
This API handles gaining control of the tool, monitor current status, and running commands/recipes on the tool.
Requests local presence on the tool. Required to send commands to the hardware layer.
Endpoint: /api/control/presence
Request Type: GET
Required Permission: logged in
Required Submission Data: None
Releases local presence of the tool back to the local display. Must have local presence to release control.
Endpoint: /api/control/release
Request Type: GET
Required Permission: logged in
Required Submission Data: None
Cancels a request for local presence.
Endpoint: /api/control/cancelPresence
Request Type: GET
Required Permission: logged in
Required Submission Data: None
Returns the current status of the tool. See Status Packets for more information on the format of the response.
Endpoint: /api/control/query
Request Type: GET
Required Permission: logged in
Required Submission Data: None
Responds to a GUI prompt from the tool, such as process complete. See Notifications for more details.
Endpoint: /api/control/response
Request Type: POST
Required Permission: logged in
Required Submission Data: json = {Response Packet (see Notifications for more details)}
Tells the hardware layer to abort the currently running process.
Endpoint: /api/control/abort
Request Type: GET
Required Permission: logged in
Required Submission Data: None
Starts running the active recipe (last recipe posted to select). Requires local presence, an active recipe, and the tool to not be already running a recipe. (processState != running see Status Packets)
Endpoint: /api/control/run
Request Type: POST
Required Permission: logged in
Required Submission Data: json = {}
Loads a recipe into memory and prepares for running. Requires local presence, and the tool to not be already running a recipe. (processState != running see Status Packets)
Endpoint: /api/control/select
Request Type: POST
Required Permission: logged in
Required Submission Data: json = {Recipe(see Recipe Format for format)}
Runs a recipe as a manual command, which does not log the process while running, or overwrite the current active recipe. Requires local presence, and the tool to not be already running a recipe. (processState != running see Status Packets)
Endpoint: /api/control/manual
Request Type: POST
Required Permission: logged in
Required Submission Data: json = {Recipe(see Recipe Format for format)}
This API handles the storage and retrieval of recipes stored on the tool's USB.
This endpoint allows you to get, delete, or post a recipe.
Endpoint: /api/recipe/
Request Type: GET,POST,DELETE
Required Permission: logged in
Required Submission Data:
- for GET and DELETE: recipeID = RecipeName
- For POST Commands: json = {Recipe(see Recipe Format for format)}
This endpoint allows you to search for all recipes that contains the specified string.
Endpoint: /api/recipe/search
Request Type: GET
Required Permission: logged in
Required Submission Data: nameContains = search string (defaults to '' if no value supplied)
This endpoint allows you to upload a recipe file directly.
Endpoint: /api/recipe/upload
Request Type: POST
Required Permission: logged in
Required Submission Data: files = {'package': file binary contents (see Upload Recipe example)}
This endpoint allows you to download a recipe file directly.
Endpoint: /api/recipe/download
Request Type: GET
Required Permission: logged in
Required Submission Data: recipeID = RecipeName
This endpoint downloads all recipes on the tool, as a zip file.
Endpoint: /api/recipe/download2
Request Type: GET
Required Permission: logged in
Required Submission Data: None
This API handles user accounts.
This endpoint allows for the currently logged in user to edit their email, phone number/carrier, and password.
Endpoint: /api/users/profile
Request Type: POST
Required Permission: logged in
Required Submission Data: json = {current user profile with edited values (see User Profiles for formatting details)}
This endpoint returns a list of all user profiles.
Endpoint: /api/users/list
Request Type: GET
Required Permission: logged in with User Admin permissions
Required Submission Data: None
This endpoint allows for a new user to be created.
Endpoint: /api/users/create
Request Type: POST
Required Permission: logged in with User Admin permissions
Required Submission Data: json = {user profile (see User Profiles for formatting details)}
This endpoint allows for a user profile to be updated.
Endpoint: /api/users/update
Request Type: POST
Required Permission: logged in with User Admin permissions
Required Submission Data: json = {user profile (see User Profiles for formatting details)}
This endpoint allows for a user profile to be deleted.
Endpoint: /api/users/delete
Request Type: DELETE
Required Permission: logged in with User Admin permissions
Required Submission Data: username = name of account to be deleted
This API allows interactions with the logging data recorded by the tool.
This endpoint returns a list of all logs between the specified dates. Each element in the list is another list with the first element being a formatted string used when displaying the logs on the Web GUI, and the second element being the iso8601 format / uid which can be used to download the log. Summary logs will have the tool name pre-pended.
Endpoint: /api/logging/query
Request Type: GET
Required Permission: logged in
Required Submission Data: start = start date in "MM/DD/YYYY hh:mm" format, stop = stop date in "MM/DD/YYYY hh:mm" format
This endpoint allows for all logs before a given date to be deleted.
Endpoint: /api/user/deleteAll
Request Type: DELETE
Required Permission: logged in with Log Exporting permissions
Required Submission Data: stop = date for which all earlier logs will be deleted in "MM/DD/YYYY hh:mm" format
This endpoint returns a log file in the specified format.
Endpoint: /api/logging/download
Request Type: GET
Required Permission: logged in with Log Exporting permissions
Required Submission Data: timestamp = iso8601 date format of the log, aka the second element in the log records retrieved by query, format = format to download, generally 'json' or 'xlsx'
This endpoint returns a zip file with all logs in the specified format.
Endpoint: /api/logging/downloadAll
Request Type: GET
Required Permission: logged in with Log Exporting permissions
Required Submission Data: format = format to download, generally 'json' or 'xlsx'
This endpoint returns a zip file with all logs from a day in the specified format.
Endpoint: /api/logging/downloadDay
Request Type: GET
Required Permission: logged in with Log Exporting permissions
Required Submission Data: timestamp = "MM/DD/YYYY hh:mm" formatted date, format = format to download, generally 'json' or 'xlsx'
This endpoint captures the current local display and returns it as a png file.
Endpoint: /api/logging/screenshot
Request Type: GET
Required Permission: logged in with Log Exporting permissions
Required Submission Data: none