{"info":{"_postman_id":"cd91e17c-130b-42c3-aae7-168ddd5695ab","name":"zenduone-public","description":"<html><head></head><body><h2 id=\"a-collection-holding-all-the-zenduone-public-json-rpc-api-calls\">A collection holding all the ZenduOne public JSON RPC API calls..</h2>\n<h4 id=\"error-codes\">Error Codes:</h4>\n<h6 id=\"500---internal-server-errors\">500 - internal server errors</h6>\n<h6 id=\"400---bad-request\">400 - bad request</h6>\n<h6 id=\"401---authentication-failed\">401 - authentication failed</h6>\n<h4 id=\"rate-limit-150-requestsminute\">Rate Limit: 150 Requests/minute</h4>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"19389758","collectionId":"cd91e17c-130b-42c3-aae7-168ddd5695ab","publishedId":"Uz5JJbR1","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-02-28T14:33:46.000Z"},"item":[{"name":"Auth","item":[{"name":"Authenticate","event":[{"listen":"test","script":{"id":"6e09f5cf-b709-4966-8c74-a22b66da4b3a","exec":["var data = JSON.parse(responseBody);","postman.setEnvironmentVariable(\"sessionId\", data.result.credentials.sessionId)","postman.setEnvironmentVariable(\"customerId\", data.result.credentials.customerId)"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"a7b7ed7e-adb4-498e-998f-3338c0363d4d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Authenticate\",\n    \"params\": {\n        \"database\": \"{{database}}\",\n        \"userName\": \"{{username}}\",\n        \"password\": \"{{password}}\",\n        \"appName\":\"{{appName}}\"\n    }\n}","type":"text"}]},"url":"{{url}}","description":"<p>This endpoint is designed to authenticate a user and retrieve their credentials. It accepts a <code>x-www-form-urlencoded</code> request body to send the necessary data for authentication. The response will either return the user's credentials upon successful authentication or an error message if the authentication fails.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><p><strong>url</strong> (type: string, required): The API endpoint to connect to.</p>\n</li>\n<li><p><strong>database</strong> (type: string, required): The name of the database to access.</p>\n</li>\n<li><p><strong>username</strong> (type: string, required): The username for authentication.</p>\n</li>\n<li><p><strong>password</strong> (type: string, required): The password for authentication.</p>\n</li>\n<li><p><strong>appName</strong> (type: string, optional): The name of the application (string).</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>Upon a successful request, the server responds with a status code of 200 and a JSON object containing the user's credentials:</p>\n<ul>\n<li><p><strong>result</strong>: An object that includes:</p>\n<ul>\n<li><p><strong>credentials</strong>: An object containing:</p>\n<ul>\n<li><p><strong>database</strong>: The name of the database (string).</p>\n</li>\n<li><p><strong>userName</strong>: The username of the authenticated user (string).</p>\n</li>\n<li><p><strong>sessionId</strong>: The session ID for the current user session (string).</p>\n</li>\n<li><p><strong>customerId</strong>: The ID of the customer (string).</p>\n</li>\n<li><p><strong>appName</strong>: The name of the application (string).</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p>In case of an error, the response will include an <strong>error</strong> field with a description of the issue.</p>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that the correct credentials are provided for successful authentication.</p>\n</li>\n<li><p>The response may vary based on the authentication result, either returning user credentials or an error message.</p>\n</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"36ca53d0-0048-427f-90e7-b4f7d3bbc8f9","name":"Success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Authenticate\",\n    \"params\": {\n        \"database\": \"\",\n        \"userName\": \"\",\n        \"password\": \"\",\n        \"appName\": \"\"\n\n    }\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 24 Jun 2022 12:14:36 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"e6-oSWuobUePSM64N6NwzlXjr7FgwU\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=lXvL8lbRBeiNR7EL2otHv6Mb1VFBu23%2FUjq86lwajvBpCen3q8%2F94Cf%2BLzXq1lHtmMHPu65BKUe9iWFEKQpDBkb8KWoJVGkipn7lF87u4%2FO1BL9VJewxczrJIutWuywZS13ct%2FEmakhw\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"720562562c3b6fb6-IAD"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"credentials\": {\n            \"database\": \"database\",\n            \"userName\": \"userName\",\n            \"sessionId\": \"sessionId\",\n            \"customerId\": \"customerId\",\n            \"appName\": \"appName\"\n        }\n    }\n}"},{"id":"4fb0b13f-6f5e-4198-8e90-925735978fad","name":"Error","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Authenticate\",\n    \"params\": {\n        \"database\": \"{{database}}\",\n        \"userName\": \"{{username}}\",\n        \"password\": \"{{password}}\"\n    }\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 21 Jun 2022 10:41:56 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"36"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"24-EhHOBx5nXN/clOQjP/e/Q5/FTmw\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=UY%2Ftx4BbwJl7S%2Bm41sa%2FWsQ2CWfP5sQqOnvfPhUAvQIS74Dkb8Dd4TDh0%2FNZVyJt7OqjA9qWF3Y30RfRqNsc5zBPpLtU5IhgaC3P7d4K2kdOn%2B69zP%2Bua9PwA3dNB7%2BxBkFyTfqL03I%2B\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"71ec227a1a0b9c61-IAD"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"API Authorization failed\"\n}"}],"_postman_id":"a7b7ed7e-adb4-498e-998f-3338c0363d4d"},{"name":"Authenticate With Geotab Session","event":[{"listen":"test","script":{"id":"6e09f5cf-b709-4966-8c74-a22b66da4b3a","exec":["var data = JSON.parse(responseBody);","postman.setEnvironmentVariable(\"sessionId\", data.result.credentials.sessionId)","postman.setEnvironmentVariable(\"customerId\", data.result.credentials.customerId)"],"type":"text/javascript"}}],"id":"99e7e107-bfce-4632-a808-f78e1af9a5d1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"AuthenticateWithGeotab\",\n    \"params\": {\n        \"database\": \"{{database}}\",\n        \"userName\": \"{{username}}\",\n        \"sessionId\": \"{{sessionId}}\",\n        \"server\": \"{{server}}\"\n    }\n}","type":"text"}]},"url":"{{url}}","description":"<h2 id=\"api-request-description\">API Request Description</h2>\n<p>This endpoint is utilized to submit a request that may involve user credentials or session information. The request is sent using the <code>x-www-form-urlencoded</code> content type. It is essential to include the necessary parameters to ensure successful processing of the request.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The request body should be formatted as key-value pairs. The following parameters are required for authentication:</p>\n<ul>\n<li><p><strong>database</strong> (text): The name of the database the user is trying to access.</p>\n</li>\n<li><p><strong>userName</strong> (text): The username of the user attempting to authenticate.</p>\n</li>\n<li><p><strong>sessionId</strong> (text): The unique identifier for the user's session.</p>\n</li>\n<li><p><strong>customerId</strong> (text): The unique identifier for the customer associated with the user.</p>\n</li>\n<li><p><strong>server</strong>: my.geotab.com</p>\n</li>\n</ul>\n<p>Please ensure to include these parameters in future requests to facilitate proper functionality.</p>\n<h3 id=\"example-request\">Example Request</h3>\n<p>Here is an example of how the request should be structured:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST {{url}}\nContent-Type: application/x-www-form-urlencoded\ndatabase=myDatabase&amp;userName=myUser&amp;sessionId=mySession&amp;customerId=myCustomer\n\n</code></pre><h3 id=\"response-format\">Response Format</h3>\n<p>The response from this endpoint can be in one of the following formats:</p>\n<ol>\n<li><p>{ \"result\": { \"credentials\": { \"database\": \"\", \"userName\": \"\", \"sessionId\": \"\", \"customerId\": \"\" } }}</p>\n<ul>\n<li>This response indicates a successful operation, returning an object containing user credentials such as <code>database</code>, <code>userName</code>, <code>sessionId</code>, and <code>customerId</code>.</li>\n</ul>\n</li>\n<li><p>{ \"error\": \"\" }</p>\n<ul>\n<li>This response indicates that an error occurred during the request, with the error message provided in the <code>error</code> field.</li>\n</ul>\n</li>\n</ol>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that the request body includes all required parameters for a successful response.</p>\n</li>\n<li><p>Handle both success and error responses appropriately in your application.</p>\n</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"cf473c84-20b9-4658-b73b-f46c9a9dc3f6","name":"Success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Authenticate\",\n    \"params\": {\n        \"database\": \"\",\n        \"userName\": \"\",\n        \"password\": \"\"\n    }\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Vary","value":"X-HTTP-Method-Override"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"36"},{"key":"ETag","value":"W/\"24-EhHOBx5nXN/clOQjP/e/Q5/FTmw\""},{"key":"Date","value":"Wed, 18 Jun 2025 18:25:25 GMT"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"credentials\": {\n            \"database\": \"database\",\n            \"userName\": \"userName\",\n            \"sessionId\": \"sessionId\",\n            \"customerId\": \"customerId\"\n        }\n    }\n}"},{"id":"0227af14-af96-437d-9214-5b59ade3afb6","name":"Error","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Authenticate\",\n    \"params\": {\n        \"database\": \"{{database}}\",\n        \"userName\": \"{{username}}\",\n        \"password\": \"{{password}}\"\n    }\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 21 Jun 2022 10:41:56 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"36"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"24-EhHOBx5nXN/clOQjP/e/Q5/FTmw\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=UY%2Ftx4BbwJl7S%2Bm41sa%2FWsQ2CWfP5sQqOnvfPhUAvQIS74Dkb8Dd4TDh0%2FNZVyJt7OqjA9qWF3Y30RfRqNsc5zBPpLtU5IhgaC3P7d4K2kdOn%2B69zP%2Bua9PwA3dNB7%2BxBkFyTfqL03I%2B\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"71ec227a1a0b9c61-IAD"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"API Authorization failed\"\n}"}],"_postman_id":"99e7e107-bfce-4632-a808-f78e1af9a5d1"}],"id":"6a8a7900-3667-4016-8c1f-028e9f4f37e9","_postman_id":"6a8a7900-3667-4016-8c1f-028e9f4f37e9","description":""},{"name":"Work","item":[{"name":"Get Jobs","id":"8fa68b4c-418a-46ad-b5fc-1ad63f3648cb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Job\",\n      \"search\": { \n        \"fromDate\": \"{{dateFrom}}\",\n        \"toDate\": \"{{dateTo}}\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"job-endpoint\">Job Endpoint</h4>\n<p>This endpoint allows you to retrieve job information. You can use it to fetch all jobs or filter the results based on specific criteria such as date ranges, statuses, and pagination settings.</p>\n<p><strong>Request Body Parameters:</strong></p>\n<ul>\n<li><p><code>id</code> (optional, string): The unique identifier for a specific job.</p>\n</li>\n<li><p><code>deviceSearch</code> (optional, Ref): A reference to the device associated with the job.</p>\n</li>\n<li><p><code>fromDate</code> (optional, string): The start date for filtering jobs based on their due date.</p>\n</li>\n<li><p><code>toDate</code> (optional, string): The end date for filtering jobs based on their due date.</p>\n</li>\n<li><p><code>scheduledFrom</code> (optional, string): The start date for filtering jobs based on their scheduled date (driver assignment).</p>\n</li>\n<li><p><code>scheduledTo</code> (optional, string): The end date for filtering jobs based on their scheduled date (driver assignment).</p>\n</li>\n<li><p><code>updatedFrom</code> (optional, string): The start date for filtering jobs based on their last modification date.</p>\n</li>\n<li><p><code>updatedTo</code> (optional, string): The end date for filtering jobs based on their last modification date.</p>\n</li>\n<li><p><code>statuses</code> (optional, JobStatus[]): An array of job statuses to filter the results.</p>\n</li>\n<li><p><code>offset</code> (optional, number): The number of records to skip before starting to collect the result set.</p>\n</li>\n<li><p><code>limit</code> (optional, number): The maximum number of records to return.</p>\n</li>\n</ul>\n<p><strong>Response Structure:</strong></p>\n<p>The response will contain a result array with job details, including attributes such as <code>id</code>, <code>name</code>, <code>number</code>, <code>driver</code>, <code>status</code>, <code>createdDate</code>, <code>createdBy</code>, <code>modifiedDate</code>, <code>modifiedBy</code>, <code>dueDate</code>, and <code>reference</code>. Each job may also include an array of <code>stops</code>, which consist of latitude, longitude, name, address, customerId, and work orders. The work orders will have their own attributes, including <code>id</code>, <code>form</code>, <code>notes</code>, <code>number</code>, and <code>products</code>. Additionally, the response provides estimated time of arrival (ETA) and actual metrics related to the job.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"a217d4cb-54aa-4f5b-a000-7b6199050541","name":"Get Jobs","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Job\",\n      \"search\": { \n        \"fromDate\": \"2022-01-01T00:00:00.000Z\",\n        \"toDate\": \"2022-01-01T00:00:00.000Z\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"trax\"\n  }","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Vary","value":"X-HTTP-Method-Override"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"4379"},{"key":"ETag","value":"W/\"111b-V0jSvqWjz/HNR8GmoTOJ+p/JTPA\""},{"key":"Date","value":"Fri, 18 Jul 2025 21:08:35 GMT"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"id\": \"44a3c812-4d88-11ef-8362-118105d521bf\",\n            \"name\": \"Job 29/07 01\",\n            \"number\": 1722233653345,\n            \"vehicleId\": \"96c30120-33c9-11ef-aa7a-638ef663eb7e\",\n            \"driver\": \"\",\n            \"status\": \"Dispatched\",\n            \"createdDate\": \"2024-07-29T08:55:13.425Z\",\n            \"createdBy\": \"rohittester\",\n            \"modifiedDate\": \"2024-07-29T08:55:36.338Z\",\n            \"modifiedBy\": \"rohittester\",\n            \"dueDate\": \"2024-07-29T11:30:00.000Z\",\n            \"scheduledDate\": \"2024-07-29T08:55:12.973Z\",\n            \"reference\": \"\",\n            \"stops\": [\n                {\n                    \"latitude\": 16.621929543436455,\n                    \"longitude\": 74.29649554943806,\n                    \"note\": null,\n                    \"name\": \"P Location A29\",\n                    \"address\": \"AH47,Kaneriwadi for 10 minutes\",\n                    \"customerId\": \"552d19f0-4d7b-11ef-b1cd-c31736a35d8e\",\n                    \"workOrders\": [\n                        {\n                            \"id\": \"44a3c810-4d88-11ef-8362-118105d521bf\",\n                            \"form\": {\n                                \"name\": \"Default\",\n                                \"layout\": {\n                                    \"components\": [\n                                                                                {\n                                            \"id\": \"3c3245f51943c257a3001d3bdef9d590\",\n                                            \"label\": \"Multi Select\",\n                                            \"name\": \"Multi Select\",\n                                            \"placeholder\": \"Select options #001\",\n                                            \"inputType\": \"multi select\",\n                                            \"type\": \"select\",\n                                            \"value\": \"\",\n                                            \"options\": [\n                                                {\n                                                    \"checkOrSelected\": false,\n                                                    \"option\": \"Option 1\"\n                                                },\n                                                {\n                                                    \"checkOrSelected\": false,\n                                                    \"option\": \"Option 2\"\n                                                }\n                                            ],\n                                            \"validate\": {\n                                                \"required\": true\n                                            },\n                                            \"isValid\": false,\n                                            \"attributes\": []\n                                        }\n                                    ]\n                                }\n                            },\n                            \"notes\": [],\n                            \"number\": \"Default\",\n                            \"products\": []\n                        }\n                    ],\n                    \"eta\": {\n                        \"distance\": 1064.1152182425024,\n                        \"duration\": 73668,\n                        \"stopDuration\": 600000,\n                        \"arrivalDate\": \"2024-07-29T04:31:13.668Z\"\n                    },\n                    \"actual\": {\n                        \"distance\": 0,\n                        \"duration\": 0,\n                        \"stopDuration\": 0,\n                        \"arrivalDate\": null\n                    }\n                }\n            ],\n            \"notes\": []\n        }\n    ]\n}"}],"_postman_id":"8fa68b4c-418a-46ad-b5fc-1ad63f3648cb"},{"name":"Add Job","id":"0d445424-caa4-4b21-a6e5-f12f98dfb62d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Add\",\n  \"params\": {\n    \"typeName\": \"Job\",\n    \"entity\": {\n      \"name\": \"jobName\",\n      \"reference\": \"reference\",\n      \"dueDate\": \"1970-01-01T00:00:00.000Z\",\n      \"scheduledDate\": \"1970-01-01T00:00:00.000Z\",\n      \"stops\": [\n        {\n          \"latitude\": 1,\n          \"longitude\": 1,\n          \"name\": \"name\",\n          \"address\": \"address\",\n          \"customerId\": \"dca30836-efaf-11ec-91c6-ed07777bceb0\",\n          \"unit\": \"unit\",\n          \"note\": \"note\",\n          \"eta\": {\n            \"distance\": 0,\n            \"duration\": 0,\n            \"stopDuration\": 0,\n            \"arrivalDate\": \"1970-01-01T00:00:00.000Z\"\n          },\n          \"actual\": {\n            \"distance\": 0,\n            \"duration\": 0,\n            \"stopDuration\": 0,\n            \"arrivalDate\": \"1970-01-01T00:00:00.000Z\"\n          },\n          \"WorkOrders\": [\n            {\n              \"id\": \"WOId\",\n              \"form\": {},\n              \"notes\": [\n                {\n                  \"username\": \"username\",\n                  \"text\": \"text\",\n                  \"files\": \"files\",\n                  \"date\": \"date\"\n                }\n              ],\n              \"number\": 1,\n              \"submittedDate\": \"1970-01-01T00:00:00.000Z\",\n              \"submittedUser\": \"user\",\n              \"submittedData\": {},\n              \"Products\": [\n                {\n                  \"name\": \"name\",\n                  \"count\": 1,\n                  \"productId\": \"productId\"\n                }\n              ]\n            }\n          ]\n        }\n      ],\n      \"number\": 1,\n      \"status\": \"Unassigned\",\n      \"vehicleId\": \"vehicleId\",\n      \"notes\": [\n        {\n          \"username\": \"username\",\n          \"text\": \"text\",\n          \"files\": \"files\",\n          \"date\": \"date\"\n        }\n      ],\n      \"custom\": \"custom\"\n    },\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"adds-a-new-job-to-the-database\">Adds a new Job to the database.</h4>\n<p>This endpoint allows you to add a new job to the system. In addition to the required credentials, the method requires a minimum of two parameters:</p>\n<ul>\n<li><p><strong>typeName</strong>: The type of entity being added.</p>\n</li>\n<li><p><strong>entity</strong>: The job entity itself. It consists of fields like stops, deviceId, reference, dueDate, etc.</p>\n</li>\n</ul>\n<h5 id=\"expected-response\">Expected Response:</h5>\n<p>Upon a successful request, the API will return a JSON object containing the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"result\": {\n        \"id\": \"&lt;job_id&gt;\"\n    }\n}\n\n</code></pre>\n<p>Where is the unique identifier for the newly created job.</p>\n<h5 id=\"notes\">Notes:</h5>\n<ul>\n<li><p>Ensure that all required fields in the Job interface are populated correctly to avoid validation errors.</p>\n</li>\n<li><p>The response will include the <code>id</code> of the newly created job, which can be used for further operations.</p>\n</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"be3742ca-9a64-4dfc-8f32-880aa8eed284","name":"Add Job","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Add\",\n  \"params\": {\n    \"typeName\": \"Job\",\n    \"entity\": {\n      \"stops\": [\n        {\n          \"name\": \"BC0738\",\n          \"customerId\": \"dca30836-efaf-11ec-91c6-ed07777bceb0\",\n          \"latitude\": 54.05294418334961,\n          \"longitude\": -128.6526336669922,\n          \"eta\": {\n            \"stopDuration\": 600000\n          },\n          \"workOrders\": [\n            {\n              \"form\": {\n                \"id\": \"61a4e88d12a5951dc61e1d04\",\n                \"name\": \"Andrey Form 2\",\n                \"layout\": {\n                  \"components\": [\n                    {\n                      \"label\": \"Single Input\",\n                      \"type\": \"textfield\",\n                      \"key\": \"text\",\n                      \"input\": true,\n                      \"placeholder\": \"\",\n                      \"prefix\": \"\",\n                      \"customClass\": \"\",\n                      \"suffix\": \"\",\n                      \"multiple\": false,\n                      \"defaultValue\": null,\n                      \"protected\": false,\n                      \"unique\": false,\n                      \"persistent\": true,\n                      \"hidden\": false,\n                      \"clearOnHide\": true,\n                      \"refreshOn\": \"\",\n                      \"redrawOn\": \"\",\n                      \"tableView\": true,\n                      \"modalEdit\": false,\n                      \"dataGridLabel\": false,\n                      \"labelPosition\": \"top\",\n                      \"description\": \"\",\n                      \"errorLabel\": \"\",\n                      \"tooltip\": \"\",\n                      \"hideLabel\": false,\n                      \"tabindex\": \"\",\n                      \"disabled\": false,\n                      \"autofocus\": false,\n                      \"dbIndex\": false,\n                      \"customDefaultValue\": \"\",\n                      \"calculateValue\": \"\",\n                      \"calculateServer\": false,\n                      \"widget\": {\n                        \"type\": \"input\"\n                      },\n                      \"attributes\": {},\n                      \"validateOn\": \"change\",\n                      \"validate\": {\n                        \"required\": false,\n                        \"custom\": \"\",\n                        \"customPrivate\": false,\n                        \"strictDateValidation\": false,\n                        \"multiple\": false,\n                        \"unique\": false,\n                        \"minLength\": \"\",\n                        \"maxLength\": \"\",\n                        \"pattern\": \"\"\n                      },\n                      \"conditional\": {\n                        \"show\": null,\n                        \"when\": null,\n                        \"eq\": \"\"\n                      },\n                      \"overlay\": {\n                        \"style\": \"\",\n                        \"left\": \"\",\n                        \"top\": \"\",\n                        \"width\": \"\",\n                        \"height\": \"\"\n                      },\n                      \"allowCalculateOverride\": false,\n                      \"encrypted\": false,\n                      \"showCharCount\": false,\n                      \"showWordCount\": false,\n                      \"properties\": {},\n                      \"allowMultipleMasks\": false,\n                      \"mask\": false,\n                      \"inputType\": \"text\",\n                      \"inputFormat\": \"plain\",\n                      \"inputMask\": \"\",\n                      \"spellcheck\": true,\n                      \"id\": \"eu319k\"\n                    },\n                    {\n                      \"label\": \"Signature\",\n                      \"footer\": \"Sign above\",\n                      \"labelPosition\": \"top\",\n                      \"width\": \"100%\",\n                      \"height\": \"150px\",\n                      \"backgroundColor\": \"rgb(255,255,255)\",\n                      \"penColor\": \"black\",\n                      \"description\": \"\",\n                      \"tooltip\": \"\",\n                      \"customClass\": \"\",\n                      \"tabindex\": \"\",\n                      \"hidden\": false,\n                      \"hideLabel\": false,\n                      \"disabled\": false,\n                      \"tableView\": false,\n                      \"modalEdit\": false,\n                      \"persistent\": true,\n                      \"protected\": false,\n                      \"encrypted\": false,\n                      \"redrawOn\": \"\",\n                      \"clearOnHide\": true,\n                      \"customDefaultValue\": \"\",\n                      \"calculateValue\": \"\",\n                      \"calculateServer\": false,\n                      \"allowCalculateOverride\": false,\n                      \"validate\": {\n                        \"required\": false,\n                        \"customMessage\": \"\",\n                        \"custom\": \"\",\n                        \"customPrivate\": false,\n                        \"json\": \"\",\n                        \"strictDateValidation\": false,\n                        \"multiple\": false,\n                        \"unique\": false\n                      },\n                      \"errorLabel\": \"\",\n                      \"key\": \"signaturepad\",\n                      \"tags\": [],\n                      \"properties\": {},\n                      \"conditional\": {\n                        \"show\": null,\n                        \"when\": null,\n                        \"eq\": \"\",\n                        \"json\": \"\"\n                      },\n                      \"customConditional\": \"\",\n                      \"logic\": [],\n                      \"attributes\": {},\n                      \"overlay\": {\n                        \"style\": \"\",\n                        \"page\": \"\",\n                        \"left\": \"\",\n                        \"top\": \"\",\n                        \"width\": \"\",\n                        \"height\": \"\"\n                      },\n                      \"type\": \"signature\",\n                      \"input\": true,\n                      \"placeholder\": \"\",\n                      \"prefix\": \"\",\n                      \"suffix\": \"\",\n                      \"multiple\": false,\n                      \"defaultValue\": null,\n                      \"unique\": false,\n                      \"refreshOn\": \"\",\n                      \"dataGridLabel\": false,\n                      \"autofocus\": false,\n                      \"dbIndex\": false,\n                      \"widget\": {\n                        \"type\": \"input\"\n                      },\n                      \"validateOn\": \"change\",\n                      \"showCharCount\": false,\n                      \"showWordCount\": false,\n                      \"allowMultipleMasks\": false,\n                      \"minWidth\": \"0.5\",\n                      \"maxWidth\": \"2.5\",\n                      \"id\": \"e83eq9p\"\n                    }\n                  ]\n                },\n                \"data\": null,\n                \"$$hashKey\": \"object:1033\"\n              },\n              \"number\": \"Default\"\n            }\n          ],\n          \"address\": \"360 City Centre,Kitimat\"\n        }\n      ],\n      \"name\": \"test\",\n      \"reference\": \"test\",\n      \"dueDate\": \"2022-06-29T21:00:00.000Z\",\n      \"defaultFormId\": \"61a4e88d12a5951dc61e1d04\"\n    },\n    \"credentials\": {\n       \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"\"\n}","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 11:14:45 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"38-tGtZg8SHiOzExTJm8TKvOiDdV10\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=m%2Fb161%2Fnpa7U7Z4VATZasvGIp9qr0jrfqZo536wTXvvhjex1rFy4dkX0DwAftp1pJo0dDV4yPnTRfB999T9jGQkfF42rWnXK29W4jyfNtg32V3Hqabye99HZSjAVfpwTweKX%2B%2FMK%2FIIA\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722e3d88ea2ebbc5-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"id\": \"jobId\"\n    }\n}"}],"_postman_id":"0d445424-caa4-4b21-a6e5-f12f98dfb62d"},{"name":"Update Job","id":"37025da2-f538-47a0-a5ba-07c7c8b05f6e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"Job\",\n    \"entity\": {\n      \"id\": \"jobId\",\n      \"name\": \"jobName\",\n      \"reference\": \"reference\",\n      \"dueDate\": \"1970-01-01T00:00:00.000Z\",\n      \"scheduledDate\": \"1970-01-01T00:00:00.000Z\",\n      \"stops\": [\n        {\n          \"latitude\": 1,\n          \"longitude\": 1,\n          \"name\": \"name\",\n          \"address\": \"address\",\n          \"customerId\": \"customerId\",\n          \"unit\": \"unit\",\n          \"note\": \"note\",\n          \"eta\": {\n            \"distance\": 0,\n            \"duration\": 0,\n            \"stopDuration\": 0,\n            \"arrivalDate\": \"1970-01-01T00:00:00.000Z\"\n          },\n          \"actual\": {\n            \"distance\": 0,\n            \"duration\": 0,\n            \"stopDuration\": 0,\n            \"arrivalDate\": \"1970-01-01T00:00:00.000Z\"\n          },\n          \"WorkOrders\": [\n            {\n              \"id\": \"WOId\",\n              \"form\": {},\n              \"notes\": [\n                {\n                  \"username\": \"username\",\n                  \"text\": \"text\",\n                  \"files\": \"files\",\n                  \"date\": \"date\"\n                }\n              ],\n              \"number\": 1,\n              \"submittedDate\": \"1970-01-01T00:00:00.000Z\",\n              \"submittedUser\": \"user\",\n              \"submittedData\": {},\n              \"Products\": [\n                {\n                  \"name\": \"name\",\n                  \"count\": 1,\n                  \"productId\": \"productId\"\n                }\n              ]\n            }\n          ]\n        }\n      ],\n      \"number\": 1,\n      \"status\": \"Unassigned\",\n      \"vehicleId\": \"vehicleId\",\n      \"notes\": [\n        {\n          \"username\": \"username\",\n          \"text\": \"text\",\n          \"files\": \"files\",\n          \"date\": \"date\"\n        }\n      ],\n      \"custom\": \"custom\"\n    },\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"modify-job\">Modify Job</h4>\n<p>This endpoint allows you to modify a job object in the database. The job must be identified by its <code>id</code>, which should be included in the request payload.</p>\n<p><strong>Request Parameters:</strong></p>\n<ul>\n<li><strong>JSON-RPC</strong>: This is the main parameter for the request body, which is sent as <code>x-www-form-urlencoded</code>.</li>\n</ul>\n<p><strong>Expected Response:</strong></p>\n<ul>\n<li>The response will be an empty JSON object <code>{}</code> indicating that the request was successful.</li>\n</ul>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>Ensure that the <code>id</code> of the job you wish to modify is populated in the request.</p>\n</li>\n<li><p>Additional job details such as <code>name</code>, <code>reference</code>, <code>dueDate</code>, <code>scheduledDate</code>, <code>createdDate</code>, <code>createdBy</code>, <code>modifiedDate</code>, <code>modifiedBy</code>, <code>stops</code>, <code>number</code>, <code>status</code>, <code>driver</code>, <code>vehicleId</code>, <code>recurring</code>, and <code>notes</code> can also be included in the request payload to update the job details accordingly.</p>\n</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"d8e06aa8-a9aa-4cd3-b2bc-8009070b43d2","name":"Update Job","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"Job\",\n    \"entity\": {\n      \"id\": \"jobId\",\n      \"name\": \"jobName\",\n      \"reference\": \"reference\",\n      \"dueDate\": \"1970-01-01T00:00:00.000Z\",\n      \"scheduledDate\": \"1970-01-01T00:00:00.000Z\",\n      \"stops\": [\n        {\n          \"latitude\": 1,\n          \"longitude\": 1,\n          \"name\": \"name\",\n          \"address\": \"address\",\n          \"customerId\": \"customerId\",\n          \"unit\": \"unit\",\n          \"note\": \"note\",\n          \"eta\": {\n            \"distance\": 0,\n            \"duration\": 0,\n            \"stopDuration\": 0,\n            \"arrivalDate\": \"1970-01-01T00:00:00.000Z\"\n          },\n          \"actual\": {\n            \"distance\": 0,\n            \"duration\": 0,\n            \"stopDuration\": 0,\n            \"arrivalDate\": \"1970-01-01T00:00:00.000Z\"\n          },\n          \"WorkOrders\": [\n            {\n              \"id\": \"WOId\",\n              \"form\": {},\n              \"notes\": [\n                {\n                  \"username\": \"username\",\n                  \"text\": \"text\",\n                  \"files\": \"files\",\n                  \"date\": \"date\"\n                }\n              ],\n              \"number\": 1,\n              \"submittedDate\": \"1970-01-01T00:00:00.000Z\",\n              \"submittedUser\": \"user\",\n              \"submittedData\": {},\n              \"Products\": [\n                {\n                  \"name\": \"name\",\n                  \"count\": 1,\n                  \"productId\": \"productId\"\n                }\n              ]\n            }\n          ]\n        }\n      ],\n      \"number\": 1,\n      \"status\": \"Unassigned\",\n      \"vehicleId\": \"vehicleId\",\n      \"notes\": [\n        {\n          \"username\": \"username\",\n          \"text\": \"text\",\n          \"files\": \"files\",\n          \"date\": \"date\"\n        }\n      ],\n      \"custom\": \"custom\"\n    },\n    \"credentials\": {\n       \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"\"\n}","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"37025da2-f538-47a0-a5ba-07c7c8b05f6e"},{"name":"Delete Job","id":"5537d109-8c76-4b0b-bad0-a62ff66cf246","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Delete\",\n  \"params\": {\n    \"typeName\": \"Job\",\n    \"search\": {\n      \"id\": \"fa5aa9c1-f79b-11ec-85f5-53b6f55133d0\"\n    },\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"delete-job\">Delete Job</h4>\n<p>This endpoint allows you to delete a jobfrom the system. In addition to the required credentials, the method requires a minimum of three parameters:</p>\n<ul>\n<li><p><strong>method:</strong> The type of method.</p>\n</li>\n<li><p><strong>typeName</strong>: The type of entity being added.</p>\n</li>\n<li><p><strong>entity</strong>: The job entity itself. It consists of id of the Job to be deleted.</p>\n</li>\n</ul>\n<p><strong>Expected Response:</strong><br />The response will be an empty JSON object <code>{}</code> indicating that the operation was successful.</p>\n<p>Ensure that the <code>id</code> field is provided in the request to successfully remove the job and its associated data.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"9c47a69d-5536-41a9-a102-8c1728ff3cfb","name":"Delete Job","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Delete\",\n  \"params\": {\n    \"typeName\": \"Job\",\n    \"search\": {\n      \"id\": \"jobId\"\n    },\n    \"credentials\": {\n       \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"trax\"\n}","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 11:26:07 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=Drtq5xORkMBt5OoDY1q2nQVnk723OvX%2FSoN2euWur%2BK0%2F6Lm1PyWnx95AJtqtXu8m8q0DR%2BZ5IcUyD1P5i8prrfW9XTPtBzLRxJA9wRT9F09Va%2B5N1xS2T0KrD3cJrTH2sBEdpM1NIAg\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722e4e317b3b9b3f-FRA"}],"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"5537d109-8c76-4b0b-bad0-a62ff66cf246"},{"name":"Submit Work Order","id":"1b3432c1-0c9f-47f7-867d-8703d10e5caa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Execute\",\n  \"params\": {\n    \"typeName\": \"Job\",\n    \"actionName\": \"Submit\",\n    \"arguments\": {\n      \"jobId\": \"job_id\",\n      \"workOrderId\": \"work_order_id\",\n      \"data\": {},\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h3 id=\"execute-action-request\">Execute Action Request</h3>\n<p>This HTTP POST request is designed to execute a specific action on a given type. It allows clients to perform operations defined by the <code>typeName</code> and <code>actionName</code> parameters, passing any necessary arguments as part of the request.</p>\n<h4 id=\"request-body-format\">Request Body Format</h4>\n<p>The request body should be sent as <code>x-www-form-urlencoded</code>. It is expected to contain the following parameters:</p>\n<ul>\n<li><p><strong>typeName</strong> (string): The name of the type on which the action is to be executed.</p>\n</li>\n<li><p><strong>actionName</strong> (string): The name of the action that needs to be performed.</p>\n</li>\n<li><p><strong>arguments</strong> (object): An object containing key-value pairs that represent the arguments required for the action.</p>\n</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>The response from this request will vary based on the action executed. It typically includes a status indicating the success or failure of the action, along with any relevant data returned from the operation.</p>\n<p>Ensure that you format your request body correctly to avoid errors during execution.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"a4042db4-8aaa-4725-8987-87cc044d89b7","name":"Submit Work Order","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Execute\",\n  \"params\": {\n    \"typeName\": \"Job\",\n    \"actionName\": \"Submit\",\n    \"arguments\": {\n      \"jobId\": \"job_id\",\n      \"workOrderId\": \"work_order_id\",\n      \"data\": {},\n      \"credentials\": {\n         \"sessionId\": \"{{sessionId}}\"\n      }\n    }\n  },\n  \"type\": \"trax\"\n}","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"1b3432c1-0c9f-47f7-867d-8703d10e5caa"},{"name":"Assign Device","id":"789ff1b4-281a-4a29-ba0c-c8d5c897eb25","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Set\",\n    \"params\": {\n        \"typeName\": \"AssignDevice\",\n        \"entity\": {\n            \"jobId\": \"jobId\",\n            \"deviceId\": \"deviceId\"\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h3 id=\"assign-device\">Assign Device</h3>\n<p>This HTTP POST request is designed to assign a specific device to an job</p>\n<h4 id=\"request-body-format\">Request Body Format</h4>\n<p>The request body should be sent as <code>x-www-form-urlencoded</code>. It is expected to contain the following parameters:</p>\n<ul>\n<li><p><strong>typeName</strong> (string): The name of the type on which the action is to be executed.</p>\n</li>\n<li><p><strong>entity</strong> (object): An object containing key-value pairs that represent the arguments required for the action.</p>\n</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>The response from this request will vary based on the action executed. It typically includes a status indicating the success or failure of the action, along with any relevant data returned from the operation.</p>\n<p>Ensure that you format your request body correctly to avoid errors during execution.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"f6a0e405-1b27-4273-9399-8e9d8136ebc9","name":"Assign Device","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"AssignDevice\",\n    \"entity\": {\n      \"jobId\": \"jobId\",\n      \"deviceId\": \"deviceId\"\n    },\n    \"credentials\": {\n        \"sessionId\": \"sessionId\"\n     }\n  },\n  \"type\": \"trax\"\n}","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"789ff1b4-281a-4a29-ba0c-c8d5c897eb25"},{"name":"Add Stop","id":"cd531108-5ee0-4bd6-92fd-abf382e46c94","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"AddStop\",\n    \"entity\": {\n            \"jobId\": \"JobId\",\n            \"stop\": {\n              \"name\": \"Test location\",\n              \"address\": \"Test location\",\n              \"latitude\": \"43.714317645724186\",\n              \"longitude\": \"-79.45494614807927\"\n            }\n    },\n    \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n     }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h3 id=\"add-stop\">Add Stop</h3>\n<p>This HTTP POST request is designed to add stop into job. It allows clients to perform operations defined by the <code>typeName</code> and <code>entity</code> parameters, passing any necessary arguments as part of the request.</p>\n<h4 id=\"request-body-format\">Request Body Format</h4>\n<p>The request body should be sent as <code>x-www-form-urlencoded</code>. It is expected to contain the following parameters:</p>\n<ul>\n<li><p><strong>typeName</strong> (string): The name of the type on which the action is to be executed.</p>\n</li>\n<li><p><strong>entity</strong> (object): An object containing key-value pairs that represent the arguments required for the action.</p>\n</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>The response from this request will vary based on the action executed. It typically includes a status indicating the success or failure of the action, along with any relevant data returned from the operation.</p>\n<p>Ensure that you format your request body correctly to avoid errors during execution.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"e327fa16-59c7-4cdb-b42c-e180574ddfc0","name":"Add Stop","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"AddStop\",\n    \"entity\": {\n            \"jobId\": \"JobId\",\n            \"stop\": {\n              \"name\": \"Test location\",\n              \"latitude\": \"43.714317645724186\",\n              \"longitude\": \"-79.45494614807927\",\n              \"address\":: \"Test location address\"\n            }\n    },\n    \"credentials\": {\n        \"sessionId\": \"sessionId\"\n     }\n  },\n  \"type\": \"trax\"\n}","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"stopId\": \"stopId\"\n}"}],"_postman_id":"cd531108-5ee0-4bd6-92fd-abf382e46c94"},{"name":"Delete Stop","id":"d5c6cd2d-205c-4d6c-96b1-fbe810290031","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"DeleteStop\",\n    \"entity\": {\n      \"jobId\": \"jobId\",\n      \"stopId\": \"stopId\"\n     },\n    \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n     }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h3 id=\"delete-stop\">Delete Stop</h3>\n<p>This HTTP POST request is designed to delete stop from the job.</p>\n<h4 id=\"request-body-format\">Request Body Format</h4>\n<p>The request body should be sent as <code>x-www-form-urlencoded</code>. It is expected to contain the following parameters:</p>\n<ul>\n<li><p><strong>typeName</strong> (string): The name of the type on which the action is to be executed.</p>\n</li>\n<li><p><strong>entity</strong> (object): An object containing key-value pairs that represent the arguments required for the action.</p>\n</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>The response from this request will vary based on the action executed. It typically includes a status indicating the success or failure of the action, along with any relevant data returned from the operation.</p>\n<p>Ensure that you format your request body correctly to avoid errors during execution.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"ee236b53-cbdb-4331-9155-9f096d95400b","name":"Delete Stop","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"DeleteStop\",\n    \"entity\": {\n      \"jobId\": \"jobId\",\n      \"stopId\": \"stopId\"\n     },\n    \"credentials\": {\n        \"sessionId\": \"sessionId\"\n     }\n  },\n  \"type\": \"trax\"\n}","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"d5c6cd2d-205c-4d6c-96b1-fbe810290031"}],"id":"52b9fb9c-c936-4a22-963d-b744155807cc","description":"<h2 id=\"endpoints-to-manipulate-work-data\"><strong>Endpoints to manipulate</strong> Work <strong>data.</strong></h2>\n<h3 id=\"typename\">TypeName</h3>\n<ul>\n<li>Work</li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li><p><em><strong>search</strong></em></p>\n</li>\n<li><p><em><strong>entity</strong></em></p>\n</li>\n</ul>\n","_postman_id":"52b9fb9c-c936-4a22-963d-b744155807cc"},{"name":"Device","item":[{"name":"Get Devices","id":"87d39692-7bf6-4974-a439-c5ea6b621914","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":true},"request":{"method":"POST","header":[{"key":"productType","value":"","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Device\",\n      \"search\": {\"assetTag\": \"Trailer\" },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\",\n        \"appName\":\"{{appName}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-devices\">Gets the Devices</h4>\n<p>This method is an <strong>HTTP POST</strong> request to the endpoint <code>{{url}}</code>. It can be utilized to retrieve all devices or a specific subset of devices based on the provided parameters.</p>\n<p><strong>Request Body:</strong><br />The request body should be formatted as <code>x-www-form-urlencoded</code>. The following parameters can be included in the <code>search</code> object:</p>\n<ul>\n<li><p><code>comment</code> (string, optional): A comment related to the device search.</p>\n</li>\n<li><p><code>deviceType</code> (string, optional): The type of device to filter the search.</p>\n</li>\n<li><p><code>fromDate</code> (string, optional): The start date for filtering devices.</p>\n</li>\n<li><p><code>toDate</code> (string, optional): The end date for filtering devices.</p>\n</li>\n<li><p><code>groups</code> (Array, optional): An array of groups to filter the devices.</p>\n</li>\n<li><p><code>licensePlate</code> (string, optional): The license plate number to filter the devices.</p>\n</li>\n<li><p><code>name</code> (string, optional): The name of the device to filter the search.</p>\n</li>\n<li><p>assetTag (string, optional): The type of asset associated with the device. Accepts predefined values: <code>Vehicle</code>, <code>Container</code>, <code>Trailer</code>, or <code>Equipment</code>. Custom asset types are returned as UUIDs (e.g., <code>431f0e20-d20a-11f0-8a08-1d3e78fdd21d</code>). Defaults to <code>Vehicle</code> if not specified. Can be used to filter the search.</p>\n</li>\n<li><p><code>serialNumber</code> (string, optional): The serial number of the device to filter the search.</p>\n</li>\n<li><p><code>vehicleIdentificationNumber</code> (string, optional): The vehicle identification number for filtering.</p>\n</li>\n<li><p><code>id</code> (string, optional): The unique identifier for the device.</p>\n</li>\n<li><p><code>customField[]</code> (string, optional): The custom device parameter. is a name of custom field</p>\n</li>\n<li><p><code>licensePlate</code> Vehicle’s registration number</p>\n</li>\n<li><p><code>year</code> Year the vehicle was manufactured</p>\n</li>\n<li><p><code>manufacturer</code> Company that built the vehicle (e.g., Toyota, Ford)</p>\n</li>\n<li><p><code>model</code> Specific product model name</p>\n</li>\n<li><p><code>color</code> Exterior color</p>\n</li>\n<li><p><code>floor</code> Floor id of indoor tracking (custom map id)</p>\n</li>\n<li><p><code>comments</code> Additional notes or observations about the vehicle</p>\n</li>\n<li><p><code>engineHours</code>: { min?: number; max?: number } - engine hours search filter with max and min values</p>\n</li>\n<li><p><code>status :</code> vehicle status. Possible values: \"moving\" | \"stopped\"</p>\n</li>\n<li><p><code>driver</code>: Optional string - ID or name of the driver associated with the device</p>\n</li>\n</ul>\n<p><strong>Expected Response:</strong><br />On success, the response will return a status code of <strong>200</strong> and will be in <strong>application/json</strong> format. The response structure will be as follows:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": [\n    {\n      \"id\": \"\",\n      \"name\": \"\",\n      \"serialNumber\": \"\",\n      \"secondSerialNumber\": \"\",\n      \"hardwareId\": 0,\n      \"productId\": \"\",\n      \"groups\": [],\n      \"deviceType\": \"\",\n      \"activeFrom\": \"\",\n      \"activeTo\": \"\",\n      \"deviceFlags\": [],\n      \"devicePlans\": []\n    }\n  ]\n}\n\n</code></pre>\n<p>The <code>result</code> array contains objects representing the devices, with various attributes such as <code>id</code>, <code>name</code>, <code>serialNumber</code>, and more.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"6dfcde5a-fe52-4f4c-b784-59af08639588","name":"Get Devices","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Device\",\n      \"search\": {\"assetTag\": \"Trailer\" },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\",\n        \"appName\":\"{{appName}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 11:31:04 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"645c-zQ+QxyT7kEHcOdhrB1KkhyAltL8\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=cpUfxmXf65T8T4MBbzhkSRGXLPviAwp7bITZIxHlI7nJDrGRk9aMPsOWPzzaEBQmYNp9lIpsZRJZ%2F97nJcdt77JsYYH%2B2o9GZOG2%2B%2BoKRlkMUmy7iD48%2FOLssxgp%2BTJS40QmDx6UUBF6\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722e55707cc99b3f-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n  \"result\": [\n    {\n      \"id\": \"deviceId\",\n      \"name\": \"name1\",\n      \"userId\": \"\",\n      \"serialNumber\": \"serialNumber\",\n      \"secondSerialNumber\": \"\",\n      \"hardwareId\": 0,\n      \"productId\": \"\",\n      \"groups\": [],\n      \"deviceType\": \"type\",\n      \"activeFrom\": \"2022-01-01T12:45:48.179Z\",\n      \"activeTo\": \"\",\n      \"deviceFlags\": [],\n      \"devicePlans\": [],\n      \"assetTag\": \"Vehicle\"\n    },\n    {\n      \"id\": \"deviceId\",\n      \"name\": \"name2\",\n      \"userId\": \"\",\n      \"serialNumber\": \"serialNumber\",\n      \"secondSerialNumber\": \"\",\n      \"hardwareId\": 0,\n      \"productId\": \"\",\n      \"groups\": [],\n      \"deviceType\": \"type\",\n      \"activeFrom\": \"2022-01-01T12:45:48.179Z\",\n      \"activeTo\": \"\",\n      \"deviceFlags\": [],\n      \"devicePlans\": [],\n      \"assetTag\": \"943c07ae-58fd-4914-aebe-a35dc336dae5\"\n    }\n  ]\n}"}],"_postman_id":"87d39692-7bf6-4974-a439-c5ea6b621914"},{"name":"Add Device","id":"7e68c75c-b5fb-4b11-a31a-27da32063710","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":true},"request":{"method":"POST","header":[{"key":"productType","value":"","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Add\",\n    \"params\": {\n      \"typeName\": \"Device\",\n      \"entity\": { \n        \"name\": \"device name\",\n        \"serialNumber\": \"serial\",\n        \"deviceType\": \"custom\",\n        \"assetTag\": \"Trailor\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\",\n        \"appName\":\"{{appName}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"add-the-new-customer-device-to-the-zenduone-platform\">Add the new customer device to the Zendu.One platform</h4>\n<p>This API endpoint allows you to register a new device for a customer on the ZenduOne platform. By using this request, you can provide the necessary details about the device that you want to add.</p>\n<p><strong>Request Body Parameters:</strong></p>\n<ul>\n<li><p>The request body must be sent in <code>x-www-form-urlencoded</code> format. Here are the expected parameters:</p>\n<ul>\n<li><p><code>name</code> (text): The name of the device being added.</p>\n</li>\n<li><p><code>deviceType</code> (text): The type of the device (e.g., smartphone, tablet, etc.).</p>\n</li>\n<li><p><code>serialNumber</code> (text): The unique serial number of the device.</p>\n</li>\n<li><p><code>assetTag</code> (text): The tag assigned to the device.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Structure:</strong><br />Upon a successful request, the API will return a JSON object containing the result of the operation. The expected response structure is as follows:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": {\n    \"id\": \"&lt;device_id&gt;\"\n  }\n}\n\n</code></pre>\n<p>Where is the unique identifier assigned to the newly added device.</p>\n<p>Make sure to provide all required parameters in the request body to ensure successful registration of the device.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"b235c471-1780-4b09-8b35-badb1d781ce7","name":"Add Device","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Add\",\n    \"params\": {\n      \"typeName\": \"Device\",\n      \"entity\": { \n        \"name\": \"device name\",\n        \"serialNumber\": \"serial\",\n        \"deviceType\": \"custom\",\n        \"assetTag\": \"Vehicle\"\n      },\n      \"credentials\": {\n         \"sessionId\": \"sessionId\",\n         \"appName\": \"appName\"\n      }\n    },\n    \"type\": \"trax\"\n  }","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 11:31:04 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"645c-zQ+QxyT7kEHcOdhrB1KkhyAltL8\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=cpUfxmXf65T8T4MBbzhkSRGXLPviAwp7bITZIxHlI7nJDrGRk9aMPsOWPzzaEBQmYNp9lIpsZRJZ%2F97nJcdt77JsYYH%2B2o9GZOG2%2B%2BoKRlkMUmy7iD48%2FOLssxgp%2BTJS40QmDx6UUBF6\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722e55707cc99b3f-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": { \"id\": \"id\" }\n}"}],"_postman_id":"7e68c75c-b5fb-4b11-a31a-27da32063710"},{"name":"Get Devices Status","id":"2c242a5c-3cfd-47a0-a951-4fe05c6cc4ae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Get\",\n  \"params\": {\n    \"typeName\": \"DeviceStatusInfo\",\n    \"search\": {},\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h3 id=\"api-endpoint-description\">API Endpoint Description</h3>\n<p>This endpoint is used to submit a request for tracking the status of a specific device and its associated driver. The request is made via an HTTP POST method, and it expects parameters in an x-www-form-urlencoded format.</p>\n<h4 id=\"request-parameters\">Request Parameters</h4>\n<p>The request body is expected to contain the following parameters:</p>\n<ul>\n<li><p><strong>id (string, optional):</strong> Id of the device.</p>\n</li>\n<li><p><strong>deviceType (string, optional):</strong> Type of the device.</p>\n</li>\n<li><p><strong>groups (list of ref, options):</strong> List of ref of groups.</p>\n</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>Upon a successful request, the API will return a JSON response containing the following structure:</p>\n<ul>\n<li><p><strong>result</strong>: An array of objects, where each object contains:</p>\n<ul>\n<li><p><strong>device</strong>: An object that includes:</p>\n<ul>\n<li><strong>id</strong> (string): The unique identifier for the device.</li>\n</ul>\n</li>\n<li><p><strong>driver</strong>: An object that includes:</p>\n<ul>\n<li><strong>id</strong> (string): The unique identifier for the driver.</li>\n</ul>\n</li>\n<li><p><strong>isDriving</strong> (boolean): Indicates whether the driver is currently driving.</p>\n</li>\n<li><p><strong>isDeviceCommunicating</strong> (boolean): Indicates whether the device is currently communicating.</p>\n</li>\n<li><p><strong>latitude</strong> (number): The current latitude of the device.</p>\n</li>\n<li><p><strong>longitude</strong> (number): The current longitude of the device.</p>\n</li>\n<li><p><strong>speed</strong> (number): The current speed of the device.</p>\n</li>\n<li><p><strong>bearing</strong> (number): The direction in which the device is moving.</p>\n</li>\n<li><p><strong>dateTime</strong> (string): A timestamp indicating when the data was recorded.</p>\n</li>\n<li><p><strong>cameraStatus</strong> (string): The status of the device's camera.</p>\n</li>\n<li><p><strong>odometer</strong> (number): The total distance traveled by the device.</p>\n</li>\n<li><p><strong>engineHours</strong> (number): The total hours the engine has been running.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>This endpoint is essential for tracking and managing the real-time status of devices and their drivers.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"67b19033-d780-4eb4-80f0-f61819775117","name":"Get Devices Status","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Get\",\n  \"params\": {\n    \"typeName\": \"DeviceStatusInfo\",\n    \"search\": {},\n    \"credentials\": {\n       \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"\"\n}","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 11:34:01 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"4b31-j3z0PJHFggbfIv2eqF58v55YPR0\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=xZ%2F4aktIjR8xYYt1rfwK8Mwh63CtKszRtL4E%2FRNX0XupUVKAtAu7jADHMAPIR1scZ0btBP%2FBA75cBrA%2FRoByyGmZPhN1N6YCyltPYs%2Fe3TkA7HVh9e3ssUTWB5zWioMm0N19UA5HyBAx\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722e59c0f8bf9b3f-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n  \"result\": [\n    {\n        \"device\": {\n            \"id\": \"deviceId\"\n        },\n        \"driver\": {\n            \"id\": \"\"\n        },\n        \"isDriving\": false,\n        \"isDeviceCommunicating\": false,\n        \"latitude\": 0,\n        \"longitude\": 0,\n        \"speed\": 0,\n        \"bearing\": 67.32747489588175,\n        \"dateTime\": \"2025-07-04T12:27:08.853Z\",\n        \"cameraStatus\": \"offline\",\n        \"odometer\": 57719.12485161538,\n        \"engineHours\": 5468.202190277481,\n        \"ignition\": false\n    }\n  ]\n}"}],"_postman_id":"2c242a5c-3cfd-47a0-a951-4fe05c6cc4ae"},{"name":"Assign Driver","id":"ba255f53-1ac0-43ad-a106-5c831890dae1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"productType","value":""},{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"type":"text","key":"JSON-RPC","value":"{\n    \"method\": \"AssignDriver\",\n    \"params\": {\n      \"typeName\": \"Device\",\n      \"entity\": {\n        \"id\": \"a2cc1381-e7e1-11e6-860b-3f6fca1f901c\",\n        \"userId\": \"2abc6ce0-3fa9-11f0-87da-51b7571ba48a\",\n        \"additionalUsers\": [\"f3c9ca10-6fc1-11e9-b0d6-352b7bccd726\", \"98101540-b7d5-11eb-916f-aba5c705772d\"]\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\",\n        \"appName\":\"{{appName}}\"\n      }\n    },\n    \"type\": \"trax\"\n  }"}]},"url":"{{url}}","description":"<h2 id=\"assigning-drivers-to-a-device\">Assigning Drivers to a Device</h2>\n<p>This API endpoint is used to assign one primary driver and optional additional drivers to a specific device. This ensures accurate trip logging, driver behavior tracking, and driver-based reporting.</p>\n<h3 id=\"request-structure\">Request Structure</h3>\n<p>The request body must specify the details of the device and the drivers to be assigned.</p>\n<ul>\n<li><p><strong>id</strong> (string):<br />  The unique identifier of the device to which drivers are being assigned. <em>(Required)</em></p>\n</li>\n<li><p><strong>userId</strong> (string):<br />  The identifier of the primary driver being assigned to the device. <em>(Optional)</em><br />  If omitted, the device will not have a primary driver unless additional drivers are provided.</p>\n</li>\n<li><p><strong>additionalUsers</strong> (array of string):<br />  A list of IDs representing additional drivers assigned to the device. <em>(Optional)</em></p>\n<ul>\n<li>Maximum of <strong>4</strong> additional drivers can be assigned.</li>\n</ul>\n</li>\n</ul>\n<p>NOTE: At least one of parameters, <code>userId</code> or <code>additionalUsers</code> must be provided.</p>\n<h3 id=\"rules--requirements\">Rules &amp; Requirements</h3>\n<ol>\n<li><p><code>id</code> must reference a valid device.</p>\n</li>\n<li><p>At least <strong>one</strong> of the following must be present:</p>\n<ul>\n<li><p><code>userId</code></p>\n</li>\n<li><p><code>additionalUsers</code></p>\n</li>\n</ul>\n</li>\n<li><p><code>additionalUsers</code> cannot exceed 4 values.</p>\n</li>\n<li><p>Driver assignment will <strong>replace</strong> the existing driver configuration for the device.</p>\n</li>\n</ol>\n<p><strong>Note: If a driver who is currently assigned as the primary driver of another device is assigned as the primary driver to a new device, the system will automatically remove the driver’s primary assignment from the original device and reassign them as the primary driver of the new device. This ensures that a driver can only be the primary driver of one device at a time.</strong></p>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>Upon success, the API confirms that the device-driver associations have been updated.<br />If any parameter is invalid, the response will contain an error message explaining the issue.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"5863012c-2c18-4bba-a38c-ae638a5a6689","name":"Assign Driver","originalRequest":{"method":"POST","header":[{"key":"productType","value":""},{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"type":"text","key":"JSON-RPC","value":"{\n    \"method\": \"AssignDriver\",\n    \"params\": {\n      \"typeName\": \"Device\",\n      \"entity\": {\n        \"id\": \"a2cc1381-e7e1-11e6-860b-3f6fca1f901c\",\n        \"userId\": \"2abc6ce0-3fa9-11f0-87da-51b7571ba48a\",\n        \"additionalUsers\": [\"f3c9ca10-6fc1-11e9-b0d6-352b7bccd726\", \"98101540-b7d5-11eb-916f-aba5c705772d\"]\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\",\n        \"appName\":\"{{appName}}\"\n      }\n    },\n    \"type\": \"trax\"\n  }"}]},"url":"{{url}}"},"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{}"}],"_postman_id":"ba255f53-1ac0-43ad-a106-5c831890dae1"},{"name":"Remove Driver","id":"ab23683e-7f95-4ca9-9731-7464b8ad2d78","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"productType","value":""},{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"type":"text","key":"JSON-RPC","value":"{\n    \"method\": \"RemoveDriver\",\n    \"params\": {\n      \"typeName\": \"Device\",\n      \"entity\": {\n        \"id\": \"a2cc1381-e7e1-11e6-860b-3f6fca1f901c\",\n        \"userIds\": [\"2abc6ce0-3fa9-11f0-87da-51b7571ba48a\"]\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\",\n        \"appName\":\"{{appName}}\"\n      }\n    },\n    \"type\": \"trax\"\n  }"}]},"url":"{{url}}","description":"<h2 id=\"removing-drivers-from-a-device\">Removing Drivers from a Device</h2>\n<p>This API endpoint is used to remove one or more drivers from a device. Drivers can be removed individually or in bulk. If the primary driver is removed, all additional (secondary) drivers will also be removed automatically.</p>\n<h3 id=\"request-structure\">Request Structure</h3>\n<p>The request body must specify the device and the drivers to remove.</p>\n<ul>\n<li><p><strong>id</strong> (string):<br />  The unique identifier of the device from which drivers need to be removed. <em>(Required)</em></p>\n</li>\n<li><p><strong>userIds</strong> (array of string):<br />  A list of driver IDs that should be removed from the device. <em>(Required)</em><br />  Example: <code>[\"98101590-b7d5-11eb-916f-aba5c705772d\", \"00101540-b7d5-11eb-916f-aba5c705772f\"]</code></p>\n</li>\n</ul>\n<h3 id=\"rules--behavior\">Rules &amp; Behavior</h3>\n<ol>\n<li><p><code>id</code> must be a valid device ID.</p>\n</li>\n<li><p><code>userIds</code> must contain at least <strong>one</strong> driver ID.</p>\n</li>\n<li><p>If any of the given <code>userIds</code> belongs to the <strong>primary driver</strong>,<br /> then <strong>all</strong> secondary drivers assigned to the same device will also be removed automatically.</p>\n</li>\n</ol>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"38c9bfe2-4fdc-4b99-87ee-5ecd9a4d31ca","name":"Remove Driver","originalRequest":{"method":"POST","header":[{"key":"productType","value":""},{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"type":"text","key":"JSON-RPC","value":"{\n    \"method\": \"RemoveDriver\",\n    \"params\": {\n      \"typeName\": \"Device\",\n      \"entity\": {\n        \"id\": \"a2cc1381-e7e1-11e6-860b-3f6fca1f901c\",\n        \"userIds\": [\"2abc6ce0-3fa9-11f0-87da-51b7571ba48a\"]\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\",\n        \"appName\":\"{{appName}}\"\n      }\n    },\n    \"type\": \"trax\"\n  }"}]},"url":"{{url}}"},"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{}"}],"_postman_id":"ab23683e-7f95-4ca9-9731-7464b8ad2d78"}],"id":"07d7a26b-572c-46a7-ad1b-891f22748d59","description":"<h2 id=\"endpoints-to-manipulate-devices-data\"><strong>Endpoints to manipulate Devices data.</strong></h2>\n<h3 id=\"typename\">TypeName</h3>\n<ul>\n<li><em><strong>Device</strong></em></li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li><em><strong>search</strong></em></li>\n</ul>\n","_postman_id":"07d7a26b-572c-46a7-ad1b-891f22748d59"},{"name":"Forms","item":[{"name":"Get Forms","id":"c07b56f6-a088-43da-9c83-9b6318ed169c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n\"method\": \"Get\",  \n\"params\": {\n      \"typeName\": \"Form\",\n      \"search\": { \"id\": \"66a9e670-da55-11ee-8489-e5c0c670bd1a\"},\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-forms\">Gets the Forms</h4>\n<p>This HTTP POST request is designed to retrieve forms from the server. It can be utilized to return all forms or a specific form.</p>\n<p><strong>Purpose of the Request:</strong><br />The primary purpose of this request is to allow users to access and manage forms within the application.</p>\n<p><strong>Expected Input Parameters inside</strong> <strong><code>search</code>****:</strong></p>\n<ul>\n<li><strong>id (string, optional):</strong> Id of a specific form.</li>\n</ul>\n<p><strong>Response Structure</strong>: The response from the API will be a JSON object containing the following fields:</p>\n<ul>\n<li><p><strong>_id</strong>: A unique identifier for the resource, typically used for database operations.</p>\n</li>\n<li><p><strong>name</strong>: A human-readable name associated with the resource.</p>\n</li>\n<li><p><strong>id</strong>: A globally unique identifier for the resource, often used for referencing in other systems.</p>\n</li>\n</ul>\n<p><strong>Usage Notes:</strong></p>\n<ul>\n<li>Ensure to check the server's documentation for any required parameters that may need to be included in the request body, like the sessionId.</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"e922e7b1-8dbe-4a67-a31e-96456a3c00c7","name":"Get Forms","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n\"method\": \"Get\",  \n\"params\": {\n      \"typeName\": \"Form\",\n      \"search\": { \"id\": \"66a9e670-da55-11ee-8489-e5c0c670bd1a\"},\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 11:35:40 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"13"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"d-JN9XGbx1zII1nUa2X6sNBTA9YGY\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=b784Z5n00ifl5RKld%2FFwBxbTef5nfdHSwwCYgpmNj5NOZZXzL93t95U7lzjFz4wQwR5dn5GXI%2BbBMyM0t%2BIbmr00fUpq%2FdW6Y%2Buv1J6xnDxyf2V8QsCKVDwRZsoryxK1ex6lWxSUG%2Fru\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722e5c2daeea9b3f-FRA"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"_id\": \"_id\",\n            \"name\": \"Pick Up Form\",\n            \"id\": \"form_id\"\n        }\n    ]\n}"}],"_postman_id":"c07b56f6-a088-43da-9c83-9b6318ed169c"},{"name":"Get Submissions","id":"29a2f5e0-a39d-4240-a7e8-e3bde7be2d3a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"GetSubmissions\",\n      \"search\": { \"limit\": 100 },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"trax\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-submissions\">Gets the Submissions</h4>\n<p>This HTTP POST request is designed to retrieve submissions from the server. It can be utilized to return all submissions, a specific submission, or a subset of forms based on the parameters provided.</p>\n<p><strong>Purpose of the Request:</strong><br />The primary purpose of this request is to allow users to access and manage submissions within the application. It serves as a crucial endpoint for retrieving form data for various use cases, such as displaying submissions to users.</p>\n<h1 id=\"request-body\">Request Body</h1>\n<p>The request body should be formatted as <code>x-www-form-urlencoded</code>. The following parameters can be included in the <code>search</code> object:</p>\n<ul>\n<li><p><code>id</code> (string, optional): The unique identifier of the record to filter the search. <strong>Note:</strong> When <code>id</code> is provided, a single object is returned.</p>\n</li>\n<li><p><code>driverId</code> (string, optional): The driver's unique identifier to filter the search results.</p>\n</li>\n<li><p><code>status</code> (string, optional): The status of the record to filter the search. Possible values: \"open\" | \"rejected\" | \"completed\".</p>\n</li>\n<li><p><code>dateFrom</code> (string, optional): The start date for filtering records. Must be in ISO 8601 format (e.g., \"2025-09-25T13:43:59.722Z\"). <strong>Note:</strong> Must be used together with <code>dateTo</code>.</p>\n</li>\n<li><p><code>dateTo</code> (string, optional): The end date for filtering records. Must be in ISO 8601 format (e.g., \"2025-09-25T13:43:59.722Z\"). <strong>Note:</strong> Must be used together with <code>dateFrom</code>.</p>\n</li>\n<li><p><code>createdDateFrom</code> (string, optional): The start date for filtering by creation date. Must be in ISO 8601 format (e.g., \"2025-09-25T13:43:59.722Z\"). <strong>Note:</strong> Must be used together with <code>createdDateTo</code>.</p>\n</li>\n<li><p><code>createdDateTo</code> (string, optional): The end date for filtering by creation date. Must be in ISO 8601 format (e.g., \"2025-09-25T13:43:59.722Z\"). <strong>Note:</strong> Must be used together with <code>createdDateFrom</code>.</p>\n</li>\n<li><p><code>rejectedDateFrom</code> (string, optional): The start date for filtering by rejection date. Must be in ISO 8601 format (e.g., \"2025-09-25T13:43:59.722Z\"). <strong>Note:</strong> Must be used together with <code>rejectedDateTo</code>.</p>\n</li>\n<li><p><code>rejectedDateTo</code> (string, optional): The end date for filtering by rejection date. Must be in ISO 8601 format (e.g., \"2025-09-25T13:43:59.722Z\"). <strong>Note:</strong> Must be used together with <code>rejectedDateFrom</code>.</p>\n</li>\n<li><p><code>updatedDateFrom</code> (string, optional): The start date for filtering by last update date. Must be in ISO 8601 format (e.g., \"2025-09-25T13:43:59.722Z\"). <strong>Note:</strong> Must be used together with <code>updatedDateTo</code>.</p>\n</li>\n<li><p><code>updatedDateTo</code> (string, optional): The end date for filtering by last update date. Must be in ISO 8601 format (e.g., \"2025-09-25T13:43:59.722Z\"). <strong>Note:</strong> Must be used together with <code>updatedDateFrom</code>.</p>\n</li>\n<li><p><code>offset</code> (number, optional): The number of records to skip for pagination. Default value is 0.</p>\n</li>\n<li><p><code>limit</code> (number, optional): The maximum number of records to return. Default value is 100. Maximum allowed value is 100.</p>\n</li>\n</ul>\n<h2 id=\"important-notes\">Important Notes</h2>\n<ol>\n<li><p><strong>ID Parameter</strong>: When <code>id</code> is provided, the API returns a single object.</p>\n</li>\n<li><p><strong>Date Format</strong>: All date fields must be provided in ISO 8601 format: <code>YYYY-MM-DDTHH:mm:ss.sssZ</code> (e.g., \"2025-09-25T13:43:59.722Z\")</p>\n</li>\n<li><p><strong>Date Range Requirement</strong>: Date range filters require both the \"From\" and \"To\" parameters to be provided together. If only one is provided, both will be ignored.</p>\n</li>\n<li><p><strong>Pagination</strong>: The <code>limit</code> parameter is capped at 100 records per request. Use <code>offset</code> to paginate through larger result sets.</p>\n</li>\n</ol>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"3cce8952-3177-47fa-a4b9-18a74aae3137","name":"Get Submissions","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"GetSubmissions\",\n      \"search\": { \"limit\": 100 },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"\"\n  }","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 11:35:40 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"13"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"d-JN9XGbx1zII1nUa2X6sNBTA9YGY\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=b784Z5n00ifl5RKld%2FFwBxbTef5nfdHSwwCYgpmNj5NOZZXzL93t95U7lzjFz4wQwR5dn5GXI%2BbBMyM0t%2BIbmr00fUpq%2FdW6Y%2Buv1J6xnDxyf2V8QsCKVDwRZsoryxK1ex6lWxSUG%2Fru\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722e5c2daeea9b3f-FRA"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"_id\": \"submissionId\",\n        \"status\": \"completed\",\n        \"layout\": [\n            {\n                \"id\": \"layoutId\",\n                \"label\": \"Label\",\n                \"name\": \"Name\",\n                \"placeholder\": \"Placeholder\",\n                \"inputType\": \"text\",\n                \"type\": \"input\",\n                \"value\": \"Test\",\n                \"options\": [],\n                \"validate\": {\n                    \"required\": true\n                },\n                \"isValid\": true,\n                \"attributes\": []\n            }\n        ],\n        \"companyId\": \"companyId\",\n        \"name\": \"name\",\n        \"formDescription\": \"This is the form of testing\",\n        \"deviceIds\": [],\n        \"groupsIds\": [],\n        \"tags\": [],\n        \"submitted\": \"date\",\n        \"submittedBy\": \"\",\n        \"submittedLocation\": {\n            \"name\": \"Svalbard and Jan Mayen\",\n            \"lat\": 16.702998,\n            \"lng\": 74.2517817\n        },\n        \"updated\": \"date\",\n        \"updatedBy\": \"\",\n        \"created\": \"date\",\n        \"createdBy\": \"\",\n        \"assignedDriverId\": \"\",\n        \"formId\": \"formId\",\n        \"needsSupervisorApproval\": false\n    }\n}"}],"_postman_id":"29a2f5e0-a39d-4240-a7e8-e3bde7be2d3a"},{"name":"Send Task","id":"32e97796-2b43-4c8d-a471-c835cc36d822","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Add\",\n    \"params\": {\n      \"typeName\": \"SendTask\",\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      },\n      \"entity\": {\n            \"name\": \"name\",\n            \"formId\": \"formId\",\n            \"assignedTaskTo\": {\n                \"driverIds\": [\n                    \"driverId\",\n                ]\n            },\n            \"layout\": [\n                {\n                    \"id\": \"layoutId\",\n                    \"label\": \"Label\",\n                    \"name\": \"Name\",\n                    \"placeholder\": \"Placeholder\",\n                    \"inputType\": \"text\",\n                    \"type\": \"input\",\n                    \"value\": \"\",\n                    \"options\": [],\n                    \"validate\": { \"required\": true },\n                    \"required\": true,\n                    \"isDefault\": false,\n                    \"isLocked\": false,\n                    \"isRequireLocked\": false,\n                    \"isValid\": false,\n                    \"attributes\": []\n                }\n            ]\n        }\n    }\n    },\n    \"type\": \"trax\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"sends-the-task\">Sends the Task</h4>\n<p>This HTTP POST request is designed to send the task</p>\n<p><strong>Purpose of the Request:</strong><br />The primary purpose of this request is to allow users to send the task.</p>\n<p><strong>Expected Input Parameters:</strong></p>\n<ul>\n<li><p><strong>name</strong>: Name of the task.</p>\n</li>\n<li><p><strong>formId</strong>: ID of the form.</p>\n</li>\n<li><p><strong>layout:</strong> Layout of the form.</p>\n</li>\n<li><p><strong>assignedTaskTo:</strong> Specify the driverIds for whom the task is intended.</p>\n</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"bb007ea4-fc6f-4a8d-b7bc-3583b7561bc6","name":"Send Task","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Add\",\n  \"params\": {\n    \"typeName\": \"SendTask\",\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    },\n    \"entity\": {\n      \"name\": \"name\",\n      \"formId\": \"d14df1d0-7bec-11f0-a972-613ca5cd2157\",\n      \"assignedTaskTo\": {\n        \"driverIds\": [\n          \"driverId\"\n        ]\n      },\n      \"layout\": [\n        {\n          \"id\": \"layoutId\",\n          \"label\": \"Label\",\n          \"name\": \"Name\",\n          \"placeholder\": \"Placeholder\",\n          \"inputType\": \"text\",\n          \"type\": \"input\",\n          \"value\": \"\",\n          \"options\": [],\n          \"validate\": {\n            \"required\": true\n          },\n          \"required\": true,\n          \"isDefault\": false,\n          \"isLocked\": false,\n          \"isRequireLocked\": false,\n          \"isValid\": false,\n          \"attributes\": []\n        }\n      ]\n    }\n  },\n  \"type\": \"trax\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 11:35:40 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"13"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"d-JN9XGbx1zII1nUa2X6sNBTA9YGY\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=b784Z5n00ifl5RKld%2FFwBxbTef5nfdHSwwCYgpmNj5NOZZXzL93t95U7lzjFz4wQwR5dn5GXI%2BbBMyM0t%2BIbmr00fUpq%2FdW6Y%2Buv1J6xnDxyf2V8QsCKVDwRZsoryxK1ex6lWxSUG%2Fru\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722e5c2daeea9b3f-FRA"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"ids\": [\n            \"id1\",\n            \"id2\",\n            \"id3\"\n        ]\n    }\n}"}],"_postman_id":"32e97796-2b43-4c8d-a471-c835cc36d822"},{"name":"Deactivate Form","id":"b1313261-5f7b-4e9f-9177-1e00412ddad5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Delete\",\n    \"params\": {\n      \"typeName\": \"DeactivateForm\",\n      \"entity\": {\"id\": \"66a9e670-da55-11ee-8489-e5c0c670bd1a\" },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"deactivate-form\">Deactivate Form</h4>\n<p>This request is designed to deactivate a Form from the system. The entity object must include an <code>id</code> field to identify which form to deactivate.</p>\n<p><strong>Request Body Format:</strong></p>\n<ul>\n<li><p>The request body must be sent as <code>x-www-form-urlencoded</code>.</p>\n</li>\n<li><p>The expected parameters include:</p>\n<ul>\n<li><code>id</code> (string): The unique identifier of the Form to be deleted.</li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Structure:</strong></p>\n<ul>\n<li>In case of an error, the response will include an error message detailing the issue encountered during the deletion process.</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"0b119553-a361-4785-8ae0-34997629add5","name":"Deactivate Form","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Delete\",\n    \"params\": {\n      \"typeName\": \"DeactivateForm\",\n      \"entity\": {\"id\": \"66a9e670-da55-11ee-8489-e5c0c670bd1a\" },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"b1313261-5f7b-4e9f-9177-1e00412ddad5"}],"id":"cf492597-598e-4d22-beed-cc1de1f79c2d","description":"<h2 id=\"endpoints-to-manipulate-forms-data\"><strong>Endpoints to manipulate Forms data.</strong></h2>\n<h3 id=\"typename\">TypeName</h3>\n<ul>\n<li><em><strong>Form</strong></em></li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li><em><strong>search</strong></em></li>\n<li><em><strong>entity</strong></em></li>\n</ul>\n","_postman_id":"cf492597-598e-4d22-beed-cc1de1f79c2d"},{"name":"Products","item":[{"name":"Get Products","id":"a70db9b2-0c95-47fa-baad-a12e952c90a5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Get\",\n  \"params\": {\n    \"typeName\": \"Product\",\n    \"search\": {},\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"get-products\">Get Products</h4>\n<p>This method allows you to retrieve product information from the server. It can be used to return all products, a specific product, or a subset of products based on the provided input parameters.</p>\n<h5 id=\"request-body\">Request Body</h5>\n<p>The request uses the <code>x-www-form-urlencoded</code> format and requires the following parameter:</p>\n<ul>\n<li><p><strong>method (required, string):</strong> `Get`</p>\n</li>\n<li><p><strong>typeName (required, string):</strong> `Product`</p>\n</li>\n</ul>\n<h5 id=\"response-structure\">Response Structure</h5>\n<p>The response will be in JSON format and will include the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": [\n    {\n      \"id\": \"\",\n      \"companyId\": \"\",\n      \"name\": \"\",\n      \"price\": 0,\n      \"uniqueId\": \"\",\n      \"zoneId\": \"\",\n      \"createdDate\": \"\"\n    }\n  ]\n}\n\n</code></pre>\n<ul>\n<li><p><strong>result</strong>: An array of product objects.</p>\n<ul>\n<li><p><strong>id</strong>: The unique identifier for the product.</p>\n</li>\n<li><p><strong>companyId</strong>: The identifier for the company associated with the product.</p>\n</li>\n<li><p><strong>name</strong>: The name of the product.</p>\n</li>\n<li><p><strong>price</strong>: The price of the product.</p>\n</li>\n<li><p><strong>uniqueId</strong>: A unique identifier for the product.</p>\n</li>\n<li><p><strong>zoneId</strong>: The zone identifier where the product is located.</p>\n</li>\n<li><p><strong>createdDate</strong>: The date when the product was created.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>This method is versatile and can be adapted for various use cases involving product data retrieval.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"038055f5-1e2b-4310-a57e-c9c34a46c506","name":"Get Products","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Get\",\n  \"params\": {\n    \"typeName\": \"Product\",\n    \"search\": {},\n    \"credentials\": {\n      \"sessionId\": \"sessionId\"\n    }\n  },\n  \"type\": \"productType\"\n}","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 11:38:26 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"bac-5JyeMWQo3rFLjDpYA4DmxFW7nQk\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=2QDSqE5kmkuTS7rSG%2BN2Y%2BowK8sOP6sCpO2D0MgBqAEbCLSpakZHKcfu5gIkPAnYws9cPC9%2BJjV4iNQxAEd4O9glnyvK%2B44D4FQrqec0d8hGhu6OM0U%2B3OCAI8eThvE6JfjJafEZqojR\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722e60376e779b3f-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n  \"result\": [\n    {\n      \"id\": \"productId\",\n      \"companyId\": \"companyId\",\n      \"name\": \"name1\",\n      \"price\": 123,\n      \"uniqueId\": \"uniqueId1\",\n      \"isArchived\": true,\n      \"imageUrl\": \"imageUrl\",\n      \"zoneId\": \"zoneId\",\n      \"createdDate\": \"createdDate\"\n    },\n    {\n      \"id\": \"productId\",\n      \"companyId\": \"companyId\",\n      \"name\": \"name2\",\n      \"price\": 123,\n      \"uniqueId\": \"uniqueId2\",\n      \"isArchived\": true,\n      \"zoneId\": \"83bf2fc0-cae1-11ec-9fe1-03cf0ab029d4\",\n      \"createdDate\": \"createdDate\"\n    }\n  ]\n}"}],"_postman_id":"a70db9b2-0c95-47fa-baad-a12e952c90a5"},{"name":"Add Product","id":"a2b433ae-620c-46d8-886e-3ab5772a0386","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Add\",\n  \"params\": {\n    \"typeName\": \"Product\",\n    \"entity\": {\n      \"companyId\": \"companyId\",\n      \"name\": \"name\",\n      \"description\": \"description\",\n      \"price\": 1,\n      \"uniqueId\": \"uniqueId\",\n      \"imageUrl\": \"imageUrl\",\n      \"zoneId\": \"zoneId\"\n    },\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"adds-a-new-product-to-the-database\">Adds a new Product to the database.</h4>\n<p>This is an HTTP POST request to <code>{{url}}</code>. The purpose of this request is to add a new product to the system's database.</p>\n<p>The request requires a payload with the <code>x-www-form-urlencoded</code> body type. The payload must include the following parameters:</p>\n<ul>\n<li><p><strong>JSON-RPC</strong>: This parameter is of type <code>text</code> and is used to specify the JSON-RPC protocol details.</p>\n</li>\n<li><p><strong>typeName</strong>: The type of entity being added. This parameter indicates the category or classification of the product.</p>\n</li>\n<li><p><strong>entity</strong>: The product entity itself, which contains all relevant details about the product being added.</p>\n</li>\n<li><p><strong>credentials</strong>: Authentication details required to authorize the request.</p>\n</li>\n</ul>\n<p><strong>Expected Response Format:</strong><br />The response will be in JSON format. A successful request will return a response with a status code of 200. An example of a possible response is as follows:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"result\":{\"id\":\"\"}}\n\n</code></pre>\n<p>This indicates that the request was processed successfully, and the <code>id</code> field will contain the unique identifier of the newly added product.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">interface Product {\n    id: string;\n    companyId: string;\n    name: string;\n    description: string;\n    price: number;\n    uniqueId: string;\n    imageUrl: string;\n    zoneId: string;\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"18b5382b-a662-44c7-9caa-81e0c80eed2e","name":"Add Product","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Add\",\n  \"params\": {\n    \"typeName\": \"Product\",\n    \"entity\": {\n      \"companyId\": \"companyId\",\n      \"name\": \"name\",\n      \"description\": \"description\",\n      \"price\": 1,\n      \"uniqueId\": \"uniqueId\",\n      \"imageUrl\": \"imageUrl\",\n      \"zoneId\": \"zoneId\"\n    },\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"geotab\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 11:45:02 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=6Z%2BDvMrrhezI4IyxXdYHoV%2BH7lt5OwPdLjyCVQJ5joL3BT8ucxZJQg9IS3E6WE5I8GWBi0BC9%2F7H24Ap%2F8ifropXdfhw%2BrdqKu0jh%2FUyCowviPdbIZO6AQRx%2Bq2HDWjfoaoBhKoPGr1U\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722e69e50e4d9b3f-FRA"}],"cookie":[],"responseTime":null,"body":"{\n  \"result\": {\n    \"id\": \"id\"\n  }\n}"}],"_postman_id":"a2b433ae-620c-46d8-886e-3ab5772a0386"},{"name":"Update Product","id":"c7c4d51a-47c4-4772-a30e-1ad89a341079","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"Product\",\n    \"entity\": {\n      \"id\": \"productId\",\n      \"companyId\": \"companyId\",\n      \"name\": \"name\",\n      \"description\": \"description\",\n      \"price\": 1,\n      \"uniqueId\": \"uniqueId\",\n      \"imageUrl\": \"imageUrl\",\n      \"zoneId\": \"zoneId\"\n    },\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"modify-product\">Modify Product</h4>\n<p>This request is used to modify an existing product in the database. The product to be modified is identified by its <code>id</code>, which must be provided in the request payload.</p>\n<p><strong>Request Parameters:</strong></p>\n<ul>\n<li><p><strong>JSON-RPC</strong>: This is the main object for the request. It contains the following parameter:</p>\n<ul>\n<li><code>type</code>: A string indicating the type of the request.</li>\n</ul>\n</li>\n</ul>\n<p><strong>Expected Input Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"method\": \"Set\",\n    \"params\": {\n        \"typeName\": \"Product\",\n        \"entity\": {\n            \"companyId\": \"companyId\",\n            \"name\": \"name\",\n            \"description\": \"description\",\n            \"price\": 1,\n            \"uniqueId\": \"uniqueId\",\n            \"imageUrl\": \"imageUrl\",\n            \"zoneId\": \"zoneId\"\n        },\n        \"credentials\": {\n            \"sessionId\": \"\"\n        }\n    },\n    \"type\": \"\"\n}\n\n</code></pre>\n<p><strong>Response Structure:</strong><br />The response will typically be an empty JSON object <code>{}</code> indicating that the request was processed successfully. No additional data will be returned.</p>\n<p><strong>Product Interface:</strong><br />The structure of a product in the database is defined as follows:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">interface Product {\n    id: string;          // Unique identifier for the product\n    companyId: string;   // Identifier for the company associated with the product\n    name: string;        // Name of the product\n    description: string; // Description of the product\n    price: number;      // Price of the product\n    uniqueId: string;    // Unique ID for the product\n    imageUrl: string;    // URL of the product image\n    zoneId: string;      // Identifier for the zone associated with the product\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"cd58390b-04e2-44ea-9912-831775f6f0b1","name":"Update Product","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"Product\",\n    \"entity\": {\n      \"id\": \"productId\",\n      \"companyId\": \"companyId\",\n      \"name\": \"name\",\n      \"description\": \"description\",\n      \"price\": 1,\n      \"uniqueId\": \"uniqueId\",\n      \"imageUrl\": \"imageUrl\",\n      \"zoneId\": \"zoneId\"\n    },\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"c7c4d51a-47c4-4772-a30e-1ad89a341079"},{"name":"Archive Product","id":"23f66443-9ad8-43bd-9008-fcc231f13567","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Delete\",\n  \"params\": {\n    \"typeName\": \"Product\",\n      \"entity\": { \n        \"id\": \"0110df30-9c7e-11ef-80a0-7f4d65ac0289\"\n      },\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"permanently-removes-a-product-and-its-associated-data\">Permanently removes a Product and its associated data.</h4>\n<p>This request is designed to permanently delete a specified Product object from the system. It is essential that the Product object includes an <code>id</code> field to identify which Product to remove.</p>\n<p><strong>Request Body Format:</strong><br />The request body must be sent as <code>x-www-form-urlencoded</code> and should include the following parameter:</p>\n<ul>\n<li><strong>JSON-RPC</strong>: This parameter is of type <code>text</code> and is used to specify the JSON-RPC protocol version and method being invoked.</li>\n</ul>\n<p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"method\": \"Delete\",\n  \"params\": {\n    \"typeName\": \"Product\",\n    \"search\": {\n      \"id\": \"id\"\n    },\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}\n\n</code></pre>\n<p><strong>Expected Response:</strong><br />The response for this request will typically be an empty JSON object <code>{}</code>, indicating that the operation was successful and the Product has been removed.</p>\n<p><strong>Product Object Structure:</strong><br />The following interface outlines the expected structure of the Product object:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">interface ProductSearch {\n    id?: string[] | string;  // Unique identifier(s) for the Product\n    companyId?: string;      // Identifier for the associated company\n}\n\n</code></pre>\n<p>Ensure that the <code>id</code> field is provided to successfully execute the delete operation.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"32ea2fab-e6c3-470c-90d0-b83c790bd7ef","name":"Archive  Product","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Delete\",\n  \"params\": {\n    \"typeName\": \"Product\",\n      \"entity\": { \n        \"id\": \"0110df30-9c7e-11ef-80a0-7f4d65ac0289\"\n      },\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}],"options":{"raw":{"language":"json"}}},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"23f66443-9ad8-43bd-9008-fcc231f13567"}],"id":"cf6b578d-4488-4927-9d12-7e70152d5f98","description":"<h2 id=\"endpoints-to-manipulate-products-data\"><strong>Endpoints to manipulate Products data.</strong></h2>\n<h3 id=\"typename\">TypeName</h3>\n<ul>\n<li><em><strong>Product</strong></em></li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li><p><em><strong>search</strong></em></p>\n</li>\n<li><p><em><strong>entity</strong></em></p>\n</li>\n</ul>\n","_postman_id":"cf6b578d-4488-4927-9d12-7e70152d5f98"},{"name":"Locations","item":[{"name":"Get Location","id":"10589d5d-5d24-4ff0-888d-5a80e86b17df","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Zone\",\n      \"search\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-location\">Gets the Location</h4>\n<p>This HTTP POST request is used to retrieve information about Location. It can return all Locations, a specific Location, or a subset of Locations based on the provided parameters.</p>\n<p><strong>Request Body:</strong></p>\n<p>The request uses the <code>x-www-form-urlencoded</code> format. The following parameters can be included in the request body:</p>\n<ul>\n<li><p><strong>id</strong> (optional, string): Search for an entry based on the specific ID of the Location. When provided with other filters, all filters are applied with AND logic.</p>\n</li>\n<li><p><strong>groups</strong> (optional, array of Ref): Search for Locations that are members of the specified Groups. Locations must match at least one of the provided groups.</p>\n</li>\n<li><p><strong>searchArea</strong> (optional, BoundingBox): A bounding box search for Location located within a specific area. The <code>SearchArea</code> object should include the minimum and maximum latitude and longitude to define the search area.</p>\n</li>\n<li><p><strong>minimumRadiusInMeters</strong> (optional, number): Exclude Locations whose radius is smaller than this specified size in meters. Only applies to circular zones, polygon locations are returned as it is.</p>\n</li>\n</ul>\n<p><strong>Response Structure:</strong></p>\n<p>The response will be a JSON object containing the result of the request. The structure of the response is as follows:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": [\n    {\n      \"id\": \"\", // Unique identifier of the Location\n      \"name\": null, // Name of the Location\n      \"contactName\": null, // Contact person for the Zone\n      \"contactEmail\": null, // Email of the contact person\n      \"phone\": null, // Phone number of the contact person\n      \"points\": [\n        {\n          \"x\": 0, // X coordinate of the Location\n          \"y\": 0  // Y coordinate of the Location\n        }\n      ],\n      \"displayed\": true, // Indicates if the Location is displayed\n      \"openFrom\": {\n        \"hour\": 0, // Opening hour of the Location\n        \"minutes\": 0 // Opening minutes of the Location\n      },\n      \"openTo\": {\n        \"hour\": 0, // Closing hour of the Location\n        \"minutes\": 0 // Closing minutes of the Location\n      }\n    }\n  ]\n}\n\n</code></pre>\n<p>This request is useful for applications that need to display or manage Locations based on specific criteria.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"f5abac2c-5e81-483c-b4e3-22062868a2f5","name":"Get Zone","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Zone\",\n      \"search\": {\n        \"groups\": [\n          { \"id\": \"0e6dfbb0-27ca-11ee-a900-e5cffa6badc6\" },\n          { \"id\": \"210142a0-2a13-11ee-af75-8df4b9f96740\" }\n        ],\n        \"minimumRadiusInMeters\": 35,\n        \"searchArea\": {\n          \"left\": -123.12,\n          \"right\": -123.11,\n          \"bottom\": 45.62,\n          \"top\": 45.63\n        }\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 12:27:58 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"e90-pNK5KDsiIpcEUFq9t2xwpfgc7Qk\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=8rpRJLSh3jGwQWD7AP%2BvRL08o9awfgM%2Byj9Yn62YWm5f5ZeeME5iQlKZaGIAn6IUNB9MuzTMW0NaLA%2FxvYzJU1wzaXhN5%2F9%2BpZ8txRuPmYjQZhZ%2FULfad5hI1JnyMb2aK8zp9NHTgCEG\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722ea8caccae6963-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"id\": \"id\",\n            \"name\": null,\n            \"contactName\": null,\n            \"contactEmail\": null,\n            \"phone\": null,\n            \"points\": [\n                {\n                    \"x\": 1,\n                    \"y\": 1\n                }\n            ],\n            \"displayed\": true,\n            \"openFrom\": {\n                \"hour\": 18,\n                \"minutes\": 30\n            },\n            \"openTo\": {\n                \"hour\": 2,\n                \"minutes\": 30\n            }\n        }\n    ]\n}"}],"_postman_id":"10589d5d-5d24-4ff0-888d-5a80e86b17df"},{"name":"Add Location","id":"435bc2b8-3716-4e75-96ff-897d279c6d9f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Add\",\n    \"params\": {\n      \"typeName\": \"Zone\",\n      \"entity\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"adds-a-new-location-to-the-database\">Adds a new Location to the database.</h4>\n<p>This HTTP POST request is used to create a new Location entity within the database. To successfully execute this request, you must provide the necessary credentials along with the following parameters:</p>\n<ul>\n<li><p><strong>typeName</strong>: The type of entity being added. This parameter specifies the classification of the Location.</p>\n</li>\n<li><p><strong>entity</strong>: The Location object containing the details of the new Location to be created.</p>\n</li>\n</ul>\n<h3 id=\"expected-request-body-format\">Expected Request Body Format</h3>\n<p>The request body should be formatted as <code>x-www-form-urlencoded</code> and must include the following parameters:</p>\n<ul>\n<li><p><code>name</code> (string): The name of the Location.</p>\n</li>\n<li><p><code>points</code> (array of Point objects): An array representing the geographical points that define the Location.</p>\n</li>\n<li><p><code>groups</code> (array of Ref objects, optional): A list of references to groups associated with the Location.</p>\n</li>\n<li><p><code>openFrom</code> (object, optional): Specifies the opening time of the customer's works, containing:</p>\n<ul>\n<li><p><code>hour</code> (number): The hour of opening.</p>\n</li>\n<li><p><code>minutes</code> (number): The minutes of opening.</p>\n</li>\n</ul>\n</li>\n<li><p><code>openTo</code> (object, optional): Specifies the closing time of the customer's works, containing:</p>\n<ul>\n<li><p><code>hour</code> (number): The hour of closing.</p>\n</li>\n<li><p><code>minutes</code> (number): The minutes of closing.</p>\n</li>\n</ul>\n</li>\n<li><p><code>contactName</code> (string, optional): The name of the customer.</p>\n</li>\n<li><p><code>contactEmail</code> (string, optional): The email address of the customer.</p>\n</li>\n<li><p><code>phone</code> (string, optional): The phone number of the customer.</p>\n</li>\n</ul>\n<h3 id=\"structure-of-the-response\">Structure of the Response</h3>\n<p>The response will typically include the details of the created Location, including its unique identifier (<code>id</code>) and any other relevant information that was set during the creation process.</p>\n<p>Ensure that all required parameters are included in your request to avoid errors.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"9ef49385-b7c9-42d5-83ed-d5925ac49979","name":"Add Zone","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n      \"method\": \"Add\",\n      \"params\": {\n        \"typeName\": \"Zone\",\n        \"entity\": {\n          \"name\": \"Test-1\",\n          \"points\": [\n          { \"x\": 40.7129, \"y\": -74.0065 },\n          { \"x\": 40.7129, \"y\": -74.0055 },\n          { \"x\": 40.7121, \"y\": -74.0055 },\n          { \"x\": 40.7121, \"y\": -74.0065 },\n          { \"x\": 40.7129, \"y\": -74.0065 }\n        ],\n          \"openFrom\": {\n            \"hour\": 14,\n            \"minutes\": 15\n          },\n          \"openTo\": {\n            \"hour\": 16,\n            \"minutes\": 25\n          },\n          \"contactName\": \"Test T.\",\n          \"contactEmail\": \"test@test.com\",\n          \"phone\": \"+1 1234567\"\n        },\n        \"credentials\": {\n          \"sessionId\": \"{{sessionId}}\"\n        }\n      },\n      \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"id\": \"b494da30-8d8b-11f0-a1de-61ddae07c4e4\"\n    }\n}"}],"_postman_id":"435bc2b8-3716-4e75-96ff-897d279c6d9f"},{"name":"Update Location","id":"58d1af0d-f4da-4601-8f79-0ec8db8eab0f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Set\",\n    \"params\": {\n      \"typeName\": \"Zone\",\n      \"entity\": {  },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"modify-location\">Modify Location</h4>\n<p>This endpoint allows you to modify a Location object in the database. The request must include the <code>id</code> of the Location object you wish to modify.</p>\n<p><strong>Request Parameters:</strong></p>\n<ul>\n<li><p><code>id</code> (string, required): The unique identifier of the Location object to be modified.</p>\n</li>\n<li><p><code>name</code> (string, required): The name of the Location.</p>\n</li>\n<li><p><code>activeTo</code> (string, required): The date until which the Location is active.</p>\n</li>\n<li><p><code>activeFrom</code> (string, required): The date from which the Location is active.</p>\n</li>\n<li><p><code>points</code> (array of Point, required): An array of points defining the Location's geographical area.</p>\n</li>\n<li><p><code>zoneTypes</code> (array of strings, required): An array of types associated with the Location.</p>\n</li>\n<li><p><code>displayed</code> (boolean, optional): Indicates whether the Location should be displayed.</p>\n</li>\n<li><p><code>fillColor</code> (Color, optional): The color used to fill the Location.</p>\n</li>\n<li><p><code>groups</code> (array of Ref, optional): An array of references to associated groups.</p>\n</li>\n<li><p><code>openFrom</code> (object, optional): An object representing the opening time with <code>hour</code> and <code>minutes</code>.</p>\n</li>\n<li><p><code>openTo</code> (object, optional): An object representing the closing time with <code>hour</code> and <code>minutes</code>.</p>\n</li>\n<li><p><code>contactName</code> (string, optional): The name of the customer associated with the Location.</p>\n</li>\n<li><p><code>contactEmail</code> (string, optional): The email of the customer associated with the Location.</p>\n</li>\n<li><p><code>phone</code> (string, optional): The phone number of the customer associated with the Location.</p>\n</li>\n</ul>\n<p><strong>Expected Response:</strong><br />A successful response will return the modified Location object with updated details. Ensure to handle any errors appropriately, which may arise if the <code>id</code> is not found or if required fields are missing.</p>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>Make sure to provide valid data types for each parameter.</p>\n</li>\n<li><p>The <code>id</code> is mandatory and must be specified to modify an existing Location.</p>\n</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"c59abd63-d9ea-4ff8-b706-06728b606e81","name":"Update Zone","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n      \"method\": \"Set\",\n      \"params\": {\n        \"typeName\": \"Zone\",\n        \"entity\": {\n          \"id\": \"7b743c90-8d0a-11f0-bd30-bf02746ba831\",\n          \"name\": \"Test\",\n          \"openFrom\": {\n            \"hour\": 14,\n            \"minutes\": 15\n          },\n          \"openTo\": {\n            \"hour\": 16,\n            \"minutes\": 25\n          },\n          \"contactName\": \"Test T.\",\n          \"contactEmail\": \"test@test.com\",\n          \"phone\": \"+1 1234567\"\n        },\n        \"credentials\": {\n          \"sessionId\": \"{{sessionId}}\"\n        }\n      },\n      \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"58d1af0d-f4da-4601-8f79-0ec8db8eab0f"},{"name":"Delete Location","id":"61efc53b-9b88-4d1c-b0e6-55aa07eb1998","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Delete\",\n    \"params\": {\n      \"typeName\": \"Zone\",\n      \"search\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"permanently-removes-location-and-its-associated-data-the-location-object-must-have-an-id-field\">Permanently removes Location and its associated data. The Location object must have an id field.</h4>\n<p><strong>Request Method:</strong> POST<br /><strong>Endpoint:</strong> {{url}}</p>\n<p><strong>Request Body:</strong><br />The request body should be sent as <code>x-www-form-urlencoded</code> with the following parameters:</p>\n<ul>\n<li><p><strong>id</strong> (optional, string): Search for an entry based on the specific Id.</p>\n</li>\n<li><p><strong>groups</strong> (optional, array of Ref): Search for Locations that are members of these GroupSearch(es), one of its children, or one of its parents.</p>\n</li>\n<li><p><strong>searchArea</strong> (optional, BoundingBox): The BoundingBox search for Locations in this area extent. The Locations being retrieved must be located in this area, typically used for retrieving Locations in the extents of a bounding box. The SearchArea object should contain the minimum and maximum latitude and longitude representing the search area.</p>\n</li>\n<li><p><strong>minimumRadiusInMeters</strong> (optional, number): Exclude Locations whose radius is smaller than this size (in meters).</p>\n</li>\n</ul>\n<p><strong>Expected Response Format:</strong><br />The response will typically include a confirmation of the deletion and may contain additional information about the status of the operation.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"f8f913ff-929e-456a-8701-460f2b5facbd","name":"Delete Zone","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Delete\",\n    \"params\": {\n      \"typeName\": \"Zone\",\n      \"search\": {\n        \"id\": \"7b743c90-8d0a-11f0-bd30-bf02746ba831\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"61efc53b-9b88-4d1c-b0e6-55aa07eb1998"}],"id":"d1dcb040-e67d-44d4-b14f-eb113d432317","description":"<h2 id=\"endpoints-to-manipulate-location-data\"><strong>Endpoints to manipulate</strong> Location <strong>data.</strong></h2>\n<h3 id=\"typename\">TypeName</h3>\n<ul>\n<li><strong>Locations</strong></li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li><p><em><strong>search</strong></em></p>\n</li>\n<li><p><em><strong>entity</strong></em></p>\n</li>\n</ul>\n","_postman_id":"d1dcb040-e67d-44d4-b14f-eb113d432317"},{"name":"Users","item":[{"name":"Get Users","id":"ab238f91-ec55-4bb3-94b3-62123d163564","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Get\",\n  \"params\": {\n    \"typeName\": \"User\",\n    \"search\": {},\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-users\">Gets the Users</h4>\n<p>This method can be used to retrieve user data. It supports various queries to return all users, a single user, or a specific set of users based on the provided parameters.</p>\n<p><strong>Request Parameters:</strong></p>\n<p>The request uses the <code>x-www-form-urlencoded</code> body type, and the following parameters can be included:</p>\n<ul>\n<li><p><code>name</code> (string, optional): The name of the user to search for.</p>\n</li>\n<li><p><code>id</code> (string, optional): The unique identifier of the user.</p>\n</li>\n<li><p><code>groups:</code> The groups filter</p>\n</li>\n<li><p><code>mapProvider</code>: Search by the map service linked to the data (e.g., Google, Here).</p>\n</li>\n<li><p><code>language</code>: The language filter</p>\n</li>\n<li><p><code>customField[]</code> : filter for custom fields</p>\n</li>\n<li><p><code>security</code>: Filter based on permission level (User or Admin)</p>\n</li>\n</ul>\n<p><strong>Response Structure:</strong></p>\n<p>The response will be in JSON format and includes an array of user objects with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": [\n    {\n      \"id\": \"string\",\n      \"name\": \"string\",\n      \"email\": \"string\",\n      \"firstName\": \"string\",\n      \"lastName\": \"string\",\n      \"phoneNumber\": \"string\",\n      \"type\": \"string\",\n      \"isMetric\": true\n    }\n  ]\n}\n\n</code></pre>\n<ul>\n<li><p><code>id</code>: The unique identifier for the user.</p>\n</li>\n<li><p><code>name</code>: The name of the user.</p>\n</li>\n<li><p><code>email</code>: The email address of the user.</p>\n</li>\n<li><p><code>firstName</code>: The first name of the user.</p>\n</li>\n<li><p><code>lastName</code>: The last name of the user.</p>\n</li>\n<li><p><code>phoneNumber</code>: The phone number of the user.</p>\n</li>\n<li><p><code>type</code>: The type of user.</p>\n</li>\n<li><p><code>isMetric</code>: A boolean indicating if the user can assign jobs to themselves.</p>\n</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"34db5b53-54e7-4aa1-8d45-dc89d1fb2700","name":"Get Users","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"User\",\n      \"search\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 24 Jun 2022 12:28:19 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"5010-LaGbGCG5HBfhDCTbP/C8K5gkPJ8\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=mjstiDJlK%2BGngKAm8f%2FO5yhZaidrju72yzCug4OPnIFkro2KaDcc7AZQ67PV9JPssQT7UkmBuirFJN5eaciq%2BqCUwTF5SZbWmUV1HW3yQemgL%2BvCggmnRJFNYiHJ5ZXsKMaMfZrRMnuN\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"7205766f1f02bbce-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"id\": \"id_1\",\n            \"name\": \"name_1\",\n            \"email\": \"email_1\",\n            \"firstName\": \"firstName\",\n            \"lastName\": \"lastName\",\n            \"phoneNumber\": \"phoneNumber\",\n            \"type\": \"type\",\n            \"isMetric\": false\n        },\n        {\n            \"id\": \"id_2\",\n            \"name\": \"name_2\",\n            \"email\": \"email_2\",\n            \"firstName\": \"firstName\",\n            \"lastName\": \"lastName\",\n            \"phoneNumber\": \"phoneNumber\",\n            \"type\": \"type\",\n            \"isMetric\": false\n        }\n    ]\n}"}],"_postman_id":"ab238f91-ec55-4bb3-94b3-62123d163564"},{"name":"Add User","id":"40373875-02c4-4fb8-84e1-75eda5619dcc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Add\",\n  \"params\": {\n    \"typeName\": \"User\",\n    \"entity\": {\n      \"name\": \"PublicAPITest\",\n      \"email\": \"PublicAPITest\"\n    },\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"adds-a-new-user-to-the-database\">Adds a new User to the database.</h4>\n<p>This request is used to create a new user entity. In addition to the credentials, the method requires a minimum of two parameters: the type of entity being added (<code>typeName</code>) and the entity itself.</p>\n<p><strong>Expected Input Parameters:</strong></p>\n<ul>\n<li><p><code>typeName</code>: The type of entity being added (e.g., \"user\", \"admin\", \"notification\").</p>\n</li>\n<li><p><code>User</code>: An object containing user details with the following properties:</p>\n<ul>\n<li><p><code>name</code> (string): The name of the user.</p>\n</li>\n<li><p><code>email</code> (string, optional): The email address of the user.</p>\n</li>\n<li><p><code>firstName</code> (string, optional): The first name of the user.</p>\n</li>\n<li><p><code>lastName</code> (string, optional): The last name of the user.</p>\n</li>\n<li><p><code>type</code> (string, optional): The type of user, which can be \"user\", \"admin\", or \"notification\".</p>\n</li>\n<li><p><code>phoneNumber</code> (string, optional): The phone number of the user.</p>\n</li>\n<li><p><code>canAssignJobItself</code> (boolean, optional): Indicates if the user can assign jobs to themselves.</p>\n</li>\n<li><p><code>password</code> (string, optional): The password for the user account.</p>\n</li>\n<li><p><code>isDriver</code> (boolean, optional): Indicates if the user is a driver.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Structure:</strong><br />The response will contain a <code>result</code> object with the following properties:</p>\n<ul>\n<li><p><code>Id</code>: The unique identifier of the newly created user.</p>\n</li>\n<li><p><code>Password</code>: The password associated with the user account.</p>\n</li>\n</ul>\n<p>Example Response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": {\n    \"Id\": \"\",\n    \"Password\": \"\"\n  }\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"b8713abd-0fd2-45dd-b4e6-f1d80f454bbf","name":"Add User","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Add\",\n  \"params\": {\n    \"typeName\": \"User\",\n    \"entity\": {\n      \"name\": \"PublicAPITest\",\n      \"email\": \"PublicAPITest\"\n    },\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 07:31:37 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"4e-DfDlcTUclu2Atk6pbBTnKDe6+rI\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=R%2Fbu9IZKnqv3yt893wdru%2BKfezOq2FjraPC2akP4yldA6aIzI0RHaqTTx4%2FyIRRrDn8ig7%2FQbgbwDBhxQ7okE4tn%2BhV%2BLaEsd9mHdxo45mpGRrJUo1P1%2FVVLQNVXhwPC01tgyNaNecMN\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722cf6acad159bf8-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"Id\": \"user_id\",\n        \"Password\": \"password\"\n    }\n}"}],"_postman_id":"40373875-02c4-4fb8-84e1-75eda5619dcc"},{"name":"Update User","id":"23619982-ac22-429f-91fd-fcdffea946ee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"User\",\n    \"entity\": {\n      \"name\": \"test@test.com\",\n      \"id\": \"5f195150-3c38-11e8-9506-99672472486f\",\n      \"email\": \"john.doe@example.com\",\n      \"firstName\": \"John\",\n      \"lastName\": \"Doe\",\n      \"phoneNumber\": \"+1234567890\",\n      \"type\": \"admin\",\n      \"canAssignJobItself\": true,\n      \"isDriver\": false,\n      \"isCheckIn\": false,\n      \"password\": \"newHashedPasswordHere\"\n    },\n    \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h3 id=\"modify-user\">Modify User</h3>\n<p>This API request is designed to modify an existing user object in the database. To successfully execute this request, the user ID or the name must be included in the payload.</p>\n<h4 id=\"purpose\">Purpose</h4>\n<p>The purpose of this request is to update the details of a user, allowing for modifications to various user attributes as needed.</p>\n<h4 id=\"input-parameters\">Input Parameters</h4>\n<p>The request body should be sent using the <code>x-www-form-urlencoded</code> format. The following parameters can be included:</p>\n<ul>\n<li><p><code>name</code> (string): The full name of the user.</p>\n</li>\n<li><p><code>id</code> <strong>(string):</strong> Id of the user.</p>\n</li>\n<li><p><code>email</code> (string, optional): The email address of the user.</p>\n</li>\n<li><p><code>firstName</code> (string, optional): The user's first name.</p>\n</li>\n<li><p><code>lastName</code> (string, optional): The user's last name.</p>\n</li>\n<li><p><code>type</code> (string, optional): The role of the user, which can be either \"user\", \"admin\", or \"notification\".</p>\n</li>\n<li><p><code>phoneNumber</code> (string, optional): The user's phone number.</p>\n</li>\n<li><p><code>callAssignJobItself</code> (boolean, optional): Indicates if the user can assign jobs to themselves.</p>\n</li>\n<li><p>isDriver (boolean, optional): Indicates if the user is a driver.</p>\n</li>\n</ul>\n<h4 id=\"note\">Note:</h4>\n<p>id takes precidence over name while mapping user. Only one of the two are required to update a user.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"47df5fd5-18fa-4add-836b-aa51936885da","name":"Update User","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"User\",\n    \"entity\": {\n      \"name\": \"johndoe@gofleet.com\",\n      \"id\": \"5f195150-3c38-11e8-9506-99672472486f\",\n      \"email\": \"john.doe@example.com\",\n      \"firstName\": \"John\",\n      \"lastName\": \"Doe\",\n      \"phoneNumber\": \"+1234567890\",\n      \"type\": \"admin\",\n      \"canAssignJobItself\": true,\n      \"isDriver\": false,\n      \"isCheckIn\": false\n    },\n    \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 07:34:10 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=Ag%2B34DiZSA4ZqMpAk4NtkNd65%2Fg0WqSwZcwh1TiHgtx5ZwALEB1TedtGnUy5FeiHoXXYkk0qms8q1R2cMGK8uQ51AFs%2FiMwAk%2Fs8ga%2Bqqjsegjy7FK8T2N71nQVVvYni2YhmHoXwOTIO\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722cfa691d6c9bf8-FRA"}],"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"23619982-ac22-429f-91fd-fcdffea946ee"},{"name":"Delete User","id":"14e57cf2-d87b-40df-8b83-290568bba6e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Delete\",\n    \"params\": {\n      \"typeName\": \"User\",\n      \"search\": {\n        \"name\": \"PublicAPITest\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"permanently-removes-user-and-its-associated-data\">Permanently removes User and its associated data</h4>\n<p>This request is designed to permanently delete a user and all related data from the system. It is crucial to ensure that the user to be deleted is identified correctly, as this action cannot be undone.</p>\n<p><strong>Purpose:</strong></p>\n<p>The purpose of this API endpoint is to facilitate the permanent removal of a user and their associated data from the database. This action is irreversible, and it is essential to verify the user details before executing the request.</p>\n<p><strong>Request Body Format:</strong></p>\n<ul>\n<li><p>The request must include the following parameter in the x-www-form-urlencoded format:</p>\n<ul>\n<li><code>name</code> (string): The name of the user to be deleted. This field is mandatory.</li>\n</ul>\n</li>\n</ul>\n<p><strong>Expected Response:</strong></p>\n<ul>\n<li>The response will indicate the success or failure of the deletion process. It may include a status message confirming the action taken.</li>\n</ul>\n<p><strong>Response Structure:</strong></p>\n<ul>\n<li>On successful deletion, the response will typically include a JSON object with the following structure:</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"message\": \"User deleted successfully.\"\n}\n\n</code></pre>\n<ul>\n<li>In case of failure, the response may provide an error message detailing the reason for the failure.</li>\n</ul>\n<p>Make sure to provide the correct user name to avoid unintended data loss.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"3b6e5232-8b72-4117-b836-c4b2e004a626","name":"Delete User","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Delete\",\n    \"params\": {\n      \"typeName\": \"User\",\n      \"search\": {\n        \"name\": \"PublicAPITest\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 07:36:29 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=v6x05lqPlcdu%2BLYXrkk6o69qyVJ2EnrdXIypoxILncZEwjGrgD58IjHEWZ8SgTnlQGeyzxUFTFdj1CJksgjTqxVIE60kTa5HQeBjmGRIGTK%2B5UPIx4NORQjauaRBQdN6U%2BJmLkOLpGgt\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722cfdcd09709bf8-FRA"}],"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"14e57cf2-d87b-40df-8b83-290568bba6e1"},{"name":"Reset Password","id":"1398b980-d008-4f38-a569-e1f22899d639","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"User\",\n    \"entity\": {\n      \"name\": \"clintonelvie@gofleet.com\",\n      \"id\": \"5f195150-3c38-11e8-9506-99672472486f\",\n      \"password\": \"newHashedPasswordHere\"\n    },\n    \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h2 id=\"reset-password\">Reset Password</h2>\n<p>Used to update password of a user. The updated password should be already hashed.</p>\n<h4 id=\"input-parameters\">Input Parameters</h4>\n<p>The request body should be sent using the <code>x-www-form-urlencoded</code> format. The following parameters can be included:</p>\n<ul>\n<li><p><code>name</code> (string): The full name of the user.</p>\n</li>\n<li><p><code>id</code> (string)<strong>:</strong> Id of the user.</p>\n</li>\n<li><p><code>password</code> (string): Hashed password.</p>\n</li>\n</ul>\n<h4 id=\"note\">Note:</h4>\n<p>id takes precidence over name while mapping user. Only one of the two are required to update a user.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"4be3e210-f191-415b-a148-a119c85c40c2","name":"Reset Password","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"User\",\n    \"entity\": {\n      \"name\": \"John Doe\",\n      \"id\": \"5f195150-3c38-11e8-9506-99672472486f\",\n      \"password\": \"newHashedPasswordHere\"\n    },\n    \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"1398b980-d008-4f38-a569-e1f22899d639"}],"id":"4c344e25-42ea-4e4b-a0e2-c4691c04428b","description":"<h2 id=\"endpoints-to-manipulate-users-data\"><strong>Endpoints to manipulate Users data.</strong></h2>\n<h3 id=\"typename\">TypeName</h3>\n<ul>\n<li><em><strong>User</strong></em></li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li><em><strong>search</strong></em></li>\n<li><em><strong>entity</strong></em></li>\n</ul>\n","_postman_id":"4c344e25-42ea-4e4b-a0e2-c4691c04428b"},{"name":"Groups","item":[{"name":"Get Groups","id":"c27bb363-0978-42a9-a793-9fea8e0c186d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Group\",\n      \"search\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-groups\">Gets the Groups</h4>\n<p>This method can be used in various ways to return all, one, or some specific set of data for the Groups.</p>\n<p><strong>Request Body Format:</strong><br />The request body should be formatted as <code>x-www-form-urlencoded</code>. The following parameters can be included:</p>\n<ul>\n<li><p><code>includeAllTrees</code> (text, optional): Include Groups from all trees, for example, \"Security Groups\" and \"Private User Groups\". The \"Company Group\" tree is included by default.</p>\n</li>\n<li><p><code>name</code> (text, optional): Search for Groups with this Name. Wildcard can be used by prepending/appending \"%\" to the string. Example: \"%name%\".</p>\n</li>\n<li><p><code>id</code> (text, optional): Search for an entry based on the specific Id.</p>\n</li>\n</ul>\n<p><strong>Expected Response Format:</strong><br />The response will be a JSON object containing a result array. Each object in the array represents a group and may include the following fields:</p>\n<ul>\n<li><p><code>id</code>: The unique identifier of the group.</p>\n</li>\n<li><p><code>name</code>: The name of the group.</p>\n</li>\n<li><p><code>children</code>: An array of child groups, each with its own <code>id</code>.</p>\n</li>\n</ul>\n<p>Example response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": [\n    {\n      \"id\": \"\",\n      \"name\": \"\",\n      \"children\": [\n        {\n          \"id\": \"\"\n        }\n      ]\n    }\n  ]\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"d4acd046-161c-428f-bb42-36f78c299bf7","name":"Get Groups","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Group\",\n      \"search\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 12:55:59 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"916-by1B6710Pr6fUhwviWWTv3lXOJI\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=FrNkeGaqDeOamrnhaKnh278xcTwIZ6e%2FLr22yGQ8dWq2BBAxcSdA7fnkRs3SsmvTDHNC3bDpft89gyIUngomkYuj7Xcm59uZ5c7uNrTZU7UjY2l1D3UTx94jbmiYHA8kp%2BCLRg%2FcLrN5\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722ed1d52e4a9061-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n  \"result\": [\n    {\n      \"id\": \"groupId1\",\n      \"name\": \"parent group\",\n      \"children\": [\n        {\n          \"id\": \"groupId2\"\n        },\n        {\n          \"id\": \"groupId3\"\n        }\n      ]\n    },\n    {\n      \"id\": \"groupId2\",\n      \"name\": \"Child_1\",\n      \"children\": []\n    },\n    {\n      \"id\": \"groupId3\",\n      \"name\": \"Child_2\",\n      \"children\": []\n    }\n  ]\n}"}],"_postman_id":"c27bb363-0978-42a9-a793-9fea8e0c186d"},{"name":"Add Groups","id":"7c7ee972-e065-4fcc-a6e4-9bc81a759e91","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Add\",\n    \"params\": {\n      \"typeName\": \"Group\",\n      \"entity\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"adds-a-new-group-to-the-database\">Adds a new Group to the database.</h4>\n<p>This HTTP POST request is designed to create a new Group entity within the database. To successfully execute this request, it is essential to provide a minimum of two parameters: <code>typeName</code> (indicating the type of entity being added) and the entity itself, which adheres to the defined structure of a Group.</p>\n<p><strong>Expected Input Parameters:</strong></p>\n<ul>\n<li><p><code>typeName</code>: A string that specifies the type of entity being added.</p>\n</li>\n<li><p><code>name</code>: A string representing the unique name of the group.</p>\n</li>\n<li><p><code>children</code>: An optional array that can hold a list of child Group(s).</p>\n</li>\n</ul>\n<p><strong>Group Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">interface Group {\n    id?: string; // The unique identifier for this entity.\n    name: string; // The name of this entity that uniquely identifies it.\n    parent: { id: string; }; // The parent Group of the selected group.\n    color?: Color; // The Color used to render assets belonging to this group. Default [Blue].\n    comments?: string; // Free text field for user information. Default [\"\"].\n    children?: Array; // The Children of this group. A list of Group(s).\n}\n\n</code></pre>\n<p><strong>Response:</strong><br />The response will typically include details about the newly created group, including its unique identifier and any default values that were assigned during creation.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"9163be19-fb3c-4e85-b750-8bf4970c6b01","name":"Add Groups","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Add\",\n    \"params\": {\n      \"typeName\": \"Group\",\n      \"entity\": {\n        \"name\": \"test-group01\",\n        \"children\": [\n          {\n          \"id\": \"7c30e7d0-0499-11ec-be0e-f7a86e7017a9\"\n          }\n        ]\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"trax\"\n  }","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"7c7ee972-e065-4fcc-a6e4-9bc81a759e91"},{"name":"Update Groups","id":"f9812e94-50fa-4296-adba-5a900c2f4f30","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Set\",\n    \"params\": {\n      \"typeName\": \"Group\",\n      \"entity\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"modify-group\">Modify Group</h4>\n<p>This endpoint allows you to modify an existing group in the database. The group must be identified by its unique ID, which needs to be provided in the request.</p>\n<p><strong>Request Parameters (x-www-form-urlencoded):</strong></p>\n<ul>\n<li><p><code>id</code> (string, required): The unique identifier for the group you wish to modify.</p>\n</li>\n<li><p><code>name</code> (string, required): The name of the group that uniquely identifies it and is used for display purposes.</p>\n</li>\n<li><p><code>children</code> (array, optional): A list of child groups associated with this group.</p>\n</li>\n</ul>\n<p><strong>Notes:</strong></p>\n<ul>\n<li>Ensure that the <code>id</code> parameter is correctly populated to avoid errors.</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"2e7f96e6-75c4-4ce6-9f68-029ff28a05ef","name":"Update Groups","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Set\",\n    \"params\": {\n      \"typeName\": \"Group\",\n      \"entity\": {\n        \"id\": \"7c30e7d0-0499-11ec-be0e-f7a86e7017a9\",\n        \"name\": \"test-group-2\",\n        \"children\": [\n          {\n            \"id\": \"2c72d8e0-954c-11ec-94c0-2351b2748d19\"\n          }  \n        ]\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"trax\"\n  }","type":"text"}]},"url":"https://one-service.zenduit.com/api/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"f9812e94-50fa-4296-adba-5a900c2f4f30"},{"name":"Delete Groups","id":"c87c4ea6-4db5-489b-9787-9b0b8e30e7d1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Delete\",\n    \"params\": {\n      \"typeName\": \"Group\",\n      \"search\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"permanently-removes-group-and-its-associated-data-the-group-object-must-have-an-id-field\">Permanently removes Group and its associated data. The Group object must have an id field.</h4>\n<p>This HTTP POST request is designed to permanently delete a specified Group and all its related data from the system.</p>\n<p><strong>Request Body Format:</strong></p>\n<ul>\n<li><p>The request body should be sent as <code>x-www-form-urlencoded</code>.</p>\n</li>\n<li><p>The following parameters can be included in the request body:</p>\n<ul>\n<li><code>id</code> (string, required): The unique identifier of the Group that you wish to remove. This field is mandatory for the request to be processed.</li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Structure:</strong></p>\n<ul>\n<li><p>On a successful deletion, the response will typically include a confirmation message indicating that the Group has been removed successfully.</p>\n</li>\n<li><p>In case of an error (e.g., if the Group ID does not exist), the response will contain an error message detailing the issue.</p>\n</li>\n</ul>\n<p>Ensure that you have the necessary permissions to perform this operation, as it will irreversibly delete the specified Group and all its associated data.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"13fd5e27-8181-4dd0-a8c1-8a9295375673","name":"Delete Groups","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Delete\",\n    \"params\": {\n      \"typeName\": \"Group\",\n      \"search\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"c87c4ea6-4db5-489b-9787-9b0b8e30e7d1"}],"id":"f99d85b7-602f-45db-adb9-5df299297118","description":"<h2 id=\"endpoints-to-manipulate-groups-data\"><strong>Endpoints to manipulate Groups data.</strong></h2>\n<h3 id=\"typename\">TypeName</h3>\n<ul>\n<li><em><strong>Group</strong></em></li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li><em><strong>search</strong></em></li>\n<li><em><strong>entity</strong></em></li>\n</ul>\n","_postman_id":"f99d85b7-602f-45db-adb9-5df299297118"},{"name":"Exception","item":[{"name":"Get Exceptions","id":"1e123995-1b6d-4a43-aeb4-046d4cfb28b3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"ExceptionEvent\",\n      \"search\": { \n        \"deviceSearch\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"{{dateFrom}}\",\n        \"toDate\": \"{{dateTo}}\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-exceptions\">Gets the Exceptions</h4>\n<p>This method can be used in various ways to return all, one, or a specific set of data for the Exceptions.</p>\n<p><strong>Purpose:</strong><br />The request is designed to search for exceptions based on specified criteria.</p>\n<p><strong>Expected Input Parameters:</strong><br />The request body should be formatted as <code>x-www-form-urlencoded</code> with the following parameters:</p>\n<ul>\n<li><p><strong>deviceSearch</strong>: Optional object - Device search criteria containing:  </p>\n<ul>\n<li><p><code>id</code>: Optional string - Unique identifier of the device</p>\n</li>\n<li><p><code>name</code>: Optional string - Name of the device</p>\n</li>\n<li><p><code>groups</code>: Optional Ref array - Array of group references associated with the device</p>\n</li>\n</ul>\n</li>\n<li><p><strong>ruleSearch</strong>: Optional object - Rule search criteria containing:  </p>\n<ul>\n<li><p><code>id</code>: Optional string - Unique identifier of the rule</p>\n</li>\n<li><p><code>name</code>: Optional string - Name of the rule</p>\n</li>\n</ul>\n</li>\n<li><p><strong>driver</strong>: Optional object - Driver information for filtering exceptions containing:  </p>\n<ul>\n<li><p><code>id</code>: Optional string - Unique identifier of the driver</p>\n</li>\n<li><p><code>name</code>: Optional string - Name of the driver</p>\n</li>\n</ul>\n</li>\n<li><p><strong>fromDate</strong>: Optional string - Start date for the search time range (ISO string format)</p>\n</li>\n<li><p><strong>toDate</strong>: Optional string - End date for the search time range (ISO string format)</p>\n</li>\n<li><p><strong>speed</strong>: Optional object - Speed range filter for exceptions containing:  </p>\n<ul>\n<li><p><code>min</code>: Optional number - Minimum speed value</p>\n</li>\n<li><p><code>max</code>: Optional number - Maximum speed value</p>\n</li>\n</ul>\n</li>\n<li><p><strong>location</strong>: Optional object - Location information for filtering exceptions containing:  </p>\n<ul>\n<li><p><code>id</code>: Optional string - Unique identifier of the location</p>\n</li>\n<li><p><code>name</code>: Optional string - Name of the location</p>\n</li>\n</ul>\n</li>\n<li><p><strong>tag</strong>: Optional object - Tag information for filtering exceptions containing:  </p>\n<ul>\n<li><p><code>id</code>: Optional string - Unique identifier of the tag</p>\n</li>\n<li><p><code>name</code>: Optional string - Name of the tag</p>\n</li>\n</ul>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">/**\n * Interface for searching and filtering exceptions in the system.\n * Provides various search criteria to find specific exceptions based on\n * device, rule, driver, time range, speed, location, and tag parameters.\n */\nexport interface ExceptionSearch {\n    /** Device search criteria */\n    deviceSearch?: {\n        /** Unique identifier of the device */\n        id?: string;\n        /** Name of the device */\n        name?: string;\n        /** Array of group references associated with the device */\n        groups?: Array;\n    };\n    /** Rule search criteria */\n    ruleSearch?: {\n        /** Unique identifier of the rule */\n        id?: string;\n        /** Name of the rule */\n        name?: string;\n    };\n    /** Driver information for filtering exceptions */\n    driver?: {\n        /** Unique identifier of the driver */\n        id?: string;\n        /** Name of the driver */\n        name?: string;\n    };\n    /** Start date for the search time range (ISO string format) */\n    fromDate?: string;\n    /** End date for the search time range (ISO string format) */\n    toDate?: string;\n    /** Speed range filter for exceptions */\n    speed?: { \n        /** Minimum speed value */\n        min?: number, \n        /** Maximum speed value */\n        max?: number \n    };\n    /** Location information for filtering exceptions */\n    location?: {\n        /** Unique identifier of the location */\n        id?: string;\n        /** Name of the location */\n        name?: string;\n    };\n    /** Tag information for filtering exceptions */\n    tag?: {\n        /** Unique identifier of the tag */\n        id?: string;\n        /** Name of the tag */\n        name?: string;\n    };\n}\n\n</code></pre>\n<p><strong>Response Structure:</strong><br />The response will typically include a list of exceptions that match the search criteria, with details pertaining to each exception. The exact structure of the response will depend on the specific implementation and may include fields such as exception ID, message, timestamp, and associated device information.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"718c6f1d-4f4b-48da-8bfa-ad144d1524a4","name":"Get Exceptions","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"ExceptionEvent\",\n      \"search\": { \n        \"deviceSearch\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"{{dateFrom}}\",\n        \"toDate\": \"{{dateTo}}\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Vary","value":"X-HTTP-Method-Override"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2277"},{"key":"ETag","value":"W/\"8e5-O+f5aREozZi2tKX04K0QxbGVSqA\""},{"key":"Date","value":"Fri, 18 Jul 2025 19:57:08 GMT"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"id\": \"id\",\n            \"device\": {\n                \"id\": \"deviceid\"\n            },\n            \"activeFrom\": \"activeFrom\",\n            \"activeTo\": \"activeTo\",\n            \"rule\": {\n                \"id\": \"ruleid\"\n            },\n            \"duration\": \"duration\",\n            \"status\": \"status\",\n            \"reviewerId\": \"reviewerId\",\n            \"tagId\": \"tagId\",\n            \"driver\": {\n                \"id\": \"driverId\"\n            }\n        }\n    ]\n}"}],"_postman_id":"1e123995-1b6d-4a43-aeb4-046d4cfb28b3"}],"id":"c13a78d6-a584-4f77-bd03-73a862472025","_postman_id":"c13a78d6-a584-4f77-bd03-73a862472025","description":""},{"name":"Logs","item":[{"name":"Get Logs","id":"3fdca302-92a7-4ced-89b7-c73473b4a8a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"LogRecord\",\n      \"search\": { \n        \"deviceSearch\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"{{dateFrom}}\",\n        \"toDate\": \"{{dateTo}}\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-gps-log-records\">Gets the GPS log records.</h4>\n<p>This method can be used to return all, one, or a specific set of data for the GPS Logs. It allows users to search for GPS log records based on specific criteria.</p>\n<p><strong>Purpose:</strong><br />The primary purpose of this request is to retrieve GPS log records associated with devices, allowing for filtering based on date ranges.</p>\n<p><strong>Expected Input Parameters:</strong><br />The request body is expected to be in <code>x-www-form-urlencoded</code> format and may include the following parameters:</p>\n<ul>\n<li><p><code>deviceSearch</code> (optional): A reference to the device for which the GPS logs are being searched.</p>\n</li>\n<li><p><code>fromDate</code> (optional): A string representing the start date for the range of logs to be retrieved.</p>\n</li>\n<li><p><code>toDate</code> (optional): A string representing the end date for the range of logs to be retrieved.</p>\n</li>\n</ul>\n<p><strong>Structure of the Response:</strong><br />The response will include a collection of GPS log records that match the specified search criteria. Each log record will typically contain information such as timestamp, location coordinates, and device identifiers.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">interface LogRecordSearch {\n    deviceSearch?: Ref;\n    // Range for due date\n    fromDate?: string;\n    // Range for due date\n    toDate?: string;\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"d67bbb3b-8348-46a6-8e57-acb0978a7295","name":"Get Logs","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"LogRecord\",\n      \"search\": { \n        \"deviceSearch\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"{{dateFrom}}\",\n        \"toDate\": \"{{dateTo}}\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"device\": {\n                \"id\": \"2febe5b0-4ca0-11ec-b637-c3c6afe36dfd\"\n            },\n            \"dateTime\": \"2022-11-10T00:00:00.000Z\",\n            \"latitude\": 33.96325,\n            \"longitude\": -117.03879,\n            \"speed\": 19\n        },\n        {\n            \"device\": {\n                \"id\": \"2febe5b0-4ca0-11ec-b637-c3c6afe36dfd\"\n            },\n            \"dateTime\": \"2022-11-10T00:00:15.000Z\",\n            \"latitude\": 33.96339,\n            \"longitude\": -117.03883,\n            \"speed\": 0\n        }   ]\n}"}],"_postman_id":"3fdca302-92a7-4ced-89b7-c73473b4a8a8"}],"id":"1cb5e0a7-5571-4bd6-a859-0041c01339ef","_postman_id":"1cb5e0a7-5571-4bd6-a859-0041c01339ef","description":""},{"name":"Custom Maps","item":[{"name":"Get Custom Maps","id":"ea0d9608-7c3e-47ac-9d7c-e5204b4e3e81","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"CustomMap\",\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-custom-map-records\">Gets the Custom Map records.</h4>\n<p>This API endpoint allows you to <strong>retrieve Custom Map records</strong> from the server. It is designed to facilitate the management and access of map-related data within your application.</p>\n<p><strong>Request Format:</strong></p>\n<ul>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>Content-Type:</strong> application/x-www-form-urlencoded</p>\n</li>\n</ul>\n<p><strong>Expected Request Body:</strong><br />The request body should be formatted as key-value pairs in the x-www-form-urlencoded format. Each key represents a specific parameter required for the request, and the values should be provided accordingly. The specific parameters required for this request are not detailed in the current documentation, so please ensure to include any necessary parameters relevant to your use case.</p>\n<p><strong>Response Structure:</strong><br />The response will contain the details of the Custom Map records. The structure of the response will typically include:</p>\n<ul>\n<li><p>A status code indicating the success (200) or failure of the request.</p>\n</li>\n<li><p>A JSON object containing the following fields:</p>\n<ul>\n<li><p><strong>result:</strong> An array of objects representing the retrieved Custom Map records, where each object includes:</p>\n<ul>\n<li><p><strong>id:</strong> The unique identifier for the map record.</p>\n</li>\n<li><p><strong>name:</strong> The name of the map.</p>\n</li>\n<li><p><strong>url:</strong> The URL associated with the map.</p>\n</li>\n<li><p><strong>imageWidth:</strong> The width of the map image.</p>\n</li>\n<li><p><strong>imageHeight:</strong> The height of the map image.</p>\n</li>\n<li><p><strong>rotation:</strong> The rotation angle of the map.</p>\n</li>\n<li><p><strong>scale:</strong> The scale factor of the map.</p>\n</li>\n<li><p><strong>location:</strong> An object containing:</p>\n<ul>\n<li><p><strong>lat:</strong> Latitude of the map location.</p>\n</li>\n<li><p><strong>lng:</strong> Longitude of the map location.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>devices:</strong> An array of device objects associated with the map, where each device includes:</p>\n<ul>\n<li><p><strong>id:</strong> The unique identifier for the device.</p>\n</li>\n<li><p><strong>left:</strong> The left position of the device.</p>\n</li>\n<li><p><strong>top:</strong> The top position of the device.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p>Ensure that you provide the necessary parameters in the request body to successfully retrieve the desired records.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"96506b57-6b1a-4ab2-bf8b-64c782aa8c69","name":"Get Custom Maps","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"CustomMap\",\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Vary","value":"X-HTTP-Method-Override"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"7817"},{"key":"ETag","value":"W/\"1e89-xlbldayqgSwK1w/JucR9Rk3Tp0c\""},{"key":"Date","value":"Fri, 18 Jul 2025 20:02:39 GMT"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"id\": \"id\",\n            \"name\": \"name\",\n            \"url\": \"url\",\n            \"imageWidth\": \"imageWidth\",\n            \"ImageHeight\": \"ImageHeight\",\n            \"rotation\": \"rotation\",\n            \"scale\": \"scale\",\n            \"location\": {\n                \"lat\": \"lat\",\n                \"lng\": \"lng\"\n            },\n            \"devices\": [\n                {\n                    \"id\": \"id\",\n                    \"left\": \"left\",\n                    \"top\": \"top\"\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"ea0d9608-7c3e-47ac-9d7c-e5204b4e3e81"}],"id":"0ab43c27-3f1d-4fc6-ae0c-927a0a96ec7a","_postman_id":"0ab43c27-3f1d-4fc6-ae0c-927a0a96ec7a","description":""},{"name":"Geoconding","item":[{"name":"GetAddresses","id":"8c4c3eb8-199d-4e06-b08b-bdb7373ac9b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"GetAddresses\",\n  \"params\": {\n    \"coordinates\": [\n      {\n        \"x\":-79.7239949406194,\n        \"y\":43.51197251474255\n      }\n    ],\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"068c7390-9409-4c73-aec4-e4d51b5dfe9c","name":"GetAddresses","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"GetAddresses\",\n  \"params\": {\n    \"coordinates\": [\n      {\n        \"x\":-79.7239949406194,\n        \"y\":43.51197251474255\n      }\n    ],\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Vary","value":"X-HTTP-Method-Override"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"59"},{"key":"ETag","value":"W/\"3b-AtcDaUO7aQ0uACYF5deLoFct6e8\""},{"key":"Date","value":"Fri, 18 Jul 2025 20:24:38 GMT"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"formattedAddress\": \"formattedAddress\"\n        }\n    ]\n}"}],"_postman_id":"8c4c3eb8-199d-4e06-b08b-bdb7373ac9b7"}],"id":"d5d0a699-65ed-4dad-8441-045da825e564","_postman_id":"d5d0a699-65ed-4dad-8441-045da825e564","description":""},{"name":"POI","item":[{"name":"Get POI","id":"1590b59d-3886-4174-8d2e-eff77f549f88","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"POI\",\n      \"search\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"publicmap\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h2 id=\"api-endpoint-description\">API Endpoint Description</h2>\n<p>This endpoint retrieves <strong>Points of Interest (POI)</strong> from the system using JSON-RPC format.<br />It requires valid authentication via <code>sessionId</code></p>\n<h3 id=\"purpose-of-the-request\">Purpose of the Request</h3>\n<p>The purpose of this request is to retrieve Points of Interest (POIs) with their details such as name, location, description, and icon.</p>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>The response from this endpoint will typically include a status code indicating the success or failure of the operation, along with any relevant data. The structure of the response will generally follow a consistent format that includes:</p>\n<ul>\n<li><p><strong>Status</strong>: Indicates the success (200) or failure of the request.</p>\n</li>\n<li><p><strong>Content-Type</strong>: The type of content returned, which is typically <code>application/json</code>.</p>\n</li>\n<li><p><strong>Result</strong>: An array of POIs, each containing:</p>\n<ul>\n<li><p><code>name</code> (string): The name of the POI.</p>\n</li>\n<li><p><code>description</code> (string): The description of the POI.</p>\n</li>\n<li><p><code>icon</code> (string): The URL of the POI icon.</p>\n</li>\n<li><p><code>lat</code> (number): The latitude of the POI.</p>\n</li>\n<li><p><code>lng</code> (number): The longitude of the POI.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"a4368b6a-a537-47ba-9d73-44278091f98d","name":"Get POI","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"POI\",\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"publicmap\"\n  }","type":"text"}]},"url":"{{url}}"},"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"name\": \"1901 Bayview Ave East York, ON M4G 3E4\",\n            \"description\": \"\",\n            \"icon\": \"https://publicmap2.zenduit.com/AddIn/Images/Locations/man1.svg\",\n            \"lat\": 43.7154404,\n            \"lng\": -79.3773975\n        },\n        {\n            \"name\": \"100 John West Way, Box 1000, Aurora, Ontario  L4G 6J1\",\n            \"description\": \"\",\n            \"icon\": \"https://publicmap2.zenduit.com/AddIn/Images/Locations/man1.svg\",\n            \"lat\": 44.0065058,\n            \"lng\": -79.4526849\n        },\n        {\n            \"name\": \"219 Fort York Blvd\",\n            \"description\": \"\",\n            \"icon\": \"https://publicmap2.zenduit.com/AddIn/Images/Locations/man1.svg\",\n            \"lat\": 43.6366459,\n            \"lng\": -79.4079111\n        },\n        {\n            \"name\": \"Jammu\",\n            \"description\": \"\",\n            \"icon\": \"https://publicmap2.zenduit.com/AddIn/Images/Locations/bell2.svg\",\n            \"lat\": 32.71,\n            \"lng\": 74.85\n        },\n        {\n            \"name\": \"Trikuta\",\n            \"description\": \"\",\n            \"icon\": \"https://publicmap2.zenduit.com/AddIn/Images/Locations/bell2.svg\",\n            \"lat\": 32.69,\n            \"lng\": 74.85\n        },\n        {\n            \"name\": \"Easy day\",\n            \"description\": \"\",\n            \"icon\": \"https://publicmap2.zenduit.com/AddIn/Images/Locations/bell2.svg\",\n            \"lat\": 32.69,\n            \"lng\": 74\n        },\n        {\n            \"name\": \"Gandhi Nagar\",\n            \"description\": \"\",\n            \"icon\": \"https://publicmap2.zenduit.com/AddIn/Images/Locations/bell2.svg\",\n            \"lat\": 32.702753,\n            \"lng\": 74.85941\n        },\n        {\n            \"name\": \"Prem Nagar\",\n            \"description\": \"\",\n            \"icon\": \"https://publicmap2.zenduit.com/AddIn/Images/Locations/bell2.svg\",\n            \"lat\": 32.72865,\n            \"lng\": 74.861954\n        },\n        {\n            \"name\": \"Sastri Nagar\",\n            \"description\": \"\",\n            \"icon\": \"https://publicmap2.zenduit.com/AddIn/Images/Locations/bell2.svg\",\n            \"lat\": 32.690489,\n            \"lng\": 74.851503\n        },\n        {\n            \"name\":\"��0C�-�G��\u0006�e�y�.��M��0g��Ν�>��]}Ậؗ��~�J.\u0003毹jK�+/\u001e�\\u000b����?��\u001cB�\u001b�z��N�=������+�O풗0��x\\u000bYy�B�gpA%�*9��hE%\",\n            \"description\": \"\",\n            \"icon\": \"https://publicmap2.zenduit.com/AddIn/Images/Locations/obj1.svg\",\n            \"lat\": null,\n            \"lng\": null\n        }\n    ]\n}"}],"_postman_id":"1590b59d-3886-4174-8d2e-eff77f549f88"}],"id":"fc144850-4e62-4ed9-b750-e35e3d314dca","_postman_id":"fc144850-4e62-4ed9-b750-e35e3d314dca","description":""},{"name":"Trips","item":[{"name":"Get Trips","id":"299e2253-b09f-4167-8f72-8f5afcf17ec6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Trip\",\n      \"search\": { \n        \"deviceSearch\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"{{dateFrom}}\",\n        \"toDate\": \"{{dateTo}}\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-trips\">Gets the Trips</h4>\n<p>This method retrieves trip information and can be utilized to return all trips, a single trip, or a specific set of trips based on the provided parameters.</p>\n<p><strong>Request Body Format:</strong></p>\n<ul>\n<li><p>The request should be sent using the <code>x-www-form-urlencoded</code> format. The body may include the following parameters:</p>\n<ul>\n<li>(No parameters are currently specified for this request.)</li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Structure:</strong><br />The response will be in JSON format and contains the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": [\n    {\n      \"id\": \"\", // Unique identifier for the trip\n      \"device\": {\n        \"id\": \"\" // Unique identifier for the device associated with the trip\n      },\n      \"distance\": 0, // Distance covered in the trip\n      \"driver\": null, // Driver information (if available)\n      \"start\": \"\", // Start time of the trip\n      \"stop\": \"\", // End time of the trip\n      \"stopDuration\": \"\", // Duration of stops during the trip\n      \"drivingDuration\": \"\" // Duration of driving\n    }\n  ]\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"05bde5e8-38d0-4f6a-aa3c-09b477620780","name":"Get Trips","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Trip\",\n      \"search\": { \n        \"deviceSearch\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"{{dateFrom}}\",\n        \"toDate\": \"{{dateTo}}\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 07:41:43 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"1700-ycrWjXC9+aVZ3BXgGHKXtfy1C2g\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=6kTYCyeAmYXCsWuxltFET1ezuluIh9BnK0lLikCzJ1F%2B7nRNfVbQGYwpMa3yzMqItHHOLVDXShOGaYdXkBuojufYGOJiRlaTx9uCm7l5GevLPmpIR5y0fzJr5z7Jk2T%2FjkKrZpoWynxq\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722d0576dc669bf8-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"id\": \"fa8d0061-60c2-11ed-aa36-1100f5b58882\",\n            \"device\": {\n                \"id\": \"bc45b760-2da6-11ed-b8dc-bb7f2ae60f5a\"\n            },\n            \"distance\": 100,\n            \"driver\": null,\n            \"start\": \"2022-11-10T01:30:53.000Z\",\n            \"stop\": \"2022-11-10T03:07:33.000Z\",\n            \"stopDuration\": \"0:0:0\",\n            \"drivingDuration\": \"1:36:40\",\n            \"startLocation\": {\n                \"X\": 0,\n                \"Y\": 0\n            },\n            \"endLocation\": {\n                \"X\": -117.569034,\n                \"Y\": 33.520069\n            },\n            \"idlingDuration\": \"0:0:0\"\n        },\n        {\n            \"id\": \"03d42f41-60c3-11ed-aa36-1100f5b58882\",\n            \"device\": {\n                \"id\": \"bc45b760-2da6-11ed-b8dc-bb7f2ae60f5a\"\n            },\n            \"distance\": 20,\n            \"driver\": null,\n            \"start\": \"2022-11-10T03:08:33.000Z\",\n            \"stop\": \"2022-11-10T03:40:13.000Z\",\n            \"stopDuration\": \"2:22:49\",\n            \"drivingDuration\": \"0:31:40\",\n            \"startLocation\": {\n                \"X\": 0,\n                \"Y\": 0\n            },\n            \"endLocation\": {\n                \"X\": -117.569034,\n                \"Y\": 33.520069\n            },\n            \"idlingDuration\": \"0:0:0\"\n        }\n    ]\n}"}],"_postman_id":"299e2253-b09f-4167-8f72-8f5afcf17ec6"}],"id":"66d16627-7e25-468f-ad7d-ad04ae0d5021","description":"<h2 id=\"endpoints-to-fetch-trips-data\"><strong>Endpoints to fetch Trips data.</strong></h2>\n<h3 id=\"typename\">TypeName</h3>\n<ul>\n<li><em><strong>Trip</strong></em></li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li><em><strong>search</strong></em></li>\n</ul>\n","_postman_id":"66d16627-7e25-468f-ad7d-ad04ae0d5021"},{"name":"Rules","item":[{"name":"Get Rules","id":"2c738a56-b363-444a-9bc9-d8e7aa41ad1e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Rule\",\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-rules\">Gets the Rules</h4>\n<p>This method can be used to return all rules.</p>\n<p><strong>Purpose:</strong><br />The purpose of this request is to retrieve a list of rules from the server.</p>\n<p><strong>Request Format:</strong></p>\n<ul>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>Content-Type:</strong> application/x-www-form-urlencoded</p>\n</li>\n<li><p><strong>Request Body:</strong> The request body should be sent in the x-www-form-urlencoded format. Currently, no parameters are specified for the request body.</p>\n</li>\n</ul>\n<p><strong>Response Structure:</strong><br />The response will be in JSON format and will include the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": [\n    {\n      \"id\": \"&lt;string&gt;\",\n      \"name\": \"&lt;string&gt;\"\n    }\n  ]\n}\n\n</code></pre>\n<ul>\n<li><p><strong>result:</strong> An array of rule objects.</p>\n<ul>\n<li><p><strong>id:</strong> A unique identifier for the rule.</p>\n</li>\n<li><p><strong>name:</strong> The name of the rule.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"0fe19b69-b000-40b7-a0fe-aad09afb7b9d","name":"Get Rules","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Rule\",\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 07:41:43 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"1700-ycrWjXC9+aVZ3BXgGHKXtfy1C2g\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=6kTYCyeAmYXCsWuxltFET1ezuluIh9BnK0lLikCzJ1F%2B7nRNfVbQGYwpMa3yzMqItHHOLVDXShOGaYdXkBuojufYGOJiRlaTx9uCm7l5GevLPmpIR5y0fzJr5z7Jk2T%2FjkKrZpoWynxq\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722d0576dc669bf8-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"id\": \"d6af1960-8e66-11eb-8cb7-cbe49834e38d\",\n            \"name\": \"SevereShock\"\n        },\n        {\n            \"id\": \"d6b16350-8e66-11eb-8cb7-cbe49834e38d\",\n            \"name\": \"Panic Button\"\n        },\n        {\n            \"id\": \"d6b274c0-8e66-11eb-8cb7-cbe49834e38d\",\n            \"name\": \"Media Error\"\n        }\n    ]\n}"}],"_postman_id":"2c738a56-b363-444a-9bc9-d8e7aa41ad1e"}],"id":"e514e9c4-3922-42f4-8588-e7485f4a152a","description":"<h2 id=\"endpoints-to-fetch-rules-data\"><strong>Endpoints to fetch Rules data.</strong></h2>\n<h3 id=\"typename\">TypeName</h3>\n<ul>\n<li><em><strong>Rule</strong></em></li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li><em><strong>search</strong></em></li>\n</ul>\n","_postman_id":"e514e9c4-3922-42f4-8588-e7485f4a152a"},{"name":"Media","item":[{"name":"Get Live Streams","id":"2d56c964-f74d-49de-9f8a-4b21b51fcb12","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"LiveMedia\",\n      \"search\": { \n        \"device\": { \"id\": \"{{deviceId}}\" }\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-live-streams-links\">Gets the live streams links.</h4>\n<p>This method can be used to return links for live streaming. The format of live streaming depends on the camera provider.</p>\n<p><strong>Request Body Format:</strong></p>\n<ul>\n<li><p>The request should be sent with the <code>x-www-form-urlencoded</code> content type.</p>\n</li>\n<li><p>The expected parameters in the request body are as follows:</p>\n<ul>\n<li><code>deviceSearch</code> (optional): A reference to the device ID for which live stream links are being requested.</li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Structure:</strong></p>\n<ul>\n<li><p>The response will contain the links to the live streams based on the provided device ID. The exact structure of the response may vary depending on the camera provider but typically includes:</p>\n<ul>\n<li><p>Stream URLs</p>\n</li>\n<li><p>Metadata about the streams (e.g., quality, type)</p>\n</li>\n</ul>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">interface LiveStreamSearch {\n    // device id\n    deviceSearch?: Ref;\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"6cc254e3-6e90-4da6-a542-fe050b5a278d","name":"Get Live Streams","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"LiveMedia\",\n      \"search\": { \n        \"device\": { \"id\": \"{{deviceId}}\" }\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"url\": \"http://server:21708/video/a20f6c26-63ae-45e2-8643-aeb7405141b1.flv\",\n            \"channel\": 1\n        },\n        {\n            \"url\": \"http://server:21709/video/d8bd5245-686f-4e8e-88e3-8857bc944f98.flv\",\n            \"channel\": 2\n        }\n    ]\n}"}],"_postman_id":"2d56c964-f74d-49de-9f8a-4b21b51fcb12"},{"name":"Historical Stream","event":[{"listen":"test","script":{"id":"be523e83-45c7-46a6-ae29-c10913da9978","exec":[""],"type":"text/javascript","packages":{}}}],"id":"d56691be-aa2a-4510-baf0-82d6c6175f1b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"HistoricalStream\",\n      \"search\": { \n        \"device\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"{{dateFrom}}\",\n        \"toDate\": \"{{dateTo}}\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"retrieves-the-historical-stream-for-a-given-device-within-a-specified-time-range\">Retrieves the historical stream for a given device within a specified time range.</h4>\n<p>This POST request is designed to fetch the historical media streams associated with a specific device over a defined time range. The request allows users to specify the device and the time interval for which the historical data is required.</p>\n<p><strong>Request Body Format:</strong><br />The request body should be sent as <code>x-www-form-urlencoded</code> and must include the following parameters:</p>\n<ul>\n<li><p><strong>device</strong> (optional): A reference identifier for the device whose historical stream is being requested.</p>\n</li>\n<li><p><strong>fromDate</strong> (optional): A string representing the start of the time range for the request, formatted in a suitable date-time format.</p>\n</li>\n<li><p><strong>toDate</strong> (optional): A string representing the end of the time range for the request, also formatted in a suitable date-time format.</p>\n</li>\n</ul>\n<p><strong>Response Structure:</strong><br />Upon a successful request, the method will return a list of media streams that fall within the specified time range. Please note that the time range limit for the request is 10 minutes.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">interface RequestOptions {\n    // Device id\n    device?: Ref;\n    // Start of range for request\n    fromDate?: string;\n    // End of range for request\n    toDate?: string;\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"1300520f-66ef-446a-9036-1e0fe52828d1","name":"Historical Stream","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"HistoricalStream\",\n      \"search\": { \n        \"device\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"{{dateFrom}}\",\n        \"toDate\": \"{{dateTo}}\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Vary","value":"X-HTTP-Method-Override"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"121"},{"key":"ETag","value":"W/\"79-fodraHU+Q4EEA3M3Ufk3/RNaOQY\""},{"key":"Date","value":"Tue, 22 Jul 2025 13:57:40 GMT"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"source\": \"https://trax-client-service-api-dev.zenduit.com/Media/Streammax/LiveStream?port=22001&media=%2Fvideo%2Fmv-df3a90a8-de49-25da-690-136e2904130bf.flv&deviceId=a268c7f0-1e69-11ef-9404-8b09d2635273&timeout=300000&token=6e95f075a71d34f30b3e2bbe0b4ffbc87b5d72f36673d6d1399517268161a4a7a58c48d7a789e9f0-66e6-11f0-a628-a9806aaf3499\",\n            \"session\": \"mv-df3a90a8-de49-25da-690-136e2904130bf\",\n            \"channel\": 1\n        },\n        {\n            \"source\": \"https://trax-client-service-api-dev.zenduit.com/Media/Streammax/LiveStream?port=22002&media=%2Fvideo%2Fmv-70c890d0-31a9-fbd8-e90-e081f9076bf2c.flv&deviceId=a268c7f0-1e69-11ef-9404-8b09d2635273&timeout=300000&token=6e95f075a71d34f30b3e2bbe0b4ffbc87b5d72f36673d6d1399517268161a4a7a58c48d7a789e9f0-66e6-11f0-a628-a9806aaf3499\",\n            \"session\": \"mv-70c890d0-31a9-fbd8-e90-e081f9076bf2c\",\n            \"channel\": 2\n        }\n    ]\n}"}],"_postman_id":"d56691be-aa2a-4510-baf0-82d6c6175f1b"},{"name":"Get Media Recording","event":[{"listen":"test","script":{"id":"be523e83-45c7-46a6-ae29-c10913da9978","exec":[""],"type":"text/javascript","packages":{}}}],"id":"e62ac5f8-f4fb-4cd8-86a5-c07553b83ee4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"MediaRecording\",\n      \"search\": { \n        \"device\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"{{dateFrom}}\",\n        \"toDate\": \"{{dateTo}}\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"retrieves-media-recordings-based-on-the-provided-search-criteria\">Retrieves media recordings based on the provided search criteria.</h4>\n<p>This endpoint allows you to retrieve media recordings by specifying the necessary parameters in the request body.</p>\n<p><strong>Request Body Parameters:</strong></p>\n<ul>\n<li><code>JSON-RPC</code> (type: text): This parameter is used to define the JSON-RPC protocol version and method for the request.</li>\n</ul>\n<p><strong>Request Options:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">interface RequestOptions {\n    // Device id\n    device?: Ref; // Optional: The unique identifier for the device from which recordings are requested.\n    // Start of range for request\n    fromDate?: string; // Optional: The start date for the range of recordings to retrieve, formatted as a string.\n    // End of range for request\n    toDate?: string; // Optional: The end date for the range of recordings to retrieve, formatted as a string.\n}\n\n</code></pre>\n<p><strong>Expected Response:</strong><br />The response will contain the media recordings that match the specified criteria, including details such as recording IDs, timestamps, and any other relevant metadata.</p>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>Ensure that the <code>device</code> parameter is correctly specified to retrieve recordings for the intended device.</p>\n</li>\n<li><p>The date parameters (<code>fromDate</code> and <code>toDate</code>) should be formatted correctly to avoid errors in the request.</p>\n</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e62ac5f8-f4fb-4cd8-86a5-c07553b83ee4"},{"name":"Wake Up","event":[{"listen":"test","script":{"id":"be523e83-45c7-46a6-ae29-c10913da9978","exec":[""],"type":"text/javascript","packages":{}}}],"id":"cce2a058-50fc-44bf-a855-1572c178d351","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Execute\",\n    \"params\": {\n      \"typeName\": \"Media\",\n      \"actionName\": \"WakeUp\",\n      \"arguments\": {\n        \"device\": { \"id\": \"{{deviceId}}\" }\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"wakes-up-a-device\">Wakes up a device.</h4>\n<p>This request is designed to wake up a specified device by sending an HTTP POST request.</p>\n<p><strong>Request Parameters:</strong></p>\n<ul>\n<li><code>device</code> (optional): The identifier for the device that needs to be woken up. This should be a reference to the specific device.</li>\n</ul>\n<p><strong>Expected Response:</strong></p>\n<ul>\n<li>A successful response will indicate that the device has been woken up. The exact structure of the response will depend on the implementation but generally includes a confirmation message or status code.</li>\n</ul>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>Ensure that the device ID provided is valid and corresponds to an existing device in the system.</p>\n</li>\n<li><p>This operation may require appropriate permissions or authentication to execute successfully.</p>\n</li>\n</ul>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"f66a119e-818d-46a8-88c5-77a3c4c43012","name":"Wake Up","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Execute\",\n    \"params\": {\n      \"typeName\": \"Media\",\n      \"actionName\": \"WakeUp\",\n      \"arguments\": {\n        \"device\": { \"id\": \"{{deviceId}}\" }\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Vary","value":"X-HTTP-Method-Override"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"82"},{"key":"ETag","value":"W/\"52-aRCRX1fxBUVQH5+7cusIGrhYFDY\""},{"key":"Date","value":"Fri, 18 Jul 2025 20:47:37 GMT"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"result\": {\n        \"success\": true\n    }\n}"}],"_postman_id":"cce2a058-50fc-44bf-a855-1572c178d351"},{"name":"Video Request","event":[{"listen":"test","script":{"id":"be523e83-45c7-46a6-ae29-c10913da9978","exec":["var data = JSON.parse(responseBody);","postman.setEnvironmentVariable(\"taskId\", data.result.id)"],"type":"text/javascript","packages":{}}}],"id":"f2b7645c-1981-4f2c-b6e1-79a9212c1c71","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Execute\",\n    \"params\": {\n      \"typeName\": \"Media\",\n      \"actionName\": \"Request\",\n      \"arguments\": {\n        \"type\": \"video\",\n        \"device\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"2022-11-14T00:00:00.000Z\",\n        \"toDate\": \"2022-11-14T00:00:20.000Z\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"run-video-request\">Run video request</h4>\n<p>This method can be used to fetch media content for a specific device. It allows you to initiate a video request by providing a range of dates for the media content you want to retrieve.</p>\n<p><strong>Expected Input Parameters:</strong></p>\n<ul>\n<li><p><code>type</code> (string, required): The type of media request. This should be set to <code>\"video\"</code>.</p>\n</li>\n<li><p><code>device</code> (Ref, optional): The identifier for the device from which you want to fetch the media content.</p>\n</li>\n<li><p><code>fromDate</code> (string, optional): The start date of the range for the video request in ISO 8601 format.</p>\n</li>\n<li><p><code>toDate</code> (string, optional): The end date of the range for the video request in ISO 8601 format.</p>\n</li>\n</ul>\n<p><strong>Response Structure:</strong></p>\n<p>The method returns a <strong>task id</strong> which can be used to track the status of the request. You can check the <strong>status</strong> of the task using the method <strong>Task Status</strong>.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"02475433-1885-4093-8077-999e9068bb77","name":"Video Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Execute\",\n    \"params\": {\n      \"typeName\": \"Media\",\n      \"actionName\": \"Request\",\n      \"arguments\": {\n        \"type\": \"video\",\n        \"device\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"2022-11-14T00:00:00.000Z\",\n        \"toDate\": \"2022-11-14T00:00:20.000Z\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"id\": \"1d7f4ad0-6431-11ed-a94d-91b2582c870c\"\n    }\n}"}],"_postman_id":"f2b7645c-1981-4f2c-b6e1-79a9212c1c71"},{"name":"Snapshot Request","event":[{"listen":"test","script":{"id":"65108cc0-4d47-4828-a397-0b133e975b3f","exec":["var data = JSON.parse(responseBody);","postman.setEnvironmentVariable(\"taskId\", data.result.id)"],"type":"text/javascript","packages":{}}}],"id":"8e3ec317-be79-4a7e-88ed-2a5e8e0aafe9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Execute\",\n    \"params\": {\n      \"typeName\": \"Media\",\n      \"actionName\": \"Request\",\n      \"arguments\": {\n        \"type\": \"snapshots\",\n        \"device\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"2022-11-14T00:00:00.000Z\",\n        \"toDate\": \"2022-11-14T00:00:20.000Z\",\n        \"snapshotsInterval\": 60000\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"run-the-snapshots-request\">Run the snapshots request</h4>\n<p>This method can be used to fetch media content for a specific device.</p>\n<p><strong>HTTP Method:</strong> POST<br /><strong>Endpoint:</strong> {{url}}</p>\n<p><strong>Request Body:</strong><br />The request uses the <code>x-www-form-urlencoded</code> format. The following parameters can be included in the request:</p>\n<ul>\n<li><p><strong>type</strong> (string): Specifies the request type. Must be set to <code>\"snapshots\"</code>.</p>\n</li>\n<li><p><strong>device</strong> (string, optional): The ID of the device for which media content is requested.</p>\n</li>\n<li><p><strong>fromDate</strong> (string, optional): The start date for the range of video requests.</p>\n</li>\n<li><p><strong>toDate</strong> (string, optional): The end date for the range of video requests.</p>\n</li>\n</ul>\n<p><strong>Response Format:</strong><br />The method returns a <strong>task id</strong>. You can check the <strong>status</strong> of the task using the method <strong>Task Status</strong>.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"0b1a958f-0a0f-405d-8cca-f759c426fcd8","name":"Snapshot Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Execute\",\n    \"params\": {\n      \"typeName\": \"Media\",\n      \"actionName\": \"Request\",\n      \"arguments\": {\n        \"type\": \"snapshots\",\n        \"device\": { \"id\": \"{{deviceId}}\" },\n        \"fromDate\": \"2022-11-14T00:00:00.000Z\",\n        \"toDate\": \"2022-11-14T00:00:20.000Z\",\n        \"snapshotsInterval\": 60000\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"id\": \"1d7f4ad0-6431-11ed-a94d-91b2582c870c\"\n    }\n}"}],"_postman_id":"8e3ec317-be79-4a7e-88ed-2a5e8e0aafe9"},{"name":"Task status","id":"4bede953-3b9d-4ceb-b36f-b57eaca9cab8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"TaskStatus\",\n      \"search\": { \n        \"task\": { \"id\": \"{{taskId}}\" }\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-a-task-status\">Gets a task status</h4>\n<p>This method can be used to check the status and retrieve the result for a media request. It allows clients to query the status of a specific task identified by its unique task ID.</p>\n<p><strong>Request Parameters:</strong></p>\n<ul>\n<li><code>task</code> (optional): A reference to the unique identifier of the task whose status is being queried.</li>\n</ul>\n<p><strong>Expected Input:</strong></p>\n<p>The request should be sent as an <code>x-www-form-urlencoded</code> payload. The only parameter required is <code>task</code>, which should be a string representing the task ID.</p>\n<p><strong>Response Structure:</strong></p>\n<p>The response will typically include the status of the task and any relevant results associated with it. The exact structure of the response may vary based on the task's state.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">interface TaskStatusResponse {\n    // status of the task (e.g., pending, completed, failed)\n    status: string;\n    // additional details about the task result\n    result?: any;\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"69aeafad-17a6-4a3d-b063-5f5f56024e0b","name":"Task status","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"TaskStatus\",\n      \"search\": { \n        \"task\": { \"id\": \"{{taskId}}\" }\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}"},"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"status\": \"done\",\n        \"result\": [\n            {\n                \"channel\": 1,\n                \"date\": \"2022-11-14T00:00:00.000Z\",\n                \"url\": \"https://storage.googleapis.com/gotrax/unique_id_13_11_2022_19_00_EST_1.mp4\"\n            },\n            {\n                \"channel\": 2,\n                \"date\": \"2022-11-14T00:00:00.000Z\",\n                \"url\": \"https://storage.googleapis.com/gotrax/unique_id_13_11_2022_19_00_EST_2.mp4\"\n            }\n        ]\n    }\n}"}],"_postman_id":"4bede953-3b9d-4ceb-b36f-b57eaca9cab8"}],"id":"be7c13cf-49e0-41df-9382-eb24ec04134d","description":"<h2 id=\"endpoints-to-receive-media-data\"><strong>Endpoints to receive Media data.</strong></h2>\n<h3 id=\"typenames\">TypeNames</h3>\n<ul>\n<li>Media</li>\n<li>LiveMedia</li>\n<li>TaskStatus</li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li>search</li>\n<li>arguments</li>\n</ul>\n","_postman_id":"be7c13cf-49e0-41df-9382-eb24ec04134d"},{"name":"Custom Data","item":[{"name":"Get Entities","id":"11a35afe-a123-42b1-93d0-64121c0338a6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Get\",\n  \"params\": {\n    \"typeName\": \"CustomData\",\n    \"search\": {},\n    \"offset\": 0,\n    \"limit\": 100,\n    \"entityType\": \"my_custom_type\",\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"zenduone\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-custom-data\">Gets the Custom Data</h4>\n<p>This HTTP POST request is used to retrieve custom data based on specified search criteria. The request allows users to filter the results by providing relevant field names.</p>\n<p><strong>Expected Input Parameters:</strong></p>\n<p>The request body should be formatted as <code>x-www-form-urlencoded</code> with the following parameters:</p>\n<ul>\n<li><p><strong>CUSTOM_FIELD_NAME_1</strong> (text, optional): A field name used to filter the custom data.</p>\n</li>\n<li><p><strong>CUSTOM_FIELD_NAME_2</strong> (text, optional): Another field name used to further refine the search for custom data.</p>\n</li>\n</ul>\n<p><strong>Response Structure:</strong></p>\n<p>Upon a successful request, the response will return a JSON object containing an array of results. Each result will have the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": [\n    {\n      \"_id\": \"\",                  // Unique identifier for the custom data entry\n      \"name\": \"\",                 // Name associated with the custom data entry\n      \"zenduOneCustomerId\": \"\"    // Identifier linking to the customer in the ZenduOne system\n    }\n  ]\n}\n\n</code></pre>\n<p>This endpoint is versatile and can be used to return all, one, or a specific set of custom data entries based on the provided search criteria.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"068912c3-b45a-4fce-8722-8e1de8fd5cb9","name":"Get Custom Entities","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Get\",\n  \"params\": {\n    \"typeName\": \"CustomData\",\n    \"search\": {},\n    \"offset\": 0,\n    \"limit\": 100,\n    \"entityType\": \"my_custom_type\",\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"zenduone\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 24 Jun 2022 12:28:19 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"5010-LaGbGCG5HBfhDCTbP/C8K5gkPJ8\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=mjstiDJlK%2BGngKAm8f%2FO5yhZaidrju72yzCug4OPnIFkro2KaDcc7AZQ67PV9JPssQT7UkmBuirFJN5eaciq%2BqCUwTF5SZbWmUV1HW3yQemgL%2BvCggmnRJFNYiHJ5ZXsKMaMfZrRMnuN\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"7205766f1f02bbce-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"_id\": \"650d4da55412955a085111a2\",\n            \"name\": \"Entity Name\",\n            \"zenduOneCustomerId\": \"609be11221da8325b81f4b5d\",\n            \"unique_id\": \"unique_id\"\n        }\n    ]\n}"}],"_postman_id":"11a35afe-a123-42b1-93d0-64121c0338a6"},{"name":"Add Entity","id":"d88f492c-314f-4802-aade-c3dd1028352f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Add\",\n  \"params\": {\n    \"typeName\": \"CustomData\",\n    \"entity\": {\n      \"name\": \"Entity Name\"\n    },\n    \"entityType\": \"my_custom_type\",\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"zenduone\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"adds-a-new-custom-entity-to-the-database\">Adds a new Custom Entity to the database.</h4>\n<p>This HTTP POST request is designed to add a new custom entity to the database. It requires specific parameters to successfully create the entity.</p>\n<p><strong>Expected Input Parameters:</strong></p>\n<ul>\n<li><p><code>typeName</code>: The type of entity that is being added. This parameter is essential for categorizing the entity correctly.</p>\n</li>\n<li><p>Additional parameters can be included as needed for your integration. Each parameter should correspond to the fields defined in the entity structure.</p>\n</li>\n</ul>\n<p><strong>Entity Structure:</strong><br />The entity should adhere to the following structure, where each field is a string:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">interface Entity {\n    CUSTOM_FIELD_NAME_1: string; // Description of CUSTOM_FIELD_NAME_1\n    CUSTOM_FIELD_NAME_2: string; // Description of CUSTOM_FIELD_NAME_2\n    CUSTOM_FIELD_NAME_3: string; // Description of CUSTOM_FIELD_NAME_3\n}\n\n</code></pre>\n<p><strong>Response Structure:</strong><br />Upon a successful request, the API will return a response in the following format:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"result\": {\n        \"id\": \"\" // The unique identifier for the newly created entity\n    }\n}\n\n</code></pre>\n<p>This response includes the <code>id</code> of the newly created entity, which can be used for further operations or references.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"f55f4164-f0a1-443c-b197-b57c4f6f6624","name":"Add Entity","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Add\",\n  \"params\": {\n    \"typeName\": \"CustomData\",\n    \"entity\": {\n      \"name\": \"Entity Name\"\n    },\n    \"entityType\": \"my_custom_type\",\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"zenduone\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 07:31:37 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"4e-DfDlcTUclu2Atk6pbBTnKDe6+rI\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=R%2Fbu9IZKnqv3yt893wdru%2BKfezOq2FjraPC2akP4yldA6aIzI0RHaqTTx4%2FyIRRrDn8ig7%2FQbgbwDBhxQ7okE4tn%2BhV%2BLaEsd9mHdxo45mpGRrJUo1P1%2FVVLQNVXhwPC01tgyNaNecMN\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722cf6acad159bf8-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"id\": \"650d4da55412955a085111a2\"\n    }\n}"}],"_postman_id":"d88f492c-314f-4802-aade-c3dd1028352f"},{"name":"Update Entity","id":"3d892091-fead-4966-abc5-cb60861a79dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"CustomData\",\n    \"entity\": {\n     \"_id\": \"650d4da55412955a085111a2\",\n     \"name\": \"New Name\"\n    },\n    \"entityType\": \"my_custom_type\",\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"zenduone\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"modify-custom-entity\">Modify Custom Entity</h4>\n<p>This API endpoint allows you to modify a custom entity stored in the database. The request must include the <strong>_id</strong> of the entity that you wish to update.</p>\n<h5 id=\"purpose\">Purpose</h5>\n<p>The primary purpose of this request is to update the properties of a specific custom entity identified by its unique identifier.</p>\n<h5 id=\"input-parameters\">Input Parameters</h5>\n<p>The request body should be formatted as <code>x-www-form-urlencoded</code> and must include the following parameters:</p>\n<ul>\n<li><p><strong>_id</strong>: (string) The unique identifier of the custom entity to be modified.</p>\n</li>\n<li><p><strong>CUSTOM_FIELD_NAME_1</strong>: (string) The value for the first custom field of the entity.</p>\n</li>\n<li><p><strong>CUSTOM_FIELD_NAME_2</strong>: (string) The value for the second custom field of the entity.</p>\n</li>\n<li><p><strong>CUSTOM_FIELD_NAME_3</strong>: (string) The value for the third custom field of the entity.</p>\n</li>\n</ul>\n<h5 id=\"response-structure\">Response Structure</h5>\n<p>Upon a successful request, the response will return a JSON object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": {}\n}\n\n</code></pre>\n<p>The <code>result</code> object will contain the updated information of the custom entity, though the specific fields returned will depend on the implementation.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"8408a930-c723-4df2-8dab-1cb688d5f63a","name":"Update Entity","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Set\",\n  \"params\": {\n    \"typeName\": \"CustomData\",\n    \"entity\": {\n     \"_id\": \"650d4da55412955a085111a2\",\n     \"name\": \"New Name\"\n    },\n    \"entityType\": \"my_custom_type\",\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"zenduone\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 07:34:10 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=Ag%2B34DiZSA4ZqMpAk4NtkNd65%2Fg0WqSwZcwh1TiHgtx5ZwALEB1TedtGnUy5FeiHoXXYkk0qms8q1R2cMGK8uQ51AFs%2FiMwAk%2Fs8ga%2Bqqjsegjy7FK8T2N71nQVVvYni2YhmHoXwOTIO\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722cfa691d6c9bf8-FRA"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {}\n}"}],"_postman_id":"3d892091-fead-4966-abc5-cb60861a79dd"},{"name":"Upsert Entity","id":"86bed1df-032c-4046-863a-2f16441d93dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Upsert\",\n    \"params\": {\n        \"typeName\": \"CustomData\",\n        \"query\": {\n            \"name\": \"Old name\"\n        },\n        \"entity\": {\n            \"name\": \"New Name\"\n        },\n        \"entityType\": \"my_custom_type\",\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"zenduone\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"upsert-custom-entity\">Upsert Custom Entity</h4>\n<p>This request is used to perform an upsert operation on a custom entity within the database. An upsert operation will either update an existing entity if it exists or create a new entity if it does not.</p>\n<p><strong>Request Format:</strong></p>\n<ul>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>Content-Type:</strong> application/x-www-form-urlencoded</p>\n</li>\n</ul>\n<p>The request body should include the following parameters:</p>\n<ul>\n<li><p><strong>_id</strong> (string): The unique identifier for the entity.</p>\n</li>\n<li><p><strong>CUSTOM_FIELD_NAME_1</strong> (string): The first custom field associated with the entity.</p>\n</li>\n<li><p><strong>CUSTOM_FIELD_NAME_2</strong> (string): The second custom field associated with the entity.</p>\n</li>\n<li><p><strong>CUSTOM_FIELD_NAME_3</strong> (string): The third custom field associated with the entity.</p>\n</li>\n</ul>\n<p><strong>Response Structure:</strong><br />The response will return a JSON object indicating the result of the upsert operation. The structure of the response is as follows:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": {}\n}\n\n</code></pre>\n<p>The <code>result</code> object may contain additional information depending on the outcome of the operation.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"eba39e17-0e1f-4ce7-9c63-50dde9c83dbf","name":"Upsert Entity","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Upsert\",\n    \"params\": {\n        \"typeName\": \"CustomData\",\n        \"query\": {\n            \"name\": \"Old name\"\n        },\n        \"entity\": {\n            \"name\": \"New Name\"\n        },\n        \"entityType\": \"my_custom_type\",\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"zenduone\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 07:34:10 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=Ag%2B34DiZSA4ZqMpAk4NtkNd65%2Fg0WqSwZcwh1TiHgtx5ZwALEB1TedtGnUy5FeiHoXXYkk0qms8q1R2cMGK8uQ51AFs%2FiMwAk%2Fs8ga%2Bqqjsegjy7FK8T2N71nQVVvYni2YhmHoXwOTIO\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722cfa691d6c9bf8-FRA"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {}\n}"}],"_postman_id":"86bed1df-032c-4046-863a-2f16441d93dd"},{"name":"Delete Entity","id":"534a82ab-ba82-4c1d-925c-f82af03e4255","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Remove\",\n  \"params\": {\n    \"typeName\": \"CustomData\",\n    \"id\": \"68c4353dd5a75a4ce7865afa\",\n    \"entityType\": \"my_custom_type\",\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"zenduone\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"permanently-removes-custom-entity\">Permanently removes Custom Entity</h4>\n<p>This request is a <strong>POST</strong> request to the specified endpoint <code>{{url}}</code>. The purpose of this request is to permanently remove a Custom Entity.</p>\n<p><strong>Request Parameters:</strong></p>\n<ul>\n<li>The request body should be in <strong>x-www-form-urlencoded</strong> format. Each key in the request body is a separate string parameter. Currently, no specific parameters are provided in the payload.</li>\n</ul>\n<p><strong>Expected Response:</strong></p>\n<ul>\n<li><p>{ \"result\": {}}</p>\n</li>\n<li><p>The response contains a <code>result</code> object, which may hold additional information regarding the outcome of the request.</p>\n</li>\n</ul>\n<p><strong>Note:</strong> The Entity object must include an <code>_id</code> field as part of the request to identify the specific entity to be removed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">interface EntitySearch {\n    _id: string;\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"89b3980d-67ba-457d-8634-2a03d350cd90","name":"Delete User","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n  \"method\": \"Remove\",\n  \"params\": {\n    \"typeName\": \"CustomData\",\n    \"id\": \"68c4353dd5a75a4ce7865afa\",\n    \"entityType\": \"my_custom_type\",\n    \"credentials\": {\n      \"sessionId\": \"{{sessionId}}\"\n    }\n  },\n  \"type\": \"zenduone\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 07:36:29 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=v6x05lqPlcdu%2BLYXrkk6o69qyVJ2EnrdXIypoxILncZEwjGrgD58IjHEWZ8SgTnlQGeyzxUFTFdj1CJksgjTqxVIE60kTa5HQeBjmGRIGTK%2B5UPIx4NORQjauaRBQdN6U%2BJmLkOLpGgt\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722cfdcd09709bf8-FRA"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {}\n}"}],"_postman_id":"534a82ab-ba82-4c1d-925c-f82af03e4255"}],"id":"9c1494e7-051e-4001-bb33-978938d8cf17","description":"<h2 id=\"endpoints-to-manipulate-custom-data\"><strong>Endpoints to manipulate Custom data.</strong></h2>\n<h3 id=\"typename\">TypeName</h3>\n<ul>\n<li><em><strong>CustomData</strong></em></li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li><p><em><strong>search</strong></em></p>\n</li>\n<li><p><em><strong>entity</strong></em></p>\n</li>\n<li><p><em><strong>entityType</strong></em></p>\n</li>\n</ul>\n","_postman_id":"9c1494e7-051e-4001-bb33-978938d8cf17"},{"name":"File","item":[{"name":"Upload file","id":"790b5a79-2784-40d5-80b8-d91b487bd924","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"credentials","value":"{\n      \"sessionId\": \"{{sessionId}}\"\n    }","type":"text"},{"key":"file","value":"BINARY_DATA","type":"text"}]},"url":"https://one-service.zenduit.com/api/file/upload","description":"<h4 id=\"upload-file-to-cloud-storage\">Upload File to Cloud Storage</h4>\n<p>This API allows you to upload a file to cloud storage.</p>\n<p><strong>Request Method:</strong> <code>POST</code><br /><strong>Endpoint:</strong> <code>{{url}}/file/upload</code></p>\n<p><strong>Request Parameters:</strong></p>\n<ul>\n<li><code>file</code> (type: text): The file to be uploaded.</li>\n</ul>\n<p><strong>Expected Response:</strong><br />The API returns a URL pointing to the uploaded cloud file.</p>\n","urlObject":{"protocol":"https","path":["api","file","upload"],"host":["one-service","zenduit","com"],"query":[],"variable":[]}},"response":[{"id":"ba1c3c20-fcca-49cb-ae2e-ae55f5f01900","name":"Upload file","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"credentials","value":"{\n      \"sessionId\": \"{{sessionId}}\"\n    }","type":"text","uuid":"ad9301aa-83de-428f-bf33-f33af7d09074"},{"key":"file","type":"file","uuid":"6e2b5a64-e941-4630-ba0a-93942855454a","value":null}]},"url":"https://one-service.zenduit.com/api/file/upload"},"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"result\": \"https://storage.googleapis.com/customer-storage/f329c117-c205-4320-a8ac-b52dad7128ff_\"\n}"}],"_postman_id":"790b5a79-2784-40d5-80b8-d91b487bd924"}],"id":"51f935d5-19f7-4af8-9d8f-689e055c9ca5","_postman_id":"51f935d5-19f7-4af8-9d8f-689e055c9ca5","description":""},{"name":"Tracker Types","item":[{"name":"Get Tracker Types","id":"888408f0-c638-4e1e-8cd3-6d5b771ebffc","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"TrackerType\",\n      \"search\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-tracker-types\">Gets the Tracker Types</h4>\n<p>This request is used to retrieve various types of trackers available in the system. It allows users to obtain information about different tracker types that can be utilized for tracking purposes.</p>\n<p><strong>Request Format:</strong></p>\n<ul>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>Content-Type:</strong> application/x-www-form-urlencoded</p>\n</li>\n</ul>\n<p><strong>Expected Request Body:</strong></p>\n<ul>\n<li>The request body should be formatted as key-value pairs. Currently, no specific parameters are provided in the request body.</li>\n</ul>\n<p><strong>Response Structure:</strong><br />The response will be in JSON format and will contain the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": [\n    {\n      \"name\": \"string\",              // Name of the tracker type\n      \"description\": \"string\",       // Description of the tracker type\n      \"deviceCategory\": \"string\",    // Category of the device associated with the tracker\n      \"portalLink\": \"string\"         // Link to the portal for more information\n    }\n  ]\n}\n\n</code></pre>\n<p>Each object in the <code>result</code> array represents a different tracker type, providing essential details for each.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"e120af7a-cd16-4171-99b2-ce560e814898","name":"Get Tracker Types","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"TrackerType\",\n      \"search\": { },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"\"\n  }","type":"text"}]},"url":""},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 29 Jun 2022 11:31:04 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-powered-by","value":"Express"},{"key":"access-control-allow-origin","value":"*"},{"key":"vary","value":"X-HTTP-Method-Override"},{"key":"etag","value":"W/\"645c-zQ+QxyT7kEHcOdhrB1KkhyAltL8\""},{"key":"via","value":"1.1 google"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=cpUfxmXf65T8T4MBbzhkSRGXLPviAwp7bITZIxHlI7nJDrGRk9aMPsOWPzzaEBQmYNp9lIpsZRJZ%2F97nJcdt77JsYYH%2B2o9GZOG2%2B%2BoKRlkMUmy7iD48%2FOLssxgp%2BTJS40QmDx6UUBF6\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"722e55707cc99b3f-FRA"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"name\": \"Globalstar\",\n            \"description\": \"Globalstar some description\",\n            \"deviceCategory\": \"Asset Tracker\",\n            \"portalLink\": \"https://simplex.globalstar.com/en/home\"\n        },\n        {\n            \"name\": \"Smartwitness\",\n            \"description\": \"Smartwitness device\",\n            \"deviceCategory\": \"Camera\",\n            \"portalLink\": \"http://smartwitness.modularis.com/Workstation/SmartWitness.SmartClient.Shell.application\"\n        },\n        {\n            \"name\": \"XT4700\",\n            \"description\": \"XIRGO\",\n            \"deviceCategory\": \"Asset Tracker\",\n            \"portalLink\": \"\"\n        },\n        {\n            \"name\": \"MobileDispatch\",\n            \"description\": \"Mobile Dispatch\",\n            \"deviceCategory\": \"Fleet Tracker\",\n            \"portalLink\": \"https://zenduit.com/product/mobile-dispatch/\"\n        },\n        {\n            \"name\": \"BeWhere\",\n            \"description\": \"BeWhere\",\n            \"deviceCategory\": \"Asset Tracker\",\n            \"portalLink\": \"\"\n        },\n        {\n            \"name\": \"CustomTracker\",\n            \"description\": \"Custom Tracker\",\n            \"deviceCategory\": \"Asset Tracker\",\n            \"installationDocumentLink\": \"\",\n            \"portalLink\": \"\",\n            \"troubleshootingDocumentLink\": \"https://zenduit.com/\"\n        },\n        {\n            \"name\": \"SurfSight\",\n            \"description\": \"ZenduCAM SS\",\n            \"deviceCategory\": \"Camera\",\n            \"portalLink\": \"\"\n        },\n        {\n            \"name\": \"IRMA\",\n            \"description\": \"IRMA MATRIX\",\n            \"deviceCategory\": \"Camera\",\n            \"portalLink\": \"https://www.iris-sensing.com/products/irma-matrix/\"\n        },\n        {\n            \"name\": \"DMT\",\n            \"description\": \"Digital Matter Tracker\",\n            \"deviceCategory\": \"Asset Tracker\",\n            \"portalLink\": \"https://www.oemserver.com/\"\n        },\n        {\n            \"name\": \"Teltonika\",\n            \"description\": \"Teltonika Tracker\",\n            \"deviceCategory\": \"Fleet Tracker\",\n            \"portalLink\": \"\"\n        },\n        {\n            \"name\": \"TeltonikaBeacon\",\n            \"description\": \"Teltonika BLE Beacon\",\n            \"deviceCategory\": \"BEL Beacons\",\n            \"portalLink\": \"\"\n        },\n        {\n            \"name\": \"BLEBeacon\",\n            \"description\": \"General BLE Beacon\",\n            \"deviceCategory\": \"BEL Beacons\",\n            \"portalLink\": \"\"\n        },\n        {\n            \"name\": \"BLEReader\",\n            \"description\": \"General BLE Reader\",\n            \"deviceCategory\": \"BEL Beacons\",\n            \"portalLink\": \"\"\n        },\n        {\n            \"name\": \"StreamMax\",\n            \"description\": \"ZenduCAM ADP\",\n            \"deviceCategory\": \"Camera\",\n            \"portalLink\": \"\"\n        },\n        {\n            \"name\": \"Geotab\",\n            \"description\": \"Geotab\",\n            \"deviceCategory\": \"Fleet Tracker\",\n            \"portalLink\": \"https://geotab.github.io/sdk/software/introduction/\"\n        },\n        {\n            \"name\": \"TopFly\",\n            \"description\": \"TopFly\",\n            \"deviceCategory\": \"Fleet Tracker\",\n            \"portalLink\": \"\"\n        },\n        {\n            \"name\": \"Geosensorx\",\n            \"description\": \"GeosensorX\",\n            \"deviceCategory\": \"Camera\",\n            \"portalLink\": \"\"\n        },\n        {\n            \"name\": \"BinSensor\",\n            \"description\": \"Waste Bin Sensor\",\n            \"deviceCategory\": \"Asset Tracker\",\n            \"installationDocumentLink\": \"https://zenduit.com/install\",\n            \"portalLink\": \"\"\n        }\n    ]\n}"}],"_postman_id":"888408f0-c638-4e1e-8cd3-6d5b771ebffc"}],"id":"2753d472-28ed-40c8-9ff6-9eb1df06821d","_postman_id":"2753d472-28ed-40c8-9ff6-9eb1df06821d","description":""},{"name":"Comment","item":[{"name":"Get Comments","id":"fa04d985-20fd-40a8-87be-d83b8a095c42","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"Get\",\n    \"params\": {\n      \"typeName\": \"Comment\",\n      \"search\": { \n        \"parentId\": \"{{parentId}}\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"{{productType}}\"\n  }","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"gets-the-comments\">Gets the Comments</h4>\n<p>This endpoint allows you to retrieve comments associated with a specific parent entity. It is useful for fetching comments based on various filtering criteria.</p>\n<p><strong>Request Body Format:</strong><br />The request body should be sent as <code>x-www-form-urlencoded</code> and includes the following parameters:</p>\n<ul>\n<li><p><strong>parentId</strong> (required): The ID of the parent entity for which comments are being retrieved. This can be a single string or an array of strings.</p>\n</li>\n<li><p><strong>dateFrom</strong> (optional): The start date for filtering comments. It can be a string or a Date object.</p>\n</li>\n<li><p><strong>dateTo</strong> (optional): The end date for filtering comments. It can be a string or a Date object.</p>\n</li>\n<li><p><strong>limit</strong> (optional): The maximum number of comments to return. It should be a number.</p>\n</li>\n<li><p><strong>offset</strong> (optional): The number of comments to skip before starting to collect the result set. It should be a number.</p>\n</li>\n</ul>\n<p><strong>Response Structure:</strong><br />The response will typically include a list of comments that match the specified criteria. Each comment object will contain relevant details such as the comment text, author, and timestamps.</p>\n<p>Make sure to provide the necessary parameters in the request body to ensure accurate results.</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"fa04d985-20fd-40a8-87be-d83b8a095c42"}],"id":"2ae37b09-2cfb-4154-949b-4a8a94528d8c","description":"<h2 id=\"endpoints-to-fetch-comments-data\"><strong>Endpoints to fetch Comments data.</strong></h2>\n<h3 id=\"typename\">TypeName</h3>\n<ul>\n<li><em><strong>Comment</strong></em></li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li><em><strong>search</strong></em></li>\n</ul>\n","_postman_id":"2ae37b09-2cfb-4154-949b-4a8a94528d8c"},{"name":"Maintenance","item":[{"name":"CreateRepairRequest","id":"744e40d2-550f-40b1-91c4-3129509c2a63","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"CreateRepairRequest\",\n    \"params\": {\n        \"typeName\": \"Maintenance\",\n        \"payload\": {\n            \"details\": {\n                \"asset\": \"asset_id\",\n                \"reference\": \"REF-001\",\n                \"summary\": \"Replace air filter\",\n                \"maintenanceType\": \"Safety\",\n                \"dueDate\": \"2025-07-02T05:22:02.604Z\",\n                \"priority\": 0\n            },\n            \"addedProducts\": [],\n            \"status\": \"Pending Assignment\",\n            \"source\": \"Manual Request\",\n            \"loggedTime\": 0\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"create-new-service-request\">Create new service request</h4>\n<p><strong>Input Properties:</strong></p>\n<ul>\n<li><p><strong>id</strong>: Optional string - Unique identifier for the maintenance request (auto-generated if not provided)</p>\n</li>\n<li><p><strong>companyId</strong>: String - ID of the company that owns this maintenance request</p>\n</li>\n<li><p><strong>status</strong>: MaintenanceStatus - Current status of the maintenance request (e.g., pending, in-progress, completed)</p>\n</li>\n<li><p><strong>statusChangeDate</strong>: Date - Date when the status was last changed</p>\n</li>\n<li><p><strong>source</strong>: String - Origin/source of the maintenance request (e.g., 'manual', 'automated', 'inspection')</p>\n</li>\n<li><p><strong>createdBy</strong>: String - ID or name of the user who created this request</p>\n</li>\n<li><p><strong>createdDate</strong>: Date - Date and time when the request was created</p>\n</li>\n<li><p><strong>orderNumber</strong>: Optional number - Sequential order number for tracking purposes</p>\n</li>\n<li><p><strong>orderId</strong>: Optional string - Reference to a related order ID</p>\n</li>\n<li><p><strong>resolutionDate</strong>: Optional Date - Date when the maintenance was completed/resolved</p>\n</li>\n<li><p><strong>serviceProvider</strong>: Optional string - Name or ID of the service provider handling the maintenance</p>\n</li>\n<li><p><strong>serviceNumber</strong>: Optional number - Service provider's internal service number/reference</p>\n</li>\n<li><p><strong>loggedTime</strong>: Optional number - Total time logged for this maintenance request (in hours/minutes)</p>\n</li>\n<li><p><strong>addedToRepair</strong>: Optional boolean - Flag indicating if this request was added to a repair order</p>\n</li>\n<li><p><strong>resolvedBy</strong>: Optional string - ID or name of the user who resolved the request</p>\n</li>\n<li><p><strong>assignTo</strong>: Optional string - ID or name of the user currently assigned to handle this request</p>\n</li>\n<li><p><strong>assignedBy</strong>: Optional string - ID or name of the user who made the assignment</p>\n</li>\n<li><p><strong>assignDate</strong>: Optional Date - Date when the request was assigned</p>\n</li>\n<li><p><strong>tags</strong>: Optional string array - Tags for categorization and filtering</p>\n</li>\n<li><p><strong>odometer</strong>: Optional number - Vehicle/equipment odometer reading at request creation</p>\n</li>\n<li><p><strong>resolvedOdometer</strong>: Optional number - Vehicle/equipment odometer reading at resolution</p>\n</li>\n<li><p><strong>engineHours</strong>: Optional number - Engine hours at request creation</p>\n</li>\n<li><p><strong>resolvedEngineHours</strong>: Optional number - Engine hours at resolution</p>\n</li>\n<li><p><strong>ruleId</strong>: Optional string - ID of the maintenance rule that triggered this request (for automated requests)</p>\n</li>\n<li><p><strong>cancellationReason</strong>: Optional string - Reason provided if the request was cancelled</p>\n</li>\n<li><p><strong>details</strong>: Object - Core maintenance request details containing:</p>\n<ul>\n<li><p><code>asset</code>: String - ID or name of the asset requiring maintenance</p>\n</li>\n<li><p><code>maintenanceType</code>: String - Type of maintenance (e.g., 'preventive', 'corrective', 'emergency')</p>\n</li>\n<li><p><code>reference</code>: String - Reference number or code for this maintenance type</p>\n</li>\n<li><p><code>dueDate</code>: Date - Scheduled due date for the maintenance</p>\n</li>\n<li><p><code>summary</code>: String - Brief description or summary of the maintenance work needed</p>\n</li>\n<li><p><code>priority</code>: MaintenancePriority - Priority level of the maintenance request</p>\n</li>\n</ul>\n</li>\n<li><p><strong>addedProducts</strong>: ServiceRequestProduct array - Products/parts added to this service request</p>\n</li>\n<li><p><strong>totalCost</strong>: Optional number - Total cost of the maintenance request (parts + service + labour). Generated on backend for API filtering/sorting</p>\n</li>\n<li><p><strong>partsCost</strong>: Optional number - Total cost of parts/products used. Generated on backend for API filtering/sorting</p>\n</li>\n<li><p><strong>serviceCost</strong>: Optional number - Total service fees. Generated on backend for API filtering/sorting</p>\n</li>\n<li><p><strong>labourCost</strong>: Optional number - Total labour costs. Generated on backend for API filtering/sorting</p>\n</li>\n<li><p><strong>productLabours</strong>: String - Concatenated string of product labour descriptions for search/filtering. Generated on backend for API filtering/sorting</p>\n</li>\n</ul>\n<p><strong>Expected Input Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">/**\n * Represents a maintenance service request for company assets/equipment.\n * This interface tracks the complete lifecycle of maintenance requests from creation to resolution.\n */\ninterface MaintenanceServiceRequest {\n  /** Unique identifier for the maintenance request (auto-generated if not provided) */\n  id?: string;\n  /** ID of the company that owns this maintenance request */\n  companyId: string;\n  /** Current status of the maintenance request (e.g., pending, in-progress, completed) */\n  status: MaintenanceStatus;\n  /** Date when the status was last changed */\n  statusChangeDate: Date;\n  /** Origin/source of the maintenance request (e.g., 'manual', 'automated', 'inspection') */\n  source: string;\n  /** ID or name of the user who created this request */\n  createdBy: string;\n  /** Date and time when the request was created */\n  createdDate: Date;\n  /** Optional sequential order number for tracking purposes */\n  orderNumber?: number;\n  /** Optional reference to a related order ID */\n  orderId?: string;\n  /** Date when the maintenance was completed/resolved */\n  resolutionDate?: Date;\n  /** Name or ID of the service provider handling the maintenance */\n  serviceProvider?: string;\n  /** Service provider's internal service number/reference */\n  serviceNumber?: number;\n  /** Total time logged for this maintenance request (in hours/minutes) */\n  loggedTime?: number;\n  /** Flag indicating if this request was added to a repair order */\n  addedToRepair?: boolean;\n  /** ID or name of the user who resolved the request */\n  resolvedBy?: string;\n  /** ID or name of the user currently assigned to handle this request */\n  assignTo?: string;\n  /** ID or name of the user who made the assignment */\n  assignedBy?: string;\n  /** Date when the request was assigned */\n  assignDate?: Date;\n  /** Optional array of tags for categorization and filtering */\n  tags?: string[];\n  /** Vehicle/equipment odometer reading at request creation */\n  odometer?: number;\n  /** Vehicle/equipment odometer reading at resolution */\n  resolvedOdometer?: number;\n  /** Engine hours at request creation */\n  engineHours?: number;\n  /** Engine hours at resolution */\n  resolvedEngineHours?: number;\n  /** ID of the maintenance rule that triggered this request (for automated requests) */\n  ruleId?: string;\n  /** Reason provided if the request was cancelled */\n  cancellationReason?: string;\n  /** Core maintenance request details */\n  details: {\n    /** ID or name of the asset requiring maintenance */\n    asset: string;\n    /** Type of maintenance (e.g., 'preventive', 'corrective', 'emergency') */\n    maintenanceType: string;\n    /** Reference number or code for this maintenance type */\n    reference: string;\n    /** Scheduled due date for the maintenance */\n    dueDate: Date;\n    /** Brief description or summary of the maintenance work needed */\n    summary: string;\n    /** Priority level of the maintenance request */\n    priority: MaintenancePriority;\n  };\n  /** Array of products/parts added to this service request */\n  addedProducts: ServiceRequestProduct[];\n  /**\n   * Cost breakdown fields - automatically calculated on the backend\n   * These props are generated on the backend and are used for table API filtering/sorting\n   */\n  /** Total cost of the maintenance request (parts + service + labour) */\n  totalCost?: number;\n  /** Total cost of parts/products used */\n  partsCost?: number;\n  /** Total service fees */\n  serviceCost?: number;\n  /** Total labour costs */\n  labourCost?: number;\n  /** Concatenated string of product labour descriptions for search/filtering */\n  productLabours: string;\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"1d193115-355d-48de-9c73-d3891fcd5e28","name":"CreateRepairRequest","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"CreateRepairOrder\",\n    \"params\": {\n        \"typeName\": \"Maintenance\",\n        \"payload\": {\n            \"details\": {\n                \"asset\": \"asset_id\",\n                \"reference\": \"REF-001\",\n                \"summary\": \"Replace air filter\",\n                \"maintenanceType\": \"Safety\",\n                \"dueDate\": \"2025-07-02T05:22:02.604Z\",\n                \"priority\": 0\n            },\n            \"addedProducts\": [],\n            \"status\": \"Pending Assignment\",\n            \"source\": \"Manual Request\",\n            \"loggedTime\": 0\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"_id\": \"document_id\",\n        \"companyId\": \"company_id\",\n        \"id\": \"service_request_id\",\n        \"addedProducts\": [],\n        \"createdBy\": \"user_id\",\n        \"createdDate\": \"2025-07-02T05:22:17.534Z\",\n        \"details\": {\n            \"asset\": \"asset_id\",\n            \"reference\": \"123\",\n            \"summary\": \"123\",\n            \"maintenanceType\": \"Safety\",\n            \"dueDate\": \"2025-07-02T05:22:02.604Z\",\n            \"priority\": 0\n        },\n        \"engineHours\": null,\n        \"labourCost\": 0,\n        \"loggedTime\": 0,\n        \"odometer\": null,\n        \"partsCost\": 0,\n        \"productLabours\": \"\",\n        \"serviceCost\": 0,\n        \"serviceNumber\": 2579,\n        \"source\": \"Manual Request\",\n        \"status\": \"Pending Assignment\",\n        \"statusChangeDate\": \"2025-07-02T05:22:17.534Z\",\n        \"tags\": [],\n        \"totalCost\": 0\n    }\n}"}],"_postman_id":"744e40d2-550f-40b1-91c4-3129509c2a63"},{"name":"UpdateRepairRequest","id":"1a4a1631-e10f-4ecd-8612-dc88c849148c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"UpdateRepairRequest\",\n    \"params\": {\n        \"typeName\": \"Maintenance\",\n        \"payload\": {\n            \"details\": {\n                \"asset\": \"asset_id\",\n                \"maintenanceType\": \"Safety\",\n                \"reference\": \"SR-2025-001\",\n                \"dueDate\": \"2025-07-18T10:00:00.000Z\",\n                \"summary\": \"Safety inspection required\",\n                \"priority\": 3\n            },\n            \"addedProducts\": [],\n            \"status\": \"Assigned\",\n            \"source\": \"Manual Request\",\n            \"loggedTime\": 0,\n            \"id\": \"service_request_id\",\n            \"serviceNumber\": 2580,\n            \"tags\": [],\n            \"orderId\": \"repair_order_id\",\n            \"orderNumber\": 169\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"update-repair-order\">Update Repair Order</h4>\n<p><strong>Input Properties:</strong></p>\n<ul>\n<li><p><strong>id</strong>: String - Unique identifier for the repair order</p>\n</li>\n<li><p><strong>companyId</strong>: String - ID of the company that owns this repair order</p>\n</li>\n<li><p><strong>orderNumber</strong>: Number - Sequential order number for tracking and reference purposes</p>\n</li>\n<li><p><strong>createdBy</strong>: String - ID or name of the user who created this repair order</p>\n</li>\n<li><p><strong>createdDate</strong>: Date - Date and time when the repair order was created</p>\n</li>\n<li><p><strong>resolvedBy</strong>: Optional string - ID or name of the user who resolved/completed the repair order</p>\n</li>\n<li><p><strong>resolutionDate</strong>: Optional Date - Date when the repair order was completed/resolved</p>\n</li>\n<li><p><strong>details</strong>: Object - Core repair order details containing:</p>\n<ul>\n<li><p><code>asset</code>: String - ID or name of the asset requiring repair</p>\n</li>\n<li><p><code>priority</code>: MaintenancePriority - Priority level of the repair order</p>\n</li>\n<li><p><code>assignTo</code>: String - ID or name of the user assigned to handle this repair order</p>\n</li>\n<li><p><code>serviceProvider</code>: Optional string - Name or ID of the service provider handling the repair</p>\n</li>\n<li><p><code>summary</code>: Optional string - Brief description or summary of the repair work needed</p>\n</li>\n<li><p><code>dueDate</code>: Date - Scheduled due date for the repair completion</p>\n</li>\n<li><p><code>reference</code>: Optional string - Reference number or code for this repair type</p>\n</li>\n</ul>\n</li>\n<li><p><strong>addedServices</strong>: String array - List of services added to this repair order</p>\n</li>\n<li><p><strong>summary</strong>: OrderSummary - Summary information and totals for the repair order</p>\n</li>\n<li><p><strong>status</strong>: MaintenanceStatus - Current status of the repair order (e.g., pending, in-progress, completed)</p>\n</li>\n<li><p><strong>statusChangeDate</strong>: Date - Date when the status was last changed</p>\n</li>\n<li><p><strong>assignedBy</strong>: String - ID or name of the user who made the assignment</p>\n</li>\n<li><p><strong>assignDate</strong>: Date - Date when the repair order was assigned</p>\n</li>\n<li><p><strong>cancellationReason</strong>: Optional string - Reason provided if the repair order was cancelled</p>\n</li>\n<li><p><strong>productLabours</strong>: Object array - Product labour information generated on backend for API filtering/sorting. Each object contains:</p>\n<ul>\n<li><p><code>id</code>: String - Unique identifier for the product labour</p>\n</li>\n<li><p><code>name</code>: String - Name or description of the product labour</p>\n</li>\n</ul>\n</li>\n<li><p><strong>serviceRequests</strong>: Number array - Array of service request IDs associated with this repair order. Generated on backend for API filtering/sorting</p>\n</li>\n</ul>\n<p><strong>Expected Input Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">export interface RepairOrder {\n    /** Unique identifier for the repair order */\n    id: string;\n    /** ID of the company that owns this repair order */\n    companyId: string;\n    /** Sequential order number for tracking and reference purposes */\n    orderNumber: number;\n    /** ID or name of the user who created this repair order */\n    createdBy: string;\n    /** Date and time when the repair order was created */\n    createdDate: Date;\n    /** ID or name of the user who resolved/completed the repair order */\n    resolvedBy?: string;\n    /** Date when the repair order was completed/resolved */\n    resolutionDate?: Date;\n    /** Core repair order details */\n    details: {\n        /** ID or name of the asset requiring repair */\n        asset: string;\n        /** Priority level of the repair order */\n        priority: MaintenancePriority;\n        /** ID or name of the user assigned to handle this repair order */\n        assignTo: string;\n        /** Name or ID of the service provider handling the repair */\n        serviceProvider?: string;\n        /** Brief description or summary of the repair work needed */\n        summary?: string;\n        /** Scheduled due date for the repair completion */\n        dueDate: Date;\n        /** Reference number or code for this repair type */\n        reference?: string;\n    };\n    /** List of services added to this repair order */\n    addedServices: string[];\n    /** Summary information and totals for the repair order */\n    summary: OrderSummary;\n    /** Current status of the repair order (e.g., pending, in-progress, completed) */\n    status: MaintenanceStatus;\n    /** Date when the status was last changed */\n    statusChangeDate: Date;\n    /** ID or name of the user who made the assignment */\n    assignedBy: string;\n    /** Date when the repair order was assigned */\n    assignDate: Date;\n    /** Reason provided if the repair order was cancelled */\n    cancellationReason?: string;\n    /**\n     * These props are generated on the backend and are used for table API filtering/sorting\n     */\n    /** Product labour information with ID and name for each item */\n    productLabours: {\n        /** Unique identifier for the product labour */\n        id: string,\n        /** Name or description of the product labour */\n        name: string\n    }[];\n    /** Array of service request IDs associated with this repair order */\n    serviceRequests: number[];\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"6cafa259-9bb1-49dd-9c1e-8ec955d935ea","name":"UpdateRepairRequest","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"UpdateRepairRequest\",\n    \"params\": {\n        \"typeName\": \"Maintenance\",\n        \"payload\": {\n            \"details\": {\n                \"asset\": \"asset_id\",\n                \"maintenanceType\": \"Safety\",\n                \"reference\": \"SR-2025-001\",\n                \"dueDate\": \"2025-07-18T10:00:00.000Z\",\n                \"summary\": \"Safety inspection required\",\n                \"priority\": 3\n            },\n            \"addedProducts\": [],\n            \"status\": \"Assigned\",\n            \"source\": \"Manual Request\",\n            \"loggedTime\": 0,\n            \"id\": \"service_request_id\",\n            \"serviceNumber\": 2580,\n            \"tags\": [],\n            \"orderId\": \"repair_order_id\",\n            \"orderNumber\": 169\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true\n}"}],"_postman_id":"1a4a1631-e10f-4ecd-8612-dc88c849148c"},{"name":"ChangeRequestStatus","id":"52f94023-3fe0-423d-94b6-0a0d4c2e47e8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"ChangeRequestStatus\",\n    \"params\": {\n        \"typeName\": \"Maintenance\",\n        \"payload\": {\n            \"id\": \"request_id\",\n            \"status\": \"status\"\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"status-update-request\">Status Update Request</h4>\n<p>This request is used to update the status of an existing request in the system. The request to be updated is identified by its <code>id</code>, and the new status value is provided to change the current state of the request.</p>\n<p><strong>Request Parameters:</strong></p>\n<ul>\n<li><p><strong>id</strong>: String - Unique identifier for the request that needs to be updated</p>\n</li>\n<li><p><strong>status</strong>: String - New status value to be applied to the request (e.g., \"Pending\", \"In Progress\", \"Completed\", \"Cancelled\")</p>\n</li>\n</ul>\n<p><strong>Expected Input Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    // Unique identifier for the request\n    \"id\": \"request_id\",\n    // Current status of the request (e.g., \"Pending\", \"In Progress\", \"Completed\", \"Cancelled\")\n    \"status\": \"Completed\"\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"ac1b334b-0fa5-4b95-be8b-6a0746df4c66","name":"ChangeRequestStatus","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"ChangeRequestStatus\",\n    \"params\": {\n        \"typeName\": \"Maintenance\",\n        \"payload\": {\n            \"id\": \"request_id\",\n            \"status\": \"Completed\"\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true\n}"}],"_postman_id":"52f94023-3fe0-423d-94b6-0a0d4c2e47e8"},{"name":"CreateRepairOrder","id":"6deac457-7d95-4b4c-8ae0-98aabb4ad6e5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"CreateRepairOrder\",\n    \"params\": {\n        \"typeName\": \"Maintenance\",\n        \"payload\": {\n            \"details\": {\n                \"asset\": \"asset_id\",\n                \"priority\": 0,\n                \"serviceProvider\": \"service_provider_id\",\n                \"summary\": \"\",\n                \"assignTo\": \"technician_id\",\n                \"dueDate\": \"2025-07-15T14:30:00.000Z\",\n                \"reference\": \"WO-2025-001\"\n            },\n            \"addedServices\": [\n                \"service_request_id\"\n            ],\n            \"summary\": {\n                \"estimatedTime\": 0,\n                \"loggedTime\": 0,\n                \"service\": 0,\n                \"goods\": 0,\n                \"subtotal\": 0,\n                \"discount\": {\n                    \"value\": 0,\n                    \"type\": \"Dollar\",\n                    \"finalValue\": 0\n                },\n                \"tax\": {\n                    \"value\": 0,\n                    \"type\": \"Dollar\",\n                    \"finalValue\": 0\n                },\n                \"totalCost\": 0\n            },\n            \"status\": \"Assigned\",\n            \"cancellationReason\": \"\"\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"create-new-repair-order\">Create New Repair Order</h4>\n<p><strong>Input Properties:</strong></p>\n<ul>\n<li><p><strong>id</strong>: String - Unique identifier for the repair order</p>\n</li>\n<li><p><strong>companyId</strong>: String - ID of the company that owns this repair order</p>\n</li>\n<li><p><strong>orderNumber</strong>: Number - Sequential order number for tracking and reference purposes</p>\n</li>\n<li><p><strong>createdBy</strong>: String - ID or name of the user who created this repair order</p>\n</li>\n<li><p><strong>createdDate</strong>: Date - Date and time when the repair order was created</p>\n</li>\n<li><p><strong>resolvedBy</strong>: Optional string - ID or name of the user who resolved/completed the repair order</p>\n</li>\n<li><p><strong>resolutionDate</strong>: Optional Date - Date when the repair order was completed/resolved</p>\n</li>\n<li><p><strong>details</strong>: Object - Core repair order details containing:</p>\n<ul>\n<li><p><code>asset</code>: String - ID or name of the asset requiring repair</p>\n</li>\n<li><p><code>priority</code>: MaintenancePriority - Priority level of the repair order</p>\n</li>\n<li><p><code>assignTo</code>: String - ID or name of the user assigned to handle this repair order</p>\n</li>\n<li><p><code>serviceProvider</code>: Optional string - Name or ID of the service provider handling the repair</p>\n</li>\n<li><p><code>summary</code>: Optional string - Brief description or summary of the repair work needed</p>\n</li>\n<li><p><code>dueDate</code>: Date - Scheduled due date for the repair completion</p>\n</li>\n<li><p><code>reference</code>: Optional string - Reference number or code for this repair type</p>\n</li>\n</ul>\n</li>\n<li><p><strong>addedServices</strong>: String array - List of services added to this repair order</p>\n</li>\n<li><p><strong>summary</strong>: OrderSummary - Summary information and totals for the repair order</p>\n</li>\n<li><p><strong>status</strong>: MaintenanceStatus - Current status of the repair order (e.g., pending, in-progress, completed)</p>\n</li>\n<li><p><strong>statusChangeDate</strong>: Date - Date when the status was last changed</p>\n</li>\n<li><p><strong>assignedBy</strong>: String - ID or name of the user who made the assignment</p>\n</li>\n<li><p><strong>assignDate</strong>: Date - Date when the repair order was assigned</p>\n</li>\n<li><p><strong>cancellationReason</strong>: Optional string - Reason provided if the repair order was cancelled</p>\n</li>\n<li><p><strong>productLabours</strong>: Object array - Product labour information generated on backend for API filtering/sorting. Each object contains:</p>\n<ul>\n<li><p><code>id</code>: String - Unique identifier for the product labour</p>\n</li>\n<li><p><code>name</code>: String - Name or description of the product labour</p>\n</li>\n</ul>\n</li>\n<li><p><strong>serviceRequests</strong>: Number array - Array of service request IDs associated with this repair order. Generated on backend for API filtering/sorting</p>\n</li>\n</ul>\n<p><strong>Expected Input Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">export interface RepairOrder {\n    /** Unique identifier for the repair order */\n    id: string;\n    /** ID of the company that owns this repair order */\n    companyId: string;\n    /** Sequential order number for tracking and reference purposes */\n    orderNumber: number;\n    /** ID or name of the user who created this repair order */\n    createdBy: string;\n    /** Date and time when the repair order was created */\n    createdDate: Date;\n    /** ID or name of the user who resolved/completed the repair order */\n    resolvedBy?: string;\n    /** Date when the repair order was completed/resolved */\n    resolutionDate?: Date;\n    /** Core repair order details */\n    details: {\n        /** ID or name of the asset requiring repair */\n        asset: string;\n        /** Priority level of the repair order */\n        priority: MaintenancePriority;\n        /** ID or name of the user assigned to handle this repair order */\n        assignTo: string;\n        /** Name or ID of the service provider handling the repair */\n        serviceProvider?: string;\n        /** Brief description or summary of the repair work needed */\n        summary?: string;\n        /** Scheduled due date for the repair completion */\n        dueDate: Date;\n        /** Reference number or code for this repair type */\n        reference?: string;\n    };\n    /** List of services added to this repair order */\n    addedServices: string[];\n    /** Summary information and totals for the repair order */\n    summary: OrderSummary;\n    /** Current status of the repair order (e.g., pending, in-progress, completed) */\n    status: MaintenanceStatus;\n    /** Date when the status was last changed */\n    statusChangeDate: Date;\n    /** ID or name of the user who made the assignment */\n    assignedBy: string;\n    /** Date when the repair order was assigned */\n    assignDate: Date;\n    /** Reason provided if the repair order was cancelled */\n    cancellationReason?: string;\n    /**\n     * These props are generated on the backend and are used for table API filtering/sorting\n     */\n    /** Product labour information with ID and name for each item */\n    productLabours: {\n        /** Unique identifier for the product labour */\n        id: string,\n        /** Name or description of the product labour */\n        name: string\n    }[];\n    /** Array of service request IDs associated with this repair order */\n    serviceRequests: number[];\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"34cdbc01-c841-4b82-82b3-fe58e2c72d73","name":"CreateRepairOrder","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"CreateRepairOrder\",\n    \"params\": {\n        \"typeName\": \"Maintenance\",\n        \"payload\": {\n            \"details\": {\n                \"asset\": \"asset_id\",\n                \"priority\": 0,\n                \"serviceProvider\": \"service_provider_id\",\n                \"summary\": \"\",\n                \"assignTo\": \"technician_id\",\n                \"dueDate\": \"2025-07-15T14:30:00.000Z\",\n                \"reference\": \"WO-2025-001\"\n            },\n            \"addedServices\": [\n                \"service_request_id\"\n            ],\n            \"summary\": {\n                \"estimatedTime\": 0,\n                \"loggedTime\": 0,\n                \"service\": 0,\n                \"goods\": 0,\n                \"subtotal\": 0,\n                \"discount\": {\n                    \"value\": 0,\n                    \"type\": \"Dollar\",\n                    \"finalValue\": 0\n                },\n                \"tax\": {\n                    \"value\": 0,\n                    \"type\": \"Dollar\",\n                    \"finalValue\": 0\n                },\n                \"totalCost\": 0\n            },\n            \"status\": \"Assigned\",\n            \"cancellationReason\": \"\"\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"repairOrder\": {\n        \"_id\": \"document_id\",\n        \"companyId\": \"company_id\",\n        \"id\": \"repair_order_id\",\n        \"addedServices\": [\n            \"service_request_id\"\n        ],\n        \"assignDate\": \"2025-07-15T14:30:00.000Z\",\n        \"assignedBy\": \"manager_id\",\n        \"createdBy\": \"user_id\",\n        \"createdDate\": \"2025-07-15T14:30:00.000Z\",\n        \"details\": {\n            \"asset\": \"asset_id\",\n            \"priority\": 0,\n            \"serviceProvider\": \"service_provider_id\",\n            \"summary\": \"\",\n            \"assignTo\": \"technician_id\",\n            \"dueDate\": \"2025-07-20T16:00:00.000Z\",\n            \"reference\": \"RO-2025-170\"\n        },\n        \"orderNumber\": 170,\n        \"productLabours\": [],\n        \"serviceRequests\": [\n            2579\n        ],\n        \"status\": \"Assigned\",\n        \"statusChangeDate\": \"2025-07-15T14:30:00.000Z\",\n        \"summary\": {\n            \"estimatedTime\": 0,\n            \"loggedTime\": 0,\n            \"service\": 0,\n            \"goods\": 0,\n            \"subtotal\": 0,\n            \"discount\": {\n                \"value\": 0,\n                \"type\": \"Dollar\",\n                \"finalValue\": 0\n            },\n            \"tax\": {\n                \"value\": 0,\n                \"type\": \"Dollar\",\n                \"finalValue\": 0\n            },\n            \"totalCost\": 0\n        }\n    }\n}"}],"_postman_id":"6deac457-7d95-4b4c-8ae0-98aabb4ad6e5"},{"name":"UpdateRepairOrder","id":"1e9b92af-eec9-4410-95d0-f946b3ef4e2d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"UpdateRepairOrder\",\n    \"params\": {\n        \"typeName\": \"Maintenance\",\n        \"payload\": {\n            \"details\": {\n                \"asset\": \"asset_id\",\n                \"maintenanceType\": \"Safety\",\n                \"reference\": \"SR-2025-001\",\n                \"dueDate\": \"2025-07-18T10:00:00.000Z\",\n                \"summary\": \"Safety inspection required\",\n                \"priority\": 3\n            },\n            \"addedProducts\": [],\n            \"status\": \"Assigned\",\n            \"source\": \"Manual Request\",\n            \"loggedTime\": 0,\n            \"id\": \"service_request_id\",\n            \"serviceNumber\": 2580,\n            \"tags\": [],\n            \"orderId\": \"repair_order_id\",\n            \"orderNumber\": 169\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"update-repair-order\">Update Repair Order</h4>\n<p><strong>Input Properties:</strong></p>\n<ul>\n<li><p><strong>id</strong>: String - Unique identifier for the repair order</p>\n</li>\n<li><p><strong>companyId</strong>: String - ID of the company that owns this repair order</p>\n</li>\n<li><p><strong>orderNumber</strong>: Number - Sequential order number for tracking and reference purposes</p>\n</li>\n<li><p><strong>createdBy</strong>: String - ID or name of the user who created this repair order</p>\n</li>\n<li><p><strong>createdDate</strong>: Date - Date and time when the repair order was created</p>\n</li>\n<li><p><strong>resolvedBy</strong>: Optional string - ID or name of the user who resolved/completed the repair order</p>\n</li>\n<li><p><strong>resolutionDate</strong>: Optional Date - Date when the repair order was completed/resolved</p>\n</li>\n<li><p><strong>details</strong>: Object - Core repair order details containing:</p>\n<ul>\n<li><p><code>asset</code>: String - ID or name of the asset requiring repair</p>\n</li>\n<li><p><code>priority</code>: MaintenancePriority - Priority level of the repair order</p>\n</li>\n<li><p><code>assignTo</code>: String - ID or name of the user assigned to handle this repair order</p>\n</li>\n<li><p><code>serviceProvider</code>: Optional string - Name or ID of the service provider handling the repair</p>\n</li>\n<li><p><code>summary</code>: Optional string - Brief description or summary of the repair work needed</p>\n</li>\n<li><p><code>dueDate</code>: Date - Scheduled due date for the repair completion</p>\n</li>\n<li><p><code>reference</code>: Optional string - Reference number or code for this repair type</p>\n</li>\n</ul>\n</li>\n<li><p><strong>addedServices</strong>: String array - List of services added to this repair order</p>\n</li>\n<li><p><strong>summary</strong>: OrderSummary - Summary information and totals for the repair order</p>\n</li>\n<li><p><strong>status</strong>: MaintenanceStatus - Current status of the repair order (e.g., pending, in-progress, completed)</p>\n</li>\n<li><p><strong>statusChangeDate</strong>: Date - Date when the status was last changed</p>\n</li>\n<li><p><strong>assignedBy</strong>: String - ID or name of the user who made the assignment</p>\n</li>\n<li><p><strong>assignDate</strong>: Date - Date when the repair order was assigned</p>\n</li>\n<li><p><strong>cancellationReason</strong>: Optional string - Reason provided if the repair order was cancelled</p>\n</li>\n<li><p><strong>productLabours</strong>: Object array - Product labour information generated on backend for API filtering/sorting. Each object contains:</p>\n<ul>\n<li><p><code>id</code>: String - Unique identifier for the product labour</p>\n</li>\n<li><p><code>name</code>: String - Name or description of the product labour</p>\n</li>\n</ul>\n</li>\n<li><p><strong>serviceRequests</strong>: Number array - Array of service request IDs associated with this repair order. Generated on backend for API filtering/sorting</p>\n</li>\n</ul>\n<p><strong>Expected Input Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-typescript\">export interface RepairOrder {\n    /** Unique identifier for the repair order */\n    id: string;\n    /** ID of the company that owns this repair order */\n    companyId: string;\n    /** Sequential order number for tracking and reference purposes */\n    orderNumber: number;\n    /** ID or name of the user who created this repair order */\n    createdBy: string;\n    /** Date and time when the repair order was created */\n    createdDate: Date;\n    /** ID or name of the user who resolved/completed the repair order */\n    resolvedBy?: string;\n    /** Date when the repair order was completed/resolved */\n    resolutionDate?: Date;\n    /** Core repair order details */\n    details: {\n        /** ID or name of the asset requiring repair */\n        asset: string;\n        /** Priority level of the repair order */\n        priority: MaintenancePriority;\n        /** ID or name of the user assigned to handle this repair order */\n        assignTo: string;\n        /** Name or ID of the service provider handling the repair */\n        serviceProvider?: string;\n        /** Brief description or summary of the repair work needed */\n        summary?: string;\n        /** Scheduled due date for the repair completion */\n        dueDate: Date;\n        /** Reference number or code for this repair type */\n        reference?: string;\n    };\n    /** List of services added to this repair order */\n    addedServices: string[];\n    /** Summary information and totals for the repair order */\n    summary: OrderSummary;\n    /** Current status of the repair order (e.g., pending, in-progress, completed) */\n    status: MaintenanceStatus;\n    /** Date when the status was last changed */\n    statusChangeDate: Date;\n    /** ID or name of the user who made the assignment */\n    assignedBy: string;\n    /** Date when the repair order was assigned */\n    assignDate: Date;\n    /** Reason provided if the repair order was cancelled */\n    cancellationReason?: string;\n    /**\n     * These props are generated on the backend and are used for table API filtering/sorting\n     */\n    /** Product labour information with ID and name for each item */\n    productLabours: {\n        /** Unique identifier for the product labour */\n        id: string,\n        /** Name or description of the product labour */\n        name: string\n    }[];\n    /** Array of service request IDs associated with this repair order */\n    serviceRequests: number[];\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"c7d7bdd4-6645-49a1-bdb9-dafaceda65e9","name":"UpdateRepairOrder","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"UpdateRepairOrder\",\n    \"params\": {\n        \"typeName\": \"Maintenance\",\n        \"payload\": {\n            \"details\": {\n                \"asset\": \"asset_id\",\n                \"maintenanceType\": \"Safety\",\n                \"reference\": \"SR-2025-001\",\n                \"dueDate\": \"2025-07-18T10:00:00.000Z\",\n                \"summary\": \"Safety inspection required\",\n                \"priority\": 3\n            },\n            \"addedProducts\": [],\n            \"status\": \"Assigned\",\n            \"source\": \"Manual Request\",\n            \"loggedTime\": 0,\n            \"id\": \"service_request_id\",\n            \"serviceNumber\": 2580,\n            \"tags\": [],\n            \"orderId\": \"repair_order_id\",\n            \"orderNumber\": 169\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true\n}"}],"_postman_id":"1e9b92af-eec9-4410-95d0-f946b3ef4e2d"},{"name":"ChangeOrderStatus","id":"cd529e25-dbf2-4e2d-a1b0-25751e6648eb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"ChangeOrderStatus\",\n    \"params\": {\n        \"typeName\": \"Maintenance\",\n        \"payload\": {\n            \"id\": \"repair_order_id\",\n            \"status\": \"status\"\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}","description":"<h4 id=\"status-update-order\">Status Update Order</h4>\n<p>This request is used to update the status of an existing order in the system. The request to be updated is identified by its <code>id</code>, and the new status value is provided to change the current state of the request.</p>\n<p><strong>Request Parameters:</strong></p>\n<ul>\n<li><p><strong>id</strong>: String - Unique identifier for the request that needs to be updated</p>\n</li>\n<li><p><strong>status</strong>: String - New status value to be applied</p>\n</li>\n</ul>\n<p><strong>Expected Input Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    // Unique identifier for the order\n    \"id\": \"request_id\",\n    // The new status\n    \"status\": \"Completed\"\n}\n\n</code></pre>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"625b5d92-cd68-4641-baf0-10aabc6e65c9","name":"ChangeOrderStatus","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"JSON-RPC","value":"{\n    \"method\": \"ChangeOrderStatus\",\n    \"params\": {\n        \"typeName\": \"Maintenance\",\n        \"payload\": {\n            \"id\": \"repair_order_id\",\n            \"status\": \"status\"\n        },\n        \"credentials\": {\n            \"sessionId\": \"{{sessionId}}\"\n        }\n    },\n    \"type\": \"{{productType}}\"\n}","type":"text"}]},"url":"{{url}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true\n}"}],"_postman_id":"cd529e25-dbf2-4e2d-a1b0-25751e6648eb"}],"id":"f2ba9ed4-4483-4e1c-9ea7-01434f1d8068","description":"<h2 id=\"endpoints-to-manipulate-mainenace-data\"><strong>Endpoints to manipulate Mainenace data.</strong></h2>\n<h3 id=\"typename\">TypeName</h3>\n<ul>\n<li><strong>Maintenance</strong></li>\n</ul>\n<h3 id=\"available-params\">Available params</h3>\n<ul>\n<li><p><em><strong>search</strong></em></p>\n</li>\n<li><p><strong>payload</strong></p>\n</li>\n</ul>\n","_postman_id":"f2ba9ed4-4483-4e1c-9ea7-01434f1d8068"},{"name":"Text to Speech","item":[{"name":"Send message","id":"08179391-100c-40fa-870f-8472bc771959","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"type":"text","key":"JSON-RPC","value":"{\n    \"method\": \"Execute\",\n    \"params\": {\n      \"typeName\": \"TextToSpeech\",\n      \"entity\": {\n        \"text\": \"Hello! How you doing?\",\n        \"deviceId\": [\"66eabc70-9a8d-11ee-b2eb-013684cfc9f4\"],\n        \"language\": \"english\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"e4e6e1d8517b5057b794ff7837aa08117b2a634ef8c9033158bac38a278fc1411be9185a\"\n      }\n    },\n    \"type\": \"trax\"\n  }"}]},"url":"{{url}}","description":"<h4 id=\"send-audio-message\">Send Audio Message</h4>\n<p>This HTTP POST request is used to send audio message to cameras. Currently, the messaged support English and Spanish.</p>\n<p>Supported only on specific Zenduit Camera devices.</p>\n<p><strong>Expected Input Parameters:</strong></p>\n<p>The request uses the <code>x-www-form-urlencoded</code> format. The following parameters can be included in the request body:</p>\n<ul>\n<li><p>deviceId: List of the Ids of the Streammax devices the message has to be sent to.</p>\n</li>\n<li><p>language: Langusge of the message. ('english', 'spanish')</p>\n</li>\n<li><p>text: Text of the message.</p>\n</li>\n</ul>\n<p><strong>Note:</strong> There is a limit of 150 characters for the text message.</p>\n<p><strong>Response Structure:</strong></p>\n<p>The response will be a JSON object containing the result of the request. The structure of the success response is as follows:</p>\n","urlObject":{"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"359b5e3d-0ba0-4262-85d2-ded8e63ad862","name":"Send message","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"type":"text","key":"JSON-RPC","value":"{\n    \"method\": \"Execute\",\n    \"params\": {\n      \"typeName\": \"TextToSpeech\",\n      \"entity\": {\n        \"text\": \"Hello! How you doing?\",\n        \"deviceId\": [\"66eabc70-9a8d-11ee-b2eb-013684cfc9f4\"],\n        \"language\": \"english\"\n      },\n      \"credentials\": {\n        \"sessionId\": \"{{sessionId}}\"\n      }\n    },\n    \"type\": \"trax\"\n  }"}]},"url":"https://one-service.zenduit.com/api/v1"},"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"result\": {\n        \"success\": true\n    }\n}"}],"_postman_id":"08179391-100c-40fa-870f-8472bc771959"}],"id":"1de00ee6-17e6-445e-999e-16240e071f97","_postman_id":"1de00ee6-17e6-445e-999e-16240e071f97","description":""},{"name":"Two Way Communication","item":[],"id":"841560a6-da66-404d-84c1-2911ee2d57ad","description":"<p>A simple, structured wrapper for two-way communication functionality built on top of the H5 Player. This library provides a clean, modern API for integrating intercom capabilities into your applications.</p>\n<h2 id=\"🚀-quick-start\">🚀 Quick Start</h2>\n<h3 id=\"1-include-the-library\">1. Include the Library</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">&lt;script src=\"twc.js\"&gt;&lt;/script&gt;\n\n</code></pre>\n<h3 id=\"2-basic-usage\">2. Basic Usage</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">// Initialize with your auth session ID\nconst intercom = new TwoWayComm('your-auth-sessionId');\n// Set up event listeners\nintercom.on('ready', () =&gt; console.log('Ready to make calls!'));\nintercom.on('callStarted', (data) =&gt; console.log(`Call started with ${data.deviceId}`));\nintercom.on('callStopped', () =&gt; console.log('Call ended'));\nintercom.on('error', (error) =&gt; console.error('Error:', error));\n// Initialize the client\nawait intercom.initialize();\n// Start a call\nawait intercom.startCall('your-device-id', 'en');\n// Stop the call when done\nintercom.stopCall();\n\n</code></pre>\n<h2 id=\"📋-requirements\">📋 Requirements</h2>\n<ul>\n<li><p><strong>Session Id</strong>: Required for initialization</p>\n</li>\n<li><p><strong>Device ID</strong>: Required to start calls</p>\n</li>\n<li><p><strong>Modern Browser</strong>: Supports ES6+ features (async/await, classes)</p>\n</li>\n<li><p><strong>H5 Player</strong>: Automatically loaded from <code>/h5-player/h5-player.js</code></p>\n</li>\n</ul>\n<h2 id=\"🎯-api-reference\">🎯 API Reference</h2>\n<h3 id=\"constructor\">Constructor</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const intercom = new TwoWayComm(authToken)\n\n</code></pre>\n<p><strong>Parameters:</strong> - <code>authToken</code> (string, required): Your authentication sessionId</p>\n<h3 id=\"methods\">Methods</h3>\n<h4 id=\"async-initialize\"><code>async initialize()</code></h4>\n<p>Initializes the client and loads necessary resources.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">await intercom.initialize();\n\n</code></pre>\n<p><strong>Returns:</strong> Promise that resolves when initialization is complete</p>\n<p><strong>Throws:</strong> Error if initialization fails</p>\n<h4 id=\"async-startcalldeviceid-language\"><code>async startCall(deviceId, language?)</code></h4>\n<p>Starts an intercom call with the specified device.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">await intercom.startCall('device-123', 'en');\n\n</code></pre>\n<p><strong>Parameters:</strong> - <code>deviceId</code> (string, required): Target device identifier - <code>language</code> (string, optional): Language code (defaults to 'en')</p>\n<p><strong>Supported Languages:</strong> <code>en</code>, <code>es</code>, <code>fr</code>, <code>pt</code>, <code>cn</code></p>\n<p><strong>Returns:</strong> Promise that resolves when call starts</p>\n<p><strong>Throws:</strong> Error if call fails to start</p>\n<h4 id=\"stopcall\"><code>stopCall()</code></h4>\n<p>Stops the current active call.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">intercom.stopCall();\n\n</code></pre>\n<h4 id=\"reset\"><code>reset()</code></h4>\n<p>Resets the client to initial state, stopping any active calls.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">intercom.reset();\n\n</code></pre>\n<h4 id=\"helper-methods\">Helper Methods</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">// Check current state\nintercom.getState()        // Returns current state string\nintercom.isReady()         // Returns true if ready to start calls\nintercom.isCallActive()    // Returns true if call is active\n// Get current call info\nintercom.getCurrentCall()  // Returns { deviceId, language, isActive }\n\n</code></pre>\n<h3 id=\"events\">Events</h3>\n<p>The library uses an event-driven architecture. Subscribe to events using the <code>on()</code> method:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">intercom.on('eventName', (data) =&gt; {\n  // Handle event\n});\n\n</code></pre>\n<h4 id=\"core-events\">Core Events</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Event</th>\n<th>Description</th>\n<th>Data</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>initialized</code></td>\n<td>Client has been initialized</td>\n<td>-</td>\n</tr>\n<tr>\n<td><code>ready</code></td>\n<td>Client is ready to start calls</td>\n<td>-</td>\n</tr>\n<tr>\n<td><code>callStarted</code></td>\n<td>Call has started successfully</td>\n<td><code>{ deviceId, language }</code></td>\n</tr>\n<tr>\n<td><code>callStopped</code></td>\n<td>Call has ended</td>\n<td>-</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>An error occurred</td>\n<td><code>{ type, error, ...context }</code></td>\n</tr>\n<tr>\n<td><code>reset</code></td>\n<td>Client has been reset</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"advanced-events\">Advanced Events</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Event</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>stateChanged</code></td>\n<td>Internal state changed</td>\n</tr>\n<tr>\n<td><code>intercomLoaded</code></td>\n<td>H5Player intercom loaded</td>\n</tr>\n<tr>\n<td><code>intercomReady</code></td>\n<td>H5Player intercom ready</td>\n</tr>\n<tr>\n<td><code>intercomStopping</code></td>\n<td>H5Player intercom stopping</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"event-management\">Event Management</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">// Subscribe to events\nintercom.on('ready', callback);\n// Unsubscribe from events\nintercom.off('ready', callback);\n// Method chaining supported\nintercom\n  .on('ready', () =&gt; console.log('Ready!'))\n  .on('error', (err) =&gt; console.error('Error:', err));\n\n</code></pre>\n<h2 id=\"🏗️-client-states\">🏗️ Client States</h2>\n<p>The client maintains internal states for proper operation:</p>\n<ul>\n<li><p><code>uninitialized</code> - Initial state</p>\n</li>\n<li><p><code>initializing</code> - Loading resources</p>\n</li>\n<li><p><code>ready</code> - Ready to start calls</p>\n</li>\n<li><p><code>starting_call</code> - Call is being established</p>\n</li>\n<li><p><code>call_active</code> - Call is active</p>\n</li>\n<li><p><code>stopping_call</code> - Call is being terminated</p>\n</li>\n<li><p><code>error</code> - Error state</p>\n</li>\n</ul>\n<h2 id=\"⚙️-configuration\">⚙️ Configuration</h2>\n<p>The library uses hardcoded, optimized settings:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Setting</th>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Base URL</td>\n<td><code>http://localhost:1400/Streamax/H5Player</code></td>\n<td>API endpoint</td>\n</tr>\n<tr>\n<td>Log Level</td>\n<td><code>4</code> (Debug)</td>\n<td>Logging verbosity</td>\n</tr>\n<tr>\n<td>Buffer Time</td>\n<td><code>0.2</code> seconds</td>\n<td>Audio buffer duration</td>\n</tr>\n<tr>\n<td>Player Source</td>\n<td><code>/h5-player/h5-player.js</code></td>\n<td>H5Player script path</td>\n</tr>\n</tbody>\n</table>\n</div><p><em>These settings are configured internally and cannot be modified.</em></p>\n<h2 id=\"🔒-error-handling\">🔒 Error Handling</h2>\n<p>The library provides comprehensive error handling with detailed context:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">intercom.on('error', (errorData) =&gt; {\n  console.log('Error Type:', errorData.type);\n  console.log('Error Details:', errorData.error);\n  switch (errorData.type) {\n    case 'initialization':\n      // Handle initialization errors\n      break;\n    case 'call_start':\n      console.log('Failed device:', errorData.deviceId);\n      break;\n    case 'intercom':\n      // Handle H5Player errors\n      break;\n  }\n});\n\n</code></pre>\n<p><strong>Error Types:</strong> - <code>initialization</code> - Failed to initialize client - <code>call_start</code> - Failed to start call - <code>call_stop</code> - Failed to stop call - <code>intercom</code> - H5Player internal errors - <code>intercom_start</code> - H5Player failed to start</p>\n<h2 id=\"📱-complete-example\">📱 Complete Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">&lt;html&gt;\n&lt;head&gt;\n    &lt;title&gt;TwoWayComm Example&lt;/title&gt;\n&lt;/head&gt;\n&lt;body&gt;\n    &lt;button id=\"initBtn\"&gt;Initialize&lt;/button&gt;\n    &lt;button id=\"startBtn\" disabled&gt;Start Call&lt;/button&gt;\n    &lt;button id=\"stopBtn\" disabled&gt;Stop Call&lt;/button&gt;\n    &lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; id=\"status\"&gt;Ready to initialize&lt;/div&gt;\n    &lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; id=\"log\"&gt;&lt;/div&gt;\n    &lt;script src=\"twc.js\"&gt;&lt;/script&gt;\n    &lt;script&gt;\n        let intercom = null;\n        let initialized = false;\n        let callActive = false;\n        const statusEl = document.getElementById('status');\n        const logEl = document.getElementById('log');\n        function log(message) {\n            const entry = document.createElement('div');\n            entry.textContent = `${new Date().toLocaleTimeString()}: ${message}`;\n            logEl.appendChild(entry);\n        }\n        function updateButtons() {\n            document.getElementById('initBtn').disabled = initialized;\n            document.getElementById('startBtn').disabled = !initialized || callActive;\n            document.getElementById('stopBtn').disabled = !callActive;\n        }\n        // Initialize client\n        document.getElementById('initBtn').addEventListener('click', async () =&gt; {\n            try {\n                intercom = new TwoWayComm('your-sessionId-here');\n                // Set up event listeners\n                intercom.on('initialized', () =&gt; {\n                    log('Client initialized');\n                });\n                intercom.on('ready', () =&gt; {\n                    log('Client ready');\n                    initialized = true;\n                    updateButtons();\n                    statusEl.textContent = 'Ready to start calls';\n                });\n                intercom.on('callStarted', (data) =&gt; {\n                    log(`Call started: ${data.deviceId}`);\n                    callActive = true;\n                    updateButtons();\n                    statusEl.textContent = 'Call active';\n                });\n                intercom.on('callStopped', () =&gt; {\n                    log('Call stopped');\n                    callActive = false;\n                    updateButtons();\n                    statusEl.textContent = 'Call ended';\n                });\n                intercom.on('error', (error) =&gt; {\n                    log(`Error: ${error.type} - ${JSON.stringify(error.error)}`);\n                    statusEl.textContent = `Error: ${error.type}`;\n                });\n                statusEl.textContent = 'Initializing...';\n                await intercom.initialize();\n            } catch (error) {\n                log(`Initialization failed: ${error.message}`);\n                statusEl.textContent = 'Initialization failed';\n            }\n        });\n        // Start call\n        document.getElementById('startBtn').addEventListener('click', async () =&gt; {\n            if (!intercom) return;\n            try {\n                statusEl.textContent = 'Starting call...';\n                await intercom.startCall('your-device-id', 'en');\n            } catch (error) {\n                log(`Failed to start call: ${error.message}`);\n                statusEl.textContent = 'Failed to start call';\n            }\n        });\n        // Stop call\n        document.getElementById('stopBtn').addEventListener('click', () =&gt; {\n            if (!intercom) return;\n            statusEl.textContent = 'Stopping call...';\n            intercom.stopCall();\n        });\n        // Initialize UI\n        updateButtons();\n    &lt;/script&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n\n</code></pre>\n<h2 id=\"🧪-testing\">🧪 Testing</h2>\n<p>A complete test interface is available at <code>test.html</code>. It demonstrates all functionality and provides detailed logging for debugging.</p>\n<p>To test:</p>\n<p>1. Start a local server: <code>python3 -m http.server 8080</code></p>\n<p>2. Open <code>http://localhost:8080/test.html</code></p>\n<p>3. Enter your Session Id and device ID</p>\n<p>4. Test the complete workflow</p>\n<h2 id=\"🐛-troubleshooting\">🐛 Troubleshooting</h2>\n<h3 id=\"common-issues\">Common Issues</h3>\n<p><strong>\"Session Id is required\" Error</strong> - Ensure you pass a valid session Id to the constructor</p>\n<p><strong>\"Cannot initialize from state: X\" Error</strong> - Call <code>reset()</code> to return to initial state before reinitializing</p>\n<p><strong>\"Cannot start call from state: X\" Error</strong> - Ensure client is initialized and ready before starting calls - Check that no other call is active</p>\n<p><strong>\"Device ID is required\" Error</strong> - Provide a valid device ID when calling <code>startCall()</code></p>\n<p><strong>H5Player Loading Issues</strong> - Ensure <code>/h5-player/h5-player.js</code> is accessible - Check browser console for script loading errors - Verify server is serving static files correctly</p>\n<hr />\n<p><em>This library provides a clean, modern interface for two-way communication while handling all the complexity of the underlying H5Player internally.</em></p>\n<p>Connect with <a href=\"https://zenduone.featurebase.app/help\">Support</a> to access the library.</p>\n","_postman_id":"841560a6-da66-404d-84c1-2911ee2d57ad"}],"variable":[{"key":"appname","value":"","type":"default"}]}