{"info":{"_postman_id":"5dc537bf-73ef-4b93-b4b5-ef0b5c94ba04","name":"TWS-Public API","description":"<html><head></head><body><p>Teleporte Web Services (TWS) 3.0 API</p>\n<p>Teleporte includes administration APIs that allow administrators to perform actions such as provisioning a user and managing resources.</p>\n<p>By automating administration, user management and provisioning can be centralized in an existing tool, rather than using the Teleporte web administration panels. For example, a partner selling multiple collaboration tools to customers can use these APIs to enable customer provisioning through a centralized portal.</p>\n<p>By accessing or using this API, you acknowledge and agree to be bound by our <a href=\"https://www.sera4.com/terms-of-use/\">Terms of Service</a> and <a href=\"https://www.sera4.com/privacy-policy/\">Privacy Policy</a>.</p>\n<h1 id=\"getting-started\">Getting Started</h1>\n<p>The requirements to work with TWS API are the following:</p>\n<ul>\n<li><p>Teleporte enterprise license</p>\n</li>\n<li><p>Contact the support team (<a href=\"https://mailto:support@sera4.com\">support@sera4.com</a>) to request API access. We will provide 2 authentication tokens:</p>\n<ul>\n<li><p>TwsHost: Custom API URL for your organization</p>\n</li>\n<li><p>TwsApiOrgToken: Your organization token</p>\n</li>\n</ul>\n</li>\n<li><p>A Teleporte administrator account (<code>TwsUser</code>) , with a configured password (<code>TwsPass</code>)</p>\n</li>\n</ul>\n<p>Once you have validated the requirements, you can:</p>\n<ol>\n<li><p>Create a session to authenticate against the URL <code>TwsHost</code>. See <a href=\"#creating-a-session\"><b>Creating A Session</b></a></p>\n</li>\n<li><p>Include authentication headers on all future API calls after creating a session. See <a href=\"#authentication-headers-required\"><b>Authentication Headers Required</b></a></p>\n</li>\n</ol>\n<p>The current version of the TWS API is 3.0 and all the calls should be of the format <a href=\"https://tws-api-1234.com/v3\">https://tws-api-1234.com/v3</a> where 1234 is your <code>TwsHost</code>.</p>\n<h2 id=\"creating-a-session\">Creating a session</h2>\n<p>To create a session, ensure that the following <em>environment variables</em> are set in your Postman environment. These variables will be mapped to proper header variables and used on every request automatically.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>PostMan Variable</th>\n<th>Used Within</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>TwsUser</td>\n<td>Create Session BODY</td>\n<td>The username/email for an administrator account associated with this server. Used only in create session</td>\n</tr>\n<tr>\n<td>TwsPass</td>\n<td>Create Session BODY</td>\n<td>The password for the user specified. Used only in create session BODY payload</td>\n</tr>\n<tr>\n<td>TwsHost</td>\n<td>URL</td>\n<td>The organization URL used to send requests to an organizations server. Provided by the CX team after registering. There is 1 unique TwsHost per organization. Example: <a href=\"https://tws-api-1234-abcd-1234-abcd.sera4.com/v3\"><i>https://tws-api-1234-abcd-1234-abcd.sera4.com/v3</i></a> . This is used on every request as the host and prefix variable.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"session-information\">Session Information</h3>\n<p>After creating a session, the POST body contains all the information you will need for subsequent, authenticated requests. See example response in <a href=\"https://apidocs.sera4.com/#7b9b7a49-2d1b-496d-a4e4-b0514d44cd78\"><b>Authentication &gt; Create Session</b></a>. Look inside the response for the following fields:</p>\n<ul>\n<li><p><code>tws_token</code> - Authentication token information. This includes the actual token <code>tws_token_data</code> as well as the token expiry time <code>tws_token_expires_at</code>. See <strong>token renewal</strong> for information about renewing tokens. The environment variable <em>TwsUserToken</em> is automatically set to this value if using the postman examples provided.</p>\n</li>\n<li><p><code>tws_membership</code> - The membership object created for this account within this organization. A membership is a unique mapping of global_acccount id to organization_id and uniquely identifies your account. A membership is globally unique. Set the environment variable <em>TwsMembershipId</em> to the value of the membership that you would like to use. Most accounts typically will only have 1 membership unless they are managing multiple organizations.</p>\n</li>\n</ul>\n<p>See authentication headers required for more information on where to use these values.</p>\n<h2 id=\"authentication-headers-required\">Authentication Headers Required</h2>\n<p>Every request to the TWS API (except for session create) is an authenticated request. Each authenticated request requires 3 additional headers. The values for these can be found in the session information (noted above).</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header Name</th>\n<th>Postman Variable</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>tws-membership-id</td>\n<td><em>TwsMembershipId</em></td>\n<td>Membership for the user authenticating user. The membership ID is matched internally against the URL of the API service, ensuring your users membership ID is matched to the organization that it is trying to view</td>\n<td>tws-membership-id = {{TwsMembershipId}}</td>\n</tr>\n<tr>\n<td>tws-organization-token</td>\n<td><em>TwsApiOrgToken</em></td>\n<td>API org token (see Getting Started)</td>\n<td>tws-organization-token = {{TwsApiOrgToken}}</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td><em>TwsUserToken</em></td>\n<td>Token used for identity verification</td>\n<td>Authorization = Bearer {{TwsUserToken}}</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"creating-resources\">Creating Resources</h2>\n<p>All endpoints which create resources prefer data to be sent in the <code>POST body</code>. Any resource endpoint which creates a new resource will also send a <strong>201</strong> status code to indicate that a resource has been created.</p>\n<h2 id=\"error-codes\">Error Codes</h2>\n<ul>\n<li><p><code>401</code> You are unauthenticated. Use the session API to generate a new session object.</p>\n</li>\n<li><p><code>403</code> You are unauthorized. You do not have sufficient permissions to perform this operation against the intended resource/url. Please check both your API url and your membership ID to ensure you have the correct membership for the correct API url.</p>\n</li>\n<li><p><code>409</code> Your request has a conflict. The resource may already exist and/or is being processed.</p>\n</li>\n<li><p><code>422</code> Your input is malformed or bad. Please re-check your parameters.</p>\n</li>\n</ul>\n<p><strong>Note</strong> Certain API endpoints will have additional HTTP status error codes. Please check the documentation for endpoint specific error codes.</p>\n<h2 id=\"paginating-data\">Paginating data</h2>\n<p>For LIST calls which paginate data, these additional parameters can be added to the query to help increase the number of records returned and the offset of the data.</p>\n<ul>\n<li><p>page_size</p>\n</li>\n<li><p>page</p>\n</li>\n</ul>\n<p>You can see if an endpoint can be paginated by the additional metadata returned in the call which indicates the total amount of entries and your current position.</p>\n<p>The <strong>page_size</strong> parameter may have a different maximum value, depending on which endpoint is being called.</p>\n<h2 id=\"sorting-data\">Sorting data</h2>\n<p>For LIST calls which list data, the <code>sort_by</code> parameter can be added to sort data in a specific order. The syntax for the sort_by parameter is always <code>,</code></p>\n<p>Direction can be one of two values</p>\n<ul>\n<li><p><code>asc</code> - Sort data in ascending order</p>\n</li>\n<li><p><code>desc</code> - Sort data in ascending order</p>\n</li>\n</ul>\n<p>Example:</p>\n<ul>\n<li><p>created_at, desc</p>\n</li>\n<li><p>updated_at, asc</p>\n</li>\n</ul>\n<h1 id=\"webhook-support\">Webhook Support</h1>\n<p>Webhooks are event-driven calls made from Sera4 to a pre-configured HTTP(s) endpoint. To enable a webhook, simply update your organizations webhook_url to a RFC compliant URI that supports the POST method.</p>\n<p>Webhooks are available for the following events.</p>\n<ul>\n<li><p>Users (create, delete, update)</p>\n</li>\n<li><p>Locks (create, delete, update, open, close)</p>\n</li>\n<li><p>Organization (update)</p>\n</li>\n<li><p>Access Request (create)</p>\n</li>\n<li><p>Lock Groups &amp; Group Keys - (create, delete)</p>\n</li>\n<li><p>Sites &amp; Site Keys (Beta) - (create, delete)</p>\n</li>\n<li><p>Access Requests (Beta) - (create, update)</p>\n</li>\n</ul>\n<p>Webhooks enablement and configuration options are available via API only.</p>\n<p>Please contact the customer experience team (<a href=\"https://mailto:cx@sera4.com\">cx@sera4.com</a>) for additional details on webhook payloads.</p>\n<h1 id=\"having-issues-with-the-api-or-postman\">Having issues with the API or Postman?</h1>\n<p>Please ensure that you are using Postman 7.0.9 or newer.</p>\n<p>If you are a registered company and have a valid API key, please <a href=\"https://mailto:support@sera4.com?subject=API:\">email support</a> (<a href=\"https://mailto:support@sera4.com\">support@sera4.com</a>) for additional assistance with API endpoints. For better service, please prefix the subject line with <strong>API</strong> so that our team can properly route your inquiry to the right support personnel.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Getting Started","slug":"getting-started"},{"content":"Webhook Support","slug":"webhook-support"},{"content":"Having issues with the API or Postman?","slug":"having-issues-with-the-api-or-postman"}],"owner":"6088983","collectionId":"5dc537bf-73ef-4b93-b4b5-ef0b5c94ba04","publishedId":"SWECXvsp","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2020-07-31T12:40:48.000Z"},"item":[{"name":"Access Requests","item":[{"name":"Show Access Request","event":[{"listen":"test","script":{"id":"d21b484f-9188-40b4-8f40-783114136a8b","exec":["let responseData = JSON.parse(responseBody)","tests[\"Show Access Request\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"0972a3f1-6b14-4e31-b4cf-0ea865900631","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/access_requests/:id","description":"<p>Show detailed information about an access request.  Useful to see which key/collection key may have been assigned.</p>\n","urlObject":{"path":["access_requests",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"description":{"content":"<p>{Integer} Access Request ID</p>\n","type":"text/plain"},"type":"string","value":"","key":"id"}]}},"response":[{"id":"5b4a29ba-520f-4ec2-9404-5e7e60871521","name":"Show Access Request","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/access_requests/:id","host":["{{TwsHost}}"],"path":["access_requests",":id"],"variable":[{"key":"id","value":"45"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"01086554405990ee20ceec0dea1ca9a8\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"db8f0ba6-0e00-48a4-af86-6d60a8ccbb67"},{"key":"x-runtime","value":"0.047347"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Mon, 09 Nov 2020 18:24:30 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 45,\n        \"requestor_membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n        \"lock\": {\n          \"id\": 31,\n          \"name\": \"LOCK-31 (0x1F)\"\n        },\n        \"status\": 0,\n        \"created_at\": \"2020-09-08T23:50:51.782Z\",\n        \"updated_at\": \"2020-09-08T23:50:51.782Z\",\n        \"location\": {\n          \"lat\": \"43.511118\",\n          \"lng\": \"-80.522258\"\n        }\n    }\n}"}],"_postman_id":"0972a3f1-6b14-4e31-b4cf-0ea865900631"},{"name":"List Access Requests","event":[{"listen":"test","script":{"id":"c15d935f-1fff-440a-875d-02d99476e787","exec":["let responseData = JSON.parse(responseBody)","tests[\"Success\"] = responseCode.code === 200","tests[\"Array of Access Requests\"] = typeof(responseData[\"data\"] === \"object\") && (responseData[\"data\"].length > 0)"],"type":"text/javascript"}}],"id":"631cb176-da2d-4b0a-8c1e-878572033738","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/access_requests","description":"<p>List the access requests in ascending order.  Defaults to showing the oldest pending access requests.  Please note that access_requests cannot be deleted, but can be declined.</p>\n<p>Please note that response may include a <strong>lock_id</strong>, <strong>collection_id</strong> or both.  If a lock belongs to a lock collection, it will always have it's current lock_collection attached to the request.  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>requestor_id</strong></td>\n<td>{UUIDv4}</td>\n<td>Filter by requestor_id</td>\n<td>v4 UUID</td>\n</tr>\n<tr>\n<td><strong>approver_id</strong></td>\n<td>{UUIDv4}</td>\n<td>Filter by approver_id</td>\n<td>v4 UUID</td>\n</tr>\n<tr>\n<td><strong>lock_id</strong></td>\n<td>{Integer}</td>\n<td>Filter by Lock_ID</td>\n<td>Lock ID</td>\n</tr>\n<tr>\n<td><strong>collection_id</strong></td>\n<td>{Integer}</td>\n<td>Filter by Collection/Site ID</td>\n<td>Collection ID</td>\n</tr>\n<tr>\n<td><strong>status</strong></td>\n<td>{Integer}</td>\n<td>Filter by Status of the request</td>\n<td>Status values (see reference)</td>\n</tr>\n<tr>\n<td><strong>sort</strong></td>\n<td>{String}</td>\n<td>Request sort order</td>\n<td>ASC, DESC</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["access_requests"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {String) Sort order for requests</p>\n","type":"text/plain"},"key":"sort","value":"desc"},{"disabled":true,"description":{"content":"<p>(optional) {Integer} Start of query period for when key starts</p>\n","type":"text/plain"},"key":"status","value":"1"},{"disabled":true,"description":{"content":"<p>(optional) {String} Search requests with requestor ID</p>\n","type":"text/plain"},"key":"requestor_id","value":"f87ff9d0-474e-4550-be40-2245fe9e892c"},{"disabled":true,"description":{"content":"<p>(optional) {String} Search requests by approver ID</p>\n","type":"text/plain"},"key":"approver_id","value":"34e8f7b8-7f44-44a2-8de0-aa8f2f05e2ed"},{"disabled":true,"description":{"content":"<p>(optional) {Integer} Search requests for Lock ID</p>\n","type":"text/plain"},"key":"lock_id","value":"9"},{"disabled":true,"description":{"content":"<p>(optional) {Integer}Search requests for Site ID</p>\n","type":"text/plain"},"key":"collection_id","value":"1"}],"variable":[]}},"response":[{"id":"9d032dae-0930-4dc5-b72e-327627b0855e","name":"List APPROVED Access Requests","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/access_requests?status=1","host":["{{TwsHost}}"],"path":["access_requests"],"query":[{"key":"status","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"8cf14f65e8c721cddbb4d686ca4ca545\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"4eaa5bda-6295-48c5-b6d1-f549d58b37fe"},{"key":"x-runtime","value":"0.094594"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Tue, 08 Sep 2020 18:43:42 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 2,\n            \"requestor_membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n            \"approver_membership_id\": \"13dbcd4b-ec59-4b71-96a8-38ad03f00c1a\",\n            \"lock\": {\n                \"id\": 48973,\n                \"name\": \"Perimeter Gate\"\n            },\n            \"status\": 1,\n            \"created_at\": \"2018-12-19T03:00:04.933Z\",\n            \"updated_at\": \"2018-12-24T19:09:46.354Z\",\n            \"message\": \"Front door is locked\"\n        },\n        {\n            \"id\": 3,\n            \"requestor_membership_id\": \"c9caeb23-b098-4a12-9f9a-0af5ae342fd0\",\n            \"approver_membership_id\": \"e16143b7-2ab2-4ba4-93f8-2cab6992066a\",\n            \"lock\": {\n                \"id\": 67654,\n                \"name\": \"LOCK-10846\"\n            },\n            \"status\": 1,\n            \"created_at\": \"2019-01-08T15:01:18.672Z\",\n            \"updated_at\": \"2019-01-08T15:35:59.500Z\",\n            \"message\": \"I require access to change the batteries\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 2,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"next_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"}],"_postman_id":"631cb176-da2d-4b0a-8c1e-878572033738"},{"name":"Create Access Request","event":[{"listen":"test","script":{"id":"69d24218-9303-46cb-96e0-fc4d29e9e9ce","exec":["tests[\"Access Request Created\"] = responseCode.code === 201"],"type":"text/javascript"}}],"id":"d15014bd-fcd9-4633-bc18-1d426e1b1ed9","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"request\": {\n\t\t\"lock_id\": 12345,\n\t\t\"mobile_uuid\": \"3402ced234944246bc4d42b5e9241db2\",\n\t\t\"location\": \"43.511118,-80.522258\",\n\t\t\"message\": \"I require access\"\t\n\t}\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/access_requests","description":"<p>Create a new access request for a lock.  If this lock is part of an existing site, the site_id will be appended to the payload before save.  Create Access Request API is only available on special request and is tailored for use by our mobile platforms.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>lock_id</strong></td>\n<td>{Integer}</td>\n<td>Lock to request access for</td>\n<td>Valid lock ID</td>\n</tr>\n<tr>\n<td><strong>message</strong></td>\n<td>{String}</td>\n<td>User generated message</td>\n<td>UTF-8 string</td>\n</tr>\n<tr>\n<td><strong>work_session_id</strong></td>\n<td>{Integer}</td>\n<td>Work Session ID</td>\n<td>Valid work session ID</td>\n</tr>\n<tr>\n<td><strong>mobile_uuid</strong></td>\n<td>{String}</td>\n<td>Mobile UUID</td>\n<td>Mobile UUID</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["access_requests"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d15014bd-fcd9-4633-bc18-1d426e1b1ed9"},{"name":"Update Access Request","event":[{"listen":"test","script":{"id":"79d179d0-b222-4daf-b739-adf8efcfab37","exec":["let responseData = JSON.parse(responseBody)","tests[\"Access Request Updates\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"17faee57-1347-456a-be64-fefae9585fe8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n  \"request\": {\n      \"message\": \"new message\"\n  }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/access_requests/:id","description":"<p>Update an access request's metadata.  The folllowing fields are the only fields which can be updated on an access request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>message</strong></td>\n<td>{String}</td>\n<td>Comment to leave on file</td>\n<td>UTF-8 string</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["access_requests",":id"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"key":"approved","value":"true"}],"variable":[{"description":{"content":"<p>{Integer} Required ID</p>\n","type":"text/plain"},"type":"string","value":"","key":"id"}]}},"response":[{"id":"0b093dd2-4186-471f-a562-3f0348f37221","name":"Update Access Request","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n  \"request\": {\n      \"message\": \"new message\"\n  }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/access_requests/:id","host":["{{TwsHost}}"],"path":["access_requests",":id"],"variable":[{"key":"id","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"e6bf014aee828da193b309ad3227e11a\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"0bb735d4-ceef-4e0e-af5b-6e4ce41b904a"},{"key":"x-runtime","value":"6.440257"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Wed, 23 Sep 2020 00:55:12 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"requestor_membership_id\": \"c9caeb23-b098-4a12-9f9a-0af5ae342fd0\",\n        \"lock\": {\n            \"id\": 9,\n            \"name\": \"MX5-SERA4-DOOR\",\n            \"type_id\": 3            \n        },\n        \"status\": 0,\n        \"created_at\": \"2018-12-18T16:25:29.311Z\",\n        \"updated_at\": \"2020-09-23T00:55:11.640Z\",\n        \"message\": \"new message\",\n        \"location\": {\n            \"lat\": \"45.304008\",\n            \"lng\": \"-82.422260\"\n        }\n    }\n}"}],"_postman_id":"17faee57-1347-456a-be64-fefae9585fe8"},{"name":"Approve/Decline Access Request","event":[{"listen":"test","script":{"id":"60f8fcbf-97b6-4ad7-a589-c341ae0df602","exec":["let responseData = JSON.parse(responseBody)","tests[\"Access Request Updates\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"03fe628e-977b-427c-b9f3-a5832fcfb843","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"request\": {\n        \"grant_scoping\": \"site\",        \n        \"start_date\": \"2021-02-02 14:14:14\",\n        \"end_date\": \"2021-03-03 15:15:15\",        \n        \"message\": \"Access granted\",\n        \"ticket_number\": \"ticket number\",\n        \"comments\": \"comments...\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/access_requests/:id/:action","description":"<p>Accept or decline an access request.</p>\n<p>This API is split into 2 restful endpoints, an approve and a decline API.  The action will be either 'approve' or 'decline'.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>start_date</strong></td>\n<td>{Date}</td>\n<td>DateTime that access should terminate</td>\n<td>UTC Date/Time</td>\n</tr>\n<tr>\n<td><strong>end_date</strong></td>\n<td>{Date}</td>\n<td>Filter by Lock_ID</td>\n<td>UTC Date/Time</td>\n</tr>\n<tr>\n<td><strong>grant_scoping</strong></td>\n<td>{String}</td>\n<td>Grant access to a single lock or the whole collection (default is Lock)</td>\n<td>[Lock, Site]</td>\n</tr>\n<tr>\n<td><strong>message</strong></td>\n<td>{String}</td>\n<td>Custom message which will be sent to user</td>\n<td>UTF-8 string (100 chars)</td>\n</tr>\n<tr>\n<td><strong>notifications</strong></td>\n<td>{Boolean}</td>\n<td>Send notifications to user</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>ticker_number</strong></td>\n<td>{String}</td>\n<td>Ticket number to attach to key created</td>\n<td>UTF-8 string (100 chars)</td>\n</tr>\n<tr>\n<td><strong>comments</strong></td>\n<td>{String}</td>\n<td>Comment to attach to key created</td>\n<td>UTF-8 string (100 chars)</td>\n</tr>\n</tbody>\n</table>\n</div><p>When changing the grant_scoping to collection (example: a site), please ensure that the lock belonged to the collection before the request was made.  This option will check for the associated collection and grant a key to the entire collection of locks.</p>\n<p><strong>ticket_number</strong> and <strong>comments</strong> will be passed to the created key but will not be stored on the access request.  Please use the collection key or key APIs to modify these fields after granting access</p>\n","urlObject":{"path":["access_requests",":id",":action"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"3a2e81d9-5f07-48ce-b328-8768952dc747","type":"string","value":"4","key":"id"},{"id":"8b56e9ad-cac3-4946-aad3-047ef957ceaa","type":"string","value":"approve","key":"action"}]}},"response":[{"id":"234ff7bf-6bcf-42cb-bf1d-8a7843aaa075","name":"Decline an Access Request","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"request\": {\n      \"notifications\": false,\n      \"message\": \"None shall pass\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/access_requests/:id/:action","host":["{{TwsHost}}"],"path":["access_requests",":id",":action"],"variable":[{"key":"id","value":"46"},{"key":"action","value":"decline"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"1568c6731b4778fb723ac0452b83e5b5\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"e944f7e7-c3a5-4902-8b13-228608e1ee72"},{"key":"x-runtime","value":"18.030264"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Wed, 23 Sep 2020 02:01:22 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 46,\n        \"requestor_membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n        \"approver_membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n        \"lock\": {\n            \"id\": 100000,\n            \"name\": \"Test Lock\",\n            \"type_id\": 1\n        },\n        \"collection\": {\n            \"id\": 1,\n            \"name\": \"Site A\",\n            \"type\": \"site\"\n        },\n        \"status\": 2,\n        \"created_at\": \"2020-09-09T00:17:01.196Z\",\n        \"updated_at\": \"2020-09-23T02:01:21.251Z\",\n        \"message\": \"None shall pass\",\n        \"location\": {\n            \"lat\": \"43.511118\",\n            \"lng\": \"-80.522258\"\n        }\n    }\n}"},{"id":"4e60e3d1-aa3d-47dd-9fab-81267a6f4d75","name":"Approve an Access Request","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"request\": {\n        \"grant_scoping\": \"collection\",        \n        \"start_date\": \"2020-09-22 14:00:00\",\n        \"end_date\": \"2020-09-29 15:00:00\",        \n        \"message\": \"Access granted\"    \n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/access_requests/:id/:action","host":["{{TwsHost}}"],"path":["access_requests",":id",":action"],"variable":[{"key":"id","value":"46"},{"key":"action","value":"approve"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"aa728bc2debad819d3d01bb35c88890f\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"c6f54bfa-0153-44e7-a916-5c1109b36a01"},{"key":"x-runtime","value":"3.547496"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Wed, 23 Sep 2020 02:33:15 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 46,\n        \"requestor_membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n        \"approver_membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n        \"lock\": {\n            \"id\": 100000,\n            \"name\": \"Test Lock\",\n            \"type_id\": 1\n        },\n        \"collection\": {\n            \"id\": 1,\n            \"name\": \"Site A\",\n            \"type\": \"site\"\n        },\n        \"status\": 1,\n        \"created_at\": \"2020-09-09T00:17:01.196Z\",\n        \"updated_at\": \"2020-09-23T02:33:14.234Z\",\n        \"message\": \"Access granted\",\n        \"collection_key\": {\n            \"id\": 25,\n            \"start_date\": \"2020-09-22T14:00:00.000Z\",\n            \"end_date\": \"2020-09-29T15:00:00.000Z\",\n            \"issuer\": {\n                \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n                \"name\": \"Sample admin\",\n                \"email\": \"admin@example.com\"\n            },\n            \"created_at\": \"2020-09-23T02:27:08.643Z\",\n            \"site_id\": 1\n        },\n        \"location\": {\n            \"lat\": \"43.511118\",\n            \"lng\": \"-80.522258\"\n        }\n    }\n}"}],"_postman_id":"03fe628e-977b-427c-b9f3-a5832fcfb843"}],"id":"bfc0e6f9-4ed6-448f-9a7e-850cc8faa330","description":"<p>The 3 status values for Access requests are:</p>\n<p>      0 - <strong>Pending/Requires Action</strong><br />\n      1 - <strong>Approved</strong><br />\n      2 - <strong>Declined</strong></p>\n","event":[{"listen":"prerequest","script":{"id":"9d199d06-a33f-437f-b0e2-be244362e9a9","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"030ef86e-167a-49ac-bd9d-3bc9e8362e68","type":"text/javascript","exec":[""]}}],"_postman_id":"bfc0e6f9-4ed6-448f-9a7e-850cc8faa330"},{"name":"Authentication","item":[{"name":"Create Session","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","postman.setEnvironmentVariable(\"TwsUserToken\", responseData.tws_token.tws_token_data)","tests[\"Authentication Code Created\"] = responseCode.code === 201"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"469a8098-a6d8-42ef-bf5d-5a80f466b0bd","exec":[""],"type":"text/javascript"}}],"id":"7b9b7a49-2d1b-496d-a4e4-b0514d44cd78","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\": \"{{TwsUser}}\",\n    \"password\": \"{{TwsPass}}\"\n}"},"url":"{{TwsHost}}/sessions","description":"<p>Authenticate a user and obtain a session object. The session object contains user account information, auth token and membership details. </p>\n<p>The POST body contains all the information you will need to authenticate requests. Look inside the response for the following fields:</p>\n<ul>\n<li><p><code>tws_token</code> - Authentication token information (Authorization Header). This includes the actual token <code>tws_token_data</code> as well as the token expiry time <code>tws_token_expires_at</code>. See <strong>token renewal</strong> for information about renewing tokens.  The environment variable <em>TwsUserToken</em> is automatically set to this value if using the postman examples provided.</p>\n</li>\n<li><p><code>tws_membership</code> - The membership object created for this account within this organization. A membership is a unique mapping of global_acccount id to organization_id and uniquely identifies your account.  A membership is globally unique.  Set the environment variable <em>TwsMembershipId</em> to the value of the membership that you would like to use.  Most accounts typically will only have 1 membership unless they are managing multiple organizations.</p>\n</li>\n</ul>\n","urlObject":{"path":["sessions"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[{"id":"a736a0ee-a4ab-42ab-ab2b-629ebc3b2abc","name":"Session created","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"username\": \"{{TwsUser}}\",\n    \"password\": \"{{TwsPass}}\"\n}"},"url":"{{TwsHost}}/sessions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"3184"},{"key":"ETag","value":"W/\"c70-kTTROLRpbHuQq7wk76I6UprsVdI\""},{"key":"Date","value":"Wed, 04 Mar 2020 19:00:31 GMT"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"tws_token\": {\n        \"tws_token_data\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50Ijp7ImlkIjoiZTg1Yzg5MWYtZmMxNy00MmNlLWE4M2QtYzVhYjM2ODY4ODVhIiwic3RhdHVzIjoxLCJlbWFpbCI6ImplZmYua2xpbmtAc2VyYTQuY29tIiwiZmlyc3RfbmFtZSI6IkplZmYiLCJsYXN0X25hbWUiOiJLbGluayIsImxhbmd1YWdlIjoiZW4iLCJ0d29fZmFfZW5hYmxlZCI6ZmFsc2UsImZhaWxlZF9hdXRoX2F0dGVtcHRzIjowLCJyZXNldF9wYXNzd29yZF90b2tlbiI6IjJhOTJlMTY5LTNkZWEtNGZiYy1iMTY3LTcwYTYyZTIwOGQ3MyIsInJlc2V0X3Bhc3N3b3JkX3NlbnRfYXQiOiIyMDE5LTA4LTEzVDIwOjI0OjQwLjcyM1oiLCJhY3RpdmF0ZWRfYXQiOiIyMDE5LTA4LTEzVDIwOjI0OjQwLjcyNFoiLCJjcmVhdGVkX2F0IjoiMjAxOS0wMS0zMVQxNTozNDoxOS4wMDBaIiwidXBkYXRlZF9hdCI6IjIwMjAtMDItMjBUMjA6NTg6MTQuMDYxWiJ9LCJ0d3MtYXBpIjp7ImFjY2Vzc190b2tlbiI6ImFiNjUzZjhmLTlhZGQtNDBhYy1iY2NiLWE2ZGFlMzhjNTQ0MCIsImNyZWF0ZWRfYXQiOiIyMDIwLTAzLTA0VDE5OjAwOjMxLjA5NVoiLCJleHBpcmVzX2F0IjoiMjAyMC0wMy0xM1QwMzowMDozMS4wOTRaIiwiY2xpZW50Ijp7ImlkIjoidHdzLWFwaSJ9fSwiaWF0IjoxNTgzMzQ4NDMxLCJleHAiOjE1ODQwNjg0MzF9.zAd1pdpnO9Yr68ByauFHGRUzx_dbnLdcHmRJCJAAmnL__oNBmjiS-Z6nhcR0BkqcLezZFv8Rud0Q4fq9xARoEpGyTaVWLpmQFUPBS9WHZk2eVrZPXVyDrMvJjc4C8_vf_CSFgIYlF_BEk5-27yOIwmQu8EeG6bMdzFUzftXIJncVof637VV5AVcr6iz5PQzyird6ugmMhe6TGD5W-smAkSHTyym8fjXSibko2HJatw31bdgkdNBeYZbzQewxUiHushzigWzHU-aI3mNZ3xLIF-bG8DJ6Tj99GvhZv7rnFlC3-hG9uuZXCvorXTZSlfqHWCapOXZHTKQGGbDKeAEzoQ\",\n        \"tws_token_expires_at\": \"2020-03-13T03:00:31.094Z\",\n        \"tws_token_client_id\": \"tws-api\"\n    },\n    \"tws_account\": {\n        \"id\": \"e85c891f-fc17-42ce-a83d-c5ab3686885a\",\n        \"status\": 1,\n        \"email\": \"jeff@example.com\",\n        \"first_name\": \"Jeff\",\n        \"last_name\": \"K\",\n        \"language\": \"en\",\n        \"two_fa_enabled\": false,\n        \"failed_auth_attempts\": 0,\n        \"activated_at\": \"2019-08-13T20:24:40.724Z\",\n        \"created_at\": \"2019-01-31T15:34:19.000Z\",\n        \"updated_at\": \"2020-02-20T20:58:14.061Z\"\n    },\n    \"tws_memberships\": [\n        {\n            \"id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n            \"server\": {\n                \"alias\": \"api-playground\"\n            },\n            \"status\": 1,\n            \"tenant_user_id\": 24,\n            \"tenant\": {\n                \"name\": \"test-server\",\n                \"features\": {\n                    \"dashboard\": true,\n                    \"key_requests\": true,\n                    \"rts\": true,\n                    \"server_keys_management\": false,\n                    \"charts\": true,\n                    \"lock_notes\": true,\n                    \"maps\": true,\n                    \"access_codes\": true\n                }\n            }\n        }\n    ]\n}"}],"_postman_id":"7b9b7a49-2d1b-496d-a4e4-b0514d44cd78"},{"name":"Delete Session","event":[{"listen":"test","script":{"id":"1f5195b4-0d06-4c38-91df-4787cea11a66","exec":["tests[\"Authentication Code Created\"] = responseCode.code === 204"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"c6cdb704-564c-4f8d-bc07-4937e44fa8b8","exec":[""],"type":"text/javascript"}}],"id":"ac24e30d-04e4-4c79-836c-3d23755188a0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\n    \"username\": \"{{TwsUser}}\",\n    \"password\": \"{{TwsPass}}\"\n}"},"url":"{{TwsHost}}/sessions","description":"<p>Authenticate a user and obtain a session object. The session object contains user account information, auth token and membership details.</p>\n","urlObject":{"path":["sessions"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[{"id":"6b9bb761-353d-4244-922a-1d1428040a55","name":"Session created","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"username\": \"{{TwsUser}}\",\n    \"password\": \"{{TwsPass}}\"\n}"},"url":"{{TwsHost}}/sessions"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"3184"},{"key":"ETag","value":"W/\"c70-kTTROLRpbHuQq7wk76I6UprsVdI\""},{"key":"Date","value":"Wed, 04 Mar 2020 19:00:31 GMT"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"tws_token\": {\n        \"tws_token_data\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50Ijp7ImlkIjoiZTg1Yzg5MWYtZmMxNy00MmNlLWE4M2QtYzVhYjM2ODY4ODVhIiwic3RhdHVzIjoxLCJlbWFpbCI6ImplZmYua2xpbmtAc2VyYTQuY29tIiwiZmlyc3RfbmFtZSI6IkplZmYiLCJsYXN0X25hbWUiOiJLbGluayIsImxhbmd1YWdlIjoiZW4iLCJ0d29fZmFfZW5hYmxlZCI6ZmFsc2UsImZhaWxlZF9hdXRoX2F0dGVtcHRzIjowLCJyZXNldF9wYXNzd29yZF90b2tlbiI6IjJhOTJlMTY5LTNkZWEtNGZiYy1iMTY3LTcwYTYyZTIwOGQ3MyIsInJlc2V0X3Bhc3N3b3JkX3NlbnRfYXQiOiIyMDE5LTA4LTEzVDIwOjI0OjQwLjcyM1oiLCJhY3RpdmF0ZWRfYXQiOiIyMDE5LTA4LTEzVDIwOjI0OjQwLjcyNFoiLCJjcmVhdGVkX2F0IjoiMjAxOS0wMS0zMVQxNTozNDoxOS4wMDBaIiwidXBkYXRlZF9hdCI6IjIwMjAtMDItMjBUMjA6NTg6MTQuMDYxWiJ9LCJ0d3MtYXBpIjp7ImFjY2Vzc190b2tlbiI6ImFiNjUzZjhmLTlhZGQtNDBhYy1iY2NiLWE2ZGFlMzhjNTQ0MCIsImNyZWF0ZWRfYXQiOiIyMDIwLTAzLTA0VDE5OjAwOjMxLjA5NVoiLCJleHBpcmVzX2F0IjoiMjAyMC0wMy0xM1QwMzowMDozMS4wOTRaIiwiY2xpZW50Ijp7ImlkIjoidHdzLWFwaSJ9fSwiaWF0IjoxNTgzMzQ4NDMxLCJleHAiOjE1ODQwNjg0MzF9.zAd1pdpnO9Yr68ByauFHGRUzx_dbnLdcHmRJCJAAmnL__oNBmjiS-Z6nhcR0BkqcLezZFv8Rud0Q4fq9xARoEpGyTaVWLpmQFUPBS9WHZk2eVrZPXVyDrMvJjc4C8_vf_CSFgIYlF_BEk5-27yOIwmQu8EeG6bMdzFUzftXIJncVof637VV5AVcr6iz5PQzyird6ugmMhe6TGD5W-smAkSHTyym8fjXSibko2HJatw31bdgkdNBeYZbzQewxUiHushzigWzHU-aI3mNZ3xLIF-bG8DJ6Tj99GvhZv7rnFlC3-hG9uuZXCvorXTZSlfqHWCapOXZHTKQGGbDKeAEzoQ\",\n        \"tws_token_expires_at\": \"2020-03-13T03:00:31.094Z\",\n        \"tws_token_client_id\": \"tws-api\"\n    },\n    \"tws_account\": {\n        \"id\": \"e85c891f-fc17-42ce-a83d-c5ab3686885a\",\n        \"status\": 1,\n        \"email\": \"jeff@example.com\",\n        \"first_name\": \"Jeff\",\n        \"last_name\": \"K\",\n        \"language\": \"en\",\n        \"two_fa_enabled\": false,\n        \"failed_auth_attempts\": 0,\n        \"activated_at\": \"2019-08-13T20:24:40.724Z\",\n        \"created_at\": \"2019-01-31T15:34:19.000Z\",\n        \"updated_at\": \"2020-02-20T20:58:14.061Z\"\n    },\n    \"tws_memberships\": [\n        {\n            \"id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n            \"server\": {\n                \"alias\": \"api-playground\"\n            },\n            \"status\": 1,\n            \"tenant_user_id\": 24,\n            \"tenant\": {\n                \"name\": \"test-server\",\n                \"features\": {\n                    \"dashboard\": true,\n                    \"key_requests\": true,\n                    \"rts\": true,\n                    \"server_keys_management\": false,\n                    \"charts\": true,\n                    \"lock_notes\": true,\n                    \"maps\": true,\n                    \"access_codes\": true\n                }\n            }\n        }\n    ]\n}"}],"_postman_id":"ac24e30d-04e4-4c79-836c-3d23755188a0"},{"name":"Extend Session","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","postman.setEnvironmentVariable(\"TwsUserToken\", responseData.tws_token.tws_token_data)","postman.setEnvironmentVariable(\"TwsCurrentMembershipId\", responseData.tws_memberships[0].id)","tests[\"Authenticated\"] = responseCode.code === 201"],"type":"text/javascript"}}],"id":"f42b2465-573d-4cdb-a0a8-f39680548db4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/sessions/extend","description":"<p>Extend a session associated with a given token.</p>\n<p>Sessions expire by default in 90 days, once the session is extended it will give 90 days more to the expiry time <code>tws_token_expires_at</code></p>\n","urlObject":{"path":["sessions","extend"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[{"id":"e964d5fb-1b2f-4e2c-a06b-61f88dad2efd","name":"Extend session payload example","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"Bearer {{TwsUserToken}}","type":"text"},{"key":"tws-membership-id","value":"{{TwsCurrentMembershipId}}","type":"text"}],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/sessions/extend"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 13 Feb 2020 03:18:51 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"etag","value":"W/\"10bc-j915Q7nhpf5lzQw4NrrLtIdmX8Q\""},{"key":"x-envoy-upstream-service-time","value":"74"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"5643a84b6fb7ab7c-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"tws_token\": {\n        \"tws_token_data\": \"eyf230\",\n        \"tws_token_expires_at\": \"2020-02-21T11:18:51.484Z\",\n        \"tws_token_client_id\": 100\n    },\n    \"tws_account\": {\n        \"id\": \"e85c891f-fc17-42ce-a83d-c5ab3686885a\",\n        \"status\": 1,\n        \"email\": \"john@example.com\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Smith\",\n        \"language\": \"en\",\n        \"two_fa_enabled\": false,\n        \"failed_auth_attempts\": 0,\n        \"reset_password_token\": \"\",\n        \"reset_password_sent_at\": \"\",\n        \"activated_at\": \"2019-08-13T20:24:40.724Z\",\n        \"created_at\": \"2019-01-31T15:34:19.000Z\",\n        \"updated_at\": \"2020-02-13T02:19:51.680Z\"\n    },\n    \"tws_memberships\": [\n        {\n            \"id\": \"d8228840-059f-45bb-8285-0698ec78d4e4\",\n            \"server\": {\n                \"alias\": \"api-demo-beta\"\n            },\n            \"status\": 1,\n            \"tenant_user_id\": 8,\n            \"tenant\": {\n                \"name\": \"API Demo (Staging)\",\n                \"features\": {\n                    \"rts\": true,\n                    \"lock_notes\": true,\n                    \"dashboard\": true,\n                    \"key_requests\": true,\n                    \"maps\": true,\n                    \"charts\": true,\n                    \"lock_groups\": true\n                }\n            }\n        }\n    ]\n}"}],"_postman_id":"f42b2465-573d-4cdb-a0a8-f39680548db4"}],"id":"aeaad7df-8f79-4847-97ad-782d0aff5b2a","description":"<p>TWS authentication and session management.</p>\n","event":[{"listen":"prerequest","script":{"id":"e6c1f43c-dc74-4041-b114-ccaa0c8bb90a","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"6fb4503e-6b4b-4042-b875-b08148645628","type":"text/javascript","exec":[""]}}],"_postman_id":"aeaad7df-8f79-4847-97ad-782d0aff5b2a"},{"name":"Keys","item":[{"name":"List Keys","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Keys Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"25468a46-0530-4b4c-9031-14b10b2f6cee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/keys","description":"<p>List all active keys visible by your account for your organization.</p>\n","urlObject":{"path":["keys"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {String) Start of query period for when key starts</p>\n","type":"text/plain"},"key":"start_date","value":"2020-01-31 14:00:00"},{"disabled":true,"key":"membership_ids","value":"951d977f-19be-4d24-ad89-f34aada7441f"},{"disabled":true,"description":{"content":"<p>(optional) {String) End of query period for when key expires</p>\n","type":"text/plain"},"key":"end_date","value":"2020-02-22 12:00:00"},{"disabled":true,"description":{"content":"<p>(optional) {String} Sort results in ASC or DESC order</p>\n","type":"text/plain"},"key":"sort","value":"ASC"},{"disabled":true,"description":{"content":"<p>(optional) {Integer} Filter the query by key status (active = 0, expired=2)</p>\n","type":"text/plain"},"key":"status","value":"0"},{"disabled":true,"description":{"content":"<p>(optional) {String} Filter the query by first name, last name or email of user to search for</p>\n","type":"text/plain"},"key":"search","value":"john@example.com"},{"disabled":true,"description":{"content":"<p>(optional) {Array[Integer]} Filter the query by lock IDs</p>\n","type":"text/plain"},"key":"lock_ids","value":"[1,6]"},{"disabled":true,"key":"page_size","value":"1"}],"variable":[]}},"response":[{"id":"b7f2736c-4734-437d-9742-ab56abf3b721","name":"List keys by membership_ids","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/keys?start_date=2021-01-31 14:39:10&membership_ids=951d977f-19be-4d24-ad89-f34aada7441f","host":["{{TwsHost}}"],"path":["keys"],"query":[{"key":"start_date","value":"2021-01-31 14:39:10"},{"key":"membership_ids","value":"951d977f-19be-4d24-ad89-f34aada7441f"},{"key":"page","value":"2","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"477cb986a4a774462504df918d739844\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"7075a707-3afc-4cb9-a901-724716f9d786"},{"key":"x-runtime","value":"1.089958"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Tue, 19 May 2020 15:33:48 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1821,\n            \"active_status\": 0,\n            \"start_date\": \"2020-05-19T02:00:00.000Z\",\n            \"end_date\": \"2020-05-20T14:00:00.000Z\",\n            \"user\": {\n                \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n                \"name\": \"John Example\",\n                \"email\": \"john@example.com\"\n            },\n            \"created_at\": \"2020-05-19T03:37:58.148Z\",\n            \"issuer\": {\n                \"membership_id\": \"ab74476d-25cd-2f12-bd53-f34aabb2932f\",\n                \"name\": \"Timothy Tester\",\n                \"email\": \"timothy@example.com\"\n            },\n            \"lock_id\": 1\n        }\n\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 25\n        }\n    }\n}"},{"id":"51aba45e-6f16-4c63-8c11-8de0c4edecef","name":"List Keys by name or email","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/keys?search=john@tester.com","host":["{{TwsHost}}"],"path":["keys"],"query":[{"key":"start_date","value":"2020-01-31 14:00:00","description":"(optional) {String) Start of query period for when key starts","disabled":true},{"key":"membership_ids","value":"951d977f-19be-4d24-ad89-f34aada7441f","disabled":true},{"key":"end_date","value":"2020-02-22 12:00:00","description":"(optional) {String) End of query period for when key expires","disabled":true},{"key":"sort","value":"ASC","description":"(optional) {String} Sort results in ASC or DESC order","disabled":true},{"key":"status","value":"1","description":"(optional) {Integer} Key status (active = 0, expired=2)","disabled":true},{"key":"search","value":"john@tester.com","description":"(optional) {String} First name, last name or email of user to search for"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"3667bfcd3de4b8cc494af6e1da730d48\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"ff2abacc-7b42-49b9-a5cd-316b9e7533b8"},{"key":"x-runtime","value":"1.119721"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Tue, 19 May 2020 15:51:22 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1821,\n            \"active_status\": 0,\n            \"start_date\": \"2020-05-19T02:00:00.000Z\",\n            \"end_date\": \"2020-05-20T14:00:00.000Z\",\n            \"user\": {\n                \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n                \"name\": \"John Tester\",\n                \"email\": \"john@example.com\"\n            },\n            \"created_at\": \"2020-05-19T03:37:58.148Z\",\n            \"issuer\": {\n                \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n                \"name\": \"John Tester\",\n                \"email\": \"john@example.com\"\n            },\n            \"lock_id\": 1\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 25\n        }\n    }\n}"}],"_postman_id":"25468a46-0530-4b4c-9031-14b10b2f6cee"},{"name":"Update Key","event":[{"listen":"test","script":{"id":"d75be677-98a0-45f4-a19a-d5434640dbd9","exec":["let responseData = JSON.parse(responseBody)","tests[\"Key Updated\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"7b26202c-4761-44ff-9ee1-e26cfb1a9552","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"key\": {\n        \"comments\": \"this is a sample comment\",\n        \"ticket_number\": \"sample 1234\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/keys/:id","description":"<p>Update active keys visible by your account for your organization.</p>\n<p><strong>Request Params</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>ticket_number</strong></td>\n<td>{String}</td>\n<td>A reference field for end-user use</td>\n<td>text (max. 50)</td>\n</tr>\n<tr>\n<td><strong>comments</strong></td>\n<td>{String}</td>\n<td>A reference field for end-user use</td>\n<td>text (max. 100)</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["keys",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"c7775644-251b-42f1-98d2-59f17dc0f765","type":"string","value":"1913","key":"id"}]}},"response":[],"_postman_id":"7b26202c-4761-44ff-9ee1-e26cfb1a9552"},{"name":"Delete Key","event":[{"listen":"test","script":{"id":"44a1ab30-96fc-4ed1-aaa1-0a4c5c1179f8","exec":["tests[\"Key Deleted\"] = responseCode.code === 204"],"type":"text/javascript"}}],"id":"2c8abf4b-cfc2-44f5-bf62-045241c04cb9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/keys/:id","description":"<p>Delete an active or expired key</p>\n","urlObject":{"path":["keys",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"ac6afa79-b9de-42e0-8291-cdda9298493a","description":{"content":"<p>{Integer} Key ID</p>\n","type":"text/plain"},"type":"string","value":"1840","key":"id"}]}},"response":[],"_postman_id":"2c8abf4b-cfc2-44f5-bf62-045241c04cb9"},{"name":"Show Key","event":[{"listen":"test","script":{"id":"08ae4edc-61fe-4a48-b22c-208800f1a5d9","exec":["let responseData = JSON.parse(responseBody)","tests[\"Keys Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"f3d2d15b-322d-4cf4-b8a6-ca6d91ce661d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/keys/:id","description":"<p>Show information about a specific key</p>\n","urlObject":{"path":["keys",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"859de70e-b1ae-4ab1-bcb5-d87e119c3137","description":{"content":"<p>{Integer} Key ID</p>\n","type":"text/plain"},"type":"string","value":"1821","key":"id"}]}},"response":[{"id":"5ceca645-6da5-487f-9f72-3f5e300552b9","name":"Show Key","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/keys/:id","host":["{{TwsHost}}"],"path":["keys",":id"],"variable":[{"key":"id","value":"1821","description":"{Integer} Key ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"13cb7acccce5e04f1c687c8db18240d4\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"04a20762-77ef-44b4-9502-13aa0e9d80ba"},{"key":"x-runtime","value":"13.394762"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Tue, 19 May 2020 16:38:15 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1821,\n        \"active_status\": 0,\n        \"start_date\": \"2020-05-19T02:00:00.000Z\",\n        \"end_date\": \"2020-05-20T14:00:00.000Z\",\n        \"user\": {\n            \"membership_id\": \"30be9b7f-b9a4-4030-97d7-78fc808f68d6\",\n            \"name\": \"Timothy Tester\",\n            \"email\": \"timothy@example.com\"\n        },\n        \"created_at\": \"2020-05-19T03:37:58.148Z\",\n        \"issuer\": {\n            \"membership_id\": \"407cb5d2-d268-4310-9158-ff0b58ef71a8\",\n            \"name\": \"John Tester\",\n            \"email\": \"john@example.com\"\n        },\n        \"lock_id\": 1\n    }\n}"}],"_postman_id":"f3d2d15b-322d-4cf4-b8a6-ca6d91ce661d"},{"name":"Create Key","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Keys Created\"] = responseCode.code === 201"],"type":"text/javascript"}}],"id":"9396d279-651d-46c3-aa81-b01ea900a9b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/keys","description":"<p>Create an individual key. This may be used to create multiple individual keys for a set of users.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>key[start_date]</strong></td>\n<td>{Date}</td>\n<td>UTC Date/Time</td>\n<td>ISO compatible date string (2021-01-01 2:00:00)</td>\n</tr>\n<tr>\n<td><strong>key[end_date]</strong></td>\n<td>{Date}</td>\n<td>UTC Date/Time</td>\n<td>ISO compatible date string (2021-01-20 2:00:00)</td>\n</tr>\n<tr>\n<td><strong>key[membership_ids]</strong></td>\n<td>Array[{String}]</td>\n<td>A list of users to grant keys for</td>\n<td>Array[UUIDv4] membership IDs</td>\n</tr>\n<tr>\n<td><strong>key[lock_ids]</strong></td>\n<td>Array[{Int}]</td>\n<td>A list of locks to grant access to</td>\n<td>Array[Int] lock IDs</td>\n</tr>\n<tr>\n<td><strong>ticket_number</strong></td>\n<td>{String}</td>\n<td>A reference field for end-user use</td>\n<td>text (max. 50)</td>\n</tr>\n<tr>\n<td><strong>comments</strong></td>\n<td>{String}</td>\n<td>A reference field for end-user use</td>\n<td>text (max. 100)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"note\">Note</h3>\n<p>A key will be created for each user and lock pairing.  For example, if you are adding 2 membership_ids and 2 locks, a total of 4 unique, digital keys will be created with this request.</p>\n<h3 id=\"example\">Example</h3>\n<p> <a href=\"https://tws-api-tenant_id.sera4.com/keys?key%5Bstart_date%5D=2020-05-20\">https://tws-api-tenant_id.sera4.com/keys?key[start_date]=2020-05-20</a> 2:00:00&amp;key[end_date]=2020-05-21 14:00:00&amp;key[membership_ids]=11111&amp;key[lock_ids]=[1,7]</p>\n<h3 id=\"special-error-codes\">Special Error Codes</h3>\n<ul>\n<li><code>413</code> - too many keys would be created by this request.</li>\n</ul>\n","urlObject":{"path":["keys"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[{"id":"142bc29c-2330-42e9-95c0-69fdd367c46a","name":"Create Key - Multiple Keys, Multiple Locks","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/keys?key[start_date]=2020-05-20 2:00:00&key[end_date]=2020-05-21 14:00:00&key[membership_ids]=[\"f9c4614f-7e79-4e82-a6c9-b85720dda6ce\", \"67c0a56f-2988-4b75-9816-79b9a7a5f9f2\"]&key[lock_ids]=[1,6]","host":["{{TwsHost}}"],"path":["keys"],"query":[{"key":"key[start_date]","value":"2020-05-20 2:00:00"},{"key":"key[end_date]","value":"2020-05-21 14:00:00"},{"key":"key[membership_ids]","value":"[\"f9c4614f-7e79-4e82-a6c9-b85720dda6ce\", \"67c0a56f-2988-4b75-9816-79b9a7a5f9f2\"]"},{"key":"key[lock_ids]","value":"[1,6]"}]}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"6d4a1e1a8a622394731d4d2479da8488\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"f18b57d1-0dc1-4e99-96c1-60c981c9830b"},{"key":"x-runtime","value":"7.058268"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Tue, 19 May 2020 15:30:30 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1838,\n            \"active_status\": 0,\n            \"start_date\": \"2020-05-20T02:00:00.000Z\",\n            \"end_date\": \"2020-05-21T14:00:00.000Z\",\n            \"user\": {\n                \"membership_id\": \"f9c4614f-7e79-4e82-a6c9-b85720dda6ce\",\n                \"name\": \"John Smith\",\n                \"email\": \"john.smith16@example.com\"\n            },\n            \"created_at\": \"2020-05-19T15:30:29.052Z\",\n            \"issuer\": {\n                \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n                \"name\": \"Timothy Tester\",\n                \"email\": \"timothy@example.com\"\n            },\n            \"lock_id\": 1\n        },\n        {\n            \"id\": 1839,\n            \"active_status\": 0,\n            \"start_date\": \"2020-05-20T02:00:00.000Z\",\n            \"end_date\": \"2020-05-21T14:00:00.000Z\",\n            \"user\": {\n                \"membership_id\": \"f9c4614f-7e79-4e82-a6c9-b85720dda6ce\",\n                \"name\": \"John Smith\",\n                \"email\": \"john.smith16@example.com\"\n            },\n            \"created_at\": \"2020-05-19T15:30:29.052Z\",\n            \"issuer\": {\n                \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n                \"name\": \"Timothy Tester\",\n                \"email\": \"timothy@example.com\"\n            },\n            \"lock_id\": 6\n        },\n        {\n            \"id\": 1840,\n            \"active_status\": 0,\n            \"start_date\": \"2020-05-20T02:00:00.000Z\",\n            \"end_date\": \"2020-05-21T14:00:00.000Z\",\n            \"user\": {\n                \"membership_id\": \"67c0a56f-2988-4b75-9816-79b9a7a5f9f2\",\n                \"name\": \"Cary Exampleton\",\n                \"email\": \"cary@example.com\"\n            },\n            \"created_at\": \"2020-05-19T15:30:29.052Z\",\n            \"issuer\": {\n                \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n                \"name\": \"Timothy Tester\",\n                \"email\": \"timothy@example.com\"\n            },\n            \"lock_id\": 1\n        },\n        {\n            \"id\": 1841,\n            \"active_status\": 0,\n            \"start_date\": \"2020-05-20T02:00:00.000Z\",\n            \"end_date\": \"2020-05-21T14:00:00.000Z\",\n            \"user\": {\n                \"membership_id\": \"67c0a56f-2988-4b75-9816-79b9a7a5f9f2\",\n                \"name\": \"Cary Exampleton\",\n                \"email\": \"cary@example.com\"\n            },\n            \"created_at\": \"2020-05-19T15:30:29.052Z\",\n            \"issuer\": {\n                \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n                \"name\": \"Timothy Tester\",\n                \"email\": \"timothy@example.com\"\n            },\n            \"lock_id\": 6\n        }\n    ]\n}"},{"id":"755dd89c-aeb1-4e4e-a703-c98c6be62917","name":"Create A Single Key","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/keys?key[start_date]=2020-05-19 2:00:00&key[end_date]=2020-05-20 14:00:00&key[membership_ids]=951d977f-19be-4d24-ad89-f34aada7441f&key[lock_ids]=1","host":["{{TwsHost}}"],"path":["keys"],"query":[{"key":"key[start_date]","value":"2020-05-19 2:00:00"},{"key":"key[end_date]","value":"2020-05-20 14:00:00"},{"key":"key[membership_ids]","value":"951d977f-19be-4d24-ad89-f34aada7441f"},{"key":"key[lock_ids]","value":"1"}]}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"74a3c363cf44e0e74527b5651461f976\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"0680a7f9-3466-4ce8-ac68-00264cc253c7"},{"key":"x-runtime","value":"0.073564"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Tue, 19 May 2020 03:25:20 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1621,\n            \"active_status\": 0,\n            \"start_date\": \"2020-05-19T02:00:00.000Z\",\n            \"end_date\": \"2020-05-20T14:00:00.000Z\",\n            \"lock_id\": 1,\n            \"user\": {\n                \"membership_id\": \"ddf7f3d4-ff39-4261-93b2-02bbc6ee2fa0\",\n                \"name\": \"Timothy Tester\",\n                \"email\": \"timothy@example.com\"\n            },\n            \"created_at\": \"2020-05-19T03:25:20.394Z\",\n            \"issuer\": {\n                \"membership_id\": \"24be389d-521f-4ad9-a0e0-b690f2acab78\",\n                \"name\": \"John Sample\",\n                \"email\": \"john@example.com\"\n            }\n        }\n    ]\n}"}],"_postman_id":"9396d279-651d-46c3-aa81-b01ea900a9b0"}],"id":"d4afcce7-026c-4c58-b0e4-35ec94b93417","description":"<p>Keys are a basic resource for accessing enabled locks.</p>\n<p>For keys to be valid, they must be both ACTIVE and have a start date &lt;= the current date/time time and an end date &gt;= the current date/time.</p>\n<p>Note: All dates/times for Keys are represented in UTC time.</p>\n<p>Valid states (status) for keys are:</p>\n<p>      0 - <strong>Active</strong><br />\n      1 - <strong>Deleted</strong><br />\n      2 - <strong>Expired</strong></p>\n","event":[{"listen":"prerequest","script":{"id":"51566ae3-dc15-49a8-aca0-06911efcfc8d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"0cba076c-82ff-49f5-bdc9-49d6db144596","type":"text/javascript","exec":[""]}}],"_postman_id":"d4afcce7-026c-4c58-b0e4-35ec94b93417"},{"name":"Locks","item":[{"name":"Access History","item":[{"name":"List Access History","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["tests[\"Show Access History\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"47c8afe7-fe27-41db-8ca1-4ecbb0095329","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/locks/:id/access_history","description":"<p>List and display the access history for an organization.</p>\n","urlObject":{"path":["locks",":id","access_history"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {String} Membership IDs to filter</p>\n","type":"text/plain"},"key":"membership_ids","value":"64bde06d-b3f1-4458-98c9-6bdb34e875b1"},{"disabled":true,"description":{"content":"<p>(optional) {String) Sort results in ASC ascending or DESC descending order according to their timestamp</p>\n","type":"text/plain"},"key":"sort","value":"ASC"},{"disabled":true,"description":{"content":"<p>(optional) {String) Start date for open timestamp</p>\n","type":"text/plain"},"key":"start_date","value":"2019-10-15T21:01:32.000Z"},{"disabled":true,"description":{"content":"<p>(optional) {String) End of query period for when 'open' timestamp occurred (boundary ceiling for 'open')</p>\n","type":"text/plain"},"key":"end_date","value":"2019-10-16T21:00:00.000Z"}],"variable":[{"description":{"content":"<p>ID of the lock to query</p>\n","type":"text/plain"},"type":"string","value":"35029","key":"id"}]}},"response":[{"id":"74cb5899-4415-4d53-8a3b-638d865f50e5","name":"Query between dates","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/locks/:id/access_history?start_date=2019-10-15T21:01:32.000Z&end_date=2019-10-16T21:00:00.000Z","host":["{{TwsHost}}"],"path":["locks",":id","access_history"],"query":[{"key":"membership_ids","value":"64bde06d-b3f1-4458-98c9-6bdb34e875b1","description":"(optional) {String} Membership IDs to filter","disabled":true},{"key":"sort","value":"ASC","description":"(optional) {String) Sort results in ASC ascending or DESC descending order according to their timestamp","type":"text","disabled":true},{"key":"start_date","value":"2019-10-15T21:01:32.000Z","description":"(optional) {String) Start date for open timestamp"},{"key":"end_date","value":"2019-10-16T21:00:00.000Z","description":"(optional) {String) End of query period for when 'open' timestamp occurred (boundary ceiling for 'open')"}],"variable":[{"key":"id","value":"35029","description":"ID of the lock to query"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"03842b59f5fce1a50698ca1c27fad3b5\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"a1b29a61-5912-4f6c-824f-849249a91c3f"},{"key":"x-runtime","value":"0.073840"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Thu, 20 Feb 2020 22:16:01 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"lock_id\": 35029,\n            \"duration\": 8,\n            \"open\": {\n                \"timestamp\": \"2019-10-15T21:01:32.000Z\",\n                \"user\": {\n                    \"membership_id\": \"64bde06d-b3f1-4458-98c9-6bdb34e875b1\"\n                }\n            },\n            \"closed\": {\n                \"timestamp\": \"2019-10-15T21:01:40.000Z\"\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 25\n        }\n    }\n}"},{"id":"99557ef2-7b9e-4f9d-b55e-f3cb7d0204df","name":"Search by membership IDs","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"tws-membership-id","value":"{{TwsMembershipId}}","type":"text"},{"key":"tws-organization-token","value":"{{TwsApiOrgToken}}","type":"text"},{"key":"Authorization","value":"Bearer {{TwsUserToken}}","type":"text"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/locks/:id/access_history?membership_ids=64bde06d-b3f1-4458-98c9-6bdb34e875b1","host":["{{TwsHost}}"],"path":["locks",":id","access_history"],"query":[{"key":"membership_ids","value":"64bde06d-b3f1-4458-98c9-6bdb34e875b1","description":"(optional) {String} Membership IDs to filter"}],"variable":[{"key":"id","value":"35029","description":"ID of the lock to query"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"778d543be97e08e04142cb0354550626\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"07067ef3-f357-4953-9fe2-1f3d1060fcdf"},{"key":"x-runtime","value":"0.114168"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Thu, 20 Feb 2020 22:12:37 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"lock_id\": 35029,\n            \"duration\": 8,\n            \"open\": {\n                \"timestamp\": \"2019-10-15T21:01:32.000Z\",\n                \"user\": {\n                    \"membership_id\": \"64bde06d-b3f1-4458-98c9-6bdb34e875b1\"\n                }\n            },\n            \"closed\": {\n                \"timestamp\": \"2019-10-15T21:01:40.000Z\"\n            }\n        },\n        {\n            \"lock_id\": 35029,\n            \"duration\": 6,\n            \"open\": {\n                \"timestamp\": \"2019-10-15T19:51:15.000Z\",\n                \"user\": {\n                    \"membership_id\": \"64bde06d-b3f1-4458-98c9-6bdb34e875b1\"\n                }\n            },\n            \"closed\": {\n                \"timestamp\": \"2019-10-15T19:51:21.000Z\"\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 2,\n            \"total_pages\": 2,\n            \"current_page\": 1,\n            \"page_size\": 25\n        }\n    }\n}"}],"_postman_id":"47c8afe7-fe27-41db-8ca1-4ecbb0095329"}],"id":"cf4764c2-61c5-4668-9541-04e16374a725","description":"<p>Retrieve the access history for this organization.</p>\n","event":[{"listen":"prerequest","script":{"id":"51566ae3-dc15-49a8-aca0-06911efcfc8d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"0cba076c-82ff-49f5-bdc9-49d6db144596","type":"text/javascript","exec":[""]}}],"_postman_id":"cf4764c2-61c5-4668-9541-04e16374a725"},{"name":"Notes","item":[{"name":"Show Note","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["tests[\"Get Note Data\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"a8830ce0-52b8-4f89-8d85-f27e6e27b582","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/locks/notes/:id","description":"<p>Retrieves note details by id. This includes user comments, GPS location and if available, a unique ID to the photo associated with the note.  The <strong>Show Note Photo</strong> endpoint must be used to retrieve the note.</p>\n<p>Notes is a licensed feature and notes must be uploaded directly from the mobile device.</p>\n","urlObject":{"path":["locks","notes",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"description":{"content":"<p>ID of the tag to show</p>\n","type":"text/plain"},"type":"string","value":"35722","key":"id"}]}},"response":[{"id":"c845d885-34f8-4853-8cca-da1aff62247d","name":"Show note","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/locks/notes/:id","host":["{{TwsHost}}"],"path":["locks","notes",":id"],"variable":[{"description":"ID of the tag to show","key":"id","type":"string","value":"33968"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"b8143403213ae71ccdff57cbdae77cfc\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"e60b4572-6894-4525-92e6-b86b162d1aa0"},{"key":"x-runtime","value":"4.626952"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Sat, 15 Feb 2020 15:40:34 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"lock_event_id\": 33968,\n        \"lock\": {\n            \"id\": 67654,\n            \"name\": \"LOCK-10846\",\n            \"description\": \"Lock-67654\",\n            \"hardware_type\": \"AP3\",\n            \"hardware_id\": \"10846\",\n            \"full_identifier\": \"LOCK-10846 (10846)\",\n            \"site\": {\n                \"id\": 22,\n                \"name\": \"Testing_Site_311\"\n            },\n            \"tag_ids\": [\n                5,\n                37\n            ],\n            \"firmware_version_current\": \"5.136\"\n        },\n        \"user\": {\n            \"membership_id\": \"a01ba925-ac8a-4bd9-8be1-53386dfd4e25\",\n            \"first_name\": \"John\",\n            \"last_name\": \"Doe\",\n            \"user_group\": \"user\",\n            \"email\": \"john@doe.com\"\n        },\n        \"note\": \"Door closed\",\n        \"location\": {\n            \"lat\": \"43.511129\",\n            \"lng\": \"-80.522221\"\n        },\n        \"timestamp\": \"2019-09-12T13:54:39.064Z\",\n        \"photo\": {\n            \"id\": \"8231b3fa-78f3-4ea6-b423-8f3877fe4a6c%2Fnp%2Fc9d54ad6-c0ec-43a6-9351-59adddd7122a.jpg\"\n        }\n    }\n}"}],"_postman_id":"a8830ce0-52b8-4f89-8d85-f27e6e27b582"},{"name":"Show Note Photo","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["tests[\"Get Note Photo Data\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"ea972821-5fa2-446b-a660-bcf33c467c79","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/buckets/lock_notes/image/:filename","description":"<p>Retrieve a note photo associated with a note.  The :filename is provided by both the <strong>List Notes</strong> and <strong>Show Note</strong> endpoints and is specific to this tenant organization.</p>\n<p>The note will be returned as a base64 payload, however a <code>image_format</code> parameter may be set to return this as a  binary octet stream for direct download to file.</p>\n","urlObject":{"path":["buckets","lock_notes","image",":filename"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"4d2412ea-cbeb-4d72-818f-8f400fc4c488","description":{"content":"<p>Filename supplied</p>\n","type":"text/plain"},"type":"string","value":"c9d54ad6-c0ec-43a6-9351-59adddd7122a.jpg","key":"filename"}]}},"response":[{"id":"caaec3b7-97f9-4857-8c61-4032300e4a6d","name":"Show Note Photo","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/buckets/lock_notes/image/:filename","host":["{{TwsHost}}"],"path":["buckets","lock_notes","image",":filename"],"variable":[{"key":"filename","value":"c9d54ad6-c0ec-43a6-9351-59adddd7122a.jpg","type":"string","description":"Filename of image"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"x-powered-by","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"95313"},{"key":"etag","value":"W/\"17451-Mv58HC4uOVHu3XosPIpZQAUgH8M\""},{"key":"date","value":"Tue, 31 Mar 2020 14:49:10 GMT"},{"key":"connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": \"/9j/4AAQSkZJRgABAQAASABIAAD/wAARCAQ4AyoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTV ....... <omitted for brevity> ...... +lWIqy4Hzd6lQhgDUM33R9adF90fjVPYSLa5XoelXFfzU54I6VRFXLaspGiM66s7a6JSdAT6jg1y97pVzarmM+ZH+o+tdlJ/rTVS+/492+lCJZwyo/fINQX1vc3Fq0Ywx9fpV8/eqT/AJZn6Gm4p7gm1scjpontblwUO7bjH41vC/dTloz71ST/AJCD/wC5/Wpm6VwS3Z0rY5u+k828lkAxuNVh0qW5/wCPh/rUX8P40wHA80rU0dRSmgBtFL3ptIY4UGgUUCG0tFFMQUUGm0Af/9k=\",\n    \"meta\": {\n        \"image\": {\n            \"content_type\": \"image/jpeg\",\n            \"content_length\": 71423\n        }\n    }\n}"}],"_postman_id":"ea972821-5fa2-446b-a660-bcf33c467c79"},{"name":"List Notes","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["tests[\"List Notes\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"53663b44-4828-4c78-bacf-7fc5a77e2062","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/locks/:id/notes","description":"<p>List notes that belong to this organization. Results can be filtered to include notes with photos only.</p>\n","urlObject":{"path":["locks",":id","notes"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {Boolean} Only show notes with photos attached</p>\n","type":"text/plain"},"key":"only_with_photos","value":"true"},{"disabled":true,"description":{"content":"<p>(optional) {String} LImit the query to start at this timestamp (floor for the created date)</p>\n","type":"text/plain"},"key":"start_date","value":"2020-01-31 14:39:10"},{"disabled":true,"description":{"content":"<p>(optional) {String} LImit the query to end at this timestamp (ceiling for the created date)</p>\n","type":"text/plain"},"key":"end_date","value":"2020-02-12 12:00:00"}],"variable":[{"description":{"content":"<p>ID of the lock to query</p>\n","type":"text/plain"},"type":"string","value":"35029","key":"id"}]}},"response":[{"id":"c5cfc289-b94c-48ab-a1c1-81c474e5a5a2","name":"List Notes","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"tws-membership-id","value":"{{TwsMembershipId}}","type":"text"},{"key":"tws-organization-token","value":"{{TwsApiOrgToken}}","type":"text"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/locks/:id/notes?only_with_photos=true","host":["{{TwsHost}}"],"path":["locks",":id","notes"],"query":[{"key":"only_with_photos","value":"true","description":"(optional) {Boolean} Only show notes with photos attached"}],"variable":[{"key":"id","value":"67654","type":"string","description":"ID of the lock to query"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"43fab3bc855306449c826d08337b6c7f\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"18ae137f-5851-4406-aa06-54273f9a0a9d"},{"key":"x-runtime","value":"0.517008"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Sat, 15 Feb 2020 15:43:50 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"lock_event_id\": 30572,\n            \"lock\": {\n                \"id\": 67654,\n                \"name\": \"LOCK-10846\",\n                \"description\": \"Lock-67654\",\n                \"hardware_type\": \"AP3\",\n                \"hardware_id\": \"10846\",\n                \"full_identifier\": \"LOCK-10846 (10846)\",\n                \"site\": {\n                    \"id\": 22,\n                    \"name\": \"Testing_Site_311\"\n                },\n                \"tag_ids\": [\n                    5,\n                    37\n                ],\n                \"firmware_version_current\": \"5.136\"\n            },\n            \"user\": {\n                \"membership_id\": \"a01ba925-ac8a-4bd9-8be1-53386dfd4e25\",\n                \"first_name\": \"John\",\n                \"last_name\": \"Doe\",\n                \"user_group\": \"user\",\n                \"email\": \"john@doe.com\"\n            },\n            \"note\": \"First visit to site\",\n            \"location\": {\n                \"lat\": \"43.511121\",\n                \"lng\": \"-80.522286\"\n            },\n            \"timestamp\": \"2019-08-12T15:22:36.855Z\",\n            \"photo\": {\n                \"id\": \"8231b3fa-78f3-4ea6-b423-8f3877fe4a6c%2Fnp%2F4831c6bf-a67e-4838-ad91-e504c67f2393.jpg\"\n            }\n        },\n        {\n            \"lock_event_id\": 32407,\n            \"lock\": {\n                \"id\": 67654,\n                \"name\": \"LOCK-10846\",\n                \"description\": \"Lock-67654\",\n                \"hardware_type\": \"AP3\",\n                \"hardware_id\": \"10846\",\n                \"full_identifier\": \"LOCK-10846 (10846)\",\n                \"site\": {\n                    \"id\": 22,\n                    \"name\": \"Testing_Site_311\"\n                },\n                \"tag_ids\": [\n                    5,\n                    37\n                ],\n                \"firmware_version_current\": \"5.136\"\n            },\n            \"user\": {\n                \"membership_id\": \"a01ba925-ac8a-4bd9-8be1-53386dfd4e25\",\n                \"first_name\": \"John\",\n                \"last_name\": \"Doe\",\n                \"user_group\": \"user\",\n                \"email\": \"john@doe.com\"\n            },\n            \"note\": \"Lock physically damaged by 3rd party\",\n            \"timestamp\": \"2019-08-29T18:25:13.066Z\",\n            \"photo\": {\n                \"id\": \"8231b3fa-78f3-4ea6-b423-8f3877fe4a6c%2Fnp%2F2b326328-5374-4a0b-b69d-40879597a891.jpg\"\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 2,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"}],"_postman_id":"53663b44-4828-4c78-bacf-7fc5a77e2062"}],"id":"4a12222d-c6ba-451c-b8e6-2187b37e5238","event":[{"listen":"prerequest","script":{"id":"1607c627-f8be-481d-8b96-e77f6764f68d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"0ba155c7-6780-4d1e-bffe-d470b353e731","type":"text/javascript","exec":[""]}}],"_postman_id":"4a12222d-c6ba-451c-b8e6-2187b37e5238","description":""},{"name":"Locations","item":[{"name":"List Locations","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["tests[\"Show Lock Locations\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"cbd1a26e-8ad6-42ea-aa25-12acde4ae467","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/locks/locations","description":"<p>List the locks which have locations associated with them.  Response includes the lock_id and last known location of the lock.</p>\n","urlObject":{"path":["locks","locations"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {Integer} Limit query to ALL (0), OPEN (1), or CLOSED(2)</p>\n","type":"text/plain"},"key":"open_status","value":"0"}],"variable":[]}},"response":[{"id":"112eb468-3665-4dc5-a0eb-f1c9f5c9270e","name":"List Locations","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/locks/locations?open_status=0","host":["{{TwsHost}}"],"path":["locks","locations"],"query":[{"key":"open_status","value":"0","description":"(optional) {Integer} Limit query to ALL (0), OPEN (1), or CLOSED(2)"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"9b4e6488e45f597e2f5c963648060e5c\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"175f0de7-ffd4-480e-9efe-62187b210080"},{"key":"x-runtime","value":"22.551321"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Thu, 02 Apr 2020 05:02:44 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 9,\n            \"location\": \"43.511196,-80.522552\"\n        },\n        {\n            \"id\": 20082,\n            \"location\": \"43.511186,-80.522398\"\n        },\n        {\n            \"id\": 32300,\n            \"location\": \"19.511264,-99.152418\"\n        },\n        {\n            \"id\": 33,\n            \"location\": \"43.511200,-80.522372\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 3,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"},{"id":"1dfd8d0a-3055-41cb-ab3c-fa128f9906df","name":"Search for an lock by query string (name)","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/locks?search=5656","host":["{{TwsHost}}"],"path":["locks"],"query":[{"key":"search","value":"5656","description":"(optional) {String} Search the list of locks by name, description, site or hardware id"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"64fbd08053efc10eb580fb3035d73ae0\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"bc6fad64-3153-44fc-a306-6d6481bfc380"},{"key":"x-runtime","value":"0.898625"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Sat, 15 Feb 2020 15:52:08 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 22102,\n            \"name\": \"5656\",\n            \"description\": \"Main gate lock #1\",\n            \"lock_type_id\": 1,\n            \"lock_group_id\": 8,\n            \"hardware_id\": \"5656\",\n            \"full_identifier\": \"5656 (5656)\",\n            \"tag_ids\": [\n                24,\n                16\n            ],\n            \"firmware_version_current\": \"5.41\",\n            \"lock_group_name\": \"Region 1\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"}],"_postman_id":"cbd1a26e-8ad6-42ea-aa25-12acde4ae467"}],"id":"928f2fce-444f-4f3a-b723-235d0e67b52d","description":"<p>Get lock locations</p>\n","_postman_id":"928f2fce-444f-4f3a-b723-235d0e67b52d"},{"name":"Status","item":[{"name":"Show Lock Status","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["tests[\"Show Lock Status\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"e9c8a064-7cb0-4490-9798-a6b0aff71063","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/locks/:id/status","description":"<p>Show the detailed status for a lock.</p>\n","urlObject":{"path":["locks",":id","status"],"host":["{{TwsHost}}"],"query":[],"variable":[{"type":"any","value":null,"key":"id"}]}},"response":[{"id":"27eb3411-dc1f-4fcb-9dd9-70a3c26281cc","name":"Show Lock Status","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/locks/:/id/status"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 22 Mar 2021 15:06:29 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"5ff894e314b2306aaf64ad4c041c190a\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"b340e748-353c-4071-a16d-88e7c7603572"},{"key":"x-runtime","value":"0.021380"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"45"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"cf-request-id","value":"08fc1230db00003fd99b8ae000000001"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report?s=2H7t%2FCJV4d%2BBdYIApke%2F0LzvuoKiWYbueosqdRB8W0bEv4bWi6JRVEunHoC1EMmOYoH52KxD3s7Y6q%2FCruOQOwAor74sMdXqlLtnhGRcA1z%2BvRzBgW0MyOSFX1p87vnipQzrriTJZUozveZC5aLakn%2BbfEbs%2BccXgDOo084ibA%3D%3D\"}],\"max_age\":604800}"},{"key":"NEL","value":"{\"max_age\":604800,\"report_to\":\"cf-nel\"}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"634052faf9483fd9-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 48063,\n        \"location\": {\n            \"lat\": \"-42.282865\",\n            \"lng\": \"44.940767\"\n        },\n        \"hardware_id\": \"BBBF\",\n        \"name\": \"Lock-BBBF\",\n        \"site\": {\n            \"id\": 21,\n            \"name\": \"Main Gate\"\n        },\n        \"open\": false,\n        \"last_reported_at\": \"2021-02-26T08:15:23.000Z\",\n        \"last_status_method\": \"rts\"\n    }\n}"}],"_postman_id":"e9c8a064-7cb0-4490-9798-a6b0aff71063"},{"name":"List Lock Statuses","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["tests[\"List Lock Status\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"4868c3e1-81a4-45b0-bd62-01e085a9ae6f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/locks/status?lock_state=all","description":"<p>List the statuses for all locks </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>sort[opened_at]</strong></td>\n<td>{String}</td>\n<td>Sort results by opened_at date</td>\n<td>['asc', 'desc']</td>\n</tr>\n<tr>\n<td><strong>lock_state</strong></td>\n<td>{String}</td>\n<td>Query by lock state (default is open)</td>\n<td>[open, closed, all]</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["locks","status"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {String}</p>\n","type":"text/plain"},"key":"sort[opened_at]","value":"desc"},{"key":"lock_state","value":"all"}],"variable":[]}},"response":[{"id":"39ac048a-49fc-418d-8181-29d488651d55","name":"List Lock Statuses","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\n\t\"sort\": { \"opened_at\": \"desc\"}\n}"},"url":{"raw":"{{TwsHost}}/locks/status?lock_state=all","host":["{{TwsHost}}"],"path":["locks","status"],"query":[{"key":"sort[opened_at]","value":"desc","description":"(optional) {String}","disabled":true},{"key":"lock_state","value":"all"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 22 Mar 2021 15:43:33 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"f617f63060cb2912731cf126ca61d23b\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"a1d86c3d-ad91-407d-8302-981717fe41c0"},{"key":"x-runtime","value":"0.021358"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"52"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"cf-request-id","value":"08fc3422df0000cacc062a3000000001"},{"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?s=tucBFMVCys0lf%2Fc3xm14TjF00dJ1Y63eBfwSDNPPB9A4sLeodZOE2BoWXknKSjv%2FMCt52SlUwmkLEDFrZtiHNf3cI3en14z7te%2FxuOQ%2F%2Bmhw5g0z3rFcHW4Z%2FBR98%2F7BAtAPWOfWs209j70AKby1BGBvDJ7CbjMUAwNRrxCPDw%3D%3D\"}],\"max_age\":604800,\"group\":\"cf-nel\"}"},{"key":"NEL","value":"{\"max_age\":604800,\"report_to\":\"cf-nel\"}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"6340894afe35cacc-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 62200,\n            \"location\": {\n                \"lat\": \"-92.732173\",\n                \"lng\": \"33.324878\"\n            },\n            \"hardware_id\": \"F2F8\",\n            \"name\": \"Lock-F2F8\",\n            \"site\": {\n                \"id\": 15,\n                \"name\": \"DR-TEST1\"\n            },\n            \"open\": false,\n            \"last_reported_at\": \"2021-02-26T09:27:40.000Z\",\n            \"last_status_method\": \"rts\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"}],"_postman_id":"4868c3e1-81a4-45b0-bd62-01e085a9ae6f"}],"id":"f0849e3b-7d78-4da3-9b59-6275b81e2009","description":"<p>Get advanced status information about a single or collection of locks</p>\n","_postman_id":"f0849e3b-7d78-4da3-9b59-6275b81e2009"},{"name":"Show Lock","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Show Lock Information\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"47a91847-2cc4-448f-b075-e1488dc4b89e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"tws-membership-id","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/locks/:id","description":"<p>Show the extended information for a specific lock within this organization.</p>\n","urlObject":{"path":["locks",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"description":{"content":"<p>{String} ID or Hardware ID of lock </p>\n","type":"text/plain"},"type":"string","value":"67675","key":"id"}]}},"response":[{"id":"344fe808-fc23-47fc-9bcd-736427b70b60","name":"Show an individual lock's details","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/locks/:id","host":["{{TwsHost}}"],"path":["locks",":id"],"variable":[{"id":"62c8f996-586e-4692-9f7a-9d0bee28449b","key":"id","value":"67675","type":"string","description":"{String} ID or Hardware ID of lock "}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"6e46163004ce1af2515867a0e88e8cff\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"fdff3162-df4c-4923-ab24-21ea941f6105"},{"key":"x-runtime","value":"0.680401"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Sat, 15 Feb 2020 15:45:43 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 67675,\n        \"name\": \"LOCK-1085B\",\n        \"description\": \"Outdoor Perimeter Lock (East Side)\",\n        \"hardware_id\": \"1085B\",\n        \"hardware_type\": \"AP3\",\n        \"full_identifier\": \"LOCK-1085B (1085B)\",\n        \"tag_ids\": [\n            5\n        ],\n        \"firmware_version_current\": \"5.77\"\n    }\n}"}],"_postman_id":"47a91847-2cc4-448f-b075-e1488dc4b89e"},{"name":"List Locks","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Success\"] = responseCode.code === 200","tests[\"Array of Tags\"] = typeof(responseData[\"data\"] === \"object\") && (responseData[\"data\"].length > 0)"],"type":"text/javascript"}}],"id":"422932dc-966b-47aa-95cf-46185f56b45e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/locks","description":"<p>List the locks that belong to this organization. </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>tag_ids</strong></td>\n<td>{String}</td>\n<td></td>\n<td>First name</td>\n<td>Array {Integer}</td>\n</tr>\n<tr>\n<td><strong>lock_group_id</strong></td>\n<td>{String}</td>\n<td></td>\n<td></td>\n<td>{Integer}</td>\n</tr>\n<tr>\n<td><strong>name</strong></td>\n<td>{String}</td>\n<td></td>\n<td>Search by name (exact)</td>\n<td>{String}</td>\n</tr>\n<tr>\n<td><strong>search_name</strong></td>\n<td>{String}</td>\n<td></td>\n<td>Search by name (case insenstive, partial)</td>\n<td>{String}</td>\n</tr>\n<tr>\n<td><strong>sort</strong></td>\n<td>{String}</td>\n<td></td>\n<td>Sort results by the id / name field</td>\n<td>'id' or 'name'</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["locks"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {Boolean} Filter the results by lock tag id(s)</p>\n","type":"text/plain"},"key":"tag_ids","value":""},{"disabled":true,"description":{"content":"<p>(optional) {Integer} Filter results by the lock group</p>\n","type":"text/plain"},"key":"lock_group_id","value":""},{"disabled":true,"description":{"content":"<p>(optional) {Integer} Filter results by the type of lock (Defaults to 1 - Padlock / AP3)</p>\n","type":"text/plain"},"key":"type","value":""},{"disabled":true,"description":{"content":"<p>(optional) {String} Sort by 'id' or 'name' (defaults to sorting by ID)</p>\n","type":"text/plain"},"key":"sort","value":""},{"disabled":true,"description":{"content":"<p>(optional) {String} Search by name {exact}</p>\n","type":"text/plain"},"key":"name","value":""},{"disabled":true,"description":{"content":"<p>(optional) {String} Search by name (case insensitive, partial string)</p>\n","type":"text/plain"},"key":"search_name","value":""}],"variable":[]}},"response":[{"id":"cc970d07-bfc1-45d2-9851-7f9243448249","name":"Search Locks by Name (exact)","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/locks?name=Lock-BF4C","host":["{{TwsHost}}"],"path":["locks"],"query":[{"key":"name","value":"Lock-BF4C"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 31 Jul 2020 16:59:15 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"1c99560fd750dead78cd7af04ed5396d\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"80eba956-181e-4d46-9d0a-d85eb62bd40a"},{"key":"x-runtime","value":"0.045916"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"79"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"cf-request-id","value":"044769590f0000cacc6da78200000001"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"5bb8de6e7d93cacc-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 48972,\n            \"name\": \"Lock-BF4C\",\n            \"description\": \"Sample lock #48972\",\n            \"hardware_type\": \"AP3\",\n            \"hardware_id\": \"BF4C\",\n            \"full_identifier\": \"Lock-BF4C (Sample) (BF4C)\",\n            \"tag_ids\": [],\n            \"firmware_version_current\": \"5.9\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"},{"id":"681546cc-67c5-4ab0-8100-68608353281b","name":"Search Locks by Tag IDs","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/locks?tag_ids=1,2","host":["{{TwsHost}}"],"path":["locks"],"query":[{"key":"tag_ids","value":"1,2","description":"(optional) {Boolean} Filter the results by lock tag id(s)"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 31 Jul 2020 17:00:48 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"1c99560fd750dead78cd7af04ed5396d\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"3ea55056-8861-4f20-b588-330063d00e8b"},{"key":"x-runtime","value":"0.041696"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"78"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"cf-request-id","value":"04476ac2410000cacc6d862200000001"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"5bb8e0b06cc1cacc-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 48972,\n            \"name\": \"Lock-BF4C\",\n            \"description\": \"Sample lock #48972\",\n            \"hardware_type\": \"AP3\",\n            \"hardware_id\": \"BF4C\",\n            \"full_identifier\": \"Lock-BF4C (Sample) (BF4C)\",\n            \"tag_ids\": [1,2],\n            \"firmware_version_current\": \"5.9\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"},{"id":"31f5dcd0-0335-4ce1-a167-5779357a7754","name":"Search Locks By Name (Query Strings)","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/locks?search_name=BF4C","host":["{{TwsHost}}"],"path":["locks"],"query":[{"key":"search_name","value":"BF4C","description":"(optional) {String} Search by name (case insensitive, partial string)"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 31 Jul 2020 16:57:35 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"b93b3900c59a330c32b031254faa2532\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"043cbd05-6811-448c-98cc-db83f1998f78"},{"key":"x-runtime","value":"0.084472"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"112"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"cf-request-id","value":"044767d2730000cacc6d9d0200000001"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"5bb8dbfd8db1cacc-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 48972,\n            \"name\": \"Lock-BF4C\",\n            \"description\": \"Sample lock #48972\",\n            \"hardware_type\": \"AP3\",\n            \"hardware_id\": \"BF4C\",\n            \"full_identifier\": \"Lock-BF4C (Sample) (BF4C)\",\n            \"tag_ids\": [1,2],\n            \"firmware_version_current\": \"5.9\"\n        }        \n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"}],"_postman_id":"422932dc-966b-47aa-95cf-46185f56b45e"},{"name":"Update Lock","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Update Lock\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"4a26d22a-b17a-48bb-b51a-263725566aa8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"lock\" : {\n        \"description\": \"Garage Door\",\n        \"tag_ids\": [5,7]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/locks/:id","description":"<p>Update an existing lock</p>\n<p><strong>IMPORTANT</strong> Removing a lock from a lock group which has many users and many keys can take an extended period of time.</p>\n<p><strong>Request Params</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>lock[name]</strong></td>\n<td>{String}</td>\n<td>Set the lock name</td>\n<td>text (max. 100)</td>\n</tr>\n<tr>\n<td><strong>lock[description]</strong></td>\n<td>{String}</td>\n<td>Set the lock friendly description</td>\n<td>text (max. 100)</td>\n</tr>\n<tr>\n<td><strong>lock[lock_group_id]</strong></td>\n<td>{Integer}</td>\n<td>Set/clear the lock group ID</td>\n<td>A valid Lock Group ID</td>\n</tr>\n<tr>\n<td><strong>lock[tag_ids]</strong></td>\n<td>Array[{Int}]</td>\n<td>Set/clear the list of tags</td>\n<td>Array[Int] if Tag IDs</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["locks",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"description":{"content":"<p>ID of the lock to modify</p>\n","type":"text/plain"},"type":"string","value":"0x1085B","key":"id"}]}},"response":[{"id":"2d2b8336-c0e5-4b32-b735-0eca4072b243","name":"Update lock tags","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"}],"url":{"raw":"{{TwsHost}}/locks/:id?lock[tag_ids]=3,5","host":["{{TwsHost}}"],"path":["locks",":id"],"query":[{"key":"lock[tag_ids]","value":"3,5","description":"(optional) {Integer} Set/clear the list of tags"}],"variable":[{"description":"ID of the lock to modify","id":"242869a9-d13a-46ce-8c64-3482f3651ac3","key":"id","type":"string","value":"67675"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"ac78dba56ed05faed1638357813eeb59\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"1ea56181-f3a8-41e4-8131-f2727b0d2b71"},{"key":"x-runtime","value":"4.449288"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Sat, 15 Feb 2020 16:04:32 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 67675,\n        \"name\": \"LOCK-1085B\",\n        \"description\": \"target\",\n        \"hardware_type\": \"AP3\",\n        \"hardware_id\": \"1085B\",\n        \"full_identifier\": \"LOCK-1085B (1085B)\",\n        \"tag_ids\": [\n            3,\n            5\n        ],\n        \"firmware_version_current\": \"5.77\"\n    }\n}"},{"id":"f6f64fef-6637-4bfe-9391-af57a13c8f2b","name":"Clear all tags","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"}],"url":{"raw":"{{TwsHost}}/locks/:id?lock[tag_ids]=[]","host":["{{TwsHost}}"],"path":["locks",":id"],"query":[{"key":"lock[tag_ids]","value":"[]","description":"(optional) {Integer} Set/clear the list of tags"}],"variable":[{"description":"ID of the lock to modify","id":"242869a9-d13a-46ce-8c64-3482f3651ac3","key":"id","type":"string","value":"67675"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"9ac84146f860577ef1ac4e171a998a91\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"af44b55a-2063-4815-a583-bcedc820a07f"},{"key":"x-runtime","value":"4.491046"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Sat, 15 Feb 2020 16:19:32 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 67675,\n        \"name\": \"LOCK-1085B\",\n        \"description\": \"target\",\n        \"hardware_type\": \"AP3\",\n        \"hardware_id\": \"1085B\",\n        \"full_identifier\": \"LOCK-1085B (1085B)\",\n        \"tag_ids\": [],\n        \"firmware_version_current\": \"5.77\"\n    }\n}"}],"_postman_id":"4a26d22a-b17a-48bb-b51a-263725566aa8"}],"id":"a2946f94-030c-4334-bfd5-102f8a9f4dd5","description":"<p>Retrieve information related to the locks associated with this organization.  Locks are represented as integer numbers in the API, however this API does support IDs as either Hexidecimal (0x..) as they appear on the physical locks or as their integer equivalent.  All APIs return an integer ID for the lock, but also serialize a hexidecimal equivalent (known as the Hardware ID) for convenience.</p>\n<h3 id=\"lock-types\">Lock Types</h3>\n<p>Locks have a variety of integer types that may be returned:</p>\n<ul>\n<li><code>1</code> - Padlock</li>\n<li><code>2</code> - Enclosure</li>\n<li><code>3</code> - Shelter</li>\n<li><code>4</code> - Cargo</li>\n<li><code>5</code> - Dropbolt</li>\n<li><code>6</code> - Swinglock</li>\n</ul>\n","_postman_id":"a2946f94-030c-4334-bfd5-102f8a9f4dd5"},{"name":"Notifications","item":[{"name":"List Notifications","event":[{"listen":"test","script":{"id":"443867b5-004e-4dde-a186-dabc5c9830c5","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"94a4afc0-33ed-4874-aac8-e651d9aabb0a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"text"}}},"url":"{{TwsHost}}/notifications","description":"<p>List existing Teleporte notifications for your organization. Results can be filtered by a time period, membership_id, lock_id, and resolve status.</p>\n","urlObject":{"path":["notifications"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {String} LImit the query to start at this timestamp </p>\n","type":"text/plain"},"key":"start_date","value":"2022-06-01 00:00:00"},{"disabled":true,"description":{"content":"<p>(optional) {String} LImit the query to end at this timestamp </p>\n","type":"text/plain"},"key":"end_date","value":"2022-06-01 23:59:00"},{"disabled":true,"description":{"content":"<p>(optional) {String} Filter the query by membership_id of user </p>\n","type":"text/plain"},"key":"membership_id","value":"951d977f-19be-4d24-ad89-f34aada7441f"},{"disabled":true,"description":{"content":"<p>(optional) {integer} Filter the query by lock ID</p>\n","type":"text/plain"},"key":"lock_id","value":"12345"},{"disabled":true,"description":{"content":"<p>(optional) {Boolean} Filter the query by notification status. True for dismissed and False for active.</p>\n","type":"text/plain"},"key":"resolved","value":"True"}],"variable":[]}},"response":[{"id":"9be89197-2606-4340-bca9-64d8de951e7b","name":"List All Notifications","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"text"}}},"url":"{{TwsHost}}/notifications"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 31 May 2022 17:42:24 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"etag","value":"W/\"72309730ea4eb16bf6018510508e9e10\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"cdda03d5-120f-444d-a996-94e06a8396be"},{"key":"x-runtime","value":"0.090029"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"390"},{"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=9zVirGT0jSD3UX5nsfHsW2CQ0N2%2FF9%2B06dc6%2FBkZUfbXNI5sO7llD%2FcDWa%2B%2Buj35GXz85BsnORM4JCwagpiyMnyF69%2FgWr%2FMwtqY2kawiPX8D1Ok4TAAejX%2FBzsIi5fBNKAVpDIWUoBjmoJPTCrv9gqRj3GaG8sbEHyXfuEKkQvCuiG7BFimag%3D%3D\"}],\"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":"7141817d0e7cf263-BOG"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 31205,\n            \"type\": {\n                \"id\": 10,\n                \"name\": \"notifications.type.user.custom\",\n                \"criticality\": 0\n            },\n            \"lock\": {\n                \"id\": 38417,\n                \"name\": \"Cabinet # 44\",\n                \"hardware_type\": \"AX5\"\n            },\n            \"user\": {\n                \"membership_id\": \"829ecd97-4de7-4aa9-b48c-bb2faaac60d4\",\n                \"name\": \"Access Manager Demo\",\n                \"email\": \"demo@example.com\"\n            },\n            \"resolved\": false,\n            \"payload\": {\n                \"title\": \"Stop thief\",\n                \"message\": \"User {{user.name}} is running away with lock {{lock.name}} - stop him on site {{lock.site}} ({{lock.site.id}}).  His membership ID is {{user.membership_id}}\"\n            },\n            \"tenant_id\": \"fe341032-0398-4145-bbbb-beb2f9c47747\",\n            \"created_at\": \"2022-05-31T13:48:58.463Z\",\n            \"updated_at\": \"2022-05-31T13:48:58.463Z\"\n        },\n        {\n            \"id\": 29243,\n            \"type\": {\n                \"id\": 8,\n                \"name\": \"notifications.type.lock.open\",\n                \"criticality\": 0\n            },\n            \"lock\": {\n                \"id\": 84713,\n                \"name\": \"Cabinet S231\",\n                \"site\": {\n                    \"id\": 1029,\n                    \"name\": \"test\"\n                },\n                \"hardware_type\": \"AP3\"\n            },\n            \"user\": {\n                \"membership_id\": \"829ecd97-4de7-48e9-b48c-bb2f3f3c60d4\",\n                \"name\": \"Test User\",\n                \"email\": \"test_user@example.com\"\n            },\n            \"resolved\": false,\n            \"tenant_id\": \"fe341032-0398-4145-bbbb-bebbbbb47747\",\n            \"created_at\": \"2022-05-27T19:13:59.807Z\",\n            \"updated_at\": \"2022-05-27T19:13:59.807Z\",\n            \"timestamp\": \"2022-05-27T19:13:59.000Z\"\n        },\n        {\n            \"id\": 29242,\n            \"type\": {\n                \"id\": 8,\n                \"name\": \"notifications.type.lock.open\",\n                \"criticality\": 0\n            },\n            \"lock\": {\n                \"id\": 84713,\n                \"name\": \"Cabinet S231\",\n                \"site\": {\n                    \"id\": 1029,\n                    \"name\": \"test\"\n                },\n                \"hardware_type\": \"AP3\"\n            },\n            \"user\": {\n                \"membership_id\": \"829ecd97-4de7-4aa9-b48c-bb2faaac60d4\",\n                \"name\": \"Access Manager Demo\",\n                \"email\": \"demo@example.com\"\n            },\n            \"resolved\": false,\n            \"tenant_id\": \"fe341032-0398-4145-bbbb-beb2aaa47747\",\n            \"created_at\": \"2022-05-27T19:05:57.710Z\",\n            \"updated_at\": \"2022-05-27T19:05:57.710Z\",\n            \"timestamp\": \"2022-05-27T19:05:57.000Z\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 3,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"next_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"},{"id":"6b446772-3660-4499-9db0-e22505a9a24f","name":"List Notifications by time","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"text"}}},"url":{"raw":"{{TwsHost}}/notifications?start_date=2022-06-01 00:00:00&end_date=2022-06-01 23:59:00","host":["{{TwsHost}}"],"path":["notifications"],"query":[{"key":"start_date","value":"2022-06-01 00:00:00","description":"(optional) {String} LImit the query to start at this timestamp "},{"key":"end_date","value":"2022-06-01 23:59:00","description":"(optional) {String} LImit the query to end at this timestamp "}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 01 Jun 2022 20:10:24 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"etag","value":"W/\"e1bf8765a146f6e17ed560f1d0a7868a\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"81631163-00bf-410b-b0fb-7e1e527f6358"},{"key":"x-runtime","value":"0.096676"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"465"},{"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=9ccCBVWZ1JF1tYnkhanPTT5meEJZdoWwg7BKLqgQmIrb%2B%2FBQrbq7kjkfy4fDWyG%2FsLQoJtXotlgWHEhWDyEarrEcvvRRDjYH%2Fgqh2umdOMmLqq8kNTWDxKsLSXXSx75Kp4QFeKvttJL15gk6Cq4tTj%2Fyhs%2FgdCEOyJv5uS8RxMIN4RID%2FUCVEA%3D%3D\"}],\"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":"714a97ad9c483ee6-BOG"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 32220,\n            \"type\": {\n                \"id\": 8,\n                \"name\": \"notifications.type.lock.open\",\n                \"criticality\": 0\n            },\n            \"lock\": {\n                \"id\": 85652,\n                \"name\": \"Demo AP3\",\n                \"lock_group\": {\n                    \"id\": 145,\n                    \"name\": \"new-city\"\n                },\n                \"site\": {\n                    \"id\": 1029,\n                    \"name\": \"test-site\"\n                },\n                \"hardware_type\": \"AP3\"\n            },\n            \"resolved\": false,\n            \"tenant_id\": \"fe341032-0398-4145-bbbb-beb2f9c47747\",\n            \"created_at\": \"2022-06-01T16:11:05.121Z\",\n            \"updated_at\": \"2022-06-01T16:11:05.121Z\",\n            \"timestamp\": \"2022-06-01T16:11:00.000Z\"\n        },\n        {\n            \"id\": 32217,\n            \"type\": {\n                \"id\": 8,\n                \"name\": \"notifications.type.lock.open\",\n                \"criticality\": 0\n            },\n            \"lock\": {\n                \"id\": 85652,\n                \"name\": \"Demo AP3\",\n                \"lock_group\": {\n                    \"id\": 145,\n                    \"name\": \"new-city\"\n                },\n                \"site\": {\n                    \"id\": 1029,\n                    \"name\": \"test-site\"\n                },\n                \"hardware_type\": \"AP3\"\n            },\n            \"user\": {\n                \"membership_id\": \"9e362d13-1ace-427a-bbbb-4a5fddcb40cb\",\n                \"name\": \"Demo User\",\n                \"email\": \"demo@test-user.com\"\n            },\n            \"resolved\": false,\n            \"tenant_id\": \"fe341032-0398-4145-bbbb-beb2f9c47747\",\n            \"created_at\": \"2022-06-01T16:04:44.708Z\",\n            \"updated_at\": \"2022-06-01T16:04:44.708Z\",\n            \"timestamp\": \"2022-06-01T16:04:43.000Z\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 2,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"}],"_postman_id":"94a4afc0-33ed-4874-aac8-e651d9aabb0a"},{"name":"Create Custom Notification","event":[{"listen":"test","script":{"id":"443867b5-004e-4dde-a186-dabc5c9830c5","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"24467fac-ab09-439d-b95e-4d92b3eb90d0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"notification\": {\n        \"type\": \"user\",\n        \"membership_id\": \"829ecd97-4de7-48e9-b48c-bb2f3f3c60d4\",\n        \"lock_id\": 55905,\n        \"title\": \"Stop thief\",\n        \"criticality\": 0,\n        \"message\": \"User {{user.name}} is running away with lock {{lock.name}} - stop him on site {{lock.site}} ({{lock.site.id}}).  His membership ID is {{user.membership_id}}\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/notifications","description":"<p>Create custom notifications. Teleporte notifications are posted on the web dashboard to alert administrators.</p>\n<p>These notifications can be customized in the payload by defining the following variables:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>type</strong></td>\n<td>{String}</td>\n<td>Notification type, will set the icon depending on the type</td>\n<td>'user', 'lock'</td>\n</tr>\n<tr>\n<td><strong>membership_id</strong></td>\n<td>(optional) {String}</td>\n<td>Links the user involved with the event (if applicable)</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>lock_id</strong></td>\n<td>(optional){Integer}</td>\n<td>Links the lock involved with the event (if applicable)</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>title</strong></td>\n<td>(optional){String}</td>\n<td>Notification title</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>criticality</strong></td>\n<td>(optional){Integer}</td>\n<td>Set the notification relevance by color: Blue or Red</td>\n<td>0, 1</td>\n</tr>\n<tr>\n<td><strong>message</strong></td>\n<td>{String}</td>\n<td>Notification message</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>timestamp</strong></td>\n<td>(optional) {String}</td>\n<td>Notification time creation. If timestamp is not defined it will take the current time</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><p>Optional Clickable references can be used in the customized notification message. The following data can be referenced :</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Clickable references</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>lock</strong></td>\n<td>{{lock.id}}</td>\n</tr>\n<tr>\n<td></td>\n<td>{{lock.name}}</td>\n</tr>\n<tr>\n<td></td>\n<td>{{lock.hardware_type}}</td>\n</tr>\n<tr>\n<td></td>\n<td>{{lock.site.name}}</td>\n</tr>\n<tr>\n<td></td>\n<td>{{lock.lock_group.name}}</td>\n</tr>\n<tr>\n<td><strong>user</strong></td>\n<td>{{user.membership_id}}</td>\n</tr>\n<tr>\n<td></td>\n<td>{{user.name}}</td>\n</tr>\n<tr>\n<td></td>\n<td>{{user.email}}</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["notifications"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[{"id":"68256fc5-59f2-4b32-83c8-a50d73ccab06","name":"Create Custom Notification User Type","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"notification\": {\n        \"type\": \"user\",\n        \"membership_id\": \"829ecd97-4de7-48e9-bbbb-bb2f3f3c60d4\",\n        \"lock_id\": 55905,\n        \"title\": \"Stop thief\",\n        \"criticality\": 0,\n        \"message\": \"User {{user.name}} is running away with lock {{lock.name}} - stop him on site {{lock.site}} ({{lock.site.id}}).  His membership ID is {{user.membership_id}}\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/notifications"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 31 May 2022 20:48:43 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"etag","value":"W/\"038e6f171aa09075b2d96018512edafc\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"b8ecaaea-401c-48a1-8aba-0707933088a6"},{"key":"x-runtime","value":"0.036339"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"315"},{"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=x23e9%2FUjIEO9kgOkyXw5aXhmxPjVCwH6R%2Ba0Syk4MJJvfuW8n5NeTcKDnjBcYwKEtT3ik9Xfzeimhqwpdui9QY0D7vbZwnEWL1RIoO7HGuljmCVf1PCKG%2BoYS81SITu0JGvKoHh%2FJjjZpFATJfIG%2FxXa4DbncEDwbBait9zImOLzjvYxHbPDeQ%3D%3D\"}],\"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":"71429268ba84f267-BOG"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 31366,\n        \"type\": {\n            \"id\": 10,\n            \"name\": \"notifications.type.user.custom\",\n            \"criticality\": 0\n        },\n        \"lock\": {\n            \"id\": 55905,\n            \"name\": \"Main Door\",\n            \"hardware_type\": \"AX5-i-R\"\n        },\n        \"user\": {\n            \"membership_id\": \"829ecd97-4de7-48e9-bbbb-bb2f3f3c60d4\",\n            \"name\": \"Demo User\",\n            \"email\": \"demo@example.com\"\n        },\n        \"resolved\": false,\n        \"payload\": {\n            \"title\": \"Stop thief\",\n            \"message\": \"User {{user.name}} is running away with lock {{lock.name}} - stop him on site {{lock.site}} ({{lock.site.id}}).  His membership ID is {{user.membership_id}}\"\n        },\n        \"tenant_id\": \"fe341032-0398-4145-b307-beb2f9c47747\",\n        \"created_at\": \"2022-05-31T20:48:43.107Z\",\n        \"updated_at\": \"2022-05-31T20:48:43.107Z\"\n    }\n}"},{"id":"af124f2c-05c8-4438-88a1-c0ac050a20a4","name":"Create Custom Notification Lock Type","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"notification\": {\n        \"type\": \"lock\",\n        \"lock_id\": 85652,\n        \"title\": \"Lock identification\",\n        \"criticality\": 0,\n        \"message\": \"Lock {{lock.name}} has been detected as {{lock.hardware_type}}\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/notifications"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 01 Jun 2022 19:32:55 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"etag","value":"W/\"19bb5f5718617b70535a472dce9af6ee\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"625af0e5-1c3a-4335-8272-a684fb273d9d"},{"key":"x-runtime","value":"0.128402"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"501"},{"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=su1C7TO6xCWVkpEJe2swiF6%2F%2BwkYrGtV3melolGeTsdIt%2F86dnC7oS%2F3DreeHJHbC%2Fg7PwB2EyM4P2J5H8984Sd%2BO7DGxPUtm6jFXSzZll%2Fc4ImLk%2BvcIWAag3BJZpu2dRrP4WMczzQqYcLCD7%2F%2F7OCxqpbh%2BfSC8%2BPS1k4r5rkyelZvdJ4H6g%3D%3D\"}],\"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":"714a60bf6b77b53a-BOG"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 32296,\n        \"type\": {\n            \"id\": 9,\n            \"name\": \"notifications.type.lock.custom\",\n            \"criticality\": 0\n        },\n        \"lock\": {\n            \"id\": 85652,\n            \"name\": \"Demo AP3\",\n            \"lock_group\": {\n                \"id\": 145,\n                \"name\": \"Toronto\"\n            },\n            \"site\": {\n                \"id\": 1029,\n                \"name\": \"prueba\"\n            },\n            \"hardware_type\": \"AP3\"\n        },\n        \"resolved\": false,\n        \"payload\": {\n            \"title\": \"Lock identification\",\n            \"message\": \"Lock {{lock.name}} has been detected as {{lock.hardware_type}}\"\n        },\n        \"tenant_id\": \"fe341032-0398-4145-b307-beb2f9c47747\",\n        \"created_at\": \"2022-06-01T19:32:54.895Z\",\n        \"updated_at\": \"2022-06-01T19:32:54.895Z\"\n    }\n}"}],"_postman_id":"24467fac-ab09-439d-b95e-4d92b3eb90d0"},{"name":"Delete Custom Notification","event":[{"listen":"test","script":{"id":"443867b5-004e-4dde-a186-dabc5c9830c5","exec":["tests[\"Response 204\"] = responseCode.code === 204"],"type":"text/javascript"}}],"id":"25e590dd-5fdb-4c24-bfd4-ef63a79813d6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"text"}}},"url":"{{TwsHost}}/notifications/:id","description":"<p>Delete active or dismissed Custom Notifications</p>\n<p><strong>NOTE</strong> Notifications generated by Teleporte can't be deleted.</p>\n","urlObject":{"path":["notifications",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"92a4c91a-5f6b-4b64-aa8f-1ec1a52cfdc3","description":{"content":"<p>{Integer} Notification ID</p>\n","type":"text/plain"},"type":"any","value":"15","key":"id"}]}},"response":[],"_postman_id":"25e590dd-5fdb-4c24-bfd4-ef63a79813d6"}],"id":"c6e0042b-e53b-4695-b09a-d3e831a4e95c","description":"<p>Teleporte notifications are posted on the web dashboard to alert administrators about photo notes, low battery, unauthorized accesses, and access requests. There is also an option to generate custom notifications via APIs.</p>\n","event":[{"listen":"prerequest","script":{"id":"6b4a4d13-3e2e-4e55-8e0c-240ed798c8a2","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"fbae838d-d970-485a-ad25-ceb4e701a86f","type":"text/javascript","exec":[""]}}],"_postman_id":"c6e0042b-e53b-4695-b09a-d3e831a4e95c"},{"name":"Organizations","item":[{"name":"Webhooks","item":[{"name":"Update Configuration","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["tests[\"Update Webhook Configuration\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"b787de1b-9c55-4f52-81d0-8932e4b0a164","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"webhook_url\": \"https://example.com/webhooks\", \n    \"options\": {\n        \"authentication\": \"123\",\n        \"authentication_header\": \"some_header\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/organizations/webhooks","description":"<p>Update the webhook configuration for an organization.</p>\n<p><strong>Request Params</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>webhook_url</strong></td>\n<td>{String}</td>\n<td>Full URL for webhooks to call</td>\n<td>a valid URI</td>\n</tr>\n<tr>\n<td><strong>options[authentication]</strong></td>\n<td>{String}</td>\n<td>Authentication on each Webhook call</td>\n<td>text</td>\n</tr>\n<tr>\n<td><strong>options[authentication_header]</strong></td>\n<td>{String}</td>\n<td>Authentication header on each Webhook call</td>\n<td>text</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["organizations","webhooks"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[{"id":"56b8a70b-c42f-417c-984c-66c01d1e6078","name":"Update Webhook URL","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":"{\n    \"webhook_url\": \"https://example.com/webhooks\", \n    \"options\": {\n        \"authentication\": \"123\",\n        \"authentication_header\": \"some_header\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/organizations/:id/webhooks","host":["{{TwsHost}}"],"path":["organizations",":id","webhooks"],"variable":[{"description":"ID of the organization to show (v4 UUID)","key":"id","type":"string","value":"8231b3fa-78f3-4ea6-b423-8f3877fe4a6c"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"1e90558f2655a2c30400905a38030458\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"ebd124eb-f145-4f2e-ab9b-c7e235b39666"},{"key":"x-runtime","value":"1.728368"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Wed, 25 Mar 2020 18:44:34 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"8231b3fa-78f3-4ea6-b423-8f3877fe4a6c\",\n        \"name\": \"tenant\",\n        \"administrator\": {\n            \"id\": \"dead520e-ec7c-4c0a-9bc0-e131fc72d204\",\n            \"name\": \"Admin\",\n            \"email\": \"admin@org.com\"\n        },\n        \"api_configuration\": {\n            \"webhooks\": {\n                \"enabled\": true,\n                \"url\": \"https://example.com/webhooks\",\n                \"options\": {\n                    \"authentication\": \"123\",\n                    \"authentication_header\": \"some_header\"\n                }\n            }\n        }\n    }"}],"_postman_id":"b787de1b-9c55-4f52-81d0-8932e4b0a164"},{"name":"Show Configuration","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["tests[\"Show Webhook Configuration\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"ba945197-d5cf-4d0c-84d7-fbc4351de72e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/organizations/webhooks","description":"<p>Show current organization webhook configuration.</p>\n","urlObject":{"path":["organizations","webhooks"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[{"id":"e0d7e7c6-5f73-4d07-98ba-7e2ce6d6d7c3","name":"Show Configuration","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/organizations/:id/webhooks","host":["{{TwsHost}}"],"path":["organizations",":id","webhooks"],"variable":[{"description":"ID of the organization to show (v4 UUID)","key":"id","type":"string","value":"8231b3fa-78f3-4ea6-b423-8f3877fe4a6c"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"1e90558f2655a2c30400905a38030458\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"2f0ee0ab-f030-4060-838f-3cbbc1e063ca"},{"key":"x-runtime","value":"0.488538"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Wed, 25 Mar 2020 18:51:49 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"deadb3fa-78f3-4ea6-b423-8f3877fe4a6c\",\n        \"name\": \"tenant\",\n        \"administrator\": {\n            \"id\": \"dead520e-ec7c-4c0a-9bc0-e131fc72d204\",\n            \"name\": \"Admin\",\n            \"email\": \"admin@organization.com\"\n        },\n        \"api_configuration\": {\n            \"webhooks\": {\n                \"enabled\": true,\n                \"url\": \"https://example.com/webhooks\",\n                \"options\": {\n                    \"authentication\": \"123\",\n                    \"authentication_header\": \"some_header\"\n                }\n            }\n        }\n    }"}],"_postman_id":"ba945197-d5cf-4d0c-84d7-fbc4351de72e"},{"name":"Show Webhook Logs","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["tests[\"Show Webhook Logs\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"31609c1f-8a0c-4b58-bf48-fc35be0e7201","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/organizations/webhooks/logs?start_date=2020-01-31 14:39:10&end_date=2020-03-20 14:39:10&sort=ASC","description":"<p>Update the webhook configuration for an organization.</p>\n","urlObject":{"path":["organizations","webhooks","logs"],"host":["{{TwsHost}}"],"query":[{"description":{"content":"<p>(optional) {String} LImit the query to start at this timestamp (floor for the created date)</p>\n","type":"text/plain"},"key":"start_date","value":"2020-01-31 14:39:10"},{"description":{"content":"<p>(optional) {String} LImit the query to end at this timestamp (ceiling for the created date)</p>\n","type":"text/plain"},"key":"end_date","value":"2020-03-20 14:39:10"},{"description":{"content":"<p>(optional) {String} Sort the results in ASC or DESC (ascending/descending order)</p>\n","type":"text/plain"},"key":"sort","value":"ASC"}],"variable":[]}},"response":[],"_postman_id":"31609c1f-8a0c-4b58-bf48-fc35be0e7201"},{"name":"Show Webhook Log","event":[{"listen":"test","script":{"id":"6a483590-e68f-4597-ab5c-2a29651f0487","exec":["tests[\"Show Webhook Logs\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"3d4250ec-5b42-4c4b-b40d-ff68acb77e9e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/organizations/webhooks/logs/:id","description":"<p>Update the webhook configuration for an organization.</p>\n","urlObject":{"path":["organizations","webhooks","logs",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"722a14f6-9799-455d-b36d-ef2d0cc8a577","type":"any","value":"96","key":"id"}]}},"response":[],"_postman_id":"3d4250ec-5b42-4c4b-b40d-ff68acb77e9e"},{"name":"Resend Event","event":[{"listen":"test","script":{"id":"7e6170d1-2b5f-4c49-936d-b03bd00f60ba","exec":["tests[\"Show Webhook Logs\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"0f045c85-2907-4447-a497-4f8d8752b6f1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/organizations/webhooks/logs/:id/resend_event","description":"<p>Update the webhook configuration for an organization.</p>\n","urlObject":{"path":["organizations","webhooks","logs",":id","resend_event"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"82147f90-2630-46ff-8b33-36e2e1e67cfb","type":"any","value":"96","key":"id"}]}},"response":[],"_postman_id":"0f045c85-2907-4447-a497-4f8d8752b6f1"}],"id":"5e519d6d-fa73-4273-bdca-cf5577485bd8","description":"<p>Webhooks are an organization wide feature</p>\n","event":[{"listen":"prerequest","script":{"id":"c4daa252-8eef-4ad1-a807-4525b5113fc7","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"ac029ebd-79df-49b1-b34b-fbcaf070fd84","type":"text/javascript","exec":[""]}}],"_postman_id":"5e519d6d-fa73-4273-bdca-cf5577485bd8"},{"name":"Get Organization Details","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["tests[\"Get Organization Details\"] = responseCode.code === 200","","var jsonData = JSON.parse(responseBody);","var orgId = jsonData.data.id;","","if (orgId) {","  tests[\"Get details for organization: \" + orgId] = true","}",""],"type":"text/javascript"}}],"id":"64fe9fe5-009a-4178-8f47-9c00120f9624","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/organizations/:id","description":"<p>Retrieve information about an organization/tenant</p>\n","urlObject":{"path":["organizations",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"c5c2eb5c-aa04-4007-8810-296e22a3327a","description":{"content":"<p>ID of the organization to show (v4 UUID)</p>\n","type":"text/plain"},"type":"string","value":"683f3da2-209e-4e62-b785-b756db04023b","key":"id"}]}},"response":[{"id":"b7712ef2-5548-4cb6-94da-0767e5a7f6cd","name":"Get details for a single organization","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/organizations/:id","host":["{{TwsHost}}"],"path":["organizations",":id"],"variable":[{"description":"ID of the organization to show (v4 UUID)","key":"id","value":"d714cff4-cef2-4a55-8e39-0f26073c2622"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 12 Feb 2020 22:02:08 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"67476683c66613a0984aae656141d069\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"27e95e13-532e-4d2f-82c5-fe0c7f27e992"},{"key":"x-runtime","value":"0.022891"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"55"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"5641d858aae1aba0-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"deadb3fa-78f3-4ea6-b423-8f3877fe4a6c\",\n        \"name\": \"tenant\",\n        \"administrator\": {\n            \"id\": \"dead520e-ec7c-4c0a-9bc0-e131fc72d204\",\n            \"name\": \"Admin\",\n            \"email\": \"admin@organization.com\"\n        },\n        \"api_configuration\": {\n            \"webhooks\": {\n                \"enabled\": true,\n                \"url\": \"https://example.com/webhooks\",\n                \"options\": {\n                    \"authentication\": \"123\",\n                    \"authentication_header\": \"some_header\"\n                }\n            }\n        }\n    }"}],"_postman_id":"64fe9fe5-009a-4178-8f47-9c00120f9624"}],"id":"d03281dd-d979-4f62-b42c-77fc81f92726","description":"<p>List information for an organization/tenant</p>\n","event":[{"listen":"prerequest","script":{"id":"51566ae3-dc15-49a8-aca0-06911efcfc8d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"0cba076c-82ff-49f5-bdc9-49d6db144596","type":"text/javascript","exec":[""]}}],"_postman_id":"d03281dd-d979-4f62-b42c-77fc81f92726"},{"name":"Sites","item":[{"name":"Locks","item":[{"name":"Add Locks","event":[{"listen":"test","script":{"id":"b31da068-d015-4370-8f29-b8f151b9b768","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"d8a2494b-b1d6-4e68-8e1c-27d01aa0aea2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"lock_ids\": [12345, 67111]\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites/:site_id/locks","description":"<p>Add locks to an existing site</p>\n","urlObject":{"path":["sites",":site_id","locks"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"cd164e02-70df-4f2e-86b4-9cdea71d0332","type":"string","value":"7","key":"site_id"}]}},"response":[{"id":"d22a846b-baa9-4e12-aac6-c0a43bb71d0a","name":"Add Locks to Collection","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/sites/:site_id/locks?lock_ids=23584","host":["{{TwsHost}}"],"path":["sites",":site_id","locks"],"query":[{"key":"lock_ids","value":"23584"}],"variable":[{"key":"site_id","value":"14"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"f2d7f87a2fd2d3704ab9efb2fb422534\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"dfa6ad64-45de-4a7f-9993-66ed6c1cb79a"},{"key":"x-runtime","value":"0.274945"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Tue, 15 Sep 2020 04:41:07 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 14,\n        \"name\": \"Test site\",\n        \"status\": \"active\",\n        \"lock_count\": 1,\n        \"lock_ids\": [\n            23584\n        ]\n    }\n}"}],"_postman_id":"d8a2494b-b1d6-4e68-8e1c-27d01aa0aea2"},{"name":"Remove Lock","event":[{"listen":"test","script":{"id":"ec028c92-f868-4356-a4b9-263fa538065b","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"363748b8-39a4-4400-8203-4741aed72189","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites/:site_id/locks/:id","description":"<p>Remove lock from a site as well as access to this lock via site key.</p>\n","urlObject":{"path":["sites",":site_id","locks",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"68e5c0b4-0365-4043-9048-2753de41aaac","type":"string","value":"14","key":"site_id"},{"id":"2298a0d2-2ffe-468e-bad3-aeeb2681afad","type":"string","value":"23584","key":"id"}]}},"response":[{"id":"87f1dd79-dd84-4844-9f3d-e2995c48c618","name":"Remove Lock","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/sites/:site_id/locks/:id","host":["{{TwsHost}}"],"path":["sites",":site_id","locks",":id"],"variable":[{"key":"site_id","value":"14"},{"key":"id","value":"23584"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"f77a40a85217958e80ccf43e75a09f7c\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"360d2482-3305-488c-b037-ad7639f984c6"},{"key":"x-runtime","value":"0.131403"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Tue, 15 Sep 2020 05:09:43 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 14,\n        \"name\": \"Test site\",\n        \"status\": \"active\",\n        \"description\": \"Sample description\",\n        \"lock_count\": 0,\n        \"lock_ids\": []\n    }\n}"},{"id":"e0eeabdf-2954-4938-86cb-3b7fb154dce5","name":"Add Locks to Collection","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/sites/:site_id/locks?lock_ids=23584","host":["{{TwsHost}}"],"path":["sites",":site_id","locks"],"query":[{"key":"lock_ids","value":"23584"}],"variable":[{"key":"site_id","value":"14"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"f2d7f87a2fd2d3704ab9efb2fb422534\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"dfa6ad64-45de-4a7f-9993-66ed6c1cb79a"},{"key":"x-runtime","value":"0.274945"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Tue, 15 Sep 2020 04:41:07 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 14,\n        \"name\": \"Test site\",\n        \"status\": \"active\",\n        \"lock_count\": 1,\n        \"lock_ids\": [\n            23584\n        ]\n    }\n}"}],"_postman_id":"363748b8-39a4-4400-8203-4741aed72189"},{"name":"List Locks","event":[{"listen":"test","script":{"id":"5ef79e14-2169-4b0e-bdba-9a6bde921310","exec":["let responseData = JSON.parse(responseBody)","tests[\"List Locks\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"384e18e0-9098-4657-8e5c-9658687c1b90","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites/:site_id/locks","description":"<p>List information about the locks associated with a site</p>\n","urlObject":{"path":["sites",":site_id","locks"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {String}</p>\n","type":"text/plain"},"key":"order","value":"ASC"}],"variable":[{"id":"09aa5ba3-1080-458a-b151-d323922418b8","type":"string","value":"1","key":"site_id"}]}},"response":[{"id":"2becbc2e-cf34-4b66-b44b-971519bbdec0","name":"List Locks","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/sites/:site_id/locks","host":["{{TwsHost}}"],"path":["sites",":site_id","locks"],"variable":[{"key":"site_id","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"60e1d52b845d60d4421ba0f918bf336c\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"9134c24f-0c12-497f-8e87-8a4c814c1a45"},{"key":"x-runtime","value":"0.214248"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Wed, 14 Oct 2020 15:28:01 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 100000,\n            \"name\": \"Test Lock\",\n            \"description\": \"Sample test lock\",\n            \"lock_type_id\": 1,            \n            \"current_server_key_id\": 1,\n            \"next_server_key_id\": 1,\n            \"hardware_id\": \"186A0\",\n            \"full_identifier\": \"Test Lock (186A0)\",\n            \"configuration\": 1,\n            \"site\": {\n                \"id\": 1,\n                \"name\": \"Test Site\"\n            },\n            \"tag_ids\": [],\n            \"battery_status\": 1,\n            \"firmware_version_current\": \"5.9\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"}],"_postman_id":"384e18e0-9098-4657-8e5c-9658687c1b90"}],"id":"1816ea6b-2331-426f-b230-5a23017b0449","_postman_id":"1816ea6b-2331-426f-b230-5a23017b0449","description":""},{"name":"Keys","item":[{"name":"Access","item":[{"name":"List Access","event":[{"listen":"test","script":{"id":"4de4b5b7-4fbf-4912-9a9e-04e4b5dbcbbe","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"6787b748-c9c4-4ef1-bc5a-1c242e5addb4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites/:site_id/keys/access","description":"<p>List users with access to a site.</p>\n","urlObject":{"path":["sites",":site_id","keys","access"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"a9acaf2c-597f-4b39-a016-4ee3f025bfd6","type":"string","value":"7","key":"site_id"}]}},"response":[],"_postman_id":"6787b748-c9c4-4ef1-bc5a-1c242e5addb4"}],"id":"40f81aaa-e08a-4146-8612-a4564f5c5843","event":[{"listen":"prerequest","script":{"id":"a2e42d60-c60e-441c-8ca1-b88b901fa532","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"2a111f0f-21ba-4109-9bc6-c0cc73eda5bd","type":"text/javascript","exec":[""]}}],"_postman_id":"40f81aaa-e08a-4146-8612-a4564f5c5843","description":""},{"name":"Create Site Key","event":[{"listen":"test","script":{"id":"7bb2a367-3d68-49d1-ac23-94c69fefe7d9","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"f65914e6-f4d3-438e-b0f7-84c0284d16c2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"key\": {\n        \"start_date\": \"2020-09-14 12:00:00\",\n        \"end_date\": \"2020-09-16 12:00:10\",\n        \"membership_ids\": [\"951d977f-19be-4d24-ad89-f34aada7441f\"],\n        \"ticket_number\": \"ticket number\",\n        \"comments\": \"comments\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites/:site_id/keys","description":"<p>Create a new key for a site.  Optionally add initial users to the site_key to have keys automatically provisioned for the users.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>start_date</strong></td>\n<td>{DateTime}</td>\n<td>Start time/date for the key</td>\n<td>UTC DateTime value</td>\n</tr>\n<tr>\n<td><strong>end_date</strong></td>\n<td>{DateTime}</td>\n<td>Expiry time/date for the key</td>\n<td>UTC DateTime value</td>\n</tr>\n<tr>\n<td><strong>membership_ids</strong></td>\n<td>{Array}</td>\n<td>Users to add to the the site key</td>\n<td>Array of v4 UUIDs</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["sites",":site_id","keys"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"660957e8-9718-46a8-878b-07aa19a8b1b6","type":"string","value":"1","key":"site_id"}]}},"response":[{"id":"32133ab4-6f6a-4fd0-afa9-e8798d12b30d","name":"Create Site Key","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"key\": {\n        \"start_date\": \"2020-09-14 12:00:00\",\n        \"end_date\": \"2020-09-16 12:00:10\",\n        \"membership_ids\": [\"951d977f-19be-4d24-ad89-f34aada7441f\"]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites/1/keys"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"6f7971dd0f644bc17f89bec17aa51910\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"3bb6b23e-9b3e-40cc-93d6-c9cdb616d6ec"},{"key":"x-runtime","value":"22.035450"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Mon, 14 Sep 2020 20:56:25 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 17,\n        \"start_date\": \"2020-09-14T12:00:00.000Z\",\n        \"end_date\": \"2020-09-16T12:00:10.000Z\",\n        \"issuer\": {\n            \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n            \"name\": \"Sample Admin\",\n            \"email\": \"sample.admin@example.com\"\n        },\n        \"created_at\": \"2020-09-14T20:48:29.683Z\",\n        \"site_id\": 1\n    }\n}"}],"_postman_id":"f65914e6-f4d3-438e-b0f7-84c0284d16c2"},{"name":"List Site Keys","event":[{"listen":"test","script":{"id":"3c85261e-34ff-4cf3-8f43-2be64839afaf","exec":["let responseData = JSON.parse(responseBody)","tests[\"List Keys\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"56c03c3b-fcc7-40b2-bba0-18837042eb0a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites/:site_id/keys","description":"<p>Create a new site.  Useful for grouping locks into named collections and assigning keys.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>start_date</strong></td>\n<td>{DateTime}</td>\n<td>First name</td>\n<td>UTC DateTime value</td>\n</tr>\n<tr>\n<td><strong>end_date</strong></td>\n<td>{DateTime}</td>\n<td>Last name</td>\n<td>UTC DateTime value</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["sites",":site_id","keys"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {String} LImit the query to end at this timestamp (ceiling for the created date)</p>\n","type":"text/plain"},"key":"start_date","value":"2020-09-13 12:00:00"},{"disabled":true,"description":{"content":"<p>(optional) {String} LImit the query to end at this timestamp (ceiling for the created date)</p>\n","type":"text/plain"},"key":"end_date","value":"2020-09-14 12:00:00"},{"disabled":true,"description":{"content":"<p>(optional) {String}</p>\n","type":"text/plain"},"key":"order","value":"ASC"}],"variable":[{"id":"c9be8058-0b39-4def-bc1f-a5ce6422abfd","type":"string","value":"1","key":"site_id"}]}},"response":[{"id":"a01f761e-09a6-4f86-ad36-667309ab3c35","name":"List Keys","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/sites/:site_id/keys?start_date=2020-09-13 12:00:00","host":["{{TwsHost}}"],"path":["sites",":site_id","keys"],"query":[{"key":"start_date","value":"2020-09-13 12:00:00","description":"(optional) {String} LImit the query to end at this timestamp (ceiling for the created date)"}],"variable":[{"key":"site_id","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"9e5f5f97c79531514f563b389cc31c0a\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"392fd2ac-876d-489c-bbbf-1bf1fbcbba65"},{"key":"x-runtime","value":"0.456563"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Tue, 15 Sep 2020 01:20:33 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 17,\n            \"start_date\": \"2020-09-14T12:00:00.000Z\",\n            \"end_date\": \"2020-09-16T12:00:10.000Z\",\n            \"issuer\": {\n                \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n                \"name\": \"Sample Admin\",\n                \"email\": \"sample@example.com\"\n            },\n            \"created_at\": \"2020-09-14T20:48:29.683Z\",\n            \"site_id\": 1\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"}],"_postman_id":"56c03c3b-fcc7-40b2-bba0-18837042eb0a"},{"name":"Show Site Key","event":[{"listen":"test","script":{"id":"dea7dc48-405e-4f4f-8023-0d4f421e5122","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"c16c86ab-bac7-48e7-b413-231a5e184660","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites/:site_id/keys/:id","description":"<p>Show details about a specific access key</p>\n","urlObject":{"path":["sites",":site_id","keys",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"773f417d-24b9-4673-ae24-790a8f59369a","type":"string","value":"7","key":"site_id"},{"id":"f445e561-8c0c-499d-9fa2-d4c6ef3989c7","type":"string","value":"10","key":"id"}]}},"response":[],"_postman_id":"c16c86ab-bac7-48e7-b413-231a5e184660"},{"name":"Update Site Key","event":[{"listen":"test","script":{"id":"c3a9b7af-bc5f-42cc-a48e-c1151a3699fd","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"f8e8297a-2339-4132-8182-7cdc710d6e64","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"key\": {\n        \"ticket_number\": \"12345\",\n        \"comments\": \"an updated comment\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites/:site_id/keys/:id","description":"<p>Update the fields of an existing site key. </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>ticket_number</strong></td>\n<td>{String}</td>\n<td>Ticket number</td>\n<td>UTF-8 string</td>\n</tr>\n<tr>\n<td><strong>comments</strong></td>\n<td>{String}</td>\n<td>Additional comments</td>\n<td>UTF-8 string</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>The start and end dates for a site key cannot be updated after creation.</strong></p>\n","urlObject":{"path":["sites",":site_id","keys",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"45a799bf-52a4-4000-a117-173e90d67e37","type":"string","value":"1","key":"site_id"},{"id":"ec3e1378-dcca-4589-a5d3-ea205efa357a","type":"string","value":"25","key":"id"}]}},"response":[{"id":"7b0eb0c6-d02f-434e-8fa3-80cb911eb97d","name":"Update Key","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"key\": {\n        \"ticket_number\": \"12345\",\n        \"comments\": \"an updated comment\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/sites/:site_id/keys/:id","host":["{{TwsHost}}"],"path":["sites",":site_id","keys",":id"],"variable":[{"key":"site_id","value":"1"},{"key":"id","value":"25"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"c52e1e85e4946a1df5db95f06cec5670\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"97127097-3ba8-4914-936e-df86e2edcaad"},{"key":"x-runtime","value":"7.037348"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Wed, 14 Oct 2020 15:25:57 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 25,\n        \"start_date\": \"2020-09-22T14:00:00.000Z\",\n        \"end_date\": \"2020-09-29T15:00:00.000Z\",\n        \"ticket_number\": \"12345\",\n        \"comments\": \"an updated comment\",\n        \"issuer\": {\n            \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\",\n            \"name\": \"Sample admin\",\n            \"email\": \"admin@example.com\"\n        },\n        \"created_at\": \"2020-09-23T02:27:08.643Z\",\n        \"site_id\": 1\n    }\n}"}],"_postman_id":"f8e8297a-2339-4132-8182-7cdc710d6e64"},{"name":"Delete Site Key","event":[{"listen":"test","script":{"id":"c3a9b7af-bc5f-42cc-a48e-c1151a3699fd","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"2942d42d-c28d-4268-81a5-8e98fa30f32c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{TwsHost}}/sites/:site_id/keys/:id","description":"<p>Delete an existing site key.</p>\n","urlObject":{"path":["sites",":site_id","keys",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"45a799bf-52a4-4000-a117-173e90d67e37","type":"string","value":"1","key":"site_id"},{"id":"ec3e1378-dcca-4589-a5d3-ea205efa357a","type":"string","value":"25","key":"id"}]}},"response":[],"_postman_id":"2942d42d-c28d-4268-81a5-8e98fa30f32c"}],"id":"59abab57-ece3-4216-a824-5c310749dc26","event":[{"listen":"prerequest","script":{"id":"005d7c27-52e3-4801-8d66-223f37a644fe","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"6c8e356a-be40-4748-8f40-b1c03d6f8693","type":"text/javascript","exec":[""]}}],"_postman_id":"59abab57-ece3-4216-a824-5c310749dc26","description":""},{"name":"List Sites","event":[{"listen":"test","script":{"id":"e05efc67-11a9-4ac3-b914-87a29d1c7d41","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"765e7583-1264-4544-9c36-aa7eb11e8a70","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/sites","description":"<p>Lists/searches the sites for this organization.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>search</strong></td>\n<td>{String}</td>\n<td>Site name to search for</td>\n<td>UTF-8 string</td>\n</tr>\n<tr>\n<td><strong>sort_by</strong></td>\n<td>{String}</td>\n<td>Order to sort the results</td>\n<td>column can equal one of  <br />id,name, updated_at, open, opened_at</td>\n</tr>\n<tr>\n<td><strong>open</strong></td>\n<td>{Boolean}</td>\n<td>Filter by site open</td>\n<td>true,false</td>\n</tr>\n</tbody>\n</table>\n</div><p>In addition, this endpoint will support the typical <strong>page_size</strong> and <strong>page</strong> parameters.</p>\n","urlObject":{"path":["sites"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[{"id":"5a2386ae-5ace-49c0-8b48-3fad3bc2e983","name":"Search by Name","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/sites?search=Site A","host":["{{TwsHost}}"],"path":["sites"],"query":[{"key":"search","value":"Site A"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"0545e1473c51b7f816aac725faff0897\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"cecc5ac6-c26b-4e82-b988-6d24aa53883c"},{"key":"x-runtime","value":"0.236657"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Mon, 14 Sep 2020 15:09:23 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 9,\n            \"name\": \"Site A\",\n            \"lock_count\": 0,\n            \"lock_ids\": [23933],\n            \"updated_at\": \"2020-09-23T01:23:27.082Z\",\n            \"open\": false,\n            \"hardware_count\": {\n                \"AP3\": 1\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 20\n        }\n    }\n}"},{"id":"62ef4972-15cc-4af8-8eca-7f0a20d3c283","name":"Search by Open/Closed","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/sites?open=false","host":["{{TwsHost}}"],"path":["sites"],"query":[{"key":"open","value":"false"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"0545e1473c51b7f816aac725faff0897\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"cecc5ac6-c26b-4e82-b988-6d24aa53883c"},{"key":"x-runtime","value":"0.236657"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Mon, 14 Sep 2020 15:09:23 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 9,\n            \"name\": \"Site A\",\n            \"lock_count\": 0,\n            \"lock_ids\": [23933],\n            \"updated_at\": \"2020-09-23T01:23:27.082Z\",\n            \"open\": false,\n            \"hardware_count\": {\n                \"AP3\": 1\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 20\n        }\n    }\n}"},{"id":"e7b97cac-62ac-49cb-8a09-d828075c4921","name":"List Sites","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/sites"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"afb7892b221ddaa14d3c950448ba959b\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"1856e327-0ee8-4ff7-8ab3-6bc6ab45c334"},{"key":"x-runtime","value":"1.625780"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Mon, 14 Sep 2020 15:07:42 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 10,\n            \"name\": \"Site A\",\n            \"lock_count\": 1,\n            \"lock_ids\": [23933],\n            \"updated_at\": \"2020-09-23T01:23:27.082Z\",\n            \"open\": false,\n            \"hardware_count\": {\n                \"AP3\": 1\n            }\n        },\n        {\n            \"id\": 11,\n            \"name\": \"Site B\",\n            \"lock_count\": 0,\n            \"updated_at\": \"2020-09-23T01:23:27.082Z\",\n            \"open\": false,\n            \"lock_ids\": []\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 2,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 20\n        }\n    }\n}"}],"_postman_id":"765e7583-1264-4544-9c36-aa7eb11e8a70"},{"name":"Create Site","event":[{"listen":"test","script":{"id":"61f11cb4-59e5-401a-bf8e-a02d9f805af5","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"5ea280b1-2ac6-4051-9e8e-8386630b8469","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"site\": {\n        \"name\": \"test\",\n        \"description\": \"test site\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites","description":"<p>Create a new site.  Useful for grouping locks into named collections and assigning keys.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>name</strong></td>\n<td>{String}</td>\n<td>Site name</td>\n<td>UTF-8 string</td>\n</tr>\n<tr>\n<td><strong>description</strong></td>\n<td>{String}</td>\n<td>Description for the site</td>\n<td>UTF-8 string</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["sites"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5ea280b1-2ac6-4051-9e8e-8386630b8469"},{"name":"Update Site","event":[{"listen":"test","script":{"id":"035b2bc9-08bf-4eae-bf9f-e6753da276c5","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"98f006b1-72f0-4a97-b295-7eeb67909d7f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"site\": {\n        \"name\": \"test site updated\",\n        \"description\": \"an updated description\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites/:site_id","description":"<p>Update an existing new site.  Useful for grouping locks into named collections and assigning keys.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>name</strong></td>\n<td>{String}</td>\n<td>Site name</td>\n<td>UTF-8 string</td>\n</tr>\n<tr>\n<td><strong>description</strong></td>\n<td>{String}</td>\n<td>Description for the site</td>\n<td>UTF-8 string</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["sites",":site_id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"eef0d483-b26b-4d29-b9b4-8ff7ecdbf5ff","type":"string","value":"5","key":"site_id"}]}},"response":[],"_postman_id":"98f006b1-72f0-4a97-b295-7eeb67909d7f"},{"name":"Delete Site","event":[{"listen":"test","script":{"id":"ba2fc510-24c6-46fc-8e1f-303a0f86ad8e","exec":["tests[\"System Logs Retrieved\"] = responseCode.code === 204"],"type":"text/javascript"}}],"id":"25547763-0dcc-4caa-80e2-a645bbfd252f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites/:site_id","description":"<p>Delete a site and remove all of the keys assigned to locks within this site.</p>\n","urlObject":{"path":["sites",":site_id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"90a32576-d4e2-4f0a-bb5b-4c45c5b42c53","type":"string","value":"8","key":"site_id"}]}},"response":[{"id":"1e07406a-ad35-481b-82ea-2ec6ac737212","name":"Delete Site","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/sites/:id","host":["{{TwsHost}}"],"path":["sites",":id"],"variable":[{"key":"id","value":"9"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"cache-control","value":"no-cache"},{"key":"x-request-id","value":"472d6d38-f633-4e7e-a7d2-c88cd8506cc5"},{"key":"x-runtime","value":"5.057614"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"Date","value":"Tue, 15 Sep 2020 02:29:19 GMT"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"25547763-0dcc-4caa-80e2-a645bbfd252f"},{"name":"Show Site","event":[{"listen":"test","script":{"id":"22bb326e-1a24-46d4-9f8f-437d8f819505","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"9984fc68-377b-41ed-b6a6-48b1fcad0ee4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/sites/:site_id","description":"<p>Lists/searches the sites for this organization.</p>\n","urlObject":{"path":["sites",":site_id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"type":"any","value":"4","key":"site_id"}]}},"response":[{"id":"5ee5f12d-feae-4a1f-b7c9-8bc91130e63a","name":"Show Site","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/sites/:site_id","host":["{{TwsHost}}"],"path":["sites",":site_id"],"variable":[{"key":"site_id","value":"4"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id,tws-client-timezone"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"09a82d43ae5753a47c1c0168d55c14f3\""},{"key":"x-request-id","value":"650b5a3b-5ef2-411c-ae9a-f7200c5f68c6"},{"key":"x-runtime","value":"0.018094"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Thu, 18 Jan 2024 23:19:00 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 4,\n        \"name\": \"O-767\",\n        \"status\": \"active\",\n        \"updated_at\": \"2024-01-18T22:02:42.904Z\",\n        \"checkin_required\": false,\n        \"open\": true,\n        \"lock_count\": 1,\n        \"lock_ids\": [\n            61\n        ],\n        \"key_count\": 0,\n        \"membership_ids\": [],\n        \"max_locks\": 20,\n        \"open_locks\": [\n            {\n                \"id\": 61,\n                \"opened_at\": \"2024-01-11T23:03:25.558Z\",\n                \"name\": \"LOCK-003D\"\n            }\n        ]\n    }\n}"}],"_postman_id":"9984fc68-377b-41ed-b6a6-48b1fcad0ee4"}],"id":"8484c752-4511-4dc7-b59d-3850b165e874","description":"<p>TWS Sites are collection of locks which can be assigned keys and users.  Creating a site key for user(s) will effectively create a digital key for all locks in that site &amp; all users that belong to that key.  Removing the site key, will remove that digital access key for all locks on that site.</p>\n","event":[{"listen":"prerequest","script":{"id":"604d24a5-dae4-49d2-8449-f9e6f8bad19d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"f0967c49-eafc-40c5-a20c-fd1064ae2635","type":"text/javascript","exec":[""]}}],"_postman_id":"8484c752-4511-4dc7-b59d-3850b165e874"},{"name":"System Logs","item":[{"name":"List System Logs","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"System Logs Retrieved\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"79f641a1-bb63-4181-8531-28bf98a36d2c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/system_logs","description":"<p>Lists the system logs for this organization. Results can be filtered based on date.</p>\n","urlObject":{"path":["system_logs"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {String} LImit the query to start at this timestamp (floor for the created date)</p>\n","type":"text/plain"},"key":"start_date","value":"2020-01-31 14:39:10"},{"disabled":true,"description":{"content":"<p>(optional) {String} LImit the query to end at this timestamp (ceiling for the created date)</p>\n","type":"text/plain"},"key":"end_date","value":"2020-02-13 12:00:00"},{"disabled":true,"description":{"content":"<p>(optional) {Array of String} Limit the query to specific membership IDs</p>\n","type":"text/plain"},"key":"membership_ids","value":"951d977f-19be-4d24-ad89-f34aada7441f"},{"disabled":true,"description":{"content":"<p>(optional) {Array of Integer} Limit the query to certain log types</p>\n","type":"text/plain"},"key":"log_types","value":"1"},{"disabled":true,"description":{"content":"<p>(optional) {String} Sort the results in ASC or DESC (ascending/descending order)</p>\n","type":"text/plain"},"key":"sort","value":"ASC"}],"variable":[]}},"response":[{"id":"60a314d3-94cc-4914-8d2e-199960d53186","name":"List System Logs - Show Administrative Logins","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/system_logs?log_types=1","host":["{{TwsHost}}"],"path":["system_logs"],"query":[{"key":"start_date","value":"2020-01-31 14:39:10","type":"text","description":"(optional) {String} LImit the query to start at this timestamp (floor for the created date)","disabled":true},{"key":"end_date","value":"2020-02-13 12:00:00","description":"(optional) {String} LImit the query to end at this timestamp (ceiling for the created date)","type":"text","disabled":true},{"key":"membership_ids","value":"951d977f-19be-4d24-ad89-f34aada7441f","type":"text","description":"(optional) {Array of String} Limit the query to specific membership IDs","disabled":true},{"key":"log_types","value":"1","description":"(optional) {Array of Integer} Limit the query to certain log types"},{"key":"sort","value":"ASC","description":"(optional) {String} Sort the results in ASC or DESC (ascending/descending order)","type":"text","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"fa152f940ac20e706a956f7efe2cd57c\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"392ac76f-e58e-4a84-839f-b9b7d394dbd5"},{"key":"x-runtime","value":"0.690591"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Thu, 13 Feb 2020 14:55:56 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 6316,\n            \"log_type\": 1,\n            \"params\": {\n                \"ip\": \"172.18.0.7\"\n            },\n            \"created_at\": \"2020-02-13T14:44:38.566Z\",\n            \"user\": {\n                \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\"\n            }\n        },\n        {\n            \"id\": 6310,\n            \"log_type\": 1,\n            \"params\": {\n                \"ip\": \"172.19.0.6\"\n            },\n            \"created_at\": \"2020-02-12T20:53:34.922Z\",\n            \"user\": {\n                \"membership_id\": \"951d977f-19be-4d24-ad89-f34aada7441f\"\n            }\n        }\n   ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 2,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"first_page\": true,\n            \"last_page\": true,\n            \"next_page\": 1,\n            \"out_of_bounds\": false,\n            \"page_size\": 25\n        }\n    }\n}"},{"id":"f1874399-ae1d-496e-a9b1-1b6c5d9cb689","name":"List System Logs - Show logs newer than","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/system_logs?start_date=2020-01-31 14:39:10","host":["{{TwsHost}}"],"path":["system_logs"],"query":[{"key":"start_date","value":"2020-01-31 14:39:10"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Referrer-Policy","value":"origin-when-cross-origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"3470c7c11d2bd41b16f474ec12f1e562\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"55fac6b8-b435-4750-b79f-c1b28912cfa2"},{"key":"x-runtime","value":"0.045925"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Fri, 31 Jan 2020 22:37:33 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 6303,\n            \"log_type\": 1,\n            \"params\": {\n                \"ip\": \"172.19.0.7\"\n            },\n            \"created_at\": \"2020-01-31T14:39:10.887Z\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"first_page\": true,\n            \"last_page\": true,\n            \"out_of_bounds\": false,\n            \"page_size\": 25\n        }\n    }\n}"}],"_postman_id":"79f641a1-bb63-4181-8531-28bf98a36d2c"}],"id":"1fdff0e0-6452-413b-b09d-0cdaf4e9f14f","description":"<p>The system logs contain informations about administrator and user generated events.</p>\n<h3 id=\"log-types\">Log Types</h3>\n<p>The log_type field can have one of the following values:</p>\n<ul>\n<li><code>1</code> Account log in</li>\n<li><code>2</code> Account log out</li>\n<li><code>3</code> A user account was created</li>\n<li><code>4</code> A user account was deactivated</li>\n<li><code>5</code> The user that generated the event has changed his password.</li>\n<li><code>6</code> User type (user group) has changed</li>\n<li><code>7</code> User permission to use mulitple mobile devices has changed</li>\n<li><code>8</code> An user attempted to login with a different mobile device than the one his authorized to use. Generated only when users are not allowed to use multiple mobile devices</li>\n<li><code>9</code> User's mobile device was reset</li>\n<li><code>10</code> Reserved</li>\n<li><code>11</code> Lock name changed</li>\n<li><code>12</code> Lock description changed</li>\n<li><code>13</code> Reserved</li>\n<li><code>14</code> Key created</li>\n<li><code>15</code> Key deleted</li>\n<li><code>16</code> Reserved</li>\n<li><code>17</code> A deactivated user account was recovered</li>\n<li><code>18</code> Lock type was changed on a lock</li>\n<li><code>19</code> Lock group was changed on a lock</li>\n<li><code>20-23</code> Reserved</li>\n<li><code>24</code> Created lock group</li>\n<li><code>25</code> Deleted lock group</li>\n<li><code>26</code> Changed lock group name or description</li>\n<li><code>27</code> Added user to lock group</li>\n<li><code>28</code> Removed user from lock group</li>\n<li><code>29</code> Rotates signing keys on a lock</li>\n<li><code>30</code> Added lock to lock group</li>\n<li><code>31</code> Removed lock from lock group</li>\n<li><code>32</code> User suspended</li>\n<li><code>33</code> User unsuspended</li>\n<li><code>34</code> New Site created</li>\n<li><code>35</code> Site deleted</li>\n<li><code>36</code> Site changed</li>\n<li><code>37</code> Site key created for a new user</li>\n<li><code>38</code> Site key removed from an user</li>\n<li><code>39</code> Lock added to a Site</li>\n<li><code>40</code> Lock removed from a Site</li>\n<li><code>41</code> Site key deleted</li>\n<li><code>42</code> Site key ticket number updated</li>\n<li><code>43</code> Site key comments updated</li>\n<li><code>44</code> Individual key ticket number updated</li>\n<li><code>45</code> Individual key comments updated</li>\n<li><code>46</code> API Token created</li>\n<li><code>47</code> API Token updated</li>\n<li><code>48</code> API Token destroyed</li>\n<li><code>49</code> [webhooks] - access request</li>\n<li><code>50</code> [webhooks] - keys</li>\n<li><code>51</code> [webhooks] - group keys</li>\n<li><code>52</code> [webhooks] - site kets</li>\n<li><code>53</code> [webhooks] - locks</li>\n<li><code>54</code> [webhooks] - lock events</li>\n<li><code>55</code> [webhooks] - locks status</li>\n<li><code>56</code> [webhooks] - organizations</li>\n<li><code>57</code> [webhooks] - sites</li>\n<li><code>58</code> [webhooks] - users</li>\n<li><code>59</code> [webhooks] - URL</li>\n<li><code>60</code> [webhooks] - signature</li>\n<li><code>72</code> [webhooks] - lock notes</li>\n<li><code>77</code> [webhooks] - system logs</li>\n<li><code>61</code> FSU created</li>\n<li><code>62</code> System preference updated</li>\n<li><code>63</code> MFA stauts enabled</li>\n<li><code>64</code> MFA status set up</li>\n<li><code>65</code> MFA status disabled</li>\n<li><code>66</code> MFA code generated</li>\n<li><code>67</code> MFA backup code generated</li>\n<li><code>68</code> MFA setup complete TOTP</li>\n<li><code>69</code> Failed authentication attempt</li>\n<li><code>70</code> Account locked</li>\n<li><code>71</code> Account unlocked</li>\n<li><code>73</code> Device restriction enabled</li>\n<li><code>74</code> Device restriction disabled</li>\n<li><code>75</code> User change attribute</li>\n<li><code>76</code> User removed password</li>\n<li><code>78</code> Expired sign in link</li>\n</ul>\n","event":[{"listen":"prerequest","script":{"id":"51566ae3-dc15-49a8-aca0-06911efcfc8d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"0cba076c-82ff-49f5-bdc9-49d6db144596","type":"text/javascript","exec":[""]}}],"_postman_id":"1fdff0e0-6452-413b-b09d-0cdaf4e9f14f"},{"name":"Tags","item":[{"name":"Show Tag","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)",""],"type":"text/javascript"}}],"id":"ec68f14e-d85a-4a67-b09e-5ddc6fbb5c9c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/tags/:id","description":"<p>Display a specific tag by id</p>\n","urlObject":{"path":["tags",":id"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {Boolean} Include resource ids for all users and locks</p>\n","type":"text/plain"},"key":"include_associations","value":"true"}],"variable":[{"description":{"content":"<p>ID of the tag to show</p>\n","type":"text/plain"},"type":"string","value":"3","key":"id"}]}},"response":[{"id":"d5e92c0a-6602-4f72-8a1f-8691e099aaed","name":"Show tag by ID","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"tws-membership-id","value":"{{TwsMembershipId}}","type":"text"},{"key":"tws-organization-token","value":"{{TwsApiOrgToken}}","type":"text"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/tags/:id","host":["{{TwsHost}}"],"path":["tags",":id"],"variable":[{"id":"6045eede-8ef8-429d-9ee8-7db384157d79","key":"id","value":"3","type":"string","description":"ID of the tag to show"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 13 Feb 2020 02:29:12 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"f75ba2a282ac89ef9b7d5494a03e635f\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"a89dd83f-bb8c-4be2-ba92-e87207787199"},{"key":"x-runtime","value":"0.013165"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"48"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"56435f90dc90caa8-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Canada East\"\n    }\n}"}],"_postman_id":"ec68f14e-d85a-4a67-b09e-5ddc6fbb5c9c"},{"name":"List Tags","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Success\"] = responseCode.code === 200","tests[\"Array of Tags\"] = typeof(responseData[\"data\"] === \"object\") && (responseData[\"data\"].length > 0)"],"type":"text/javascript"}}],"id":"97dafa00-5280-4f7c-a8db-91ce86fe5517","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/tags","urlObject":{"path":["tags"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {String} Search the list of tags by name</p>\n","type":"text/plain"},"key":"search","value":null},{"disabled":true,"description":{"content":"<p>(optional) {Boolean} Include the ids of user and locks associated with tags</p>\n","type":"text/plain"},"key":"include_associations","value":"true"}],"variable":[]}},"response":[{"id":"14e7cd62-8352-4354-9d68-1393b003c4ba","name":"List tags with associated account and lock IDs","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"tws-membership-id","value":"{{TwsMembershipId}}","type":"text"},{"key":"tws-organization-token","value":"{{TwsApiOrgToken}}","type":"text"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/tags?include_associations=true","host":["{{TwsHost}}"],"path":["tags"],"query":[{"key":"include_associations","value":"true","description":"(optional) {Boolean} Include the ids of user and locks associated with tags"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 13 Feb 2020 02:26:09 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"5492aedc9569716a2e6b54bda96e6e07\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"6442c1b8-f01d-4c21-a3cf-3cf0144856f7"},{"key":"x-runtime","value":"0.056398"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"85"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"56435b164d00caa8-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 3,\n            \"name\": \"Canada East\",\n            \"resources\": {\n                \"user_ids\": [\n                    \"d8228840-059f-45bb-8285-0698ec78d4e4\"\n                ],\n                \"lock_ids\": []\n            }\n        },\n        {\n            \"id\": 2,\n            \"name\": \"Canada West\",\n            \"resources\": {\n                \"user_ids\": [],\n                \"lock_ids\": []\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 2,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"},{"id":"562826ce-f9ac-4772-a7d5-fb0189897376","name":"Search tags by name","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"tws-membership-id","value":"{{TwsMembershipId}}","type":"text"},{"key":"tws-organization-token","value":"{{TwsApiOrgToken}}","type":"text"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/tags?search=canada","host":["{{TwsHost}}"],"path":["tags"],"query":[{"key":"search","value":"canada","description":"(optional) {String} Search the list of tags by name"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 13 Feb 2020 02:21:53 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"f7707ea1438331241c3584cb0d42dcb7\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"4cf1401d-6f79-4b5c-8b08-1fc1fb340dde"},{"key":"x-runtime","value":"0.042075"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"125"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"564354da88bbcaa8-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 3,\n            \"name\": \"Canada East\"\n        },\n        {\n            \"id\": 2,\n            \"name\": \"Canada West\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 2,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"}],"_postman_id":"97dafa00-5280-4f7c-a8db-91ce86fe5517"},{"name":"Create Tag","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Authenticated\"] = responseCode.code === 201"],"type":"text/javascript"}}],"id":"b8231baf-9482-4641-bf10-d8f83df5e2a4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"contractors\"\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/tags","description":"<p>Create a new Tag.</p>\n<p><strong>Request Params</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>name</strong></td>\n<td>{String}</td>\n<td>Name of the tag to create.  May be applied to accounts or lock resources.</td>\n<td>unique text (max. 32)</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["tags"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[{"id":"11df76bc-d0ef-4c6b-8d9c-abc3e2226dba","name":"Create a tag","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"tws-organization-token","value":"{{TwsApiOrgToken}}","type":"text"},{"key":"tws-membership-id","value":"{{TwsMembershipId}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"contractors\"\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/tags"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 13 Feb 2020 02:31:25 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"39dc3739a165580956cef99c07ec2c81\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"ad4d78ea-e42e-4a2a-8590-b5a8bbd255b8"},{"key":"x-runtime","value":"0.022882"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"85"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"564362d0bd7ccaa8-YYZ"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {}\n}"}],"_postman_id":"b8231baf-9482-4641-bf10-d8f83df5e2a4"},{"name":"Update Tag","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Authenticated\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"4ef32c60-76aa-4745-82e7-e9f77829e5d7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"contractors-new\"\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/tags/:id","description":"<p>Update the name of an existing tag.</p>\n<p><strong>Request Params</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>name</strong></td>\n<td>{String}</td>\n<td>New name for the tag</td>\n<td>unique text (max. 32)</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["tags",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"description":{"content":"<p>Id of the tag to update</p>\n","type":"text/plain"},"type":"string","value":"5","key":"id"}]}},"response":[{"id":"058dbd09-8242-4c67-9707-087f5988061b","name":"Update tag","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-organization-token","value":"{{TwsApiOrgToken}}","type":"text"},{"key":"tws-membership-id","value":"{{TwsMembershipId}}","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"name\": \"{{TagNameUpdate}}\"\n}"},"url":{"raw":"{{TwsHost}}/tags/:id?name=Fixed Tag","host":["{{TwsHost}}"],"path":["tags",":id"],"query":[{"key":"name","value":"Fixed Tag","description":"{String} The new name of the tag (Alphanumeric)"}],"variable":[{"key":"id","value":"5","type":"string","description":"Id of the tag to update"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 13 Feb 2020 02:38:07 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"5b468454f4fca2e14ceafff133a76fc9\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"29b67099-dfb7-44ba-98bc-b257b3096d91"},{"key":"x-runtime","value":"0.034403"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"62"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"56436ca2b9b4caa8-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 5,\n        \"name\": \"Fixed Tag\"\n    }\n}"}],"_postman_id":"4ef32c60-76aa-4745-82e7-e9f77829e5d7"},{"name":"Delete Tag","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Authenticated\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"24953492-0f95-4815-82c1-0419b7d3b82e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/tags/:id","description":"<p>Delete a tag.  This action does not delete user or lock resources, only the tag associated with them.</p>\n","urlObject":{"path":["tags",":id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"description":{"content":"<p>Id of the tag to be destroyed</p>\n","type":"text/plain"},"type":"string","value":"1","key":"id"}]}},"response":[],"_postman_id":"24953492-0f95-4815-82c1-0419b7d3b82e"}],"id":"93f93f1e-0cac-40dc-838e-2b677ea39f2f","_postman_id":"93f93f1e-0cac-40dc-838e-2b677ea39f2f","description":""},{"name":"Users","item":[{"name":"Show User","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Show User Information\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"9cb66cdb-73fa-457d-863b-2814b74f0fa8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/users/:membership_id","description":"<p>Show the extended information for a specific user within this organization/tenant.  A membership ID is unique globally and helps to tie a global account_id to a unique organization (tenant) ID.</p>\n","urlObject":{"path":["users",":membership_id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"type":"string","value":"951d977f-19be-4d24-ad89-f34aada7441f","key":"membership_id"}]}},"response":[{"id":"fb416d90-cb9f-49ed-9403-55d925924cc3","name":"Show a single user","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/users/:membership_id","host":["{{TwsHost}}"],"path":["users",":membership_id"],"variable":[{"key":"membership_id","value":"{{TwsMembershipId}}","type":"string","description":"ID of the account to show (v4 UUID)"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 12 Feb 2020 22:40:48 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"db454d9f74afbabe4334a88db7c31a34\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"78f2e899-0b0a-4f71-8e8e-cc0e6b0935b1"},{"key":"x-runtime","value":"0.044592"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"70"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"564210fc5ab9cab4-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"membership_id\": \"eb80e07b-0095-4214-86d1-9f44a4b8888b\",\n        \"first_name\": \"Administrator\",\n        \"last_name\": \"Account\",\n        \"user_group\": \"administrator\",\n        \"email\": \"admin@example.com\",\n        \"status\": 1,\n        \"language\": \"en\",\n        \"tag_ids\": []\n    }\n}"}],"_postman_id":"9cb66cdb-73fa-457d-863b-2814b74f0fa8"},{"name":"List Users","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Success\"] = responseCode.code === 200","tests[\"Array of Tags\"] = typeof(responseData[\"data\"] === \"object\") && (responseData[\"data\"].length > 0)"],"type":"text/javascript"}}],"id":"410630c2-f75d-4ef7-88df-4333e74db0a3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/users","description":"<p>List the users that belong to an organization.  Results can be filtered using a variety of criteria including first name, last name or user tags.</p>\n","urlObject":{"path":["users"],"host":["{{TwsHost}}"],"query":[{"disabled":true,"description":{"content":"<p>(optional) {Boolean} Include the ids of user and locks associated with tags</p>\n","type":"text/plain"},"key":"tag_ids","value":"3"},{"disabled":true,"description":{"content":"<p>(optional) {String} Sort results by column [first_name, last_name, email) - Defaults to first_name</p>\n","type":"text/plain"},"key":"sort","value":"last_name"},{"disabled":true,"description":{"content":"<p>(optional) {Integer} Search users by user_group_id (1,2)</p>\n","type":"text/plain"},"key":"user_group_id","value":"2"},{"disabled":true,"key":"search","value":"Galeano"},{"disabled":true,"description":{"content":"<p>(optional) {Integer} Search by active status (1 == active, 2 == Disabled)</p>\n","type":"text/plain"},"key":"active_status","value":"1"}],"variable":[]}},"response":[{"id":"70d66175-d775-4ca5-b650-48a1880f723d","name":"List users - search by name and limit resources returned","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/users?search=Galeano&page_size=1","host":["{{TwsHost}}"],"path":["users"],"query":[{"key":"search","value":"Galeano","description":"(optional) {String} Search the list of tags by name"},{"key":"page_size","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 13 Feb 2020 02:59:07 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"dc2b25d9b5af67b2017d381dedb2b8d3\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"363cfd85-f966-4bc1-bc4f-63ec6ea4d9a3"},{"key":"x-runtime","value":"0.049532"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"116"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"56438b64cbc3ca9c-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"membership_id\": \"bb949009-ffd4-4967-9507-ac041fbb59aa\",\n            \"first_name\": \"D\",\n            \"last_name\": \"Galeano\",\n            \"user_group\": \"administrator\",\n            \"email\": \"support@sera4.com\",\n            \"status\": 1,\n            \"language\": \"en\",\n            \"tag_ids\": []\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": \"1\"\n        }\n    }\n}"},{"id":"7463c640-cb63-4c35-a653-b6cdfb0f0868","name":"List users by tag ID","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/users?tag_ids=3","host":["{{TwsHost}}"],"path":["users"],"query":[{"key":"tag_ids","value":"3","description":"(optional) {Boolean} Include the ids of user and locks associated with tags"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 13 Feb 2020 02:50:44 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"5d1ff2d791318630d052ea1700953be7\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"e757374b-910a-4a82-9cc6-0e4111941ab6"},{"key":"x-runtime","value":"0.043661"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"71"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"56437f1a1b89ca9c-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"membership_id\": \"d8228840-059f-45bb-8285-0698ec78d4e4\",\n            \"first_name\": \"John\",\n            \"last_name\": \"Smith\",\n            \"user_group\": \"administrator\",\n            \"email\": \"john@example.com\",\n            \"status\": 1,\n            \"language\": \"en\",\n            \"tag_ids\": [\n                3\n            ]\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 1,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"},{"id":"8d7aba68-75cc-4ed9-a3ee-3863fc291077","name":"List users - sorted by last_name","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"application/json"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/users?sort=last_name","host":["{{TwsHost}}"],"path":["users"],"query":[{"key":"sort","value":"last_name"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 12 Feb 2020 22:45:20 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"7bb8b4721964fb4c14a1fba93e7e00c2\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"615de3b2-3c7d-4298-b0df-16cf734bb6f2"},{"key":"x-runtime","value":"0.144665"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"167"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"564217a0a88acab4-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"membership_id\": \"4a8add69-65ba-4966-8acf-f9ff60f8ea40\",\n            \"first_name\": \"Daniel\",\n            \"last_name\": \"Galeano\",\n            \"organization_id\": 0,\n            \"user_group\": \"administrator\",\n            \"email\": \"daniel@example.com\",\n            \"status\": 1,\n            \"language\": \"en\",\n            \"tag_ids\": []\n        },\n        {\n            \"membership_id\": \"a7429234-5e3e-4f82-a37f-52377936ca6e\",\n            \"first_name\": \"Jeff\",\n            \"last_name\": \"Klink\",\n            \"organization_id\": 0,\n            \"user_group\": \"administrator\",\n            \"email\": \"jeff@example.com\",\n            \"status\": 1,\n            \"language\": \"en\",\n            \"tag_ids\": []\n        },\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 6,\n            \"total_pages\": 1,\n            \"current_page\": 1,\n            \"page_size\": 15\n        }\n    }\n}"}],"_postman_id":"410630c2-f75d-4ef7-88df-4333e74db0a3"},{"name":"Create User","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["tests[\"User Created\"] = responseCode.code === 201"],"type":"text/javascript"}}],"id":"b4fcb9e3-b73e-4d2b-a2cf-1e058a8a508e","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"user\": {\n\t\t\"first_name\": \"John\",\n\t\t\"last_name\": \"Smith\",\n\t\t\"user_group\": \"user\",\n\t\t\"email\": \"demo@example.com\",\n\t\t\"language\": \"en\",\n        \"device_restricted\": true\n\t}\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/users","description":"<p>Create and associate a new user with this organization. If the user already is part of the TWS SSO system, a new membership will be created with this server with their status set to 'active'. If the user has already accepted the terms and conditions, a notification email will be sent indicating that they now have membership to this organization.</p>\n<p><strong>NOTE</strong> Administrators cannot set passwords for users, this must be done when the account is setup or reset and performed by the end-user.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>first_name</strong></td>\n<td>{String}</td>\n<td>First name</td>\n<td>UTF-8 string</td>\n</tr>\n<tr>\n<td><strong>last_name</strong></td>\n<td>{String}</td>\n<td>Last name</td>\n<td>UTF-8 string</td>\n</tr>\n<tr>\n<td><strong>language</strong></td>\n<td>{String}</td>\n<td>Preferred communication language for emails</td>\n<td>'en', 'es',' pt', 'fr'</td>\n</tr>\n<tr>\n<td><strong>user_group</strong></td>\n<td>{String}</td>\n<td>Account type</td>\n<td>'administrator' , 'user'</td>\n</tr>\n<tr>\n<td><strong>email</strong></td>\n<td>{String}</td>\n<td>Email address</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>device_restricted</strong></td>\n<td>{Boolean}</td>\n<td>Enables device restriction</td>\n<td>true, false</td>\n</tr>\n<tr>\n<td><strong>skip_activation_email</strong></td>\n<td>{Boolean}</td>\n<td>Skip sending an activation email</td>\n<td>true, false</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["users"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[{"id":"35a1e0a1-edb7-41ae-bcb6-d790c8c7e80a","name":"Create User","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"user\": {\n\t\t\"first_name\": \"John\",\n\t\t\"last_name\": \"Smith\",\n\t\t\"user_group\": \"user\",\n\t\t\"email\": \"john@example.com\",\n\t\t\"language\": \"en\"\n\t}\n}"},"url":"{{TwsHost}}/users"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 20 May 2020 13:15:09 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"f2656438334944f2fcbee7195ee6f6a4\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"3d1c695e-350b-408f-a8a4-e8650fe962de"},{"key":"x-runtime","value":"1.601035"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"1640"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"cf-request-id","value":"02d3d245260000cabc029a2200000001"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"5966531b7d0acabc-YYZ"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"membership_id\": \"30a7b5fb-09d6-454a-922b-6988d7f53bb0\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Smith\",\n        \"user_group\": \"user\",\n        \"email\": \"john@example.com\",\n        \"status\": 0,\n        \"language\": \"en\",\n        \"tag_ids\": []\n    }\n}"}],"_postman_id":"b4fcb9e3-b73e-4d2b-a2cf-1e058a8a508e"},{"name":"Update User","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Authenticated\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"5a446cc8-c1f6-4934-a7ca-dbbccbf04194","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n\t\"user\": {\n\t\t\"first_name\": \"New Name\",\n\t\t\"language\": \"es\"\n\t}\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/users/:membership_id","description":"<p>Update an existing user. Change their first name, last name, language or user type (administrator or regular user). This setting will change their name and settings for the current organization.</p>\n<p><strong>Request Params</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>user[first_name]</strong></td>\n<td>{String}</td>\n<td>First name</td>\n<td>UTF-8 string</td>\n</tr>\n<tr>\n<td><strong>user[last_name]</strong></td>\n<td>{String}</td>\n<td>Last name</td>\n<td>UTF-8 string</td>\n</tr>\n<tr>\n<td><strong>user[language]</strong></td>\n<td>{String}</td>\n<td>Preferred communication language for emails</td>\n<td>'en', 'es',' pt', 'fr'</td>\n</tr>\n<tr>\n<td><strong>user[user_group]</strong></td>\n<td>{String}</td>\n<td>Account type</td>\n<td>'administrator' , 'user'</td>\n</tr>\n<tr>\n<td><strong>user[tag_ids]</strong></td>\n<td>Array[{Int}]</td>\n<td>A list of tag ids. Empty array REMOVE all tags</td>\n<td>Array[Int] if Tag IDs</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["users",":membership_id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"description":{"content":"<p>ID of the account to modify (v4 UUID)</p>\n","type":"text/plain"},"type":"string","value":"d8228840-059f-45bb-8285-0698ec78d4e4","key":"membership_id"}]}},"response":[{"id":"53c41a07-dabc-45b7-ae28-ac430842e1c7","name":"Update user's name","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"}],"body":{"mode":"raw","raw":"{\n\t\"user\": {\n\t\t\"first_name\": \"John\",\n\t\t\"last_name\": \"Smith\"\n\t}\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/users/:membership_id","host":["{{TwsHost}}"],"path":["users",":membership_id"],"variable":[{"key":"membership_id","value":"d8228840-059f-45bb-8285-0698ec78d4e4","type":"string","description":"ID of the account to modify (v4 UUID)\n\n"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 13 Feb 2020 02:19:51 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"fbe405d15c2f8083bf474572e3266dab\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"ebf5b83c-7508-4b2c-9ed9-d0ec911b770d"},{"key":"x-runtime","value":"0.137415"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"204"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"564351defe69caa8-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"membership_id\": \"d8228840-059f-45bb-8285-0698ec78d4e4\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Smith\",\n        \"user_group\": \"administrator\",\n        \"email\": \"jeff@example.com\",\n        \"status\": 1,\n        \"language\": \"en\",\n        \"tag_ids\": [\n            3\n        ]\n    }\n}"},{"id":"ac32c4f2-5601-4b4a-9f35-0c2a86c4ba7c","name":"Modify the tags associated with a user","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"tws-organization-token","type":"text","value":"{{TwsApiOrgToken}}"},{"key":"tws-membership-id","type":"text","value":"{{TwsMembershipId}}"}],"body":{"mode":"raw","raw":"{\n\t\"user\": {\n\t\t\"tag_ids\": [3,4]\n\t}\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/users/:membership_id","host":["{{TwsHost}}"],"path":["users",":membership_id"],"query":[{"key":"[first_name]","value":"John","description":"(optional) {String} Modify the account's first name","disabled":true},{"key":"user[last_name]","value":"Smith","description":"(optional) {String} Modify the account's last name","disabled":true},{"key":"user[language]","value":"en","description":"(optional) {String} 2 letter abbreviation for the users preferred language (en, es, pt)","disabled":true},{"key":"user[user_group_id]","value":"2","type":"text","description":"(optional) {Integer} User grouping (1 = administrator, 2 = user)","disabled":true}],"variable":[{"key":"membership_id","value":"d8228840-059f-45bb-8285-0698ec78d4e4","type":"string","description":"ID of the account to modify (v4 UUID)\n\n"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 13 Feb 2020 02:17:33 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":"referrer-policy","value":"origin-when-cross-origin"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"etag","value":"W/\"c6ffb4e370102c18e0fe4155503be0a4\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"1a067f20-aaaa-452f-bc43-68819ce9e5ad"},{"key":"x-runtime","value":"0.179819"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"214"},{"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":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"56434e7e7d69caa8-YYZ"},{"key":"Content-Encoding","value":"br"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"membership_id\": \"d8228840-059f-45bb-8285-0698ec78d4e4\",\n        \"first_name\": \"Jeff\",\n        \"last_name\": \"Klink\",\n        \"user_group\": \"administrator\",\n        \"email\": \"jeff@example.com\",\n        \"status\": 1,\n        \"language\": \"en\",\n        \"tag_ids\": [\n            3,4\n        ]\n    }\n}"}],"_postman_id":"5a446cc8-c1f6-4934-a7ca-dbbccbf04194"},{"name":"Delete User","event":[{"listen":"test","script":{"id":"d9eac42d-8fda-4209-b9e1-0e6a7478a658","exec":["let responseData = JSON.parse(responseBody)","tests[\"Authenticated\"] = responseCode.code === 200"],"type":"text/javascript"}}],"id":"c3e7bd39-28d3-4139-9a0f-789d556d96a7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/users/:membership_id","description":"<p>Removes a user from this organization.</p>\n","urlObject":{"path":["users",":membership_id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"type":"string","value":"","key":"membership_id"}]}},"response":[],"_postman_id":"c3e7bd39-28d3-4139-9a0f-789d556d96a7"}],"id":"4767a955-0b1b-424d-8f3e-1ceeb4049b2f","_postman_id":"4767a955-0b1b-424d-8f3e-1ceeb4049b2f","description":""},{"name":"API Tokens","item":[{"name":"List Tokens","event":[{"listen":"test","script":{"id":"72562bf5-c276-4a42-8be6-30c4b297a69e","exec":["let responseData = JSON.parse(responseBody)","tests[\"Success\"] = responseCode.code === 200","tests[\"Array of Tags\"] = typeof(responseData[\"data\"] === \"object\") && (responseData[\"data\"].length > 0)"],"type":"text/javascript"}}],"id":"72c869c4-e7ea-41b5-849f-4db90ee2975f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/api_tokens","description":"<p>List tokens associated with this organization</p>\n<p>API token IDs will be obscured from this view.</p>\n","urlObject":{"path":["api_tokens"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[{"id":"a13d7c74-01f4-4782-9607-d37376706a0e","name":"List Tokens","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/api_tokens"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"157c26a3e1694d0bd3936c3deff37671\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"700d69ea-0958-4168-b0ef-86e502052ed8"},{"key":"x-runtime","value":"0.159191"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Thu, 09 Sep 2021 19:22:33 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"pagination\": {\n        \"current_page\": 1,\n        \"first_page\": true,\n        \"last_page\": true,\n        \"page_size\": 15,\n        \"total_pages\": 1,\n        \"total_size\": 1,\n        \"out_of_bounds\": false\n    },\n    \"data\": [\n        {\n            \"id\": \"5934*******************************\",\n            \"enabled\": false,\n            \"tenant_id\": \"8231b3fa-78f3-4ea6-b423-8f3877fe4a6c\",\n            \"reference_id\": \"29491ab0-9753-4448-8332-40301a649ff2\",\n            \"account_id\": \"e85c891f-fc17-42ce-a83d-c5ab3686885a\",\n            \"created_at\": \"2021-09-03T15:11:15.525Z\",\n            \"updated_at\": \"2021-09-03T15:42:36.194Z\",\n            \"tenant\": {\n                \"id\": \"8231b3fa-78f3-4ea6-b423-8f3877fe4a6c\",\n                \"name\": \"Development Server\"\n            },\n            \"account\": {\n                \"id\": \"e85c891f-fc17-42ce-a83d-c5ab3686885a\",\n                \"first_name\": \"Test\",\n                \"last_name\": \"User\"\n            }\n        }\n    ]\n}"}],"_postman_id":"72c869c4-e7ea-41b5-849f-4db90ee2975f"},{"name":"Create API token","event":[{"listen":"test","script":{"id":"22d14bec-ffd7-4f9c-af06-ebd16c8361ee","exec":["let responseData = JSON.parse(responseBody)","tests[\"Success\"] = responseCode.code === 200","tests[\"Array of Tags\"] = typeof(responseData[\"data\"] === \"object\") && (responseData[\"data\"].length > 0)"],"type":"text/javascript"}}],"id":"396061ef-fa8c-44f5-ac88-9e2ab5753547","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/api_tokens","description":"<p>The create API token enables programmatic access to the Sera4 API.  One API token can be used via many clients.</p>\n<p>Each administrator is permitted to create up to 3 personal API tokens which can be used by any administrator belonging to that organization.  An API token (id) is only shown when the token is created, so please store this value in a safe location.  The <code>reference_id</code> is used to update and delete the API token in future requests.  A lost API token ID cannot replaced or retrieved via the Sera4 team.</p>\n","urlObject":{"path":["api_tokens"],"host":["{{TwsHost}}"],"query":[],"variable":[]}},"response":[{"id":"4e460274-dc09-47d6-be0a-f4076c57f2b7","name":"Create API token","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/api_tokens"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"999cdfc3b087b9a6c89e2b2b3c32e6fd\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"beff3f0d-26e9-41d0-8570-30133b59df4a"},{"key":"x-runtime","value":"0.124219"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Thu, 09 Sep 2021 19:24:46 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"b7cfb14b-2f90-45bf-a6e7-4d34952d72a9\",\n        \"enabled\": true,\n        \"tenant_id\": \"8231b3fa-78f3-4ea6-b423-8f3877fe4a6c\",\n        \"reference_id\": \"1a18fa8f-bf9e-4a45-9ddb-7592261c317f\",\n        \"account_id\": \"e85c891f-fc17-42ce-a83d-c5ab3686885a\",\n        \"created_at\": \"2021-09-09T19:24:46.573Z\",\n        \"updated_at\": \"2021-09-09T19:24:46.573Z\",\n        \"tenant\": {\n            \"id\": \"8231b3fa-78f3-4ea6-b423-8f3877fe4a6c\",\n            \"name\": \"Development Server\"\n        },\n        \"account\": {\n            \"id\": \"e85c891f-fc17-42ce-a83d-c5ab3686885a\",\n            \"first_name\": \"Test\",\n            \"last_name\": \"User\"\n        }\n    }\n}"}],"_postman_id":"396061ef-fa8c-44f5-ac88-9e2ab5753547"},{"name":"Modify API token","event":[{"listen":"test","script":{"id":"d2bc5a2e-7067-446a-a6a3-6974dc1165c0","exec":["tests[\"Success\"] = responseCode.code === 204"],"type":"text/javascript"}}],"id":"50d3f112-6333-4cb0-a470-07eeb5346bc4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"api_token\": {\n        \"comment\": \"A comment\",\n        \"enabled\": false\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{TwsHost}}/api_tokens/:reference_id","description":"<p>Update fields related to this API token.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n<th>Accepted Values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>comment</strong></td>\n<td>{String}</td>\n<td></td>\n<td>A note or comment to attach to the API key</td>\n<td>Up to 64 UTF-8 characters</td>\n</tr>\n<tr>\n<td><strong>enabled</strong></td>\n<td>{Boolean}</td>\n<td></td>\n<td>Enable or disable this API token</td>\n<td>[true,false]</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api_tokens",":reference_id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"236f4b4c-4411-4e4c-b440-eec0e753e84f","type":"any","value":"29491ab0-9753-4448-8332-40301a649ff2","key":"reference_id"}]}},"response":[{"id":"63f70dd6-554b-4bdb-b5fc-52c163f077e6","name":"Modify API token","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"api_token\": {\n        \"comment\": \"A comment\",\n        \"enabled\": false\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{TwsHost}}/api_tokens/:reference_id","host":["{{TwsHost}}"],"path":["api_tokens",":reference_id"],"variable":[{"key":"reference_id","value":"1a18fa8f-bf9e-4a45-9ddb-7592261c317f"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"99feadbd4f237d1003c2b01cd68c646e\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"117cc50f-770f-41c3-b80a-27030aff21e7"},{"key":"x-runtime","value":"0.135271"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"transfer-encoding","value":"chunked"},{"key":"Date","value":"Thu, 09 Sep 2021 19:25:36 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"b7cf*******************************\",\n        \"enabled\": false,\n        \"tenant_id\": \"8231b3fa-78f3-4ea6-b423-8f3877fe4a6c\",\n        \"reference_id\": \"1a18fa8f-bf9e-4a45-9ddb-7592261c317f\",\n        \"account_id\": \"e85c891f-fc17-42ce-a83d-c5ab3686885a\",\n        \"created_at\": \"2021-09-09T19:24:46.573Z\",\n        \"updated_at\": \"2021-09-09T19:25:35.991Z\"\n    }\n}"}],"_postman_id":"50d3f112-6333-4cb0-a470-07eeb5346bc4"},{"name":"Delete API token","event":[{"listen":"test","script":{"id":"918f7ec0-f3ce-41d8-88fe-0aec1db401ad","exec":["tests[\"Success\"] = responseCode.code === 204"],"type":"text/javascript"}}],"id":"8a0d41a9-c292-4586-b368-31457ae126c2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":""},"url":"{{TwsHost}}/api_tokens/:reference_id","description":"<p>Delete an API token.  Deleting a token will immediately disable it across the globe.</p>\n","urlObject":{"path":["api_tokens",":reference_id"],"host":["{{TwsHost}}"],"query":[],"variable":[{"id":"75112137-a49c-4851-b1e6-b7ebee1a360b","type":"any","value":"f916158f-5f88-4d65-94d0-4b6f757a2528","key":"reference_id"}]}},"response":[{"id":"677633e3-4989-4be0-98fa-33940ffc25f4","name":"Delete API token","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"{{TwsHost}}/api_tokens/:reference_id","host":["{{TwsHost}}"],"path":["api_tokens",":reference_id"],"variable":[{"key":"reference_id","value":"29491ab0-9753-4448-8332-40301a649ff2"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS, DELETE, PUT, PATCH"},{"key":"Access-Control-Allow-Headers","value":"authorization,content-type,tws-membership-id,tws-account-id"},{"key":"Access-Control-Expose-Headers","value":"x-pagination"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"cache-control","value":"no-cache"},{"key":"x-request-id","value":"7ec1473a-f66c-43ed-9f1f-aa209ed3dd4e"},{"key":"x-runtime","value":"0.158724"},{"key":"vary","value":"Origin"},{"key":"connection","value":"close"},{"key":"Date","value":"Thu, 09 Sep 2021 19:24:35 GMT"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"8a0d41a9-c292-4586-b368-31457ae126c2"}],"id":"b13dc047-918c-4c73-aac2-edbb94e33b49","description":"<p>Manage your organization's API tokens.  API tokens are visible by any administrator in the system and are capable of being enabled and disabled to enhance testing and deprecation scenarios.</p>\n","_postman_id":"b13dc047-918c-4c73-aac2-edbb94e33b49"}],"event":[{"listen":"prerequest","script":{"id":"9a4fcaa3-0e2f-4476-9c52-1f83a366e3e7","type":"text/javascript","exec":["const token =  pm.environment.get(\"TwsUserToken\");","const membership_id = pm.environment.get(\"TwsMembershipId\");","const organization_token = pm.environment.get(\"TwsApiOrgToken\");","","// the format for ALL requests","pm.request.headers.add({","  key: 'Content-Type',","  value: 'application/json'","});  ","","if (!!token) {","  pm.request.headers.add({","    key: 'Authorization',","    value: `Bearer ${token}`","  });","}","","","// Necessary on any authenticated requests","if (!!membership_id) {","  pm.request.headers.add({","    key: 'tws-membership-id',","    value: membership_id","  });  ","}","","if (!!organization_token) {","  pm.request.headers.add({","    key: 'tws-organization-token',","    value: organization_token","  });  ","}"]}},{"listen":"test","script":{"id":"24391963-6cc7-43cf-9903-8823ef08dbbb","type":"text/javascript","exec":["tests[\"Successful Response\"] = [200,201].includes(responseCode.code)"]}}]}