{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"fe30a25f-22b3-4c4b-a387-2ca2029397e8","name":"ATS MHM - API Documentation (Beta)","description":"# 📄 Get started here\n\nUse this documentation to navigate the authentication, functions and entities available to develop against the MhM API.\n\n---\n\nThis API exposes core services of ATS' platform to enable automation, integration and extension of our [Machine Health Monitoring (MhM)](https://mhm.app.advancedtech.com/) software product.\n\n## **Getting started guide**\n\nBefore beginning to use our API, consider the following:\n\n- You must use a valid access token to send requests to the API endpoints.\n    \n- The API is subject to rate and usage limits.\n    \n- The API only responds to HTTPS-secured communications. Any requests sent via HTTP return an HTTP 301 redirect to the corresponding HTTPS resources.\n    \n- The API conforms to standard HTTP response status codes and transacts data in JSON format. When an API request returns an error, it is sent in the JSON response body as an error object.\n    \n\nTypical HTTP response status codes include:\n\n- **201 Created** - Considered a successful response and typically contains the created entity in the response body.\n    \n- **200 OK** - Considered a successful response and typically contains the result in the response body.\n    \n- **204 No Content** - Considered a successful response and is typically used in conjunction with a delete. No response body is to be expected with this status code.\n    \n- **401 Unauthorized** - Considered a failure response and is indicative of a malformed, expired or otherwise invalid, access token.\n    \n- **403 Access Denied** - Considered a failure response and is indicative of the client not having the required permissions to perform the requested action.\n    \n- **404 Not Found** - Considered a failure response and is indicative of the target resource not being found. Please confirm the URL and target object id (if applicable) are correct.\n    \n- **422 Unprocessable Entity** - Considered a failure response and is indicative of a validation failure. Failure details should be included within the response body.\n    \n- **429 Request Rate Too Large** - Considered a transient failure response and is indicative of too high a request rate. Integrations should expect this error response from time to time and retry accordingly.\n    \n- **409 Conflict** - Considered a failure response and is indicative of a cardinality conflict. Ensure that an overlapping entity does not already exist.\n    \n- **500 Server Error** - Considered a failure response and is indicative of an unknown server error. Review documentation for the endpoint and reach out to customer support for further assistance.\n    \n\n## Authentication\n\nATS application authentication is based on OAUTH2/OIDC standards and utilizes the client credential authentication flow. You can exchange a client id and client secret with our client service to retrieve an access token. The response from this exchange is an RS256 JSON web token (JWT) that contains the access token along with the associated client permissions and expiration. Subsequent requests to this endpoint will return the same token until its expiration.\n\nAccess tokens can be appended to an HTTP request via the \"Authorization\" HTTP header with a value of `Bearer {access_token_here}`. It is best practice to retain and reuse the current access token until its expiration which is provided along with the access token response.\n\nIf the access token expires, becomes malformed due to manipulation, or otherwise becomes invalid, you will receive an HTTP 401 Unauthorized response code as noted above.\n\n## Rate and usage limits (TBD)\n\nAPI access rate limits apply at a per-API credential basis in unit time. The limit is 300 requests per minute. Also, depending on your plan, you may have usage limits. If you exceed either limit, your request will return an HTTP 429 Too Many Requests status code.\n\nEach API response returns the following set of headers to help you identify your use status:\n\n| Header | Description |\n| --- | --- |\n| `X-RateLimit-Limit` | The maximum number of requests that the consumer is permitted to make per minute. |\n| `X-RateLimit-Remaining` | The number of requests remaining in the current rate limit window. |\n| `X-RateLimit-Reset` | The time at which the current rate limit window resets in UTC epoch seconds. |\n\n### Webhooks\n\nFor outbound eventing, system administrators can configure webhook definitions in the dashboard application to receive notification of events within the R360 application. Eventing within the application should be expected to be near real-time dependent on volume.\n\n[Webhook Configuration](https://mhm.app.advancedtech.com/en-us/company/webhooks)\n\nOutbound events are sent via HTTP as POST requests to the configured URL. Additional HTTP headers can be configured as necessary to be sent along with the request. Request body consists of event details such as current document state, change type (create, update, delete), updated properties and date/time of event.\n\n#### Example Event Payload\n\n```\n{\n    \"data\": {\n        \"changetype\": \"update\",\n        \"containerid\": \"recommendations\",\n        \"document\": {\n            \"_etag\": \"\\\"070086bd-0000-0400-0000-671012cb0000\\\"\",\n            \"_ts\": 1729106635,\n            \"id\": \"6645d540-7084-4f26-bede-c04d3ae31082\",\n            \"meta\": {\n                \"isDeleted\": false,\n                \"origin\": \"recommendations\",\n                \"source_change_type\": \"UPDATE\",\n                \"version\": \"1.0.28-beta\"\n            },\n            \"obj\": {\n                \"alerts\": [\n                    {\n                        \"id\": \"6246876ff76908c0c2d2705d\",\n                        \"primary\": false\n                    }\n                ],\n                \"assetid\": \"fba2ce1a-0055-4bdc-b7c0-7db4ece33cb2\",\n                \"comments\": [\n                    {\n                        \"createdby\": \"4c6c538a-a78e-4dcb-a79b-d2b264dedfaa\",\n                        \"createddt\": \"2024-10-14T18:44:27.0358811Z\",\n                        \"displayid\": null,\n                        \"id\": \"a943541c-44e2-4d56-ac51-12c55d2e1f37\",\n                        \"modifiedby\": \"4c6c538a-a78e-4dcb-a79b-d2b264dedfaa\",\n                        \"modifieddt\": \"2024-10-14T18:44:27.0358818Z\",\n                        \"parentcommentid\": null,\n                        \"text\": \"Some note text added from the API\"\n                    },\n                    {\n                        \"createdby\": \"4c6c538a-a78e-4dcb-a79b-d2b264dedfaa\",\n                        \"createddt\": \"2024-10-16T19:23:55.3815126Z\",\n                        \"displayid\": null,\n                        \"id\": \"e7a3a9bf-76c6-4cee-ae6c-3234291bb994\",\n                        \"modifiedby\": \"4c6c538a-a78e-4dcb-a79b-d2b264dedfaa\",\n                        \"modifieddt\": \"2024-10-16T19:23:55.3815127Z\",\n                        \"parentcommentid\": null,\n                        \"text\": \"Adding a note.\"\n                    }\n                ],\n                \"costavoidance\": {\n                    \"active\": true,\n                    \"maintenance\": {\n                        \"costperhour\": 98.0,\n                        \"hours\": 6.0\n                    },\n                    \"partsmaterials\": {\n                        \"additional\": 100.0,\n                        \"direct\": 177.0\n                    },\n                    \"production\": {\n                        \"costperhour\": 76.0,\n                        \"hours\": 2.0\n                    }\n                },\n                \"createdby\": \"24c-sync-losant\",\n                \"createddt\": \"2024-09-04T14:10:04.7106232Z\",\n                \"description\": \"B - PIA Air Handler Motor - Direct\",\n                \"displayid\": \"85804855\",\n                \"files\": [],\n                \"id\": \"6645d540-7084-4f26-bede-c04d3ae31082\",\n                \"ix\": {\n                    \"extid\": \"WO123456755\",\n                    \"exturi\": null\n                },\n                \"losantid\": \"1\",\n                \"modifiedby\": \"4c6c538a-a78e-4dcb-a79b-d2b264dedfaa\",\n                \"modifieddt\": \"2024-10-16T19:23:55.3815157Z\",\n                \"priority\": \"normal\",\n                \"shortdescription\": \"B - PIA Air Handler Motor - Direct\",\n                \"siteid\": \"f9d5c0e8-6738-4357-a3eb-bbc76940d512\",\n                \"status\": \"hold\",\n                \"substatus\": \"waiting on materials\",\n                \"type\": \"reference\"\n            },\n            \"partition_key\": \"C - ATS Inc.\",\n            \"ttl\": -1,\n            \"type\": \"recommendation\"\n        },\n        \"siteid\": \"f9d5c0e8-6738-4357-a3eb-bbc76940d512\",\n        \"tenant\": \"C - ATS Inc.\",\n        \"updatedproperties\": [\n            \"comments\",\n            \"modifieddt\"\n        ]\n    },\n    \"datacontenttype\": \"application/json; charset=utf-8\",\n    \"id\": \"26fd2af5-282e-41df-87c7-d8fc0840985c\",\n    \"time\": \"2024-10-16T19:23:55Z\",\n}\n\n ```","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"22838211","team":3897906,"collectionId":"fe30a25f-22b3-4c4b-a387-2ca2029397e8","publishedId":"2sA3e5cT46","public":true,"publicUrl":"https://docs.app.advancedtech.com","privateUrl":"https://go.postman.co/documentation/22838211-fe30a25f-22b3-4c4b-a387-2ca2029397e8","customColor":{"top-bar":"F4F4F4","right-sidebar":"0A1E36","highlight":"DB1D3A"},"documentationLayout":"classic-single-column","customisation":{"metaTags":[{"name":"description","value":"Public API documentation for ATS MHM software."},{"name":"title","value":"ATS MHM Public API Documentation"}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/4693b94a-3cf7-436c-9ce0-eaf049626363/V0hUX01ITSBMb2dvLnBuZw==","colors":{"top-bar":"0A1E36","right-sidebar":"0A1E36","highlight":"FF2A4B"}},{"name":"light","logo":"https://content.pstmn.io/7627ac31-d86a-4983-9429-4a9c05deb560/UkRfTUhNIExvZ28ucG5n","colors":{"top-bar":"F4F4F4","right-sidebar":"0A1E36","highlight":"DB1D3A"}}]}},"version":"8.10.1","publishDate":"2024-12-05T20:58:00.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"ATS MHM Public API Documentation","description":"Public API documentation for ATS MHM software."},"logos":{"logoLight":"https://content.pstmn.io/7627ac31-d86a-4983-9429-4a9c05deb560/UkRfTUhNIExvZ28ucG5n","logoDark":"https://content.pstmn.io/4693b94a-3cf7-436c-9ce0-eaf049626363/V0hUX01ITSBMb2dvLnBuZw=="}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/d6c1d4879efe658dc890cc6ebf887d2d0cff508a8a853d488c67a97ee7b558ed","favicon":"https://advancedtech.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://docs.app.advancedtech.com/view/metadata/2sA3e5cT46"}