{"info":{"_postman_id":"4ac81884-0e96-43ad-8cf9-7b5b29ee7ea6","name":"Elipsa User API","description":"<html><head></head><body><p>Power your applications with <a href=\"https://www.elipsa.ai\">Elipsa's</a> library of no-touch AI and advanced analytics APIs. Our API-based approach provides the easiest way to build and deploy AI and advanced analytics at scale.</p>\n<p>Sign-up for a free access key: <a href=\"https://www.elipsa.ai/signup\">https://www.elipsa.ai/signup</a></p>\n<p>For questions and issues please <a href=\"https://www.elipsa.ai/help\">contact us</a></p>\n<p>Our APIs are broken into the following categories:</p>\n<h4 id=\"automated-machine-learning\">Automated Machine Learning</h4>\n<p>Create and manage deployment templates to rapidly enable intelligent monitoring of your machines and devices.</p>\n<h4 id=\"advanced-analytics\">Advanced Analytics</h4>\n<ul>\n<li><strong>Geospatial Analysis:</strong> break GPS data into moving trips/tracks or idle time and analyze the movement of assets</li>\n<li><strong>Data Aggregation:</strong> perform advanced statistical analysis on a dataset</li>\n<li><strong>Data Transformation:</strong> transform your dataset with features such as filling missing values and expanding timestamps into its individual elements for further analysis</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"18708205","collectionId":"4ac81884-0e96-43ad-8cf9-7b5b29ee7ea6","publishedId":"UVXbse91","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"002E5D","highlight":"EF5B25"},"publishDate":"2022-01-03T20:07:54.000Z"},"item":[{"name":"AUTOMATED MACHINE LEARNING","item":[{"name":"Self-Training Deployment Templates","item":[{"name":"List of Templates by User","id":"73dc1eb4-bf7e-4aac-8de1-4c915f9bdbad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://api.elipsa.ai:9090/api/v1.0/deployments/template/list/<Access_Key>","description":"<p><em>Endpoint to return a list of all deployment templates that are associated with a specific access key.</em></p>\n<h3 id=\"parameters-in-url\"><strong>Parameters (in URL)</strong>:</h3>\n<ul>\n<li><strong>Access_Key</strong>: User's access key (found on profile page of the platform)</li>\n</ul>\n<h3 id=\"response\"><strong>Response</strong>:</h3>\n<p>List of templates with the following information:</p>\n<ul>\n<li><strong>Name</strong>: The name given to the template</li>\n<li><strong>Description</strong>: Description of the template</li>\n<li><strong>Features</strong>: Comma separated list of features that the template needs to receive</li>\n<li><strong>ApiKey</strong>: API Key of the template</li>\n<li><strong>ModelPrefix</strong>: Prefix of models built using this template</li>\n<li><strong>InitialTrainAmt</strong>: Amount of data needed to train initial model</li>\n<li><strong>RetrainAmt</strong>: Amount of data needed for retraining model</li>\n</ul>\n<h3 id=\"example-response\">Example Response:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[  \n  {\n    \"Name\": \"Vibration Analysis (Predictive Maintenance)\", \n    \"Description\": \"Public Predictive Maintenance Rapid Deployment\n     Template \",\n    \"Features\": \"X,Y,Z\",\n    \"ApiKey\": ,\n    \"ModelPrefix\": \"Vibration-PM-\",\n    \"InitialTrainAmt\": 2880, \n    \"RetrainAmt\": 43200\n  }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","deployments","template","list","<Access_Key>"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"73dc1eb4-bf7e-4aac-8de1-4c915f9bdbad"},{"name":"List of Models for Template by API Key","id":"92e5aedd-3468-42a0-a0e7-be1b6ac8fc2c","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true,"content-length":true,"host":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\"Api_Key\":\"<template api key>\",\"Access_Key\":\"<user access key>\"}","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/api/v1.0/deployments/template/models/list","description":"<p><em>Endpoint to return a list of all models associated with a particular deployment template.</em></p>\n<h3 id=\"parameters\">Parameters:</h3>\n<ul>\n<li><strong>Api_Key</strong>: API Key of the template</li>\n<li><strong>Access_Key</strong>: User's access key found on the profile page of the platform</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>Endpoint returns a list of model objects in JSON formar with the following attributes:</p>\n<ul>\n<li><strong>Name</strong>: The name of the model</li>\n<li><strong>Features</strong>: Comma separated list of features that the model is monitoring</li>\n<li><strong>Status</strong>: The status of the model in its lifecycle: collecting data before initial model, streaming against initial model while still collecting data, retrained final model</li>\n</ul>\n<h3 id=\"example-response\">Example Response:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">SAMPLE RESPONSE:\n[\n  {\n    \"Name\": \"PM-VAV-XYZ123\",\n    \"Features\": \"temp_room, temp_d, humidity, co2\", \n    \"Status\": \"Streaming Data Against Initial Model. 39827 more data points required to retrain\n    final model\"\n  }, \n  {\n    \"Name\": \"PM-VAV-XYZ456\", \n    \"Features\": \"temp_room, temp_d, humidity, co2\",\n    \"Status\": \"Model Created: Ready To Stream Data\"\n  }, \n  ...\n]\n\n</code></pre>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","deployments","template","models","list"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"92e5aedd-3468-42a0-a0e7-be1b6ac8fc2c"},{"name":"Create Private Deployment Template","id":"3c389016-7979-41fc-81e2-5c552001a5b6","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true,"host":true,"content-length":true,"accept":true,"connection":true,"accept-encoding":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"Name\":\"<name given to template>\",\r\n    \"Description\":\"<description of template>\",\r\n    \"Features\":\"<comma separated list of features to be sent to the template from your devices\",\r\n    \"Owner\":\"<user access key from profile page>\",\r\n    \"Template_type\":\"Outlier\",\r\n    \"Initial_train_amt\":\"<specify the amount of data needed for initial model to be trained>\",\r\n    \"Retrain_amt\":\"<specify the amount of data needed for the model to be retrained>\",\r\n    \"Model_prefix\":\"<prefix that you want to give to models that are buit using this template>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/api/v1.0/deployments/template/private/create","description":"<p>Endpoint to create a new Deployment Template associated with your user.</p>\n<p><em>Sandbox customers are limited to one saved template.</em></p>\n<h3 id=\"parameters\">Parameters:</h3>\n<ul>\n<li><strong>Name</strong> : The name you give to the template</li>\n<li><strong>Description</strong>: A description of the template</li>\n<li><strong>Features</strong>: A comma separated list of features. These features will be the names of the data points that you will monitor for anomalies</li>\n<li><strong>Owner</strong>: User's access key found on the profile page of the platform</li>\n<li><strong>Initial_train_amt</strong>: The amount of data that the template needs to collect before building an initial model. By default, each template can receive data once per minute so this can be viewed as the number of minutes worth of data to collect before building an initial model</li>\n<li><strong>Retrain_amt</strong>: The amount of data the template needs to collect before retraining the model. While the initial model is making predictions, the template will continue to aggregate streaming data until it reaches the Final_train_amt at which point it will retrain the model using all data received</li>\n<li><strong>Model_prefix</strong>: The template creates a unique model for each unique machine/device that sends data to the template. The Model_prefix will set a common prefix for each model built and associated with this template</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<ul>\n<li><strong>msg</strong>: Response message on success returns the new templates API Key. Error messages will return information pertaining to the issue encountered when attempting to create the new template</li>\n</ul>\n<h3 id=\"example-response\">Example Response:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"msg\": \"MODEL CREATED: XYZ-123456-ABC&gt;\"}\n\n</code></pre>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","deployments","template","private","create"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"3c389016-7979-41fc-81e2-5c552001a5b6"},{"name":"Stream New Data to Template","id":"cd27bb1c-4d05-4044-a973-c22128e6f912","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true,"accept-encoding":true,"accept":true,"host":true,"content-length":true,"content-type":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"access_key\":\"<user access key from profile page>\",\r\n    \"unique_id\":\"<unique ID of the machine/device such as serial number>\",\r\n    \"Data\":{\r\n                \"feature1\":\"<real-time streaming data from machine/device>\",\r\n                \"feature2\":\"<real-time streaming data from machine/device>\",\r\n                \"feature3\":\"<real-time streaming data from machine/device>\"\r\n            }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/graphdb/api/v1.0/deployments/template/<api_key>","description":"<p>Endpoint to stream new telemetry data to a given template (specifying the template's API Key in the url).</p>\n<p>The router utilizes the unique ID parameter to automate the AI model creation, deployment, and inference.</p>\n<p>Simply connecting a machine to the template for future data streaming enables self-training no-touch outlier detection.</p>\n<h3 id=\"parameters\">Parameters:</h3>\n<ul>\n<li><strong>access_key</strong>: User's access key found on the profile page of the platform</li>\n<li><strong>unique_id</strong>: Unique ID of the machine/device being monitored. Example: the serial number of the machine/device</li>\n<li><strong>batch:</strong> Y or N indicating whether you are streaming data in batch mode. If in batch mode, you will send a list of telemetry data at once and the <strong>Data</strong> object should be wrapped in [ ]. If not in batch mode, a single telemetry object is sent. Batch mode also dictates whether a single or multiple predictions will be returned.</li>\n<li><strong>Data</strong>: List of JSON objects consisting of the real-time values of the features associated with the template</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<ul>\n<li><strong>prediction</strong>: Prediction as to whether the current data indicates abnormal operation of the machine/device being monitored. 0 indicates normal behavior with a response of 1 indicating an outlier.</li>\n<li><strong>confidence</strong>: Confidence level in the prediction of an outlier. A confidence of 0 is returned when the prediction is 0</li>\n<li><strong>drivers</strong>: A list of values for each of the features associated with the template. Each feature has a value explaining that feature's influence in determining a predicted outlier. The drivers can be utilized to help diagnose the location of the issue.</li>\n<li><strong>msg</strong>: OK if the API is running otherwise an error message is returned</li>\n<li><strong>status_code</strong>: Numerical status code indicating the current stage of the model lifecyle:<ul>\n<li>0-Ready to Stream Data training</li>\n<li>1-Streaming data before initial model build</li>\n<li>2-Initial model training</li>\n<li>3-Making predictions on the initial model and queuing for final model training</li>\n<li>4-Final model</li>\n<li>5-Making predictions on final model</li>\n</ul>\n</li>\n<li><strong>status</strong>: Status message associated with status code</li>\n</ul>\n<h3 id=\"example-response\">Example Response:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\"> {\n    \"prediction\": \"1.0\",\n    \"confidence\": \"0.63\",\n    \"drivers\": {\n        \"feature1_exp\": 1.7,\n        \"feature2_exp\": 0.8,\n        \"feature3_exp\": 0.1,\n    },\n    \"msg\": \"OK\",\n    \"status\": \"Streaming Data Against Initial Model. 6373 more data points required to retrain final model\",\n    \"status_code\": 3\n}\n\n</code></pre>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["graphdb","api","v1.0","deployments","template","<api_key>"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"cd27bb1c-4d05-4044-a973-c22128e6f912"}],"id":"490cf143-52e3-4f3a-ba83-667ed7410ad6","description":"<p>Self-training deployment templates require no historical data to get started. Utilize our APIs to create a template based on the data that you are monitoring. Once created, you can stream new data to this template through our APIs and Elipsa will automate the process from there. The platform will aggregate the new data, build an initial model for each device being monitored, deliver predictions, and retrain models over time.</p>\n","_postman_id":"490cf143-52e3-4f3a-ba83-667ed7410ad6"},{"name":"Individual Models","item":[{"name":"Train and Save Outlier Detection Model","id":"b0e88945-3c83-44fa-befa-4cc8b3e57b1c","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true,"content-length":true,"host":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"Access_Key\":\"<user access key from profile page>\",\r\n    \"Sensitivity\":\"<value of 1,2, or 3 setting the sensitivity of the model>\",\r\n    \"Model_Name\":\"<name to save model as>\",\r\n    \"Description\":\"<description of the model>\",\r\n    \"Column_Name\":\"<list of column names (or features) in your dataset to use when building the model. Column names must be strings wrapped in quotes>\",\r\n    \"Data\":\r\n        [{\"feature1\":\"<record of historical data from machine/device>\",\"feature2\":\"<record of historical data from machine/device>\",\"feature3\":\"<record of historical data from machine/device>\"},\r\n        {\"feature1\":\"<record of historical data from machine/device>\",\"feature2\":\"<record of historical data from machine/device>\",\"feature3\":\"<record of historical data from machine/device>\"},\r\n        {\"feature1\":\"<record of historical data from machine/device>\",\"feature2\":\"<record of historical data from machine/device>\",\"feature3\":\"<record of historical data from machine/device>\"}\r\n        ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/graphdb/api/v1.0/ml/model/create/anomaly","description":"<p>Train an outlier detection model on historical data to save for future predictions on new streaming data.</p>\n<h3 id=\"parameters\">Parameters:</h3>\n<ul>\n<li><strong>Access_Key</strong>: User's access key found on the profile page of the platform</li>\n<li><strong>Model_Name</strong>: Unique name to save the model as</li>\n<li><strong>Description</strong>: Description of the model being saved</li>\n<li><strong>Sensitivity:</strong> (optional) How sensitive the model should be in determining outliers. Options are 1,2,or 3. Selecting a value of 1 will result in a lower sensitivity and fewer outliers while 3 would result in more potential predicted outliers. The default value is 2</li>\n<li><strong>Column_Name:</strong> A comma separated list of the names of the features that the model will be built off of. Often times, historical data contains more data than you look to use for building the model (such as a timestamp column). The Column_Name parameter is used as a filter to specify which fields to use in your Data</li>\n<li><strong>Data</strong>: List of JSON objects consisting of the historical values of the features associated with the template</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>Saved models must be unique from other models that a user has saved. If the model name is not unique, or if an error occurs when building the model, the endpoint will return an error message in the 'msg' key. Successful model builds will return the following:</p>\n<ul>\n<li><strong>msg</strong>:<ul>\n<li>On Success: A message will be returned declaring <em>Model Saved</em> followed by the name of the model.</li>\n<li>On Error: error message will be returned explaining why the model build failed</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"example-response\">Example Response:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"msg\": \"Model Saved: Test-0\"}\n\n</code></pre>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["graphdb","api","v1.0","ml","model","create","anomaly"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"b0e88945-3c83-44fa-befa-4cc8b3e57b1c"},{"name":"Make Predictions Against Saved Model","id":"32c0034f-f210-4106-8800-5f3003249745","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true,"content-length":true,"host":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{ \r\n    \"Data\": \r\n        [\r\n            {\"feature1\":\"<real-time streaming data from machine/device>\",\"feature2\":\"<real-time streaming data from machine/device>\",\"feature3\":\"<real-time streaming data from machine/device>\"}\r\n        ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/graphdb/api/v1.0/ml/scenario/predictions/<api_key>","description":"<p>Endpoint to stream new telemetry data to a given saved model (specifying the model's API Key in the url) to predict whether the streaming data is an outlier.</p>\n<h3 id=\"parameters\">Parameters:</h3>\n<ul>\n<li><strong>Data</strong>: List of JSON objects consisting of the real-time values of the features associated with the template</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<ul>\n<li><strong>Prediction</strong>: Prediction as to whether the current data indicates an outlier. For a predictive maintenance use case, the prediction indicates abnormal operation of the machine/device being monitored. 0 indicates normal behavior with a response of 1 indicating an outlier.</li>\n<li><strong>Anomaly_Score</strong>: Confidence level in the prediction of an outlier. A confidence of 0 is returned when the prediction is 0</li>\n<li><strong>Drivers</strong>: A list of values for each of the features associated with the model. Each feature has a value explaining that feature's influence in determining a predicted outlier. The drivers can be utilized to help diagnose the location of the issue.</li>\n<li>API_Key: API Key of the model</li>\n</ul>\n<h3 id=\"example-response\">Example Response:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"Prediction\": 1, \n  \"Anomaly Score\": 0.9849821964003821, \n  \"Drivers\": {\n     \"amplitude_x_exp\": 1.3424207570871112,\n     \"amplitude_y_exp\": 1.5740541054997308, \n     \"amplitude_z_exp\": 2.602248723229603, \n     \"amps_exp\": 1.5997539857099485\n  }, \n  \"API_Key\":\n\"828036f2-635a-11ec-8e7f-0acec021ad7c\"\n}\n\n</code></pre>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["graphdb","api","v1.0","ml","scenario","predictions","<api_key>"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"32c0034f-f210-4106-8800-5f3003249745"},{"name":"Find Outliers in Data","id":"af6ef08e-7133-4a64-b390-c678f2e5140e","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true,"content-length":true,"host":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"Access_Key\":\"<user access key from profile page>\",\r\n    \"Sensitivity\":\"<value of 1,2, or 3 setting the sensitivity of the model>\",\r\n    \"Data\":[\r\n        {\"feature1\":\"<record of historical data from machine/device>\",\"feature2\":\"<record of historical data from machine/device>\",\"feature3\":\"<record of historical data from machine/device>\"},\r\n        {\"feature1\":\"<record of historical data  from machine/device>\",\"feature2\":\"<record of historical data from machine/device>\",\"feature3\":\"<record of historical data from machine/device>\"},\r\n        {\"feature1\":\"<record of historical data from machine/device>\",\"feature2\":\"<record of historical data from machine/device>\",\"feature3\":\"<record of historical data from machine/device>\"}\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/api/v1.0/ml/scenario/outliers","description":"<p>Endpoint to analyze past data for outliers without saving a model for future predictions. Input historical data and determine which elements in the dataset constitute outliers.</p>\n<h3 id=\"parameters\">Parameters:</h3>\n<ul>\n<li><strong>Access_Key</strong>: User's access key found on the profile page of the platform</li>\n<li><strong>Sensitivity</strong>: (optional) How sensitive the model should be in determining outliers. Options are 1,2,or 3. Selecting a value of 1 will result in a lower sensitivity and fewer outliers while 3 would result in more potential predicted outliers. The default value is 2</li>\n<li><strong>Data</strong>: List of JSON objects consisting of the historical values of the features associated with the template</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>The response is a list of JSON objects consisiting of the input Data as well as the prediction as to whether the record is an outlier (0 for no and 1 for yes) and the anomaly score representing the confidence of the prediction for each record.</p>\n<h3 id=\"example-response\">Example Response:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[{\"Bearing 1\": 0.0602364373260406, \"Bearing 2\": 0.0742266223936712, \"Bearing 3\": 0.0839260706089162, \"Bearing 4\":\n0.0444430880414066, \"Prediction\": 0, \"Anomaly Score\": 0.0}, {\"Bearing 1\": 0.0614554421602611, \"Bearing 2\":\n0.0738440841837977, \"Bearing 3\": 0.0844574442111431, \"Bearing 4\": 0.0450814004590059, \"Prediction\": 0, \"Anomaly Score\":\n0.0}, {\"Bearing 1\": 0.0613607598027244, \"Bearing 2\": 0.0756087699594707, \"Bearing 3\": 0.0828368084379122, \"Bearing 4\":\n0.0451183651545475, \"Prediction\": 1, \"Anomaly Score\": 0.2}, {\"Bearing 1\": 0.0616648273841493, \"Bearing 2\":\n0.0732786268860776, \"Bearing 3\": 0.0848792421504951, \"Bearing 4\": 0.0441722252063074, \"Prediction\": 1, \"Anomaly Score\":\n0.86}\n\n</code></pre>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","ml","scenario","outliers"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"af6ef08e-7133-4a64-b390-c678f2e5140e"}],"id":"068119db-e3c1-4f10-affe-76ba23ea2dff","description":"<p>For users who have collected historical data from their machines or devices, utilize the Elipsa APIs to quickly and easily build predictive models off of the historical data.</p>\n<p>Train and save models to make predictions against in the future as new data is collected or simply analyze existing datasets to instantly identify known outliers.</p>\n","_postman_id":"068119db-e3c1-4f10-affe-76ba23ea2dff"}],"id":"46305115-6757-40e6-8072-5f12a1b459eb","description":"<p>Elipsa enables simple, fast, and flexible predictive maintenance using machine learning based outlier detection.</p>\n<p>Our API driven approach enables no-touch creation, and deployment of predictive solutions that easily plug into your existing workflows.</p>\n<p>Whether you have historical data or not, our various endpoints enable users to easily start monitoring their devices and data for outliers.</p>\n","_postman_id":"46305115-6757-40e6-8072-5f12a1b459eb"},{"name":"ADVANCED ANALYTICS","item":[{"name":"Geospatial Analysis","item":[{"name":"Asset Movement Insights","id":"063ea6e2-c28b-4ace-a1f5-04c201b92fd6","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true,"content-length":true,"host":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"Access_Key\":\"<user access key from profile page>\",\r\n    \"GPS_String_Flag\":\"<True if sending Latitude and Longitude as comma separated string.  False if sending as separate values>\",\r\n    \"Data\":  \r\n        [\r\n            {\"Date\": \"5/30/2021 18:29:03\",\"Lat\": \"41.518039\",\"Long\":\"-87.390545\"},\r\n            {\"Date\": \"5/30/2021 18:29:03\",\"GPS_String\":\"41.518039,-87.390545\"}\r\n        ]\r\n}   ","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/api/v1.0/analytics/tracker/stats","description":"<p>Endpoint to convert a collection of raw GPS coordinates into aggregated insights related to an asset's movement. The endpoint breaks the raw GPS data into movement and idle periods and provides analysis on the results.</p>\n<h4 id=\"parameters\">Parameters:</h4>\n<ul>\n<li><p><strong>Access_Key</strong>: User's access key found on the profile page of the platform</p>\n</li>\n<li><p><strong>GPS_String_Flag</strong>: Flag indicating whether the list of coordinates will be sent as a comma separated string (True) or as individual latitude and longitude values (False)</p>\n</li>\n<li><p><strong>min_idle_time</strong>: The number of seconds that an asset needs to sit idle before it is considered to have a new track started</p>\n</li>\n<li><p><strong>Data</strong>: list of GPS coordinate objects. Each coordinate object consists of the Date and Latitude/Longitude coordinates. The Date consists of date and time down to the closest second. The format of the coordinates differs based on the value of the GPS_String_Flag</p>\n</li>\n</ul>\n<h4 id=\"response\">Response:</h4>\n<p>Aggregated insights/statistics from analyzing the provided coordinates:</p>\n<ul>\n<li><strong>num_of_times_moved</strong>: the number of unique tracks in the GPS data</li>\n<li><strong>total_move_distance</strong>: total distance moved in meters</li>\n<li><strong>total_move_time</strong>: total time that the asset was moving in seconds</li>\n<li><strong>avg_move_dist</strong>: average distance moved for each track</li>\n<li><strong>avg_move_time</strong>: average time the asset was moving for each track</li>\n<li><strong>max_move_dist</strong>: The longest distance moved for all unique tracks in data</li>\n<li><strong>max_move_time</strong>: The longest move in seconds for all unique tracks in data</li>\n<li><strong>min_move_dist</strong>: The shortest distance moved for each unique track</li>\n<li><strong>min_move_time</strong>: The shortest move in seconds for all unique tracks in data</li>\n<li><strong>num_of_times_idle</strong>: The number of times the asset stopped</li>\n<li><strong>total_idle_time</strong>: The total amount of time in seconds that the asset was idle in the data</li>\n<li><strong>avg_idle_time</strong>: The average time in seconds for the times the asset was idle</li>\n<li><strong>max_idle_time:The</strong> longest amount of time in seconds for the times the asset was idle</li>\n<li><strong>min_idle_time</strong>: The shortest amount of time in seconds for the times the asset was idle</li>\n<li><strong>avg_speed</strong>: The average speed of the asset</li>\n<li><strong>max_speed_per_hr</strong>: The maximum speed of the asset</li>\n</ul>\n<h4 id=\"example-response\">Example Response:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"num_of_times_moved\": \"3\", \n   \"total_move_distance\": \"65.61113456534744\", \n   \"total_move_time\": \"31\", \n   \"avg_move_dist\": \"21.87037818844915\", \n   \"avg_move_time\": \"10.333333333333334\", \n   \"max_move_dist\": \"33.574318610290405\", \n   \"max_move_time\": \"17\", \n   \"min_move_dist\": \"1.2008489725416527\", \n   \"min_move_time\": \"1\", \n   \"num_of_times_idle\": \"3\", \n   \"total_idle_time\": \"28\",\n   \"avg_idle_time\": \"9.333333333333334\", \n   \"max_idle_time\": \"10\", \n   \"min_idle_time\": \"9\", \n   \"avg_speed\": \"2.116488211785401\",\n   \"max_speed_per_hr\": \"0.5595719768381734\"\n}\n\n</code></pre>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","analytics","tracker","stats"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"063ea6e2-c28b-4ace-a1f5-04c201b92fd6"},{"name":"GPS Track Insight (Summary)","id":"c1bf0c4b-9bd8-46dd-b8ac-5ba75ad70b44","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true,"content-length":true,"host":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n\"Access_Key\":\"<user access key from profile page>\",\r\n\"GPS_String_Flag\":\"<True if sending Latitude and Longitude as comma separated string.  False if sending as separate values>\",\r\n\"Data\":\r\n        [  \r\n        {\"Date\": \"5/30/2021 18:29:03\",\"Lat\": 41.518039,\"Long\": -87.390545},\r\n         {\"Date\": \"5/30/2021 18:29:03\",\"GPS_String\": \"41.518039,-87.390545\"}\r\n         ]\r\n}   ","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/api/v1.0/analytics/tracker/track_summary","description":"<p>Endpoint to take in raw GPS coordinates and calculate insights around individual trips/tracks.</p>\n<p>The endpoint calculates individual tracks, and stops, within the list of GPS coordinates and returns a summary of statistics for each track and idle period.</p>\n<h4 id=\"parameters\">PARAMETERS:</h4>\n<ul>\n<li><strong>Access_Key</strong>: User's access key found on the profile page of the platform</li>\n<li><strong>GPS_String_Flag</strong>: Flag indicating whether the list of coordinates will be sent as a comma separated string (True) or as individual latitude and longitude values (False)</li>\n<li><strong>min_idle_time</strong>: The number of seconds that an asset needs to sit idle before it is considered to have started a new track</li>\n<li><strong>Data</strong>: list of GPS coordinate objects. Each coordinate object consists of the Date and Latitude/Longitude coordinates (labeled as Lat and Long). The Date consists of date and time down to the closest second. The format of the coordinates differs based on the value of the GPS_String_Flag</li>\n</ul>\n<h4 id=\"response\">RESPONSE:</h4>\n<p>List of aggregated tracks and detected stops from the GPS coordinates.</p>\n<p>A track consists of the path of a moving asset until it comes to rest. The response for tracks incudes the start date and time of the asset moving, the total distance moved (in meters), and the total time that the asset was moving (in seconds).</p>\n<p>Idle periods are detections of when the asset is at rest/stopped. The asset must be idle for at least as many seconds as the defined min_idle_time to consider the asset to be stopped and to consider the prior track to have ended.</p>\n<p><strong>tracks</strong></p>\n<ul>\n<li><strong>Date</strong>: Date and time that the new track started</li>\n<li><strong>Dist</strong>: Total distance in meters covered during the track</li>\n<li><strong>TimeCounter</strong>: Amount of time (in seconds) traveled during the track</li>\n</ul>\n<p><strong>idle</strong></p>\n<ul>\n<li><strong>Date</strong>: Date and time that the new track started</li>\n<li><strong>TimeCounter</strong>: Amount of time (in seconds) traveled during the track</li>\n</ul>\n<h4 id=\"example-response\">Example Response:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"tracks\": \n      [\n         {\"Date\": \"5/30/2021 18:28:39\", \"Dist\": 1.2008489725416527, \"TimeCounter\": 1},\n         {\"Date\": \"5/30/2021 18:28:50\", Dist\": 30.835966982515377, \"TimeCounter\": 17},\n         {\"Date\": \"5/30/2021 18:29:16\", \"Dist\": 33.574318610290405, \"TimeCounter\": 13}\n      ],\n   \"idle\": \n      [\n         {\"Date\": \"5/30/2021 18:28:30\", \"TimeCounter\": 9}, \n         {\"Date\": \"5/30/2021 18:28:40\", \"TimeCounter\": 10}, \n         {\"Date\":\"5/30/2021 18:29:07\", \"TimeCounter\": 9}\n      ]\n}\n\n</code></pre>\n<h4 id=\"payload\">Payload:</h4>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","analytics","tracker","track_summary"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"c1bf0c4b-9bd8-46dd-b8ac-5ba75ad70b44"},{"name":"GPS Track Insight (Detailed)","id":"5336294a-14a6-4775-b1a6-f01862e89519","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-length":true,"content-type":true,"host":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n\"Access_Key\":\"<user access key from profile page>\",\r\n\"GPS_String_Flag\":\"<True if sending Latitude and Longitude as comma separated string.  False if sending as separate values>\",\r\n\"Min_idle_time\":\"<Minimum amount of time that an asset should be stopped before considering it idle and ending the current track>\",\r\n\"Data\":\r\n    [ \r\n        {\"Date\": \"5/30/2021 18:29:03\",\"Lat\": 41.518039,\"Long\": -87.390545},\r\n        {\"Date\": \"5/30/2021 18:29:03\",\"GPS_String\": \"41.518039,-87.390545\"}\r\n    ]\r\n}   ","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/api/v1.0/analytics/tracker/track_details","description":"<p>Endpoint to take in raw GPS coordinates and calculate insights around individual tracks.</p>\n<p>The endpoint calculates individual tracks and stops within the list of GPS coordinates and returns a summary of statistics for each track.</p>\n<p>In addition to the summary, the endpoint will also return the list of individual GPS coordinates that are part of the calculated track.</p>\n<h4 id=\"parameters\">PARAMETERS:</h4>\n<ul>\n<li><strong>Access_Key</strong>: User's access key found on the profile page of the platform</li>\n<li><strong>GPS_String_Flag</strong>: Flag indicating whether the list of coordinates will be sent as a comma separated string (True) or as individual latitude and longitude values (False)</li>\n<li><strong>Min_idle_time</strong>: The number of seconds that an asset needs to sit idle before it is considered to have a new track started</li>\n<li><strong>Data</strong>: list of GPS coordinate objects. Each coordinate object consists of the Date and Latitude/Longitude coordinates. The Date consists of datetime down to the closest second. The format of the coordinates differs based on the value of the GPS_String_Flag</li>\n</ul>\n<h4 id=\"response\">RESPONSE:</h4>\n<p>List of aggregated tracks and detected stops from the GPS coordinates.</p>\n<p>A track consists of the path of a moving asset until it comes to rest. The response for tracks incudes the start date and time of the asset moving, the total distance moved (in meters), and the total time that the asset was moving (in seconds).</p>\n<p>In addition to the distance and time, the track reponse for the detailed endpoint includes the individual GPS coordinates along the track for mapping in third-party systems.</p>\n<p>Idle periods are detections of when the asset is at rest/stopped. The asset must be idle for at least as many seconds as the defined min_idle_time to consider the asset to be stopped and to consider the prior track to have ended.</p>\n<p><strong>tracks</strong></p>\n<ul>\n<li><strong>Date</strong>: Date and time that the new track started</li>\n<li><strong>Dist</strong>: Total distance in meters covered during the track</li>\n<li><strong>TimeCounter</strong>: Amount of time (in seconds) traveled during the track</li>\n<li><strong>track_coordinates</strong>: List of coordinates along the track<ul>\n<li><strong>Date</strong>: Date and time of the coordinate</li>\n<li><strong>Lat</strong>: Latitude of the coordinate</li>\n<li><strong>Long</strong>: Longitude of the coordinate</li>\n</ul>\n</li>\n</ul>\n<p><strong>idle</strong></p>\n<ul>\n<li><strong>Date</strong>: Date and time that the new track started</li>\n<li><strong>TimeCounter</strong>: Amount of time (in seconds) traveled during the track</li>\n</ul>\n<h4 id=\"example-response\">Example Response:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n \"tracks\": \n [\n   {\"Date\": \"5/30/2021 18:28:39\", \"Dist\": 1.2008489725416527, \"TimeCounter\": 1, \n     \"track_coordinates\": \n       [{\"Date\":\"5/30/2021 18:39\", \"Lat\": 41.518113, \"Long\": -87.390497}]}, \n   {\"Date\": \"5/30/2021 18:28:50\", \"Dist\": 30.835966982515377,\"TimeCounter\": 17, \n     \"track_coordinates\": \n       [{\"Date\": \"5/30/2021 18:28:50\", \"Lat\": 41.518, \"Long\": -87.390539}, \n        {\"Date\":\"5/30/2021 18:28:51\", \"Lat\": 41.518, \"Long\": -87.390518}, \n        {\"Date\": \"5/30/2021 18:28:52\", \"Lat\": 41.517999, \"Long\":-87.390517}, \n        {\"Date\": \"5/30/2021 18:28:53\", \"Lat\": 41.517996, \"Long\": -87.390515}\n       ]\n        ...\n        ...\n        ...\n        ], \n \"idle\": \n [\n   {\"Date\": \"5/30/2021 18:28:39\", \"TimeCounter\": 9, \"Lat\":41.518122, \"Long\": -87.390505}, \n   {\"Date\": \"5/30/2021 18:28:50\", \"TimeCounter\": 10, \"Lat\": 41.518113, \"Long\": -87.390497},\n   {\"Date\": \"5/30/2021 18:29:16\", \"TimeCounter\": 9, \"Lat\": 41.517961, \"Long\": -87.39053}\n ]\n}\n\n</code></pre>\n<h4 id=\"payload\">Payload:</h4>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","analytics","tracker","track_details"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"5336294a-14a6-4775-b1a6-f01862e89519"}],"id":"ce56009a-b071-4011-9d6a-34878fec6557","description":"<p>A collection of API endpoints designed to instantly analyze and provide insights on GPS coordinates.</p>\n<p>Go beyond the simple location of your assets and gain valuable insights into how they are moving.</p>\n","_postman_id":"ce56009a-b071-4011-9d6a-34878fec6557"},{"name":"Data Aggregation","item":[{"name":"Describe Data","id":"4321816d-45f0-4a12-a47d-934ea2f85300","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-length":true,"content-type":true,"host":true,"accept":true,"connection":true,"accept-encoding":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"Access_Key\":\"<user access key from profile page>\",\r\n    \"Data\":[\r\n        {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"},\r\n        {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"},\r\n        {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"}\r\n        ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/api/v1.0/analytics/data/describe","description":"<p>Endpoint to calculate and provide a statistical summary on the numerical columns in your dataset.</p>\n<h3 id=\"parameters\"><strong>Parameters:</strong></h3>\n<ul>\n<li><strong>Access_Key</strong>: User's access key found on the profile page of the platform</li>\n<li><strong>Data</strong>: JSON representation of your dataset. Should consist of a list of objects where each object represents a row in your dataset. The row should consist of key:value pairs where the key is the name of your column and the value is the value of that column for the given row.</li>\n</ul>\n<h3 id=\"response\"><strong>Response:</strong></h3>\n<p>The endpoint will take in your data and return statistics for each column name provided in the input. The column name will be the key in the response object with each column returning the following statistics for its values:</p>\n<ul>\n<li><strong>count</strong>: The number of values in that column</li>\n<li><strong>mean</strong>: The mean of average of the values in the column</li>\n<li><strong>std</strong>: The standard deviation of values in the column</li>\n<li><strong>min</strong>: The minimum value in the column</li>\n<li><strong>25%</strong>: The value of the first quartile</li>\n<li><strong>50%</strong>: The value of the second quarlile</li>\n<li><strong>75%</strong>: The value of the third quartile</li>\n<li><strong>max</strong>: The maximum value of the column</li>\n</ul>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","analytics","data","describe"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"4321816d-45f0-4a12-a47d-934ea2f85300"},{"name":"Count Unique Values","id":"5a8e6f28-4d6f-4c20-9adf-2b3ad15c0161","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-length":true,"host":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"Access_Key\":\"<user access key from profile page>\",\r\n    \"Data\":[\r\n        {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"},\r\n        {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"},\r\n        {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"}\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/api/v1.0/analytics/data/unique_val_cnt","description":"<p>Endpoint to calculate the number of unique values for each column in your dataset.</p>\n<p>The endpoint takes in a list of objects where each object is a JSON representation of a single row in your dataset. For all columns containing fewer than 100 unique values, the endpoint will calculate and report the number of occurrences of each unique value in the column.</p>\n<p>The response consists of a list of JSON objects with the column name as the key followed by a dictionary of each unique value and the number of times that value occurs in the column.</p>\n<h3 id=\"parameter\">Parameter:</h3>\n<ul>\n<li><strong>Access_Key</strong>: User's access key found on the profile page of the platform</li>\n<li><strong>Data</strong>: JSON representation of your dataset. Should consist of a list of objects where each object represents a row in your dataset. The row should consist of key:value pairs where the key is the name of your column and the value is the value of that column for the given row.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>The response consists of a JSON object. Each column in the inputted data set will be a key in the response while the value of the key will consist of an object listing each unique value in that column and the number of occurrences for that value within the column of the dataset.</p>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","analytics","data","unique_val_cnt"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"5a8e6f28-4d6f-4c20-9adf-2b3ad15c0161"}],"id":"810ed5d3-f02a-4e00-bbd3-119fb7d1a667","description":"<p>A collection of API endpoints to aggregate a user's data by groups or to provide statistical analysis on the dataset as a whole.</p>\n","_postman_id":"810ed5d3-f02a-4e00-bbd3-119fb7d1a667"},{"name":"Data Transformation","item":[{"name":"Count Missing Values","id":"3fd18376-82d5-4256-b9e9-67fc477138d9","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-length":true,"host":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"Access_Key\":\"<user access key from profile page>\",\r\n    \"Data\":[\r\n            {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"},\r\n            {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"},\r\n            {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"}\r\n        ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/api/v1.0/analytics/data/count_missing","description":"<p>Endpoint to take in a dataset and count the number of missing values in each column.</p>\n<p>The endpoint takes in a list of objects where each object is a JSON representation of a single row in your dataset. For all columns containing fewer than 100 unique values, the endpoint will calculate and report the number of occurrences of each unique value in the column.</p>\n<h3 id=\"parameter\">Parameter:</h3>\n<ul>\n<li><strong>Access_Key</strong>: User's access key found on the profile page of the platform</li>\n<li><strong>Data</strong>: JSON representation of your dataset. Should consist of a list of objects where each object represents a row in your dataset. The row should consist of key:value pairs where the key is the name of your column and the value is the value of that column for the given row.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>The response consists JSON object where each column name from the input data is a key in the responses with the associated value being the number of missing values for that column in the dataset.</p>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","analytics","data","count_missing"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"3fd18376-82d5-4256-b9e9-67fc477138d9"},{"name":"Fill Missing Values","id":"34dea99c-8ab2-4408-aeca-e409e8bc0f82","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true,"content-length":true,"host":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"Access_Key\":\"<user access key from profile page>\",\r\n    \"Method\":\"<method to use for filling data: ffill, bfill, zero, median>\",\r\n    \"Data\":[\r\n            {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"},\r\n            {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"},\r\n            {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"}\r\n        ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/api/v1.0/analytics/data/fill_missing","description":"<p>Endpoint to take in a dataset and fill in missing values.</p>\n<p>Optional methods for filling missing values are forward fill (last included value), back fill (next included value), fill with the median value of the column, or fill with zero.</p>\n<p>The endpoint takes in a list of objects where each object is a JSON representation of a single row in your dataset. For all columns containing fewer than 100 unique values, the endpoint will calculate and report the number of occurrences of each unique value in the column.</p>\n<h3 id=\"parameter\">Parameter:</h3>\n<ul>\n<li><strong>Access_Key</strong>: User's access key found on the profile page of the platform</li>\n<li><strong>Method</strong>: The method to use for filling missing values<ul>\n<li>forward fill</li>\n<li>backwards fill</li>\n<li>fill with median value</li>\n<li>fill with value of zero</li>\n</ul>\n</li>\n<li><strong>Data</strong>: JSON representation of your dataset. Should consist of a list of objects where each object represents a row in your dataset. The row should consist of key:value pairs where the key is the name of your column and the value is the value of that column for the given row.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>The response consists of the Data from the input payload with missing values filled in based on the method selected</p>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","analytics","data","fill_missing"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"34dea99c-8ab2-4408-aeca-e409e8bc0f82"},{"name":"Fill Missing with Specific Value","id":"1dc85aa6-89c1-4937-89b8-064d26e1cc8a","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-length":true,"host":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"Access_Key\":\"<user access key from profile page>\",\r\n    \"Column\":\"<Name of column in your dataset to fill missing with the specified value>\",\r\n    \"Value\":\"<Value to use for filling missing instances>\",\r\n    \"Data\":[\r\n            {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"},\r\n            {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"},\r\n            {\"col1\":\"value\",\"col2\":\"value\",\"col3\":\"value\"}\r\n        ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.elipsa.ai:9090/api/v1.0/analytics/data/fill_missing/specific","description":"<p>Endpoint to take in a dataset and fill in missing values with a specified value.</p>\n<p>The endpoint takes in a list of objects where each object is a JSON representation of a single row in your dataset. For all columns containing fewer than 100 unique values, the endpoint will calculate and report the number of occurrences of each unique value in the column.</p>\n<h3 id=\"parameter\">Parameter:</h3>\n<ul>\n<li><strong>Access_Key</strong>: User's access key found on the profile page of the platform</li>\n<li><strong>Column</strong>: Name of column in your dataset to fill missing with the specified value</li>\n<li><strong>Value</strong>: Value to use for filling missing instances</li>\n<li><strong>Data</strong>: JSON representation of your dataset. Should consist of a list of objects where each object represents a row in your dataset. The row should consist of key:value pairs where the key is the name of your column and the value is the value of that column for the given row.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>The response consists of the Data from the input payload with missing values filled in with the value specified.</p>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","analytics","data","fill_missing","specific"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"1dc85aa6-89c1-4937-89b8-064d26e1cc8a"},{"name":"Add Lags to Time-Series Data","id":"3fc47874-063b-4727-b476-63e962268192","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"host":true,"user-agent":true,"accept":true,"accept-encoding":true,"connection":true,"content-length":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"Access_Key\":\"<Optional>User access key to enable larger amounts of data\",\r\n    \"Lags\":\"comma separated list of numbers where each number represents a lag to calculate and set as a new column in the response\",\r\n    \"Data\":[\r\n            {\"column\": \"value1\"},\r\n            {\"column\": \"value2\"},\r\n            {\"column\": \"value3\"}\r\n    ]\r\n}"},"url":"https://api.elipsa.ai:9090/api/v1.0/analytics/data/add_lags_single","description":"<p>Endpoint to take in a dataset of values</p>\n<p>The endpoint takes in a list of objects where each object is a JSON representation of a single row with a single value in your dataset. Based on the lag values set in the <em>Lags</em> parameter, the endpoint will find the value X number of rows back in the dataset and add it to a new column on the current row.</p>\n<p>For example, if your data is recorded every minute and the lags provided are <em>5,15,30</em> the endpoint will find the value from 5 minutes prior, 15 minutes prior, and 30 minutes prior on a rolling basis and add them as new columns for each row.</p>\n<h3 id=\"parameter\">Parameter:</h3>\n<ul>\n<li><strong>Access_Key</strong>: (OPTIONAL)User's access key found on the profile page of the Elipsa platform. Needed to enable processing of larger files</li>\n<li><strong>Lags</strong>: Value to use for filling missing instances</li>\n<li><strong>Data</strong>: JSON representation of your dataset. Should consist of a list of objects where each object represents a row in your dataset. The row should consist of key:value pairs where the key is the name of your column and the value is the value of that column for the given row.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>The response consists of the Data from the input payload plus columns for each of the lag periods that you set in the parameters</p>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"protocol":"https","port":"9090","path":["api","v1.0","analytics","data","add_lags_single"],"host":["api","elipsa","ai"],"query":[],"variable":[]}},"response":[],"_postman_id":"3fc47874-063b-4727-b476-63e962268192"}],"id":"ee808a5d-3ee1-4bb8-94aa-0d772f69ac7a","description":"<p>Series of endpoints to perform common transformations on your dataset.</p>\n","_postman_id":"ee808a5d-3ee1-4bb8-94aa-0d772f69ac7a"}],"id":"3e6129a7-c93f-4ce0-a3f0-c7f474455a79","description":"<p>Elipsa provides a series of endpoints to perform common data science and advanced analytic techniques in a single endpoint. The Advanced Analytics endpoints enable users to easily add advanced analytics into their workflows without writing custom code.</p>\n","_postman_id":"3e6129a7-c93f-4ce0-a3f0-c7f474455a79"},{"name":"EDGE ANALYTICS","item":[{"name":"Edge Administration","item":[{"name":"Set Access Key on Edge","id":"d02dff27-50cf-4f23-b26e-bef3c3cb1344","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"Access_Key\":\"<user access key from profile page>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:5000/api/v1.0/access_key/set","description":"<p>Endpoint to set the user's Access Key on the Edge Device.</p>\n<p>All edge devices need to have a valid Access Key configured on the device for endpoints to function</p>\n","urlObject":{"port":"5000","path":["api","v1.0","access_key","set"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"d02dff27-50cf-4f23-b26e-bef3c3cb1344"},{"name":"Set Edge ID","id":"8a349e3a-6082-4fda-8428-30e195a3ee4e","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true,"content-length":true,"host":true,"user-agent":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"Edge_ID\":\"<user access key from profile page>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:5000/api/v1.0/edge_id/set","description":"<p>Endpoint to set the Edge ID for the edge device.</p>\n<p>All edge devices need to have a valid Edge ID configured on the device for endpoints to function</p>\n","urlObject":{"port":"5000","path":["api","v1.0","edge_id","set"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"8a349e3a-6082-4fda-8428-30e195a3ee4e"},{"name":"Get Edge Info","id":"9621672d-9782-4e05-8430-baf97feff09f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:5000/edge_info","description":"<p>Endpoint to retrieve info of the Elipsa Edge deployment such as the version number, Access Key, and Edge ID configured on the device.</p>\n","urlObject":{"port":"5000","path":["edge_info"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"9621672d-9782-4e05-8430-baf97feff09f"},{"name":"Backup Edge Models","id":"5a56b3b8-57aa-4301-9feb-3d077f2afe1b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:5000/api/v1.0/support/backup","description":"<p>Endpoint to run a backup of the models and templates deployed to the Edge Device.</p>\n<p>The backup endpoint allows users to download a zip file of models, templates, and configuration files to move to a new or upgrades Edge Deployment.</p>\n","urlObject":{"port":"5000","path":["api","v1.0","support","backup"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"5a56b3b8-57aa-4301-9feb-3d077f2afe1b"},{"name":"Restore Edge Models","id":"c9c4bc7f-947c-4490-adc6-db40e7a7267b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"localhost:5000/api/v1.0/support/restore","description":"<p>Endpoint to restore the models and templates on an Edge Device.</p>\n<p>The restore endpoint allows users to take the zip from from the backup endpoint to move files to a new or upgrades Edge Deployment.</p>\n","urlObject":{"port":"5000","path":["api","v1.0","support","restore"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"c9c4bc7f-947c-4490-adc6-db40e7a7267b"},{"name":"Check in with Cloud","id":"e073dd8b-f2b6-451f-bfa9-5f4c8d3cd00d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:5000/api/v1.0/cloud/checkpoint/set","description":"<p>Endpoint for the Elipsa Edge Device to check in with the Elipsa Cloud.</p>\n<p>At a minimum, Edge devices must check in with the Elipsa cloud once every 7 days for Edge functionality to operate correctly.</p>\n","urlObject":{"protocol":"http","port":"5000","path":["api","v1.0","cloud","checkpoint","set"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"e073dd8b-f2b6-451f-bfa9-5f4c8d3cd00d"}],"id":"ffe22738-b482-4348-aa30-724fe024190f","description":"<p>A collection of endpoints to perform administrative tasks ensuring that edge devices are able to function properly.</p>\n","_postman_id":"ffe22738-b482-4348-aa30-724fe024190f"},{"name":"Self-Training Deployment Templates","item":[{"name":"List Deployed Templates","id":"52e5153f-3595-4f2d-8563-8e929a095654","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:5000/api/v1.0/deployments/model/templated/list","description":"<p>Endpoint to return a list of all Deployment Templates on the Edge Device.</p>\n","urlObject":{"port":"5000","path":["api","v1.0","deployments","model","templated","list"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"52e5153f-3595-4f2d-8563-8e929a095654"},{"name":"List Templated Models","id":"50ae859f-a0fb-4735-9586-eeddb586c027","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:5000/api/v1.0/deployments/model/list","description":"<p>Endpoint to return a list of all models on the Edge Device that are associated with a Deployment Template.</p>\n","urlObject":{"port":"5000","path":["api","v1.0","deployments","model","list"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"50ae859f-a0fb-4735-9586-eeddb586c027"},{"name":"Create Deployment Template","id":"eb38644d-2e99-48db-8e5a-55ceddf33b63","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true,"content-length":true,"host":true,"user-agent":true,"accept":true,"accept-encoding":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{\r\n    \"Name\":\"<name given to template>\",\r\n    \"Description\":\"<description of template>\",\r\n    \"Features\":\"<comma separated list of features to be sent to the template from your devices\",\r\n    \"Template_type\":\"Outlier\",\r\n    \"Initial_train_amt\":\"<specify the amount of data needed for initial model to be trained>\",\r\n    \"Retrain_amt\":\"<specify the amount of data needed for the model to be retrained>\",\r\n    \"Model_prefix\":\"<prefix that you want to give to models that are buit using this template>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:5000/api/v1.0/deployments/template/private/create","description":"<p>Endpoint to create a new Deployment Template on the Edge Device.</p>\n<h3 id=\"parameters\">Parameters:</h3>\n<ul>\n<li><strong>Name</strong> : The name you give to the template</li>\n<li><strong>Description</strong>: A description of the template</li>\n<li><strong>Features</strong>: A comma separated list of features. These features will be the names of the data points that you will monitor for anomalies</li>\n<li><strong>Initial_train_amt</strong>: The amount of data that the template needs to collect before building an initial model. By default, each template can receive data once per minute so this can be viewed as the number of minutes worth of data to collect before building an initial model</li>\n<li><strong>Retrain_amt</strong>: The amount of data the template needs to collect before retraining the model. While the initial model is making predictions, the template will continue to aggregate streaming data until it reaches the Final_train_amt at which point it will retrain the model using all data received</li>\n<li><strong>Model_prefix</strong>: The template creates a unique model for each unique machine/device that sends data to the template. The Model_prefix will set a common prefix for each model built and associated with this template</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<ul>\n<li>Returns a list of all deployed templates on the edge device in JSON format</li>\n</ul>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"port":"5000","path":["api","v1.0","deployments","template","private","create"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"eb38644d-2e99-48db-8e5a-55ceddf33b63"},{"name":"Stream New Data to Template","id":"e2a01802-e186-4341-a944-8b79c4529ecf","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true,"content-length":true,"host":true,"user-agent":true,"accept-encoding":true,"accept":true,"connection":true}},"request":{"method":"POST","header":[{"key":"Content-Length","value":"application/json","type":"default"}],"body":{"mode":"raw","raw":"{   \"Unique_id\":\"<unique ID of the machine/device such as serial number>\",\r\n    \"Data\":{\r\n            \"feature1\":\"<real-time streaming data from machine/device>\",\r\n            \"feature2\":\"<real-time streaming data from machine/device>\",\r\n            \"feature3\":\"<real-time streaming data from machine/device>\"\r\n        }\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:5000/api/v1.0/deployments/template/<template_api_key>","description":"<p>Endpoint to stream new telemetry data to a given template (specifying the template's API Key in the url).</p>\n<p>The router utilizes the unique ID parameter to automate the AI model creation, deployment, and inference.</p>\n<p>Simply connecting a machine to the template for future data streaming enables self-training no-touch outlier detection.</p>\n<h3 id=\"parameters\">Parameters:</h3>\n<ul>\n<li><strong>Unique_id</strong>: Unique ID of the machine/device being monitored. Example: the serial number of the machine/device</li>\n<li><strong>Data</strong>: List of JSON objects consisting of the real-time values of the features associated with the template</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<ul>\n<li><strong>prediction</strong>: Prediction as to whether the current data indicates abnormal operation of the machine/device being monitored. 0 indicates normal behavior with a response of 1 indicating an outlier.</li>\n<li><strong>confidence</strong>: Confidence level in the prediction of an outlier. A confidence of 0 is returned when the prediction is 0</li>\n<li><strong>drivers</strong>: A list of values for each of the features associated with the template. Each feature has a value explaining that feature's influence in determining a predicted outlier. The drivers can be utilized to help diagnose the location of the issue.</li>\n<li><strong>msg</strong>: OK if the API is running otherwise an error message is returned</li>\n<li><strong>status_code</strong>: Numerical status code indicating the current stage of the model lifecyle:<ul>\n<li>0-Ready to Stream Data training</li>\n<li>1-Streaming data before initial model build</li>\n<li>2-Initial model training</li>\n<li>3-Making predictions on the initial model and queuing for final model training</li>\n<li>4-Final model</li>\n<li>5-Making predictions on final model</li>\n</ul>\n</li>\n<li><strong>status</strong>: Status message associated with status code</li>\n</ul>\n<h3 id=\"payload\">Payload:</h3>\n","urlObject":{"port":"5000","path":["api","v1.0","deployments","template","<template_api_key>"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"e2a01802-e186-4341-a944-8b79c4529ecf"}],"id":"8a4e48e1-bf04-4832-9b5c-7857cd6bcc9a","_postman_id":"8a4e48e1-bf04-4832-9b5c-7857cd6bcc9a","description":""}],"id":"d87769c4-af2b-4a68-8cfe-a02d408f9c2f","description":"<p>Elipsa Edge Analytics puts the power of advanced analytics and self-training AI directly on your edge device.</p>\n<p>From Predictive Maintenance to Intelligent Asset Monitoring, users can now take advantage of the same easy to use APIs from Elipsa that are available in the cloud.</p>\n<p><strong>Elipsa Edge Analytics requires an edge license</strong>. To learn more contact <a href=\"mailto:support@elipsa.ai\">support@elipsa.ai</a>.</p>\n","_postman_id":"d87769c4-af2b-4a68-8cfe-a02d408f9c2f"}]}